How to rectify the errors through call transaction metod in bdc

how to rectify the errors through call transaction metod in bdc

Hi ,
View the highlited part of the below code.
REPORT ygfrivat1 NO STANDARD PAGE HEADING
                 LINE-SIZE 165
                 MESSAGE-ID yif_groc.
Program     YGFRIVAT1
Function    Report to Upload the VAT Adjustment File.
Author      ARENAPU
Date        11.05.2007
PMTS        AM12810157
Transport   G6DK937834
Description:
Modification log:
1. Changed by  :
   Changed on  :
   PMTS        :
   Transport   :
   Tag         :
   Description :
       T A B L E S   D E C L A R A T I O N S
TABLES: edidc,  "Control record (IDoc)
        edids,  "Status Record (IDoc)
        t001w.
Internal Tables Declaration.
Internal table to hold data from table EDIDS
DATA: BEGIN OF t_edids OCCURS 0,
       docnum LIKE edids-docnum,
       logdat LIKE edids-logdat,
       logtim LIKE edids-logtim,
       countr LIKE edids-countr,
       credat LIKE edids-credat,
       uname  LIKE edids-uname,
      END OF t_edids,
Internal table to hold data from table EDIDC
      BEGIN OF t_edidc OCCURS 0,
       docnum LIKE edidc-docnum,
       rcvprt LIKE edidc-rcvprt,
       rcvprn LIKE edidc-rcvprn,
       credat LIKE edidc-credat,
      END OF t_edidc,
Internal table to hold data from upload file
      BEGIN OF t_tab OCCURS 0,
       cust(10),        "site/customer number
       date(10),        "transaction date
       currency(04),    "currency
       extnbr(15),      "external reference number
       pos-cont(05),    "POS controler
       pos-id(25),      "POS id
       cashier(10),     "cashier name
       qualif(04),      "qualifier of the article
       matnr(25),       "article number
       qty(10),         "quantity
       sale(16),        "sale value
       pos-tr(04),      "POS transfert type
       paymeth(04),     "payment method
       final(35),       "final price
       tarcur(04),      "target currency
       assign(35),      "assignment day
       error,
      END OF t_tab,
Internal table for Report display.
      BEGIN OF t_tab1 OCCURS 0,
       cust(10),                    "site/customer number
       date(10),                    "transaction date
       currency(04),                "currency
       extnbr(15),                  "external reference number
       pos-cont(05),                "POS controler
       pos-id(25),                  "POS id
       cashier(10),                 "cashier name
       qualif(04),                  "qualifier of the article
       matnr(25),                   "article number
       qty(16)   TYPE p DECIMALS 2, "quantity
       sale(16)  TYPE p DECIMALS 2, "sale value
       pos-tr(04),                  "POS transfert type
       paymeth(04),                 "payment method
       final(16) TYPE p DECIMALS 2, "final price
       tarcur(04),                  "target currency
       assign(35),                  "assignment day
      END OF t_tab1,
      t_tab_temp LIKE t_tab OCCURS 0 WITH HEADER LINE,
Internal table to Validate Customer no.
      BEGIN OF t_check OCCURS 0,
       werks LIKE t001w-werks,
       vkorg LIKE t001w-vkorg,
       value(40),
      END OF t_check,
      t_check_temp LIKE t_check OCCURS 0 WITH HEADER LINE.
Internal table to hold data from table ZCS_PARAM.
DATA: BEGIN OF t_zcs_param OCCURS 0.
        INCLUDE STRUCTURE zcs_param.
DATA: vkorg LIKE t001w-vkorg,
      END OF t_zcs_param.
*Internal table to hold Messages.
DATA: BEGIN OF t_message OCCURS 0,
         msgnum TYPE msgnum,
         msgtyp TYPE msgtyp,
         msgtxt TYPE msgtext,
       END OF t_message.
*Work area for table t_message
DATA : w_message LIKE LINE OF t_message.
Internal table to hold BDC data
DATA: t_bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE,
Internal table to collect error messages
      messtab   LIKE bdcmsgcoll OCCURS 0  WITH HEADER LINE.
*Internal table to hold messages from call transaction
DATA: BEGIN OF t_text OCCURS 0,
       desc(150),
       msgtxt(100),
      END OF t_text.
       D A T A   D E C L A R A T I O N S
DATA: n TYPE i,
      gv_status(11) TYPE c, "Shows status, Production or Test
      gv_exit TYPE c,  "Exit Flag
      gv_qty(16)   TYPE p DECIMALS 2, "Variable to sum Quantity
      gv_sale(16)  TYPE p DECIMALS 2, "Variable to sum Amount
      gv_final(16) TYPE p DECIMALS 2. "Variable to sum Final Amount
DATA: w_text(100),
      gv_mode TYPE c,
      error TYPE c.  "Flag to Indicate error.
CONSTANSTS DECLARATION
CONSTANTS : gc_fieldname LIKE dynpread-fieldname VALUE 'P_FNAME',
            gc_seq_no LIKE zcs_param-seq_no VALUE '00110',
            gc_object LIKE zcs_param-object VALUE 'YGFVAT',
            gc_paraname LIKE zcs_param-paraname VALUE 'VKORG',
            gc_back TYPE c VALUE 'N',
            gc_error TYPE c VALUE 'E',
            gc_all TYPE c VALUE 'A'.
           S E L E C T I O N   S C R E E N
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
PARAMETERS : p_fname LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-002 FOR FIELD p_test.
PARAMETERS : p_test AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK a1.
SELECTION-SCREEN BEGIN OF BLOCK a2 WITH FRAME TITLE text-006.
PARAMETERS : rb_back RADIOBUTTON GROUP rb1 DEFAULT 'X',
             rb_error RADIOBUTTON GROUP rb1,
             rb_all RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF BLOCK a2.
AT SELECTION SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
*Subroutine to provide F4 help for file name
  PERFORM fr_get_filename.
       I N I T I A L I Z A T I  O N
INITIALIZATION.
*Subroutine to check authorization.
PERFORM fr_authority_check.
        T O P - O F - P A G E
TOP-OF-PAGE.
*Subroutine to diplay header
  PERFORM fr_display_header.
         S T A R T - O F - S E L E C T I O N
START-OF-SELECTION.
*Subroutine to upload data from presentation server.
  PERFORM fr_upload_data.
*Subroutine to validate records from uploaded file.
  PERFORM fr_validate_data.
*Subroutine to build report internal table.
  PERFORM fr_build_rep.
         E N D - O F - S E L E C T I O N
END-OF-SELECTION.
*Subroutine to display report.
  PERFORM fr_write_report.
        F O R M   S U B R O U T I N E S
*&      Form  fr_get_filename
      text
FORM fr_get_filename.
  DATA : lv_repid LIKE sy-repid,         " Report id
         lv_file  LIKE ibipparms-path.   " File Path
  lv_repid = sy-repid.
F4 help for file path.
  CALL FUNCTION 'F4_FILENAME'
       EXPORTING
            program_name  = lv_repid
            dynpro_number = syst-dynnr
            field_name    = gc_fieldname                    " p_fname1
       IMPORTING
            file_name     = lv_file.
  IF NOT lv_file EQ space.
    p_fname = lv_file.
  ELSE.
    MESSAGE e999 WITH 'Invalid Path'(005).
  ENDIF.
ENDFORM.                    " fr_get_filename
*&      Form  fr_upload_data
      text
FORM fr_upload_data.
  DATA: lv_fname TYPE string.
  CLEAR lv_fname.
  lv_fname = p_fname.
Uploading file from PC or presentation server to internal table.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename            = lv_fname
            filetype            = 'ASC'
            has_field_separator = 'X'
       TABLES
            data_tab            = t_tab
       EXCEPTIONS
            file_open_error     = 1.
  IF sy-subrc <> 0.
    DESCRIBE TABLE t_message LINES n.
    w_message-msgnum = n + 1.
    w_message-msgtyp = 'E'.
    MOVE text-m01  TO w_message-msgtxt.
    APPEND w_message TO t_message.
Subroutine for writing log.
    PERFORM fr_write_log.
  ENDIF.
ENDFORM.                    " fr_upload_data
*&      Form  fr_validate_data
      text
FORM fr_validate_data.
  DATA : lv_lines1 TYPE i,
         lv_lines2 TYPE i.
*Obtain Status depending on Check box selected.
  IF p_test IS INITIAL.
    gv_status = 'PRODUCTION'.
  ELSE.
    gv_status = 'TEST RUN'.
  ENDIF.
*Batch Mode
  CLEAR gv_mode.
  IF rb_back EQ 'X'.          "No Display
    MOVE gc_back TO gv_mode.
  ELSEIF rb_error EQ 'X'.     "Error Only
    MOVE gc_error TO gv_mode.
  ELSEIF rb_all EQ 'X'.       "All Screens
    MOVE gc_all TO gv_mode.
  ENDIF.
  IF NOT t_tab[] IS INITIAL.
    SORT t_tab BY cust.
    REFRESH t_tab_temp.
    t_tab_temp[] = t_tab[].
    SORT t_tab_temp BY cust.
    DELETE ADJACENT DUPLICATES FROM t_tab_temp COMPARING cust.
    IF NOT t_tab_temp[] IS INITIAL.
      SELECT werks vkorg FROM t001w
                         INTO TABLE t_check
                         FOR ALL ENTRIES IN t_tab_temp
                         WHERE werks = t_tab_temp-cust+0(4).
      IF sy-subrc = 0.
        SORT t_check BY werks.
      ENDIF.
      LOOP AT t_check.
        IF t_check-vkorg <> ' '.
          MOVE t_check-vkorg TO t_check-value.
          MODIFY t_check TRANSPORTING value.
        ENDIF.
      ENDLOOP.
    ENDIF.
    FREE t_tab_temp.
  ENDIF.
  IF NOT t_check[] IS INITIAL.
    REFRESH t_check_temp.
    t_check_temp[] = t_check[].
    SORT t_check_temp BY value.
    DELETE ADJACENT DUPLICATES FROM t_check_temp COMPARING value.
    IF NOT t_check_temp[] IS INITIAL.
      SELECT * FROM zcs_param INTO TABLE t_zcs_param
               FOR ALL ENTRIES IN t_check_temp
               WHERE seq_no   EQ gc_seq_no
                 AND object   EQ gc_object
                 AND paraname EQ gc_paraname
                 AND value    EQ t_check_temp-value.
      IF sy-subrc = 0.
        SORT t_zcs_param BY value.
      ENDIF.
    ENDIF.
    FREE t_check_temp.
  ENDIF.
  IF NOT t_tab[] IS INITIAL.
    LOOP AT t_tab.
      READ TABLE t_check WITH KEY werks = t_tab-cust BINARY SEARCH.
      IF sy-subrc <> 0.
        MOVE 'X' TO t_tab-error.
        MODIFY t_tab TRANSPORTING error.
        DESCRIBE TABLE t_message LINES n.
        w_message-msgnum = n + 1.
        w_message-msgtyp = 'E'.
        CONCATENATE t_tab-cust text-030
        INTO w_message-msgtxt SEPARATED BY space.
        APPEND w_message TO t_message.
Subroutine for writing log.
        PERFORM fr_write_log.
        EXIT.
      ELSE.
        READ TABLE t_zcs_param WITH KEY value = t_check-vkorg
                                                     BINARY SEARCH.
        IF sy-subrc <> 0.
          MOVE 'X' TO t_tab-error.
          MODIFY t_tab TRANSPORTING error.
          DESCRIBE TABLE t_message LINES n.
          w_message-msgnum = n + 1.
          w_message-msgtyp = 'E'.
          CONCATENATE text-003 t_tab-cust text-004 t_check-vkorg
          INTO w_message-msgtxt SEPARATED BY space.
          APPEND w_message TO t_message.
Subroutine for writing log.
          PERFORM fr_write_log.
          EXIT.
        ELSE.
          PERFORM fr_format_tab.
        ENDIF.
      ENDIF.
    ENDLOOP.
  ENDIF.
  DESCRIBE TABLE t_tab LINES lv_lines1.
  IF lv_lines1 <> 0.
    DELETE t_tab WHERE error EQ 'X'.
  ENDIF.
  DESCRIBE TABLE t_tab LINES lv_lines2.
  IF lv_lines2 <> 0.
    IF lv_lines2 <> lv_lines1.
      EXIT.
    ELSE.
      IF p_test IS INITIAL.
        LOOP AT t_tab.
*Subroutine to build BDC table
          PERFORM fr_fill_bdctab.
*Subroutine to Post Data into SAP.
          PERFORM fr_data_posting.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM.                    " fr_validate_data
*&      Form  fr_write_log
      text
FORM fr_write_log.
  CLEAR error.
  error = 'X'.
  WRITE:/1 'Msg No'(027), 10 'Type'(028), 20 'Text'(029).
  ULINE:/1(120).
  FORMAT RESET.
  LOOP AT t_message.
    IF t_message-msgtyp = 'E'.
      FORMAT COLOR 6 INTENSIFIED .
    ELSEIF t_message-msgtyp = 'W'.
      FORMAT COLOR 3 INTENSIFIED .
    ELSEIF t_message-msgtyp = 'I'.
      FORMAT COLOR 5 INTENSIFIED .
    ENDIF.
    WRITE:/1 t_message-msgnum,
          10 t_message-msgtyp,
          20 t_message-msgtxt.
    FORMAT RESET.
  ENDLOOP.
  ULINE:/1(120).
ENDFORM.                    " fr_write_log
*&      Form  fr_write_report
      text
FORM fr_write_report.
  CLEAR gv_exit.
  LOOP AT t_message.
    IF t_message-msgtyp = 'E'.
      gv_exit = 'X'.
      EXIT.
    ENDIF.
  ENDLOOP.
  IF NOT gv_exit IS INITIAL.
    EXIT.
  ELSE.
    PERFORM fr_display_report.
    IF NOT t_text[] IS INITIAL.
Subroutine for Display Call Transaction messages.
      PERFORM fr_write_msg.
    ENDIF.
  ENDIF.
ENDFORM.                    " fr_write_report
*&      Form  fr_display_report
      text
FORM fr_display_report.
  IF NOT t_tab1[] IS INITIAL.
    CLEAR: gv_qty, gv_sale, gv_final.
    LOOP AT t_tab1.
      WRITE:/1(10) t_tab1-cust,
            13(10) t_tab1-date,
            25(05) t_tab1-currency,
            32(14) t_tab1-extnbr,
            48(09) t_tab1-pos-cont,
            60(18) t_tab1-matnr,
            80(16) t_tab1-qty RIGHT-JUSTIFIED ,
            98(16) t_tab1-sale RIGHT-JUSTIFIED ,
           116(07) t_tab1-paymeth,
           125(16) t_tab1-final RIGHT-JUSTIFIED,
           143(06) t_tab1-tarcur,
           152(12) t_tab1-assign.
      gv_qty   = t_tab1-qty   + gv_qty.
      gv_sale  = t_tab1-sale  + gv_sale.
      gv_final = t_tab1-final + gv_final.
    ENDLOOP.
    FORMAT COLOR 3.
    ULINE: /(164).
    WRITE:/ 'TOTALS',
      80(16) gv_qty RIGHT-JUSTIFIED,
      98(16) gv_sale RIGHT-JUSTIFIED,
     125(16) gv_final RIGHT-JUSTIFIED,
     182 ''.
    ULINE: /(164).
    FORMAT RESET.
  ENDIF.
ENDFORM.                    " fr_display_report
*&      Form  FR_DISPLAY_HEADER
      text
FORM fr_display_header.
  IF error IS INITIAL.
    FORMAT COLOR 1.
    WRITE:/ 'Date upload           :'(007),   25 sy-datum,  38 ''.
    WRITE:/ 'Production or Test Run:'(008),   25 gv_status, 38 ''.
    WRITE:/ 'Upload User Logon     :'(009),   25 sy-uname,  38 ''.
    ULINE: /(164).
    WRITE:/1(04) 'Site'(010),
          13(10) 'Date'(011),
          25(05) 'Curr.'(012),
          32(14) 'Receipt'(013),
          48(09) 'Cashier'(014),
          60(18) 'Article'(015),
          92     'Qty'(016),
          102    'Item Amount'(017),
          116(7) 'M.o.P.'(018),
          128    'Tender Amount'(019),
          143(6) 'T.Curr'(020),
         152(12) 'Assignment'(021).
    ULINE:/(164).
    FORMAT RESET.
  ENDIF.
ENDFORM.                    " FR_DISPLAY_HEADER
*&      Form  fr_newdynpro
      text
FORM fr_newdynpro USING program LIKE bdcdata-program
                        dynpro  LIKE bdcdata-dynpro.
  t_bdcdata-program = program .
  t_bdcdata-dynpro  = dynpro.
  t_bdcdata-dynbegin = 'X'.
  APPEND t_bdcdata.
  CLEAR t_bdcdata.
ENDFORM.                    " fr_newdynpro
*&      Form  fr_loadfield
      text
FORM fr_loadfield USING field LIKE bdcdata-fnam
                        value.
  t_bdcdata-fnam = field.
  t_bdcdata-fval = value.
  APPEND t_bdcdata.
  CLEAR t_bdcdata.
ENDFORM.                    " fr_loadfield
*&      Form  fr_fill_bdctab
      text
FORM fr_fill_bdctab.
  REFRESH t_bdcdata.
  PERFORM fr_newdynpro USING 'SAPMWPUK' '100'.
  PERFORM fr_loadfield USING 'G_FILIALE' t_tab-cust.
  PERFORM fr_loadfield USING 'G_DATUM'   t_tab-date.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'BON'.
  PERFORM fr_newdynpro USING 'SAPMWPUK' '500'.
  PERFORM fr_loadfield USING 'WPSCB01-POSKREIS'   t_tab-pos-cont.
  PERFORM fr_loadfield USING 'WPSCB01-KASSID'     t_tab-pos-id.
  PERFORM fr_loadfield USING 'WPSCB01-BELEGWAERS' t_tab-currency.
  PERFORM fr_loadfield USING 'WPSCB01-CSHNAME'    t_tab-cashier.
  PERFORM fr_loadfield USING 'WPSCB01-BONNUMMER'  t_tab-extnbr.
  PERFORM fr_loadfield USING 'E1WPB02-QUALARTNR(01)'  t_tab-qualif.
  PERFORM fr_loadfield USING 'E1WPB02-ARTNR(01)'      t_tab-matnr.
  PERFORM fr_loadfield USING 'E1WPB02-MENGE(01)'      t_tab-qty.
  PERFORM fr_loadfield USING 'WPSCB03-KONDVALUE(01)'  t_tab-sale.
  PERFORM fr_loadfield USING 'E1WPB02-VORGANGART(01)' t_tab-pos-tr.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'ZAHL'.
  PERFORM fr_newdynpro USING 'SAPMWPUK' '530'.
  PERFORM fr_loadfield USING 'WPSCB06-ZAHLART'  t_tab-paymeth.
  PERFORM fr_loadfield USING 'WPSCB06-SUMME'    t_tab-final.
  PERFORM fr_loadfield USING 'WPSCB06-WAEHRUNG' t_tab-tarcur.
  PERFORM fr_loadfield USING 'WPSCB06-ZUONR'    t_tab-assign.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'SAVE'.
  PERFORM fr_newdynpro USING 'SAPMWPUK' '530'.
  PERFORM fr_loadfield USING 'WPSCB06-ZAHLART'  t_tab-paymeth.
  PERFORM fr_loadfield USING 'WPSCB06-SUMME'    t_tab-final.
  PERFORM fr_loadfield USING 'WPSCB06-WAEHRUNG' t_tab-tarcur.
  PERFORM fr_loadfield USING 'WPSCB06-ZUONR'    t_tab-assign.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'BACK'.
  PERFORM fr_newdynpro USING 'SAPLSPO1' '0200'.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'YES'.
  PERFORM fr_newdynpro USING 'SAPMWPUK' '100'.
  PERFORM fr_loadfield USING 'G_FILIALE' t_tab-cust.
  PERFORM fr_loadfield USING 'G_DATUM'   t_tab-date.
  PERFORM fr_loadfield USING 'BDC_OKCODE' 'BACK'.
ENDFORM.                    " fr_fill_bdctab
*&      Form  fr_data_posting
      text
FORM fr_data_posting.
  IF NOT t_bdcdata[] IS INITIAL.
    REFRESH messtab.
    CALL TRANSACTION 'WPUK' USING t_bdcdata
                            MODE gv_mode
                            UPDATE 'S'
                            MESSAGES INTO messtab.
    IF sy-subrc = 0 .
      CLEAR w_text.
      LOOP AT messtab.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  id        = messtab-msgid
                  lang      = sy-langu
                  no        = messtab-msgnr
                  v1        = messtab-msgv1
                  v2        = messtab-msgv2
                  v3        = messtab-msgv3
                  v4        = messtab-msgv4
             IMPORTING
                  msg       = w_text
             EXCEPTIONS
                  not_found = 1
                  OTHERS    = 2.
        MOVE w_text TO t_text-msgtxt.
        CONCATENATE 'Site:'(031)    t_tab-cust
                    'Article:'(024) t_tab-matnr
                    'Posted Sucessfully'(032)
          INTO t_text-desc SEPARATED BY space.
        APPEND t_text.
        CLEAR t_text.
      ENDLOOP.
    ELSE.
      CLEAR w_text.
      LOOP AT messtab.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  id        = messtab-msgid
                  lang      = sy-langu
                  no        = messtab-msgnr
                  v1        = messtab-msgv1
                  v2        = messtab-msgv2
                  v3        = messtab-msgv3
                  v4        = messtab-msgv4
             IMPORTING
                  msg       = w_text
             EXCEPTIONS
                  not_found = 1
                  OTHERS    = 2.
        MOVE w_text TO t_text-msgtxt.
        IF messtab-msgnr EQ '213'.
          CONCATENATE 'Site:'(031)    t_tab-cust
                      'Article:'(024) t_tab-matnr
                      'Posted Sucessfully'(032)
           INTO t_text-desc SEPARATED BY space.
          APPEND t_text.
          CLEAR t_text.
          EXIT.        ELSE.
          CONCATENATE 'Site:'(031)    t_tab-cust
                      'Article:'(024) t_tab-matnr
                      'Not Posted'(033)
           INTO t_text-desc SEPARATED BY space.
          APPEND t_text.
          CLEAR t_text.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDFORM.                    " fr_data_posting
*&      Form  fr_authority_check
      text
FORM fr_authority_check.
  AUTHORITY-CHECK OBJECT 'Y_VATADJ'
           ID 'VKORG' FIELD t001w-vkorg
           ID 'TCD'   FIELD 'YGFVAT'.
  IF sy-subrc NE 0.
    MESSAGE e999 WITH text-m02.
  ENDIF.
ENDFORM.                    " fr_authority_check
*&      Form  fr_write_msg
      text
FORM fr_write_msg.
  SKIP.
  ULINE:/(164).
  WRITE:/
  'Messages encountered while Calling Transaction WPUK'(025),
      90 'Message Text'(026).
  ULINE:/1(164).
  LOOP AT t_text.
    WRITE:/1 t_text-desc,
          90 t_text-msgtxt,
          164 ''.
  ENDLOOP.
  ULINE:/1(164).
ENDFORM.                    " fr_write_msg
*&      Form  FR_BUILD_REP
      text
FORM fr_build_rep.
  IF error IS INITIAL.
    IF NOT t_tab[] IS INITIAL.
      LOOP AT t_tab.
        MOVE:
          t_tab-cust     TO t_tab1-cust,        "site/customer number
          t_tab-date     TO t_tab1-date,        "transaction date
          t_tab-currency TO t_tab1-currency,    "currency
        t_tab-extnbr   TO t_tab1-extnbr,      "external reference number
          t_tab-pos-cont TO t_tab1-pos-cont,    "POS controler
          t_tab-pos-id   TO t_tab1-pos-id,      "POS id
          t_tab-cashier  TO t_tab1-cashier,     "cashier name
         t_tab-qualif   TO t_tab1-qualif,      "qualifier of the article
          t_tab-matnr    TO t_tab1-matnr,       "article number
          t_tab-pos-tr   TO t_tab1-pos-tr,      "POS transfert type
          t_tab-paymeth  TO t_tab1-paymeth,     "payment method
          t_tab-tarcur   TO t_tab1-tarcur,      "target currency
          t_tab-assign   TO t_tab1-assign.
        REPLACE ',' WITH '.' INTO t_tab-qty.
        CONDENSE t_tab-qty NO-GAPS.
        MOVE t_tab-qty TO t_tab1-qty.
        REPLACE ',' WITH '.' INTO t_tab-sale.
        CONDENSE t_tab-sale NO-GAPS.
        MOVE t_tab-sale TO t_tab1-sale.
        REPLACE ',' WITH '.' INTO t_tab-final.
        CONDENSE t_tab-final NO-GAPS.
        MOVE t_tab-final TO t_tab1-final.
        APPEND t_tab1.
        CLEAR t_tab1.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDFORM.                    " FR_BUILD_REP
*&      Form  fr_format_tab
      text
FORM fr_format_tab.
  DATA : lv_qty TYPE string.
  IF NOT t_tab-qty IS INITIAL.
    IF t_tab-qty+0(1) EQ '-'.
      CLEAR lv_qty.
      MOVE t_tab-qty TO lv_qty.
      CLEAR t_tab-qty.
      SHIFT lv_qty LEFT CIRCULAR.
      CONDENSE lv_qty NO-GAPS.
      MOVE lv_qty TO t_tab-qty.
      MODIFY t_tab TRANSPORTING qty.
    ENDIF.
  ENDIF.
ENDFORM.                    " fr_format_tab

Similar Messages

  • How to rectify the errors in master data loads & transactional data loads?

    hy,
    please any one tell me
    How to rectify the errors in master data loads & transactional data loads?
    thnQ
    Ravi

    Hi,
    Please post specific questions in the forum.
    Please explain the error you are getting.
    -Vikram

  • How to rectify the error message " duplicate data records found"

    Hi,
    How to  rectify the error "duplicate data records found" , PSA is not there.
    and give me brief description about RSRV
    Thanks in advance,
    Ravi Alakunlta

    Hi Ravi,
    In the Info Package screen...Processing tab...check the option Do not allow Duplicate records.
    RSRV is used for Repair and Analysis purpose.
    If you found Duplicate records in the F fact table...Compress it then Duplicate records will be summarized in the Cube.
    Hope this helps.

  • How to rectify the errors  occured during session method

    how to rectify the errors  occured during session method

    HI
      When the execution of session is completed: we can check the errors via the log.
      Rectification of errors depends on the kind of errors. It is not specific that we have to approach the same way to handle all kinds of errors.
      Errors can be due to data format, inconsistency due to the configuration, unavailability of master data...
    Kind Regards
    Eswar

  • How to rectify the Errors that occurs in QA system?

    hi,
    if there are some errors that occurs while transporting my ods from development to QA. how should i see the errors? And then how to rectify the errors that happened in the transports in QA nor DEV.
    Can anyone let me know the entire process for the correcting the errors in transports if any docs pls email at [email protected]
    regds
    haritha

    hi,
    while importing the reqst if u get any kind of errors , u need to check the Transport Log Entries
    thez are the posible return codes
    0 means all is ok
    4 means something happens, e. g. something in the destination system is deletet, but else everything ok
    8 means something goes wrong. Some parts could be transportet but not all
    If you have higher than 8 you have a problem. If you want to know more about a transport read the transport protocol. It tells you what the problem is
    Analyze the trnasport log and fix the issue based on the error msg and reimpor t he reqst
    thanks

  • How to pass the value to the screen through call transaction

    hi
    i have got an requirement for which i have to call MIGO tcode through call transaction command. But here one list box GODYNPRO-ACTION (screen field) contains list of values . my requirement is when i will call the tcode MIGO it should take defaultly  DISPLAY option from  list of values. I have searched for parameter id but i cannot get for that list box. please help me to solve this issue.
    points will be surely assigned to helpful answers.
    regards
    shiba dutta

    just try this its working...
    tables: godynpro.
    GODYNPRO-ACTION = 'Display'.
    call transaction 'MIGO'.
    Message was edited by:
            Chandrasekhar Jagarlamudi

  • How to rectify the error in running the apk file in emulator.

    hi
    I have developed the air based android application and got .apk file.I installed the .apk file in emulator which is version 2.3.1 android but i got the error
    when running it as
    "The Application HelloWorld Has Stopped Unexpectedly.  Please Try Again"
    How to rectify the problem.Please anybody help me with this what the exact problem in this...................
    thanks in advance.....................

    Hi Anson,
    You looked at old installation guide.
    I see you use old UI components which were released in May 2013.
    Important Note: Please use new UI with new SAP Fiori Launchpad
    New UI components have UI extension points and work with new SAP Fiori Launchpad.
    Please find correct components based on your Backend version.
    SAP Fiori - Add-on quick reference for transactional apps
    Regards, Masa
    SAP Customer Experience Group - CEG

  • How to rectify the error "basic type z_idocname could not be converted"

    hi,
    I am trying to create a partner profile for a outbound process. In the transaction we20 i gave a new partner number, attached the message type and the idoc and the port no, when i tried saving its showing basic type z_idocname could not be converted how to rectify this error.

    Have you made the corresponding entries in WE81 and WE82?

  • How to rectify the errors in RWB

    Hi all,
    After executing the scenario ,if i get any errors ,how to rectify those errors,can you tell me the process,
    Regards,
    priya reddy

    HI
    XI runs on an Application Server with double stack (JAVA/ABAP).
    Some components of XI runs on JAVA and some on ABAP:
    JAVA STACK:
    Integration Builder
    SLD
    Adapter Engine
    Runtime Workbench
    ABAP STACK:
    Integration engine(IE) and Business Process Engine(BPE).
    Abap stack is monitored using sxmb_moni / sxmb_moni_bpe
    Java stack is monitored by using Message monitoring, End-End monitoring, Component Monitoring Performance monitoring from RWB.
    Java stack monitoring can be done in Runtime Work Bench.
    In RWB, you can have Message Monitoring and Component Monitoring.
    In Message Monitoring, we can find the the message with status and in "Audit Log" we can have a complete log of processing done for that message. And in Compnent Monitoring, you can find the statuses of all components in Integration Server.
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    Central Monitoring: To monitor all components comprehensively at run time.
    Runtime Workbench
    The Runtime Workbench is an XI component that offers a central monitoring view of  all XI components and processes.
    The workbench includes a graphical end-to-end monitoring of integration scenarios.
    You can refer the below links
    Runtime WorkBench Monitoring
    XI CCMS Alert Monitoring : Overview and Features
    The specified item was not found.
    The specified item was not found.
    http://help.sap.com/saphelp_nw04/helpdata/en/58/d22940cbf2195de10000000a1550b0/content.htm
    The specified item was not found.
    The specified item was not found.
    The specified item was not found.
    The specified item was not found.
    XI :  How to Re-Process failed XI Messages Automatically
    Central monitoring:
    http://help.sap.com/saphelp_nw04/helpdata/en/7c/14b5765255e345a9e3f044f1e9bbbf/frameset.htm
    cheers

  • How to rectify the error while creating hierarchy

    Hi
    I am working on creating a hierarchy for an info object IO_SREP.  I am using the book SAP BW - A Step-by-Step guide written by Biao Fu, and Henry Fu.  As mentioned in the book
    1. I double clicked the info object Sales representative ID then I got the screen Change characteristic IO_SREP:Detail. 
    2.     Accordingly as mentioned I selected the Hierarchy tab wherein I clicked the check box with hierarchies and the radio button Hierarchy structure time-dependent.
    3.     I successfully checked and activated the screen and hit the back button which took me to the screen Administrator Workbench: Modelling.
    4.     <b>As mentioned in the book now I right clicked on the info object Sales representative ID and selected Create Hierarchy option. 
    At this stage I am getting the error “The import parameters were not filled correctly.  When I clicked on the question mark for help I got the screen Performance Assistant with the message “The import parameters were not filled correctly” Message no. RH032.</b>
    But as per the book the screen Create Hierarchy should open.  Can anyone please guide me as to where I am going wrong and what should I do to proceed further? 
    Thank you.
    TR.

    Try transaction RSH1 to create the hierarchy. If you are on 3.0A, this might be due to program error (OSS note 511004).

  • How to print the error records and success records in bdc

    how to print the number of error records and success records in bdc

    hai,
    plz refer this program,
    Z_130399130271_A
    REPORT Z_130399130271_A
           NO STANDARD PAGE HEADING LINE-SIZE 325.
    *INCLUDE YVALIDATE.
    *include bdcrecx1.
    INCLUDE YINCLUDE399.
    DATA ITAB LIKE TABLE OF FILE_TABLE WITH HEADER LINE.
    PARAMETERS: DATASET(132) LOWER CASE.
    DATA : RC TYPE I,
    ERR(40) TYPE C,
    SUCCESSCNT TYPE I VALUE 0,
    FAILCOUNT TYPE I VALUE 0.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    DATA: BEGIN OF RECORD OCCURS 0,
    data element: LIF16
            LIFNR_001(016),
    data element: KTOKK
            KTOKK_002(004),
    data element: ANRED
            ANRED_003(015),
    data element: NAME1_GP
            NAME1_004(035),
    data element: SORTL
            SORTL_005(010),
    data element: STRAS_GP
            STRAS_006(035),
    data element: PFACH
            PFACH_007(010),
    data element: ORT01_GP
            ORT01_008(035),
    data element: ORT02_GP
            ORT02_009(035),
    data element: LAND1_GP
            LAND1_010(003),
    data element: REGIO
            REGIO_011(003),
    data element: SPRAS
            SPRAS_012(002),
    data element: TELF1
            TELF1_013(016),
    data element: TELF2
            TELF2_014(016),
    data element: BANKS
            BANKS_01_015(003),
    data element: BANKK
            BANKL_01_016(015),
    data element: BANKN
            BANKN_01_017(018),
          END OF RECORD.
    DATA:   BEGIN OF ERRORITAB OCCURS 0,
            LIFNR_001 LIKE LFA1-LIFNR,
            KTOKK_002 LIKE LFA1-KTOKK,
            ANRED_003 LIKE LFA1-ANRED,
            NAME1_004 LIKE LFA1-NAME1,
            SORTL_005 LIKE LFA1-SORTL,
            STRAS_006 LIKE LFA1-STRAS,
            PFACH_007 LIKE LFA1-PFACH,
            ORT01_008 LIKE LFA1-ORT01,
            ORT02_009 LIKE LFA1-ORT02,
            LAND1_010 LIKE LFA1-LAND1,
            REGIO_011 LIKE LFA1-REGIO,
            SPRAS_012 LIKE LFA1-SPRAS,
            TELF1_013 LIKE LFA1-TELF1,
            TELF2_014 LIKE LFA1-TELF2,
            BANKS_01_015 LIKE LFBK-BANKS,
            BANKL_01_016 LIKE LFBK-BANKL,
            BANKN_01_017 LIKE LFBK-BANKN,
            ERRORMSG(60) TYPE C,
            SERIAL TYPE I VALUE '1',
        END OF ERRORITAB.
    End generated data section ***
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR DATASET.
      CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'
    EXPORTING
        WINDOW_TITLE            = 'select a file '
        DEFAULT_EXTENSION       = 'TXT'
        DEFAULT_FILENAME        = 'ASSIGN5.TXT'
      FILE_FILTER             =
      INIT_DIRECTORY          =
      MULTISELECTION          =
    IMPORTING
      RC                      =
        TABLES
          FILE_TABLE              = ITAB
    EXCEPTIONS
       CNTL_ERROR              = 1
       OTHERS                  = 2
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      READ TABLE ITAB INDEX 1.
      DATASET = ITAB-FILENAME.
      WRITE DATASET.
    START-OF-SELECTION.
    *perform open_dataset using dataset.
    *perform open_group.
      DATA T TYPE STRING.
      T = DATASET.
      IF T EQ ' '.
        MESSAGE E110(ZX).
      ENDIF.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = T
      FILETYPE                      = 'ASC'
          HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          DATA_TAB                      = RECORD
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      LOOP AT RECORD.
        CLEAR RC.
        CLEAR ERR.
    *read dataset dataset into record.
        IF SY-SUBRC <> 0. EXIT. ENDIF.
        RECORD-KTOKK_002 = '0001'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02K-KTOKK'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RF02K-LIFNR'
                                      RECORD-LIFNR_001.
        PERFORM BDC_FIELD       USING 'RF02K-KTOKK'
                                      RECORD-KTOKK_002.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFA1-TELX1'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'LFA1-ANRED'
                                      RECORD-ANRED_003.
        PERFORM BDC_FIELD       USING 'LFA1-NAME1'
                                      RECORD-NAME1_004.
        PERFORM BDC_FIELD       USING 'LFA1-SORTL'
                                      RECORD-SORTL_005.
        PERFORM BDC_FIELD       USING 'LFA1-STRAS'
                                      RECORD-STRAS_006.
        PERFORM BDC_FIELD       USING 'LFA1-PFACH'
                                      RECORD-PFACH_007.
        PERFORM BDC_FIELD       USING 'LFA1-ORT01'
                                      RECORD-ORT01_008.
        PERFORM BDC_FIELD       USING 'LFA1-ORT02'
                                      RECORD-ORT02_009.
        PERFORM BDC_FIELD       USING 'LFA1-LAND1'
                                      RECORD-LAND1_010.
        PERFORM BDC_FIELD       USING 'LFA1-REGIO'
                                      RECORD-REGIO_011.
        PERFORM BDC_FIELD       USING 'LFA1-SPRAS'
                                      RECORD-SPRAS_012.
        PERFORM BDC_FIELD       USING 'LFA1-TELF1'
                                      RECORD-TELF1_013.
        PERFORM BDC_FIELD       USING 'LFA1-TELF2'
                                      RECORD-TELF2_014.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFA1-KUNNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=VW'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFBK-BANKN(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING 'LFBK-BANKS(01)'
                                      RECORD-BANKS_01_015.
        PERFORM BDC_FIELD       USING 'LFBK-BANKL(01)'
                                      RECORD-BANKL_01_016.
        PERFORM BDC_FIELD       USING 'LFBK-BANKN(01)'
                                      RECORD-BANKN_01_017.
        PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LFBK-BANKS(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=UPDA'.
        PERFORM BDC_TRANSACTION USING 'XK01' CHANGING ERR RC.
        DATA: SERIAL TYPE I VALUE 1.
        IF RC <> 0.
          FAILCOUNT = FAILCOUNT + 1.
          CLEAR ERRORITAB.
          ERRORITAB-SERIAL = SERIAL.
          ERRORITAB-LIFNR_001 = RECORD-LIFNR_001.
          ERRORITAB-KTOKK_002 = RECORD-KTOKK_002.
          ERRORITAB-ANRED_003 = RECORD-ANRED_003.
          ERRORITAB-NAME1_004 = RECORD-NAME1_004.
          ERRORITAB-SORTL_005 = RECORD-SORTL_005.
          ERRORITAB-STRAS_006 = RECORD-STRAS_006.
          ERRORITAB-PFACH_007 = RECORD-PFACH_007.
          ERRORITAB-ORT01_008 = RECORD-ORT01_008.
          ERRORITAB-ORT02_009 = RECORD-ORT02_009.
          ERRORITAB-LAND1_010 = RECORD-LAND1_010.
          ERRORITAB-REGIO_011 = RECORD-REGIO_011.
          ERRORITAB-SPRAS_012 = RECORD-SPRAS_012.
          ERRORITAB-TELF1_013 = RECORD-TELF1_013.
          ERRORITAB-TELF2_014 = RECORD-TELF2_014.
          ERRORITAB-BANKS_01_015 = RECORD-BANKS_01_015.
          ERRORITAB-BANKL_01_016 = RECORD-BANKL_01_016.
          ERRORITAB-BANKN_01_017 = RECORD-BANKN_01_017.
          ERRORITAB-ERRORMSG = ERR.
          SERIAL = SERIAL + 1.
          APPEND ERRORITAB.
          MODIFY RECORD TRANSPORTING KTOKK_002.
          DELETE RECORD WHERE KTOKK_002 = '0001'.
        ELSE.
          SUCCESSCNT = SUCCESSCNT + 1.
        ENDIF.
      ENDLOOP.
    display output********************************************************
      SKIP.
      FORMAT COLOR 5 INTENSIFIED OFF.
      WRITE:/ 'No. of records successfully uploaded: '.
      FORMAT COLOR 4 INTENSIFIED OFF.
      WRITE: SUCCESSCNT.
    Displaying the success table******************************************
      IF SUCCESSCNT <> 0.
        SKIP.
        FORMAT COLOR 4 INTENSIFIED OFF.
        WRITE:/ 'Successful Records'.
        FORMAT COLOR 7 INTENSIFIED ON.
        WRITE:/(261) SY-ULINE,
              / SY-VLINE,
                'S.NO',                               007 SY-VLINE,
                'VENDOR ACC.NUM',                     023 SY-VLINE,
                'VENDOR ACC GROUP',                   041 SY-VLINE,
                'TITLE',                              048 SY-VLINE,
                'VENDOR NAME',                        064 SY-VLINE,
                'SORT FIELD',                         076 SY-VLINE,
                'HOUSE NO.& STREET',                  101 SY-VLINE,
                'PO.BOX NO',                          116 SY-VLINE,
                'CITY',                               129 SY-VLINE,
                'DISTRICT',                           141 SY-VLINE,
                'COUNTRY KEY',                        156 SY-VLINE,
                'REGION',                             166 SY-VLINE,
                'LANGUAGE KEY',                       180 SY-VLINE,
                'TELEPHONE NO 1',                     196 SY-VLINE,
                'TELEPHONE NO 2',                     213 SY-VLINE,
                'BANK COUNTRY KEY',                   231 SY-VLINE,
                'BANK KEY',                           241 SY-VLINE,
                'BANK ACC.NO',                        261 SY-VLINE,
                /1(261) SY-ULINE.
        FORMAT COLOR 4 INTENSIFIED ON.
        SERIAL = 1.
       SORT RECORD BY LIFNR_001.
        LOOP AT RECORD.
          WRITE:/ SY-VLINE,
          SERIAL LEFT-JUSTIFIED,          007 SY-VLINE,
          RECORD-LIFNR_001(016),          023 SY-VLINE,
          RECORD-KTOKK_002(004),          041 SY-VLINE,
          RECORD-ANRED_003(015),          048 SY-VLINE,
          RECORD-NAME1_004(035),          064 SY-VLINE,
          RECORD-SORTL_005(010),          076 SY-VLINE,
          RECORD-STRAS_006(035),          101 SY-VLINE,
          RECORD-PFACH_007(010),          116 SY-VLINE,
          RECORD-ORT01_008(035),          129 SY-VLINE,
          RECORD-ORT02_009(035),          141 SY-VLINE,
          RECORD-LAND1_010(003),          156 SY-VLINE,
          RECORD-REGIO_011(003),          166 SY-VLINE,
          RECORD-SPRAS_012(002),          180 SY-VLINE,
          RECORD-TELF1_013(016),          196 SY-VLINE,
          RECORD-TELF2_014(016),          213 SY-VLINE,
          RECORD-BANKS_01_015(003),       231 SY-VLINE,
          RECORD-BANKL_01_016(015),       241 SY-VLINE,
          RECORD-BANKN_01_017(018),       261 SY-VLINE.
          WRITE:/(261) SY-ULINE.
          SERIAL = SERIAL + 1.
        ENDLOOP.
        WRITE:/1(261) SY-ULINE.
      ENDIF.
      SKIP.
      FORMAT COLOR 5 INTENSIFIED OFF.
      WRITE:/ 'No. of records not uploaded: '.
      FORMAT COLOR 4 INTENSIFIED OFF.
      WRITE: FAILCOUNT.
    *Displaying the error table
      IF FAILCOUNT <> 0.
        SKIP.
        FORMAT COLOR 4 INTENSIFIED OFF.
        WRITE:/(320) SY-ULINE,
                'Error Records'.
        FORMAT COLOR 7 INTENSIFIED ON.
        WRITE:/ SY-ULINE, SY-VLINE,
                'S.NO',                               007 SY-VLINE,
                'VENDOR ACC.NUM',                     023 SY-VLINE,
                'VENDOR ACC GROUP',                   041 SY-VLINE,
                'TITLE',                              048 SY-VLINE,
                'VENDOR NAME',                        064 SY-VLINE,
                'SORT FIELD',                         076 SY-VLINE,
                'HOUSE NO.& STREET',                  101 SY-VLINE,
                'PO.BOX NO',                          116 SY-VLINE,
                'CITY',                               129 SY-VLINE,
                'DISTRICT',                           141 SY-VLINE,
                'COUNTRY KEY',                        156 SY-VLINE,
                'REGION',                             166 SY-VLINE,
                'LANGUAGE KEY',                       180 SY-VLINE,
                'TELEPHONE NO 1',                     196 SY-VLINE,
                'TELEPHONE NO 2',                     213 SY-VLINE,
                'BANK COUNTRY KEY',                   231 SY-VLINE,
                'BANK KEY',                           241 SY-VLINE,
                'BANK ACC.NO',                        261 SY-VLINE,
                'ERROR MESSAGE',                      320 SY-VLINE.
        WRITE:/(320) SY-ULINE.
        FORMAT COLOR 4 INTENSIFIED ON.
       SORT ERRORITAB BY LIFNR_001.
        LOOP AT ERRORITAB.
          WRITE:/ SY-VLINE,
                ERRORITAB-SERIAL LEFT-JUSTIFIED,          007 SY-VLINE,
                ERRORITAB-LIFNR_001 ,       023 SY-VLINE,
                ERRORITAB-KTOKK_002,       041 SY-VLINE,
                ERRORITAB-ANRED_003,       048 SY-VLINE,
                ERRORITAB-NAME1_004,       064 SY-VLINE,
                ERRORITAB-SORTL_005,       076 SY-VLINE,
                ERRORITAB-STRAS_006,       101 SY-VLINE,
                ERRORITAB-PFACH_007,       116 SY-VLINE,
                ERRORITAB-ORT01_008,       129 SY-VLINE,
                ERRORITAB-ORT02_009,       141 SY-VLINE,
                ERRORITAB-LAND1_010,       156 SY-VLINE,
                ERRORITAB-REGIO_011,       166 SY-VLINE,
                ERRORITAB-SPRAS_012,       180 SY-VLINE,
                ERRORITAB-TELF1_013,       196 SY-VLINE,
                ERRORITAB-TELF2_014,       213 SY-VLINE,
                ERRORITAB-BANKS_01_015,    231 SY-VLINE,
                ERRORITAB-BANKL_01_016,    241 SY-VLINE,
                ERRORITAB-BANKN_01_017,    261 SY-VLINE,
                ERRORITAB-ERRORMSG,        320 SY-VLINE.
          WRITE:/(320) SY-ULINE.
        ENDLOOP.
        WRITE:/ SY-ULINE.
      ENDIF.
    hope this ll help you..
    regards,
    prema.A

  • Whts the difference between call transaction and session

    hi,
    can u plz tell me the differnces between call transaction method in BDC and session method.
    my doubt is even the call transaction method also can me scheduled using job scheduler then why do we need session method

    Hi
    BDC:
    Batch Data Communication (BDC) is the process of transferring data from one SAP System to another SAP system or from a non-SAP system to SAP System.
    Features :
    BDC is an automatic procedure.
    This method is used to transfer large amount of data that is available in electronic medium.
    BDC can be used primarily when installing the SAP system and when transferring data from a legacy system (external system).
    BDC uses normal transaction codes to transfer data.
    Types of BDC :
    CLASSICAL BATCH INPUT (Session Method)
    CALL TRANSACTION
    BATCH INPUT METHOD:
    This method is also called as ‘CLASSICAL METHOD’.
    Features:
    Asynchronous processing.
    Synchronous Processing in database update.
    Transfer data for more than one transaction.
    Batch input processing log will be generated.
    During processing, no transaction is started until the previous transaction has been written to the database.
    CALL TRANSACTION METHOD :
    This is another method to transfer data from the legacy system.
    Features:
    Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.
    Updating the database can be either synchronous or asynchronous. The program specifies the update type.
    Transfer data for a single transaction.
    Transfers data for a sequence of dialog screens.
    No batch input processing log is generated.
    For BDC:
    http://myweb.dal.ca/hchinni/sap/bdc_home.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    http://www.sapdevelopment.co.uk/bdc/bdchome.htm
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
    http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
    Check these link:
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm
    http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
    http://www.planetsap.com/bdc_main_page.htm
    call Transaction or session method ?
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • How to resolve the error in bdc call transaction in ALV report

    Dear Experts, i am executing the alv report program and in alv report program one bdc is there..
    after executing output is showing in alv format but one button is there (update master)..when i am clicking update button the bdc is run but is not updated in the material master..after executing my bdc is not updated in mm02.
    how to resove it?
    CALL TRANSACTION 'MM02' USING BDCDATA MODE MODE
                                                              UPDATE 'S'
                                                      MESSAGES INTO MESSTAB.

    Hi Kaustav,
    Looking at the code you attached, it appears to me that your BDC (Form  USER_COMMAND) is not executed at all as you haven't passed the 'USER_COMMAND' in FM REUSE_ALV_GRID_DISPLAY for ALV display.
    You must pass the importing parameter  I_CALLBACK_USER_COMMAND of this FM as 'USER_COMMAND', only then this form will be executed and your BDC will run.
    Thereafter, in case your BDC update fails, you can put a break-point in the form (at CALL TRANSACTION statement) and analyze the message table MESSTAB.
    Hope it helps.
    Regards,
    Sapeksh

  • Pls tell me how to check the errors in  BDC CALL TRANSACTION

    lemme know

    HI ,
    check for the bold part..
    REPORT ZCONCUR_UPLOAD_TO_SAP NO STANDARD PAGE HEADING
                                 LINE-SIZE 170
                                 LINE-COUNT 58
                                 MESSAGE-ID ZM.
                 Internal Table                                         *
    *-Internal table for the Header input data from the Comma Delimited file
    DATA: BEGIN OF IT_DATA_HEADER OCCURS 0,
              ID    TYPE C,      "Identifier
              BUKRS(6),          "Company Code
              WAERS(7),          "Currency
              NEWKO(12),         "Vendor
              XBLNR(16),         "First Name
              XBLNR1(16),        "Last Name
              BLDAT(12),         "Document/Posting date
              PK(15),            "Reference
              WRBTR(15),         "Amount
              BKTXT(27),         "Doc.header text
              BKTXT1(27),        "Item text
              SELNO(8),          "Serial No
          END OF IT_DATA_HEADER.
    *-Internal table for the item input data from the Comma Delimited file
    DATA: BEGIN OF IT_DATA_ITEM OCCURS 0,
              ID    TYPE C,      "Identifier
              NEWKO(19),         "Vendor
              BUKRS(6),          "Company Code
              KOSTL(12),         "Cost center
              WRBTR(15),         "Amount
              SGTXT(50),         "Text
              SELNO(8),          "Serial No Header
              SELNO1(8),         "Serial No item
          END OF IT_DATA_ITEM      .
    *-Internal table for the Header input data from the Comma Delimited file
    *-Removing " " From Comma Delimited file
    DATA: BEGIN OF IT_FINAL_HEADER OCCURS 0,
              ID     TYPE C,           "Identifier
              BUKRS  LIKE BKPF-BUKRS,  "Company Code
              WAERS  LIKE BKPF-WAERS,  "Currency
              NEWKO  TYPE RF05A-NEWKO, "Vendor
              XBLNR  LIKE BKPF-XBLNR,
              XBLNR1 LIKE BKPF-XBLNR,
              BLDAT(10), " LIKE BKPF-BLDAT,  "Date
              PK(15),                  "Reference
              WRBTR(15),               "Amount
              BKTXT  LIKE BKPF-BKTXT,  "Doc.header text
              BKTXT1 LIKE BKPF-BKTXT,  "Item text
              SELNO  TYPE I,           "Serial No
              FLAG   TYPE C,
          END OF IT_FINAL_HEADER.
    *-Internal table for the Item input data from the Comma Delimited file
    *-Removing " " From Comma Delimited file
    DATA: BEGIN OF IT_FINAL_ITEM OCCURS 0,
              ID     TYPE C,           "Identifier
              NEWKO  TYPE RF05A-NEWKO, "Account
              BUKRS  LIKE BKPF-BUKRS,  "Company Code
              KOSTL  LIKE BSEG-KOSTL,  "Cost Center
              WRBTR(15),               "Amount
              SGTXT  LIKE BSEG-SGTXT,  "Text
              SELNO  TYPE I,           "Serial No
              SELNO1 TYPE I,           "Serial No
          END OF IT_FINAL_ITEM.
    **-Internal table for the  input data from the file
    DATA : BEGIN OF P_DOWNLOAD  OCCURS 0,
            V_FILEREC(1000) TYPE C,
           END OF P_DOWNLOAD.
    *--- Internal Table for Success messages
    DATA : BEGIN OF I_SUCC OCCURS 0,
             HEADER(50),
             MSG(100),                     "SUCCESS message
           END OF I_SUCC.
    *--- Internal Table for error messages
    DATA : BEGIN OF I_ERROR_LOG OCCURS 0,
             HEADER(50),
             MSG(100),                     "Error message
           END OF I_ERROR_LOG.
    *--- Internal table for getting the BDC data
    DATA : BEGIN OF IT_BDCDATA OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.     " Table to hold BDC data
    DATA : END OF IT_BDCDATA.
    *--- Internal table for reading the messages of call transaction
    DATA : BEGIN OF IT_MESSAGE_TAB OCCURS 0.
            INCLUDE STRUCTURE BDCMSGCOLL.  "Table to hold messages
    DATA : END OF IT_MESSAGE_TAB.
                          DATA DECLARATIONS                              *
    DATA:
          V_ERROR_COUNTER   TYPE I,        " error records counter
          V_MSG(100),                      " used for Error message
          V_LINES TYPE I,                  " used for format message
          V_HEAD LIKE SY-CPROG,            " Heading for report
          XMODE VALUE 'N',                 " EXECUTION MODE
          V_SUCCESS_COUNTER TYPE I,        " Success records counter
          V_UNAME LIKE APQI-USERID,        " User Name
          V_TOTAL TYPE I.                  " Total records uploaded
    DATA : V_SELNO TYPE I.
    DATA : V_CHECK TYPE I.
    DATA : V_HEADER(50) TYPE C.             "Header Information
    DATA : V_SUCC_MSG LIKE BDCMSGCOLL-MSGV1."Success Message
    DATA : V_ZERO(4) VALUE '0.00'.          "Checking Zero
    DATA : V_CHECK_ZERO  LIKE BSEG-WRBTR.   "Checking Zero
    DATA : V_CHECK_ZERO1 LIKE BSEG-WRBTR.   "Checking Zero
    DATA : V_SYSTEMDATE  LIKE BKPF-BUDAT.
    DATA : V_VALUE TYPE I.
    DATA : V_VALUE1 TYPE I.
    DATA : V_VALUE2 TYPE I.
    Flags
    DATA:
           F_BDC_OPEN,                   " BDC session open check.
           F_CONTINUE_PROCESSING.        " To continue further processing
                             CONSTANTS                                   *
    CONSTANTS:
           C_SESSION_NAME LIKE APQI-GROUPID VALUE 'F-43',  "Session
           C_X VALUE 'X'.                                  " Used for falgs
                        SELECTION SCREEN                                 *
    *--- Selection Screen with Block and title
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-038.
    PARAMETER: P_FNAME LIKE RLGRAP-FILENAME DEFAULT
                       'C:\Concur.txt'.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION SCREEN ON VALUE-REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
      CALL FUNCTION 'F4_FILENAME'
           IMPORTING
                FILE_NAME = P_FNAME
           EXCEPTIONS
                OTHERS    = 1.
      IF SY-SUBRC <> 0.
        MESSAGE E999 WITH 'Error in opening a file'(009).
      ENDIF.
                              Top-of-page                                *
    TOP-OF-PAGE .
    *---perform to display the standard header
      PERFORM STANDARD_HEADER.
    --START OF SELECTION--
    START-OF-SELECTION.
    Upload data
      PERFORM UPLOAD_DATA.
    move data to bdcdata internal table
      PERFORM MOVE_DATA_F43.
    *--- Posting the valid data to F-43
      IF F_BDC_OPEN = C_X.
    *---perform to close bdc group
        PERFORM CLOSE_GROUP.
      ENDIF.
                             END OF SELECTION                            *
    END-OF-SELECTION.
      CHECK F_CONTINUE_PROCESSING IS INITIAL.
      PERFORM DISPLAY_REPORT.
    *&      Form  MESSAGE_FORMAT
                MESSAGE FORMAT
    FORM MESSAGE_FORMAT.
      CLEAR V_MSG.
      CALL FUNCTION 'FORMAT_MESSAGE'
           EXPORTING
                ID        = IT_MESSAGE_TAB-MSGID
                LANG      = 'EN'
                NO        = IT_MESSAGE_TAB-MSGNR
                V1        = IT_MESSAGE_TAB-MSGV1
                V2        = IT_MESSAGE_TAB-MSGV2
                V3        = IT_MESSAGE_TAB-MSGV3
                V4        = IT_MESSAGE_TAB-MSGV4
           IMPORTING
                MSG       = V_MSG
           EXCEPTIONS
                NOT_FOUND = 1
                OTHERS    = 2.
      IF SY-SUBRC <> 0.
        V_MSG = SPACE.
      ENDIF.
    ENDFORM.                               " MESSAGE_FORMAT
    *&      Form  F4_HELP
    FORM F4_HELP.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                DEF_FILENAME     = ' '
                DEF_PATH         = 'C:\'
                MODE             = 'O'
                TITLE            = TEXT-025  "'Upload File'
           IMPORTING
                FILENAME         = P_FNAME
           EXCEPTIONS
                SELECTION_CANCEL = 3
                SELECTION_ERROR  = 4.
      CASE SY-SUBRC.
        WHEN 3.
          MESSAGE I000 WITH TEXT-007.      " Selection Cancel.
        WHEN 4.
          MESSAGE I000 WITH TEXT-008.      " Selection Error.
      ENDCASE.
    ENDFORM.                                                    " F4_HELP
    *&      Form  STANDARD_HEADER
           STANDARD_HEADER
    FORM STANDARD_HEADER.
      FORMAT COLOR COL_HEADING INTENSIFIED OFF.
      CASE V_HEAD.
        WHEN 'Summary Report'(001).
        WHEN 'SUCC_REPORT'.
    **---To display the field headings for Success report.
          ULINE (154).
          WRITE : /001 SY-VLINE,
                   002 'Header Details '(011),
                   052 SY-VLINE,
                   053 'Document Number'(036),
                  154 SY-VLINE.
          ULINE (154).
        WHEN 'Error Report'.
    **---To display the field headings for error report.
          ULINE (154).
          WRITE : /001 SY-VLINE,
                   002 'Header Details '(011),
                   052 SY-VLINE,
                   053 'Error Message/Text'(035),
                  154 SY-VLINE.
          ULINE (154).
      ENDCASE.
    ENDFORM.                               " STANDARD_HEADER
    *&      Form  DISPLAY_REPORT
          Display Report Details
    FORM DISPLAY_REPORT.
      PERFORM SUMMARY_REPORT.
      PERFORM SUCC_REPORT.
      PERFORM ERROR_REPORT.
    ENDFORM.                               " DISPLAY_REPORT
    *&      Form  SUMMARY_REPORT
           Success & Error Count Number
    FORM SUMMARY_REPORT.
      WRITE : /030 SY-TITLE.
      SKIP 1.
      WRITE : /005 'Program Name : '(032),
               024 SY-REPID,
               080 'Date :'(033),
               088 SY-DATUM.
      SKIP 1.
      V_HEAD = 'Summary Report'(001).
      ULINE (132).
      WRITE : /1 SY-VLINE,
               5 'No. of Records read from the Data file'(014),
               45 ':', V_TOTAL LEFT-JUSTIFIED,
               132 SY-VLINE,
              /1 SY-VLINE,
               5 'No. of Records successfully posted'(015),
               45 ':', V_SUCCESS_COUNTER LEFT-JUSTIFIED,
               132 SY-VLINE,
              /1 SY-VLINE,
               5 'No. of Records Failed'(023),
               45 ':'(031), V_ERROR_COUNTER LEFT-JUSTIFIED,
               132 SY-VLINE.
      IF NOT F_BDC_OPEN IS INITIAL.
        WRITE:  /1 SY-VLINE,
                5 'Session Name'(022),
                45 ':'(031), C_SESSION_NAME LEFT-JUSTIFIED,
                132 SY-VLINE.
      ENDIF.
      ULINE (132).
      IF NOT F_BDC_OPEN IS INITIAL.
        WRITE:  /1 SY-VLINE,
                5 'Session Name'(022),
                45 ':'(031), C_SESSION_NAME LEFT-JUSTIFIED,
                132 SY-VLINE.
      ENDIF.
    ULINE (132).
    ENDFORM.                               " SUMMARY_REPORT
    *&      Form  ERROR_REPORT
          Error Report
    FORM ERROR_REPORT.
      IF NOT I_ERROR_LOG[] IS INITIAL.
        SORT I_ERROR_LOG.                  " by tcode.
        V_HEAD = 'Error Report'(013).
        NEW-PAGE.
        LOOP AT I_ERROR_LOG.
          WRITE: /001 SY-VLINE,
                  002 I_ERROR_LOG-HEADER,
                  052 SY-VLINE,
                  053 I_ERROR_LOG-MSG,
                  154 SY-VLINE.
          ULINE (154).
        ENDLOOP.
      ENDIF.
    ENDFORM.                               " ERROR_REPORT
    *&      Form  ERROR_REPORT
          Success Report
    FORM SUCC_REPORT.
      IF NOT I_SUCC[] IS INITIAL.
        SORT I_SUCC.                  " by tcode.
        V_HEAD = 'SUCC_REPORT'(034).
        NEW-PAGE.
        LOOP AT I_SUCC.
          WRITE: /001 SY-VLINE,
                  002 I_SUCC-HEADER,
                  052 SY-VLINE,
                  053 I_SUCC-MSG,
                  154 SY-VLINE.
          ULINE (154).
        ENDLOOP.
      ENDIF.
    ENDFORM.                               " SUCC_REPORT
    *&      Form  OPEN_SESSION
    FORM OPEN_SESSION.
      DATA : V_DATE LIKE SY-DATUM.         " For Hold Date.
      V_DATE = SY-DATUM - 1.               " Hold date
      V_UNAME = SY-UNAME.                  " User name
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                CLIENT              = SY-MANDT
                GROUP               = C_SESSION_NAME
                HOLDDATE            = V_DATE
                KEEP                = 'X'
                USER                = V_UNAME
           EXCEPTIONS
                CLIENT_INVALID      = 1
                DESTINATION_INVALID = 2
                GROUP_INVALID       = 3
                GROUP_IS_LOCKED     = 4
                HOLDDATE_INVALID    = 5
                INTERNAL_ERROR      = 6
                QUEUE_ERROR         = 7
                RUNNING             = 8
                SYSTEM_LOCK_ERROR   = 9
                USER_INVALID        = 10
                OTHERS              = 11.
      IF SY-SUBRC <> 0.
        MESSAGE I000 WITH 'Session can not be opened'(019).
        STOP.
      ENDIF.
      F_BDC_OPEN = 'X'.
    ENDFORM.                               " OPEN_SESSION
    *&      Form  BDC_INSERT
    FORM BDC_INSERT USING P_TCODE TYPE ANY.
      CALL FUNCTION 'BDC_INSERT'
           EXPORTING
                TCODE            = P_TCODE
           TABLES
                DYNPROTAB        = IT_BDCDATA
           EXCEPTIONS
                INTERNAL_ERROR   = 1
                NOT_OPEN         = 2
                QUEUE_ERROR      = 3
                TCODE_INVALID    = 4
                PRINTING_INVALID = 5
                POSTING_INVALID  = 6
                OTHERS           = 7.
      IF SY-SUBRC <> 0.
        MESSAGE I000 WITH 'Unable to insert, Error record'(037).
        STOP.
      ENDIF.
    ENDFORM.                               " BDC_INSERT
    *&      Form  CLOSE_GROUP
    FORM CLOSE_GROUP.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                NOT_OPEN    = 1
                QUEUE_ERROR = 2
                OTHERS      = 3.
      IF SY-SUBRC <> 0.
        MESSAGE I000 WITH 'Session can not be closed'(021).
        STOP.
      ENDIF.
    ENDFORM.                               " CLOSE_GROUP
    *&      Form  UPLOAD_DATA
          Upload Data From the text file
    FORM UPLOAD_DATA.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                FILENAME                = P_FNAME
                FILETYPE                = 'DAT'
           TABLES
                DATA_TAB                = P_DOWNLOAD
           EXCEPTIONS
                CONVERSION_ERROR        = 1
                FILE_OPEN_ERROR         = 2
                FILE_READ_ERROR         = 3
                INVALID_TYPE            = 4
                NO_BATCH                = 5
                UNKNOWN_ERROR           = 6
                INVALID_TABLE_WIDTH     = 7
                GUI_REFUSE_FILETRANSFER = 8
                OTHERS                  = 10.
      IF SY-SUBRC NE 0.
        MESSAGE E000 WITH 'File does not Exist'(003).
      ELSEIF P_DOWNLOAD[] IS INITIAL.
        MESSAGE E000 WITH 'Input file is empty'(004).
      ENDIF.
      DATA: V_INDEX LIKE SY-TABIX.
      IF NOT P_DOWNLOAD[] IS INITIAL.
        LOOP AT P_DOWNLOAD.
          V_INDEX = SY-TABIX.
    *Removing double quotes
          DO.
            REPLACE '"' WITH '' INTO P_DOWNLOAD.
            IF SY-SUBRC NE 0.
              EXIT.
            ENDIF.
          ENDDO.
          MODIFY P_DOWNLOAD INDEX V_INDEX.
          CONDENSE P_DOWNLOAD.
          IF P_DOWNLOAD(1) = '1'.
    *Finding the header information, creating key field
            V_SELNO =  SY-TABIX.
          ENDIF.
    WE ARE NOT HAVING KEY FIELD IN HEADER/ITEM IN THE FILE.
    SO WE ARE CREATING MANUAL KEY FIELD IN INTERNAL TABLE (SELNO).
          IF P_DOWNLOAD(1) = '1'.
    Moving header information into IT_DATA_HEADER Internal Table
            SPLIT P_DOWNLOAD AT ',' INTO
                  IT_DATA_HEADER-ID
                  IT_DATA_HEADER-BUKRS
                  IT_DATA_HEADER-WAERS
                  IT_DATA_HEADER-NEWKO
                  IT_DATA_HEADER-XBLNR
                  IT_DATA_HEADER-XBLNR1
                  IT_DATA_HEADER-BLDAT
                  IT_DATA_HEADER-PK
                  IT_DATA_HEADER-WRBTR
                  IT_DATA_HEADER-BKTXT
                  IT_DATA_HEADER-BKTXT1.
            IT_DATA_HEADER-SELNO = V_SELNO.
            CONDENSE : IT_DATA_HEADER-ID,     IT_DATA_HEADER-BUKRS,
                       IT_DATA_HEADER-WAERS,  IT_DATA_HEADER-NEWKO,
                       IT_DATA_HEADER-XBLNR,  IT_DATA_HEADER-XBLNR1,
                       IT_DATA_HEADER-BLDAT,  IT_DATA_HEADER-PK,
                       IT_DATA_HEADER-WRBTR,  IT_DATA_HEADER-BKTXT,
                       IT_DATA_HEADER-BKTXT1, IT_DATA_HEADER-SELNO.
            APPEND IT_DATA_HEADER.
            CLEAR  IT_DATA_HEADER.
          ELSEIF P_DOWNLOAD(1) = '2'.
    Moving header information into IT_DATA_ITEM Internal Table
            SPLIT P_DOWNLOAD AT ',' INTO
                  IT_DATA_ITEM-ID
                  IT_DATA_ITEM-NEWKO
                  IT_DATA_ITEM-BUKRS
                  IT_DATA_ITEM-KOSTL
                  IT_DATA_ITEM-WRBTR
                  IT_DATA_ITEM-SGTXT.
            IT_DATA_ITEM-SELNO  = V_SELNO.
            IT_DATA_ITEM-SELNO1 = SY-TABIX.
            CONDENSE: IT_DATA_ITEM-ID,IT_DATA_ITEM-NEWKO,IT_DATA_ITEM-BUKRS,
                      IT_DATA_ITEM-KOSTL,IT_DATA_ITEM-WRBTR,
                      IT_DATA_ITEM-SGTXT,IT_DATA_ITEM-SELNO,
                      IT_DATA_ITEM-SELNO1.
            APPEND IT_DATA_ITEM.
            CLEAR  IT_DATA_ITEM.
          ENDIF.
        ENDLOOP.
    *SORT HEADER & ITEM INTERNAL Table
        SORT IT_DATA_HEADER BY SELNO.
        SORT IT_DATA_ITEM   BY SELNO SELNO1.
    *Header Information
        LOOP AT IT_DATA_HEADER.
          IT_FINAL_HEADER-ID    = IT_DATA_HEADER-ID.
          IT_FINAL_HEADER-BUKRS = IT_DATA_HEADER-BUKRS.
          IT_FINAL_HEADER-WAERS = IT_DATA_HEADER-WAERS.
          IT_FINAL_HEADER-NEWKO = IT_DATA_HEADER-NEWKO.
          CONCATENATE IT_DATA_HEADER-XBLNR IT_DATA_HEADER-XBLNR1
                      INTO IT_FINAL_HEADER-XBLNR.
          IT_FINAL_HEADER-BLDAT  = IT_DATA_HEADER-BLDAT.
          IT_FINAL_HEADER-PK     = IT_DATA_HEADER-PK.
          IT_FINAL_HEADER-WRBTR  = IT_DATA_HEADER-WRBTR.
          IT_FINAL_HEADER-BKTXT  = IT_DATA_HEADER-BKTXT.
          IT_FINAL_HEADER-BKTXT1 = IT_DATA_HEADER-BKTXT1.
          IT_FINAL_HEADER-SELNO  = IT_DATA_HEADER-SELNO.
          APPEND IT_FINAL_HEADER.
          CLEAR  IT_FINAL_HEADER.
        ENDLOOP.
    *Item Information
        LOOP AT IT_DATA_ITEM.
    CHECKING ZERO IN THE IT_DATA_ITEM-WRBTR FIELD
    It will not append the IT_FINAL_ITEM
          V_CHECK_ZERO = IT_DATA_ITEM-WRBTR.
          IF V_CHECK_ZERO NE V_CHECK_ZERO1. "V_ZERO.
            IT_FINAL_ITEM-ID     = IT_DATA_ITEM-ID.
            IT_FINAL_ITEM-NEWKO  = IT_DATA_ITEM-NEWKO.
            IT_FINAL_ITEM-BUKRS  = IT_DATA_ITEM-BUKRS.
            IT_FINAL_ITEM-KOSTL  = IT_DATA_ITEM-KOSTL.
            IT_FINAL_ITEM-WRBTR  = IT_DATA_ITEM-WRBTR.
            IT_FINAL_ITEM-SGTXT  = IT_DATA_ITEM-SGTXT.
            IT_FINAL_ITEM-SELNO  = IT_DATA_ITEM-SELNO.
            IT_FINAL_ITEM-SELNO1 = IT_DATA_ITEM-SELNO1.
            APPEND IT_FINAL_ITEM.
            CLEAR  IT_FINAL_ITEM.
            CLEAR : V_CHECK_ZERO,V_CHECK_ZERO1.
          ENDIF.
        ENDLOOP.
        SORT IT_FINAL_HEADER BY SELNO.
        SORT IT_FINAL_ITEM BY SELNO.
      ENDIF.
    ENDFORM.                    " UPLOAD_DATA
    *&      Form  MOVE_DATA_F43
          Call Transaction F-43
    FORM MOVE_DATA_F43.
    *MOVE THE SYSTEM DATE TO
      CLEAR V_SYSTEMDATE.
      V_SYSTEMDATE = SY-DATUM.
      LOOP AT IT_FINAL_HEADER.
        CLEAR V_CHECK.
        V_CHECK = IT_FINAL_HEADER-SELNO.
      MOVE HEADER DATA TO BDCDATA INTERNAL TABLE
        PERFORM BDC_BUILD_HEADER.
      MOVE ITEM DATA TO BDCDATA INTERNAL TABLE
        PERFORM BDC_BUILD_ITEM.
    <b>*   Call Transcation (F-43)
        CALL TRANSACTION 'F-43' USING IT_BDCDATA
                                MODE XMODE
                                UPDATE 'S'
                                MESSAGES INTO IT_MESSAGE_TAB.</b>
    IF error record found, it will move to batch Input session
        IF SY-SUBRC <> 0.
          V_ERROR_COUNTER = V_ERROR_COUNTER + 1.      " Inc the counter
          CLEAR V_LINES.
          DESCRIBE TABLE IT_MESSAGE_TAB LINES V_LINES.
          READ TABLE IT_MESSAGE_TAB INDEX V_LINES.
    *--- <b>Perform to read the messages
          PERFORM MESSAGE_FORMAT.</b>*--- Appending the error records into error table
          CONDENSE IT_FINAL_HEADER-BUKRS.
          CONDENSE IT_FINAL_HEADER-NEWKO.
          CONDENSE IT_FINAL_HEADER-XBLNR.
          CONDENSE IT_FINAL_HEADER-BLDAT.
          CONCATENATE IT_FINAL_HEADER-BUKRS ','
                      IT_FINAL_HEADER-NEWKO ','
                      IT_FINAL_HEADER-XBLNR ','
                      IT_FINAL_HEADER-BLDAT
                      INTO V_HEADER.
          I_ERROR_LOG-HEADER = V_HEADER.
          I_ERROR_LOG-MSG = V_MSG.
          APPEND I_ERROR_LOG.
          CLEAR I_ERROR_LOG.
    *--  Posting the error record to Session
          IF F_BDC_OPEN IS INITIAL.
            PERFORM OPEN_SESSION.
          ENDIF.
          PERFORM BDC_INSERT USING 'F-43'.
        ELSE.
          V_SUCCESS_COUNTER = V_SUCCESS_COUNTER + 1.
    *--  READING ONLY SUCCESS MESSAGE(MSGNR 312)
          LOOP AT IT_MESSAGE_TAB WHERE MSGNR = '312'.
            V_SUCC_MSG = IT_MESSAGE_TAB-MSGV1.
          ENDLOOP.
    *--- Perform to read the messages
          PERFORM MESSAGE_FORMAT.
    *--- Appending the Success records into Success table
          CONDENSE IT_FINAL_HEADER-BUKRS.
          CONDENSE IT_FINAL_HEADER-NEWKO.
          CONDENSE IT_FINAL_HEADER-PK.
          CONDENSE IT_FINAL_HEADER-XBLNR.
          CONDENSE IT_FINAL_HEADER-BLDAT.
          CONCATENATE IT_FINAL_HEADER-BUKRS ','
                      IT_FINAL_HEADER-NEWKO ','
                      IT_FINAL_HEADER-PK ','
                      IT_FINAL_HEADER-XBLNR ','
                      IT_FINAL_HEADER-BLDAT
                      INTO V_HEADER.
          I_SUCC-HEADER = V_HEADER.
          I_SUCC-MSG = V_SUCC_MSG.
          APPEND I_SUCC.
          CLEAR  I_SUCC.
        ENDIF.
        V_TOTAL = V_TOTAL + 1.
        REFRESH: IT_BDCDATA,
                 IT_MESSAGE_TAB.
        CLEAR:   IT_BDCDATA,
                 IT_MESSAGE_TAB.
      ENDLOOP.
    ENDFORM.                    " MOVE_DATA_F43
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM  = PROGRAM.
      IT_BDCDATA-DYNPRO   = DYNPRO.
      IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND IT_BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-FNAM = FNAM.
      IT_BDCDATA-FVAL = FVAL.
      APPEND IT_BDCDATA.
    ENDFORM.
    *&      Form  BDC_BUILD_HEADER
          Header Information
    FORM BDC_BUILD_HEADER.
    Header Details
      PERFORM BDC_DYNPRO      USING 'SAPMF05A'    '0100'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'  '/00'.
      PERFORM BDC_FIELD       USING 'BKPF-BLDAT'
                                     IT_FINAL_HEADER-BLDAT.
      PERFORM BDC_FIELD       USING 'BKPF-BLART'
                                    'KR'.
      PERFORM BDC_FIELD       USING 'BKPF-BUKRS'
                                    IT_FINAL_HEADER-BUKRS.
    Moveing System date to Posting date in the document
      CLEAR IT_FINAL_HEADER-BLDAT.
      CONCATENATE V_SYSTEMDATE4(4) V_SYSTEMDATE0(4)
                       INTO  IT_FINAL_HEADER-BLDAT.
      PERFORM BDC_FIELD       USING 'BKPF-BUDAT'
                                  IT_FINAL_HEADER-BLDAT.
      PERFORM BDC_FIELD       USING 'BKPF-WAERS'
                                    IT_FINAL_HEADER-WAERS.
      PERFORM BDC_FIELD       USING 'BKPF-XBLNR'
                                    IT_FINAL_HEADER-PK.
      PERFORM BDC_FIELD       USING 'BKPF-BKTXT'
                                    IT_FINAL_HEADER-BKTXT.
      PERFORM BDC_FIELD       USING 'FS006-DOCID'  '*'.
      IF IT_FINAL_HEADER-WRBTR CA '-'.
        REPLACE '-' WITH SPACE INTO IT_FINAL_HEADER-WRBTR.
        CONDENSE IT_FINAL_HEADER-WRBTR.
        PERFORM BDC_FIELD       USING 'RF05A-NEWBS'  '25'.
      ELSE.
        PERFORM BDC_FIELD       USING 'RF05A-NEWBS'  '31'.
      ENDIF.
      PERFORM BDC_FIELD       USING 'RF05A-NEWKO'
                                     IT_FINAL_HEADER-NEWKO.
    *-- Item Vendor Details
      PERFORM BDC_DYNPRO      USING 'SAPMF05A' '0302'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'BSEG-WRBTR'
                                    IT_FINAL_HEADER-WRBTR.
      PERFORM BDC_FIELD       USING 'BSEG-SGTXT'
                                    IT_FINAL_HEADER-BKTXT1.
    ENDFORM.                    " BDC_BUILD_HEADER
    *&      Form  BDC_BUILD_ITEM
          Item Information
    FORM BDC_BUILD_ITEM.
      DATA L_FIRST TYPE C.
      LOOP AT IT_FINAL_ITEM WHERE SELNO = V_CHECK.
        IF L_FIRST IS INITIAL.
          L_FIRST = C_X.
    Line Item ( PstKy,Account & New Company Code)
         CONDENSE IT_FINAL_HEADER-BLDAT.
          IF IT_FINAL_ITEM-WRBTR CA '-'.
            REPLACE '-' WITH SPACE INTO IT_FINAL_ITEM-WRBTR.
            CONDENSE IT_FINAL_ITEM-WRBTR.
            PERFORM BDC_DYNPRO    USING  'SAPMF05A'    '0302'.
            PERFORM BDC_FIELD     USING: 'BDC_OKCODE'   '/00',
                                         'RF05A-NEWBS'  '50',
                                         'RF05A-NEWKO'  IT_FINAL_ITEM-NEWKO,
                                         'RF05A-NEWBK'  IT_FINAL_ITEM-BUKRS.
          ELSE.
            PERFORM BDC_DYNPRO    USING  'SAPMF05A'    '0302'.
            PERFORM BDC_FIELD     USING: 'BDC_OKCODE'   '/00',
                                         'RF05A-NEWBS'  '40',
                                         'RF05A-NEWKO'  IT_FINAL_ITEM-NEWKO,
                                         'RF05A-NEWBK'  IT_FINAL_ITEM-BUKRS.
          ENDIF.
    Amount & Text
          PERFORM BDC_DYNPRO    USING  'SAPMF05A' '0300'.
          PERFORM BDC_FIELD     USING: 'BDC_OKCODE'   '/00',
                                       'BSEG-WRBTR'   IT_FINAL_ITEM-WRBTR,
                                       'BSEG-SGTXT'   IT_FINAL_ITEM-SGTXT,
                                       'DKACB-FMORE'  'X'.
    Cost Center
          PERFORM BDC_DYNPRO    USING  'SAPLKACB'    '0002'.
          PERFORM BDC_FIELD     USING: 'BDC_OKCODE' 'ENTE',
                                       'COBL-KOSTL' IT_FINAL_ITEM-KOSTL.
        ELSE.
    Line Item ( PstKy,Account & New Company Code)
          IF IT_FINAL_ITEM-WRBTR CA '-'.
            REPLACE '-' WITH SPACE INTO IT_FINAL_ITEM-WRBTR.
            CONDENSE IT_FINAL_ITEM-WRBTR.
            PERFORM BDC_DYNPRO    USING  'SAPMF05A'    '0300'.
            PERFORM BDC_FIELD     USING: 'BDC_OKCODE'   '/00',
                                         'RF05A-NEWBS'  '50',
                                         'RF05A-NEWKO'  IT_FINAL_ITEM-NEWKO,
                                         'RF05A-NEWBK'  IT_FINAL_ITEM-BUKRS.
          ELSE.
            PERFORM BDC_DYNPRO    USING  'SAPMF05A'    '0300'.
            PERFORM BDC_FIELD     USING: 'BDC_OKCODE'   '/00',
                                         'RF05A-NEWBS'  '40',
                                         'RF05A-NEWKO'  IT_FINAL_ITEM-NEWKO,
                                         'RF05A-NEWBK'  IT_FINAL_ITEM-BUKRS.
          ENDIF.
          PERFORM BDC_DYNPRO    USING  'SAPLKACB'   '0002'.
          PERFORM BDC_FIELD     USING: 'BDC_OKCODE' 'ENTE'.
    Amount & Text
          PERFORM BDC_DYNPRO    USING  'SAPMF05A'    '0300'.
          PERFORM BDC_FIELD     USING: 'BDC_OKCODE'  '/00',
                                       'BSEG-WRBTR'  IT_FINAL_ITEM-WRBTR,
                                       'BSEG-SGTXT'  IT_FINAL_ITEM-SGTXT,
                                       'DKACB-FMORE' 'X'.
    Cost Center
          PERFORM BDC_DYNPRO    USING  'SAPLKACB'    '0002'.
          PERFORM BDC_FIELD     USING: 'BDC_OKCODE' 'ENTE',
                                       'COBL-KOSTL' IT_FINAL_ITEM-KOSTL.
        ENDIF.
      ENDLOOP.
    *Save Details
      PERFORM BDC_DYNPRO        USING  'SAPMF05A' '0300'.
      PERFORM BDC_FIELD         USING  'BDC_OKCODE'
                                       '=BU'.
      PERFORM BDC_DYNPRO        USING  'SAPLKACB'    '0002'.
      PERFORM BDC_FIELD         USING: 'BDC_OKCODE' 'ENTE'.
    ENDFORM.                    " BDC_BUILD_ITEM
    Thanks
    Mahesh

  • I am facing issue in Receiving incoming calls, Name not getting displayed though the same has been saved in my phone book!! I have done sync from Windows contacts.. please help if some1 knows how to rectify the issue...

    I am facing issue in Receiving incoming calls, Name not getting displayed though the same has been saved in my phone book!! I have done sync from Windows contacts.. please help if some1 knows how to rectify the issue...

    Has your carrier been having issues with Call Display? Do the telephone numbers come up when people call, or does it just show 'Unknown Number' or 'Blocked' ?

Maybe you are looking for

  • JProgressBar and file transfer

    Hi, I am trying to use a JProgressBar to determine how many bytes have been sent so far. I have constructed the JProgressBar with the maximum size of the file size. For each 'segment' of the file sent, the progress bar should increment using the setP

  • Proxy to CSv

    Hi I have a scenario Proxy to CSV Source DT ( proxy Structure) DT_TaxCodeTaxRate     Complex Type           MessageHeader              SystemOfOrigin         UniqueID         InterfaceID         Process Area         OtherArea                 Identifi

  • Updating Links in Template files

    I updated a link in my template file, and everything looked fine, but after i put the file live, the website still points to the old link? any ideas?

  • Taking back the streets.

    I'd be grateful for help gaining ownership of the marketing device I bought. I don't have a TV in my house and accustomed to using macs which don't regard me as a mark every time I boot up. I do not want to be told not to shut down because someone th

  • Call barring question

    hello, I have just put a call barring (outgoing calls )on my phone. Do I have to go through the whole star. hash pin rigamarole every time I want to unblock the phone? or can I just add the pin before or after the number I want. Any non- technical an