LSMW - Upload customer data (KNA1)

Hi,
I'm trying to upload customer data from a legacy system using buisness object KNA1 and method CREATEFROMDATA1 (BAPI). At first I discovered that to be able to use business object KNA1 I had to generate an ALE interface in transaction BDBG.
My problem is that when I try to "Maintain Structure Relations" I get following error message:
No target structures could be found
Message no. /SAPDMC/LSMW_OBJ_030001
Shouldn't it be possible to do it this way?
I prefer to use the BAPI method compare to Batch input for following reasons:
- Better performance
- I don't have to think of screen sequences. For example can different account groups mean different screens.
Thanks for help,
Hans

Hans, did you ever come back to this problem and see if you could come up with a solution?
I am facing a similar problem while trying to upload Business Partners into our CRM system. Unfortunately for me, the batch input recording option is not viable, as that takes too long (~95 days to load our data, and can't be run in background). I have been told that I should look to use a BAPI, but am getting errors when trying to specify the field mapping.
Cheers,
Andrew

Similar Messages

  • Standard program / bdc / bapi to upload customer data.

    hi experts,
        i need standard program/bdc/lsmw/bapi to upload customer  amster data .

    Hi,
    Please check this links on how to use direct input program RFBIDE00.
    http://www.sapbrain.com/TOOLS/LSMW/SAP_LSMW_steps_introduction.html
    http://www.scmexpertonline.com/downloads/SCM_LSMW_StepsOnWeb.doc
    Regards,
    Ferry Lianto

  • Adding new Customer data KNA1

    Hi,
    I'm looking for a function or a Bapi that let you add new Customer data. And I have to specify the new customer number being used ( comes from an import file )
    The tables that seem to be getting populated are
    TABLES: KNA1,
            *KNA1,
            KNVP,
            KNVV,
            KNVK,
            T151T,
            T077X,
            ZPAFDFLT.
    TABLES  KNB1.
    The important bit is also specifying the customer number I want to use and not having SAP give me the number.
    Thanks

    Hi Sims,
    I see that you marked the post as answered, but there was an open ended question in your latest post. Did you find an answer or you still need help?
    Standard SAP's account group for prospect customer is 0005. This is what you should see in your KNA1 record for all the prospective customers. If not, then you must be a using a custom account group. In config, this account group must have been configured to allow external numbering. Here is the path in config for verifying that(tcode SPRO).
    Implementation Guide for R/3 Customizing (IMG)
    -->Financial Accounting
       -->Accounts Receivable and Accounts Payable
          -->Customer Accounts
             -->Master Records
                -->Preparations for Creating Customer Master Records
                   -->Create Number Ranges for Customer Accounts
                   -->Assign Number Ranges to Customer Account Groups
    Next thing is to load them into your system automatically. How are prospective customers registered? Do you get a file or do prospective customers register online? If they are registered online, then you need some kind of connectivity with SAP(so what is it) and a suitable RFC or BAPI. Right now, I don't see any standard BAPI or RFC that will enable you to create customers with external numbering. So you may have to use IDOC functions or a custom RFC function for the purpose.
    If you are getting this information on a file, then you can use LSMW to load the customers. Please let me know your scenario so that we can come up with a solution.
    Srinivas

  • Lsmw-upload table dat

    how i can upload table formated data from flatfile to SAP
    data in flat file
    EX: XK01- bank details of vendor
    country     bank code       account no
    DE,IN      120210,125635   568956,9875652
    DE          25689           56986

    Hi,
    Using LSMW, data can be uploaded to the desired SAP table.
    There are certain steps to be executed to do so. In this , I am telling you to do the uploading using LSMW and Batch Input Session .
    Steps :
    1.T-code for this is LSMW .
    2.Create Project and subproject.
    3.Maintain Object Attributes.
    4.Maintain Source Structures
    5.Maintain Source Fields
    6.Maintain Structure Relations
    7.Maintain Field Mapping and Conversion Rules
    8.Maintain Fixed Values, Translations, User-Defined Routines
    9.Specify Files ( Flat Files )
    10.Assign Files ( to check for the correct assignment of files to the source structure you created in step 4 )
    11. Read Data
    12. Display Read Data ( optional)
    13. Convert Data
    14. Display Convert data(optional)
    15. Create Batch Input Session
    16.Run Batch Input Session
    once you execute these steps, you should check the SAP Table for the data. This is to verify that the data has been correctly loaded to the table . The step is called Reconcillation.
    Regards,
    Kunal.
    Note : do let me know if you want explanation of any of the steps in details.

  • Batch Upload Customer Data - Bill-To, Ship-To and Contact

    Hi there, need someone to advise,
    I have 3 text files which are customer_info.txt, addresses_info.txt and contact_info.txt to upload into customer master
    in Oracle, what is the strategy way to batch upload these information. 
    Regards.

    You can find information about all APIs / interfaces at irep.oracle.com
    The customer interfaces you refer to are commonly used.
    You can find more information at http://download.oracle.com/docs/cd/A60725_05/html/comnls/us/ar/cusimp06.htm
    A little bit of googling will give you sample code such as
    http://freshers-oracleapplications.blogspot.com/2008/06/customer-interface-using-sql-loader.html
    Hope this helps,
    Sandeep Gandhi

  • Customer data upload  from legacy to SAP

    Hi
    We have SAP AR system running . our co has aquired another co.Now we are required to upload the customer data (master data and also transactional data) of legacy system to SAP.I will appreciate if some one can give me the steps to upload customer data into SAP.
    Thanks in advance
    SN

    Hi Satya,
    Following link are useful:
    lsmw to upload master data : lsmw to upload master data
    http://wiki.ittoolbox.com/index.php/FAQ:What_are_the_points_to_take_care_of_prior_to_cutting_over_to_a_new_ERP_system_such_as_SAP%3F
    SAP Data Migration with LSMW: http://www.sap-img.com/sap-data-migration.htm
    Hope this helps.
    Pls assign points as way to say thanks

  • Customer Data Loading Procedure from Legcy system to TCA

    Hi 2 all
    Anybody know that how to upload customer data from legacy system to TCA(Trading Community Architecture) ?
    Thanks
    Zulqarnain

    Hi,
    As you are doing a full load from R3 to Bw,first check in RSA3 whether u r able to load the data sucessfully.
    You can get error here also.......
    Did u do the se up table fill up before the transport or after the transport.If it is Before the Transport then
    Delete the Set Up Table and Reload the data,as the Extractor structor wud have got changed after the transport.
    In any case ,u should be able to get data in RSA3.
    Come back if u the issue still persists.
    Rgds
    SVU

  • Upload customer master

    hi,
    could someone please explain how to upload customer master
    using call transaction method
    what is the transaction
    and what are the tables and what is the procedure
    regards,
    siri.

    check below code....it is used to upload customer data....
    it is used for vendor upload...modify according to ur requirement...
    REPORT  ZFC_VENDOR_CREATE  LINE-SIZE 100
                               NO STANDARD PAGE HEADING
                               MESSAGE-ID ZZ.
                         TABLES
    TABLES : SSCRFIELDS.   " Fields on selection screens
                         CONSTANTS
    DATA : C_SPLIT TYPE C VALUE '#'.  " Used for Has Separator in GUI_UPLAOD
                         TYPES
    Int'table to hold Vendor Master Data
    TYPES : BEGIN OF TY_VENDOR_MASTER,
              FLAG  TYPE C,               " Update Flag
              LIFNR TYPE LIFNR,           " Vendor Number
              BUKRS TYPE BUKRS,           " Company Code
              KTOKK TYPE KTOKK,           " Account Group
              ANRED TYPE ANRED,           " Title
              NAME1 TYPE NAME1_GP,        " Name1
              NAME2 TYPE NAME2_GP,        " Name2
              SORTL TYPE SORTL,           " Search Term 1
              SORT2 TYPE AD_SORT2UL,      " Search Term 2
              STRAS TYPE STRAS_GP,        " Street
              PSTLZ TYPE PSTLZ,           " Postal Code
              ORT01 TYPE ORT01_GP,        " City
              REGIO TYPE REGIO,           " Region
              LAND1 TYPE LAND1_GP,        " Country
              SPRAS TYPE SPRAS,           " Language
              VBUND TYPE RASSC,           " Trading Partner
              BANKS TYPE BANKS,           " Country
              BANKL TYPE BANKK,           " Bank Key
              BANKN TYPE BANKN,           " Bank Account
              BKONT TYPE BKONT,           " Bank Control Key
              BANKA TYPE BANKA,           " Name of Bank
              AKONT TYPE AKONT,           " Reconciliation Account
              FDGRV TYPE FDGRV,           " Cash Management Group
              ZTERM TYPE DZTERM,          " Payment Terms
              REPRF TYPE REPRF,           " Check Double Invoice
              ZWELS TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_MASTER,
    Int'table to hold Vendor Extend Data
            BEGIN OF TY_VENDOR_EXTEND,
              FLAG  TYPE C,               " Update Flag
              LIFNR     TYPE LIFNR,           " Vendor Number
              BUKRS     TYPE BUKRS,           " Company Code
              KTOKK     TYPE KTOKK,           " Account Group
              REF_LIFNR TYPE LIFNR,           " Reference Vendor Number
              REF_BUKRS TYPE BUKRS,           " Reference Company Code
              AKONT     TYPE AKONT,           " Reconciliation Account
              FDGRV     TYPE FDGRV,           " Cash Management Group
              ZTERM     TYPE DZTERM,          " Payment Terms
              REPRF     TYPE REPRF,           " Check Double Invoice
              ZWELS     TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_EXTEND,
    Int'table to hold Error Records Data
            BEGIN OF TY_ERROR,
              MSG(200) TYPE C,                " To hold Message
              LIFNR    TYPE LIFNR,            " Vendor Number
              BUKRS    TYPE BUKRS,            " Company Code
            END   OF TY_ERROR.
                         DATA (Simple Fields)
    DATA : W_COUNT TYPE I,               " Variable to hold count of Records
           W_SUCC_REC TYPE I,            " No. of Success Records
           W_SUCC_REC1 TYPE I,           " No. of Updated Records
           W_ERR_REC TYPE I,             " No. of Error Records
           w_noupdate_rec type i.        " No. of Records not Changed
                         INTERNAL TABLES
    Int'table to hold uploaded data from File
    DATA : IT_VENDOR_MASTER    TYPE STANDARD TABLE OF TY_VENDOR_MASTER,
           WA_IT_VENDOR_MASTER TYPE TY_VENDOR_MASTER,
           IT_VENDOR_EXTEND    TYPE STANDARD TABLE OF TY_VENDOR_EXTEND,
           WA_IT_VENDOR_EXTEND TYPE TY_VENDOR_EXTEND,
           WA_IT_BDCDATA       TYPE BDCDATA,
           IT_BDCDATA          TYPE STANDARD TABLE OF BDCDATA,
           WA_IT_MESSTAB       TYPE BDCMSGCOLL,
           IT_MESSTAB          TYPE STANDARD TABLE OF BDCMSGCOLL,
           IT_ERROR            TYPE STANDARD TABLE OF TY_ERROR,
           WA_IT_ERROR         TYPE TY_ERROR,
           it_error_fk01       type standard table of ty_error,
           wa_it_error_fk01    type ty_error,
           it_error_fk02       type standard table of ty_error,
           wa_it_error_fk02    type ty_error,
           it_succ_rec1        type standard table of ty_error,
           wa_it_succ_rec1     type ty_error,
           it_noupdate         type standard table of ty_error,
           wa_it_noupdate      type ty_error.
                         FLAGS
    DATA : FL_FLAG1 TYPE C,          " Flag to check error upload file
           FL_FLAG2 TYPE C,          " Flag to hold value
           FL_FLAG3 TYPE C,          " Flag to hold value
           FL_FLAG4 TYPE C.          " Flag to hold value
                         SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-001,
                POSITION POS_LOW.
    PARAMETERS :       P_FILE(128) DEFAULT 'C:\UPLOAD.TXT' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-002,
                POSITION POS_LOW.
    PARAMETERS :       P_VENMAS RADIOBUTTON GROUP R1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-003,
                POSITION POS_LOW.
    PARAMETERS :       P_VENEXT RADIOBUTTON GROUP R1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-004,
                POSITION POS_LOW.
    PARAMETERS :       P_MODE(1) DEFAULT 'N'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-005,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP(12) DEFAULT 'ZFC_VENDOR_C' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-016,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP1(12) DEFAULT 'ZFC_VENDOR_U' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
                         AT SELECTION-SCREEN ON
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    Form to get file path for upload of data
      PERFORM GET_FILE_PATH.
    AT SELECTION-SCREEN ON BLOCK B1.
    Form to Validate data specified on Selection Screen
      CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.
      PERFORM VALIDATE_DATA.
                         START - OF - SELECTION
    START-OF-SELECTION.
      IF P_VENMAS = 'X'.
    Form to upload data from Presentation Server for Vendor Master
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_MASTER.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_MASTER BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_MASTER WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM INSERT_VENDOR_MASTER_DATA.
        ENDIF.
      ELSEIF P_VENEXT = 'X'.
    Form to upload data from Presentation Server for Vendor Extend
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_EXTEND.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_EXTEND BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_EXTEND WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM CHK_AND_INS_VENDOR_EXTEND_DATA.
        ENDIF.
      ENDIF.
                         END - OF - SELECTION
    END-OF-SELECTION.
      IF FL_FLAG1 NE 'X'.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O01.           " Total Number of records read :
        FORMAT COLOR OFF.
        WRITE:40 W_COUNT.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O02.           " Total Number of Success records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O07.           " Total Number of Updated records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC1.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O08.           " Total Number of Unchanged records :
        FORMAT COLOR OFF.
        WRITE:40 W_noupdate_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O03.           " Total Number of Error records :
        FORMAT COLOR OFF.
        WRITE:40 W_ERR_REC.
        if not it_succ_rec1 is initial.
          skip 1.
          perform display_changed_report.
        endif.
        if not it_noupdate is initial.
          skip 1.
          perform display_nochange_report.
        endif.
        IF NOT IT_ERROR IS INITIAL.
          SKIP 3.
    Form to display error data
          PERFORM DISPLAY_ERROR_REPORT.
        ENDIF.
        IF FL_FLAG2 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O04.        " BDC Session Name for Creation (FK01) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP.
          perform display_error_report_fk01.
        ENDIF.
        IF FL_FLAG3 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O09.        " BDC Session Name for Updation (FK02) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP1.
          perform display_error_report_fk02.
        ENDIF.
      ENDIF.
    *&      Form  GET_FILE_PATH
    This form is used to get the specified path for uploading of data from
    flat file with the help of F4 function key
    FORM GET_FILE_PATH .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = P_FILE.
    ENDFORM.                    " GET_FILE_PATH
    *&      Form  VALIDATE_DATA
    This form is used to validate the data given by user on the Selection
    Screen and the appropriate message is been displayed when an wrong
    entry is inputted
    FORM VALIDATE_DATA .
      IF SY-BATCH EQ 'X'.
        CLEAR SSCRFIELDS-UCOMM.
        MESSAGE E001(ZZ) WITH TEXT-011.
        " Excel file not to be used in Batch Mode
      ENDIF.
      IF P_MODE NE 'A' AND P_MODE NE 'N' AND P_MODE NE 'E'.
        MESSAGE E001(ZZ) WITH TEXT-012.
        " Session Mode should be either A or N or E
      ENDIF.
    ENDFORM.                    " VALIDATE_DATA
    *&      Form  UPLOAD_DATA
    This form is used to upload data from Presentation Server for either
    Vendor Master or Vendor Extend
    FORM UPLOAD_DATA TABLES P_IT_VENDOR.
      DATA : L_FILENAME TYPE STRING,
             L_FILETYPE TYPE CHAR10 VALUE 'ASC',
             L_HEADER_LENGTH TYPE I VALUE 0,
             L_READ_BY_LINE TYPE CHAR01 VALUE 'X'.
      MOVE P_FILE TO L_FILENAME.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                = L_FILENAME
          FILETYPE                = L_FILETYPE
          HEADER_LENGTH           = L_HEADER_LENGTH
          READ_BY_LINE            = L_READ_BY_LINE
          HAS_FIELD_SEPARATOR     = C_SPLIT
        TABLES
          DATA_TAB                = P_IT_VENDOR
        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 I001(ZZ) WITH TEXT-006 L_FILENAME.
    MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        FL_FLAG1 = 'X'.
      ELSEIF P_IT_VENDOR[] IS INITIAL.
        MESSAGE I001(ZZ) WITH TEXT-014.   " Uploaded File contains no data
        FL_FLAG1 = 'X'.
      ENDIF.
    ENDFORM.                    " UPLOAD_DATA
    *&      Form  INSERT_VENDOR_MASTER_DATA
    This form is used to process BDC data for Vendor Master
    FORM INSERT_VENDOR_MASTER_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR.
      sort it_vendor_master by flag.
      LOOP AT IT_VENDOR_MASTER INTO WA_IT_VENDOR_MASTER.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_MASTER-LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_MASTER-LIFNR.
        if wa_it_vendor_master-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_MASTER-LIFNR
               AND   BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        IF SY-SUBRC EQ 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_ERROR-MSG   = TEXT-015.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION.
        ENDIF.
        CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION_FK02.
          CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-018.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_MASTER.
        endif.
      ENDLOOP.
      IF FL_FLAG3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " INSERT_VENDOR_MASTER_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_MASTER
    This form is used to populate BDC data of Vendor Master
    FORM POPULATE_BDC_DATA_VEN_MASTER .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_MASTER-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_MASTER-ZTERM.
      IF WA_IT_VENDOR_MASTER-REPRF = 'Y'.
        WA_IT_VENDOR_MASTER-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_MASTER-XPORE = 'Y'.
        WA_IT_VENDOR_MASTER-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_master-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_MASTER-KTOKK,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_master-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '=MALL',
               BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-D0110' 'X',
               BDC_FIELD  USING 'RF02K-D0120' 'X',
               BDC_FIELD  USING 'RF02K-D0130' 'X',
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'RF02K-D0220' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0110',
               BDC_FIELD  USING 'LFA1-ANRED'  WA_IT_VENDOR_MASTER-ANRED,
               BDC_FIELD  USING 'LFA1-NAME1'  WA_IT_VENDOR_MASTER-NAME1,
               BDC_FIELD  USING 'LFA1-NAME2'  WA_IT_VENDOR_MASTER-NAME2,
               BDC_FIELD  USING 'LFA1-SORTL'  WA_IT_VENDOR_MASTER-SORTL,
               BDC_FIELD  USING 'LFA1-STRAS'  WA_IT_VENDOR_MASTER-STRAS,
               BDC_FIELD  USING 'LFA1-ORT01'  WA_IT_VENDOR_MASTER-ORT01,
               BDC_FIELD  USING 'LFA1-PSTLZ'  WA_IT_VENDOR_MASTER-PSTLZ,
               BDC_FIELD  USING 'LFA1-LAND1'  WA_IT_VENDOR_MASTER-LAND1,
               BDC_FIELD  USING 'LFA1-REGIO'  WA_IT_VENDOR_MASTER-REGIO,
               BDC_FIELD  USING 'LFA1-SPRAS'  WA_IT_VENDOR_MASTER-SPRAS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0120',
               BDC_FIELD  USING 'LFA1-VBUND'  WA_IT_VENDOR_MASTER-VBUND,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'LFBK-BANKS(01)'  WA_IT_VENDOR_MASTER-BANKS,
               BDC_FIELD  USING 'LFBK-BANKL(01)'  WA_IT_VENDOR_MASTER-BANKL,
               BDC_FIELD  USING 'LFBK-BANKN(01)'  WA_IT_VENDOR_MASTER-BANKN,
               BDC_FIELD  USING 'BDC_OKCODE'  '=BANK',
               BDC_DYNPRO USING 'SAPLBANK' '0100',
               BDC_FIELD  USING 'BNKA-BANKA'  WA_IT_VENDOR_MASTER-BANKA,
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_MASTER-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_MASTER-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_MASTER-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_MASTER-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_MASTER-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_MASTER-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_MASTER
    *&      Form  BDC_DYNPRO
    This form is used to move data to BDCDATA int'table
    FORM BDC_DYNPRO  USING PROGRAM TYPE BDC_PROG
                           DYNPRO  TYPE BDC_DYNR.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-PROGRAM  = PROGRAM.
      WA_IT_BDCDATA-DYNPRO   = DYNPRO.
      WA_IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
    This form is used to move data to BDCDATA int'table
    FORM BDC_FIELD  USING FNAM TYPE ANY
                          FVAL TYPE ANY.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-FNAM = FNAM.
      WA_IT_BDCDATA-FVAL = FVAL.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  CALL_TRANSACTION
    This form is used to Call FK01 for processing of data either for
    Vendor Master or Vendor Extend. The error records are inserted to
    Session which can be processed using SM35
    FORM CALL_TRANSACTION .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK01'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC = W_SUCC_REC + 1.
      ELSE.
        IF FL_FLAG2 NE 'X'.
          PERFORM OPEN_BDC_SESSION.
          FL_FLAG2 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA.
      ENDIF.
    ENDFORM.                    " CALL_TRANSACTION
    *&      Form  OPEN_BDC_SESSION
    Form used to open session for Error out Records
    FORM OPEN_BDC_SESSION .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        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.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    ENDFORM.                    " OPEN_BDC_SESSION
    *&      Form  BDC_INSERT
    This form is used to insert error records to a Session method
    FORM BDC_INSERT .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK01'
        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.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    ENDFORM.                    " BDC_INSERT
    *&      Form  ERROR_RECORD_DATA
    This form is used to process the messages for the error records which
    will be displayed on the output report
    FORM ERROR_RECORD_DATA .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk01-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk01 TO IT_ERROR_fk01.
        CLEAR WA_IT_ERROR_fk01.
      ENDIF.
    ENDFORM.                    " ERROR_RECORD_DATA
    *&      Form  CLOSE_BDC_SESSION
    Form used to close session of the Error Records
    FORM CLOSE_BDC_SESSION .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          NOT_OPEN    = 1
          QUEUE_ERROR = 2
          OTHERS      = 3.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-010.             " Unable to Close BDC Session
      ENDIF.
    ENDFORM.                    " CLOSE_BDC_SESSION
    *&      Form  CHK_AND_INS_VENDOR_EXTEND_DATA
    This form is used to process BDC data for Vendor Extend
    FORM CHK_AND_INS_VENDOR_EXTEND_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR, fl_flag4.
      sort it_vendor_extend by flag.
      LOOP AT IT_VENDOR_EXTEND INTO WA_IT_VENDOR_EXTEND.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_EXTEND-REF_LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_EXTEND-REF_LIFNR.
        if wa_it_vendor_extend-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR
               AND   BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
        IF SY-SUBRC NE 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
          WA_IT_ERROR-MSG   = TEXT-007.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              INPUT  = WA_IT_VENDOR_EXTEND-LIFNR
            IMPORTING
              OUTPUT = WA_IT_VENDOR_EXTEND-LIFNR.
          SELECT SINGLE LIFNR
                 FROM LFB1
                 INTO L_LIFNR
                 WHERE LIFNR = WA_IT_VENDOR_EXTEND-LIFNR
                 AND   BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
          IF SY-SUBRC EQ 0.
            WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
            WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
            WA_IT_ERROR-MSG   = TEXT-015.
            APPEND WA_IT_ERROR TO IT_ERROR.
            W_ERR_REC = W_ERR_REC + 1.
            CLEAR : WA_IT_ERROR, L_LIFNR.
          ELSE.
            REFRESH IT_BDCDATA.
            CLEAR IT_BDCDATA.
            PERFORM POPULATE_BDC_DATA_VEN_EXTEND.
            PERFORM CALL_TRANSACTION.
          ENDIF.
        ENDIF.
        CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_extend.
          PERFORM CALL_TRANSACTION_FK02.
           CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_extend-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_extend-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-019.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_EXTEND.
        endif.
      ENDLOOP.
      IF FL_FLAG2 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
      if fl_flag3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " CHK_AND_INS_VENDOR_EXTEND_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_EXTEND
    This form is used to populate BDC data of Vendor Extend
    FORM POPULATE_BDC_DATA_VEN_EXTEND .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_EXTEND-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_EXTEND-ZTERM.
      IF WA_IT_VENDOR_EXTEND-REPRF = 'Y'.
        WA_IT_VENDOR_EXTEND-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_extend-XPORE = 'Y'.
        WA_IT_VENDOR_extend-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_extend-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_EXTEND-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_EXTEND-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_EXTEND-KTOKK,
               BDC_FIELD  USING 'RF02K-REF_LIFNR'
                                          WA_IT_VENDOR_EXTEND-REF_LIFNR,
               BDC_FIELD  USING 'RF02K-REF_BUKRS'
                                          WA_IT_VENDOR_EXTEND-REF_BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_extend-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_extend-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_extend-BUKRS,
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_EXTEND-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_EXTEND-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_EXTEND-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_EXTEND-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_EXTEND-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_extend-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_EXTEND
    *&      Form  DISPLAY_ERROR_REPORT
    This form is used to display the error records on the output screen
    FORM DISPLAY_ERROR_REPORT .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.            " Error List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.            " Error List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H03,              " Error Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR INTO WA_IT_ERROR.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  CALL_TRANSACTION_FK02
    Form used to Call Transaction FK02
    form CALL_TRANSACTION_FK02 .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK02'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC1 = W_SUCC_REC1 + 1.
        WA_IT_succ_rec1-MSG = Text-017.
        IF P_VENMAS = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_succ_rec1 TO IT_succ_rec1.
      ELSE.
        IF FL_FLAG3 NE 'X'.
          PERFORM OPEN_BDC_SESSION_fk02.
          FL_FLAG3 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT_fk02.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA1.
      ENDIF.
    endform.                    " CALL_TRANSACTION_FK02
    *&      Form  OPEN_BDC_SESSION_fk02
    Form used to Open session for FK02
    form OPEN_BDC_SESSION_fk02 .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP1 TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        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.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    endform.                    " OPEN_BDC_SESSION_fk02
    *&      Form  BDC_INSERT_fk02
    Form used to insert data into BDC session using FK02
    form BDC_INSERT_fk02 .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK02'
        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.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    endform.                    " BDC_INSERT_fk02
    *&      Form  display_changed_report
    Form to display Updated Vendor data
    form display_changed_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O10.          " Updated List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O11.          " Updated List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_succ_rec1 INTO WA_IT_succ_rec1.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_succ_rec1-LIFNR,
               17  SY-VLINE,
               18  WA_IT_succ_rec1-BUKRS,
               31  SY-VLINE,
               32  WA_IT_succ_rec1-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_succ_rec1.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_changed_report
    *&      Form  display_nochange_report
    Form to display No Changed data for Vendors
    form display_nochange_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O12.       " No Changes List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O13.       " No Changes List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_noupdate INTO WA_IT_noupdate.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_noupdate-LIFNR,
               17  SY-VLINE,
               18  WA_IT_noupdate-BUKRS,
               31  SY-VLINE,
               32  WA_IT_noupdate-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_noupdate.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_nochange_report
    *&      Form  ERROR_RECORD_DATA1
    Form to get Error Message for Changed Vendors
    form ERROR_RECORD_DATA1 .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk02-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk02 TO IT_ERROR_fk02.
        CLEAR WA_IT_ERROR_fk02.
      ENDIF.
    endform.                    " ERROR_RECORD_DATA1
    *&      Form  display_error_report_fk01
    Form to display Error Report for Master Vendors (FK01)
    form display_error_report_fk01 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.     " Error List for Vendor Master (FK01)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.     " Error List for Vendor Master Extended (FK01)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR_fk01 INTO WA_IT_ERROR_fk01.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR_fk01-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR_fk01-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR_fk01-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR_fk01.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_error_report_fk01
    *&      Form  display_error_report_fk02
    Form to display Error Report for changed Vendors (FK02)
    form display_error_report_fk02 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O14.     " Error List for Vendor Master (FK02)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O15.     " Error List for Vendor Master Extended (FK02)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR_fk02 INTO WA_IT_ERROR_fk02.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR_fk02-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR_fk02-BUKRS,
               31  SY-VLINE,
             

  • How to upload Bulk Customer Data from Excel or Notepad?

    Hi
    Could any body explain me how can we upload bulk customer master data into SAP system. How the LSMW functionality works for it. what are the prerequisites to upload the data into the system, and Could any body explain me the detailed procedure to upload Customer master data into the system.
    As well I request you to know what are the other functionality we use for uploading. What would be the difference between IDOC and BDC functionalities.
    your suggestions will be highly appreciated?
    Raghu Ram

    hi raghu,
    this is sample code of bdc,
    REPORT zbdc_cus_create_ctm NO STANDARD PAGE HEADING MESSAGE-ID zsmep.
    *& Request ID: ECCK900136
    *& Author : seshu
    *& Date : 20/03/2007
    *& This report Creates customer Master Details through BDC-Call transaction
    *& method and download error files to the presentation server.
    DATA: BEGIN OF t_tab OCCURS 0,
    kunnr TYPE kun16,
    bukrs TYPE bukrs,
    vkorg TYPE vkorg,
    vtweg TYPE vtweg,
    spart TYPE spart,
    ktokd TYPE ktokd,
    name1 TYPE name1_gp,
    sortl TYPE sortl,
    ort01 TYPE ort01_gp,
    land1 TYPE land1_gp,
    spras TYPE spras,
    pstlz TYPE pstlz,
    civve TYPE civve,
    akont TYPE akont,
    awahr TYPE awahr,
    waers TYPE waers_v02d,
    kzazu TYPE kzazu_d,
    antlf TYPE string.
    DATA: END OF t_tab.
    DATA: BEGIN OF t_tab1 OCCURS 0,
    kunnr TYPE kun16,
    bukrs TYPE bukrs,
    vkorg TYPE vkorg,
    vtweg TYPE vtweg,
    spart TYPE spart,
    ktokd TYPE ktokd,
    name1 TYPE name1_gp,
    sortl TYPE sortl,
    ort01 TYPE ort01_gp,
    land1 TYPE land1_gp,
    spras TYPE spras,
    pstlz TYPE pstlz,
    civve TYPE civve,
    akont TYPE akont,
    awahr TYPE awahr,
    waers TYPE waers_v02d,
    kzazu TYPE kzazu_d,
    antlf TYPE string.
    DATA: END OF t_tab1.
    DATA: BEGIN OF g_tab_create OCCURS 0,
    kunnr TYPE kunnr,
    messa TYPE string.
    DATA: END OF g_tab_create.
    DATA: BEGIN OF g_tab_error OCCURS 0,
    kunnr TYPE kunnr,
    messa TYPE string.
    DATA: END OF g_tab_error.
    DATA: g_tab TYPE TABLE OF string,
    g_wa TYPE string.
    *DATA: g_tab TYPE TABLE OF t_tab,
    g_wa LIKE LINE OF g_tab.
    DATA: g_tab1 TYPE TABLE OF string.
    *itab for mapping...
    DATA: BEGIN OF tab_map OCCURS 0.
    INCLUDE STRUCTURE bdcdata.
    DATA: END OF tab_map.
    *itab for error messages...
    DATA: BEGIN OF tab_error OCCURS 0.
    INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF tab_error.
    DATA: BEGIN OF l_tab OCCURS 0,
    l_text TYPE string.
    DATA: END OF l_tab.
    *delcarations for blocked alv...
    TYPE-POOLS: slis.
    DATA: l_tab_fieldcatlog TYPE slis_t_fieldcat_alv,
    l_tab_fieldcatlog1 TYPE slis_t_fieldcat_alv,
    l_layout TYPE slis_layout_alv,
    l_events TYPE slis_t_event,
    l_events1 TYPE slis_t_event,
    l_wa_events LIKE LINE OF l_events,
    l_pos TYPE i,
    report TYPE sy-repid,
    path TYPE string,
    path1 TYPE string.
    End generated data section ***
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: file TYPE ibipparms-path OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: file1 TYPE ibipparms-path.
    SELECTION-SCREEN END OF BLOCK b2.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR file.
    CALL FUNCTION 'F4_FILENAME'
    IMPORTING
    file_name = file.
    MOVE file TO path.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR file1.
    CALL FUNCTION 'F4_FILENAME'
    IMPORTING
    file_name = file1.
    MOVE file1 TO path1.
    AT SELECTION-SCREEN .
    IF file EQ file1.
    MESSAGE e103(zsmep).
    EXIT.
    ENDIF.
    START-OF-SELECTION.
    *call transaction method...
    PERFORM call_ctm.
    *display the output in blocked alv...
    PERFORM disply_block_alv.
    *& Form call_ctm
    text
    FORM call_ctm.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = path
    filetype = 'ASC'
    HAS_FIELD_SEPARATOR = ' '
    HEADER_LENGTH = 0
    READ_BY_LINE = 'X'
    DAT_MODE = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    CHECK_BOM = ' '
    VIRUS_SCAN_PROFILE =
    NO_AUTH_CHECK = ' '
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    data_tab = g_tab
    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.
    DATA: text TYPE TABLE OF string.
    LOOP AT g_tab INTO g_wa.
    SPLIT g_wa AT '|' INTO: t_tab-kunnr
    t_tab-bukrs
    t_tab-vkorg
    t_tab-vtweg
    t_tab-spart
    t_tab-ktokd
    t_tab-name1
    t_tab-sortl
    t_tab-ort01
    t_tab-land1
    t_tab-spras
    t_tab-pstlz
    t_tab-civve
    t_tab-akont
    t_tab-awahr
    t_tab-waers
    t_tab-kzazu
    t_tab-antlf,
    TABLE text.
    APPEND t_tab.
    CLEAR g_wa.
    ENDLOOP.
    LOOP AT t_tab.
    REFRESH tab_map.
    PERFORM sub USING 'SAPMF02D' '0100'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'RF02D-KTOKD'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub1 USING 'RF02D-KUNNR'
    t_tab-kunnr.
    PERFORM sub1 USING 'RF02D-BUKRS'
    t_tab-bukrs.
    PERFORM sub1 USING 'RF02D-VKORG'
    t_tab-vkorg.
    PERFORM sub1 USING 'RF02D-VTWEG'
    t_tab-vtweg.
    PERFORM sub1 USING 'RF02D-SPART'
    t_tab-spart.
    PERFORM sub1 USING 'RF02D-KTOKD'
    t_tab-ktokd.
    PERFORM sub USING 'SAPMF02D' '0110'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNA1-SPRAS'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub1 USING 'KNA1-NAME1'
    t_tab-name1.
    PERFORM sub1 USING 'KNA1-SORTL'
    t_tab-sortl.
    PERFORM sub1 USING 'KNA1-ORT01'
    t_tab-ort01.
    PERFORM sub1 USING 'KNA1-LAND1'
    t_tab-land1.
    PERFORM sub1 USING 'KNA1-SPRAS'
    t_tab-spras.
    PERFORM sub1 USING 'KNA1-PSTLZ'
    t_tab-pstlz.
    PERFORM sub USING 'SAPMF02D' '0120'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNA1-LIFNR'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '0125'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNA1-NIELS'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '0130'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNBK-BANKS(01)'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM sub USING 'SAPMF02D' '0340'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'RF02D-KUNNR'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM sub USING 'SAPMF02D' '0370'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'RF02D-KUNNR'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM sub1 USING 'KNA1-CIVVE'
    t_tab-civve.
    PERFORM sub USING 'SAPMF02D' '0360'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNVK-NAMEV(01)'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM sub USING 'SAPMF02D' '0210'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNB1-AKONT'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub1 USING 'KNB1-AKONT'
    t_tab-akont.
    PERFORM sub USING 'SAPMF02D' '0215'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNB1-GUZTE'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '0220'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNB5-KNRMA'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '0230'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNB1-VRSNR'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '0310'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNVV-BZIRK'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub1 USING 'KNVV-AWAHR'
    t_tab-awahr.
    PERFORM sub1 USING 'KNVV-WAERS'
    t_tab-waers.
    PERFORM sub USING 'SAPMF02D' '0315'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNVV-LPRIO'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub1 USING 'KNVV-KZAZU'
    t_tab-kzazu.
    PERFORM sub1 USING 'KNVV-ANTLF'
    t_tab-antlf.
    PERFORM sub USING 'SAPMF02D' '0320'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNVV-PERFK'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '/00'.
    PERFORM sub USING 'SAPMF02D' '1350'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'RF02D-KUNNR'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM sub USING 'SAPMF02D' '0324'.
    PERFORM sub1 USING 'BDC_CURSOR'
    'KNVP-PARVW(01)'.
    PERFORM sub1 USING 'BDC_OKCODE'
    '=ENTR'.
    CALL TRANSACTION 'XD01' USING tab_map
    MODE 'N'
    UPDATE 'A'
    MESSAGES INTO tab_error.
    LOOP AT tab_error.
    DATA: l_message TYPE string.
    IF tab_error-msgtyp = 'I' OR tab_error-msgtyp = 'S'.
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
    id = tab_error-msgid
    lang = 'EN'
    no = tab_error-msgnr
    v1 = tab_error-msgv1
    v2 = tab_error-msgv2
    v3 = tab_error-msgv3
    v4 = tab_error-msgv4
    IMPORTING
    msg = l_message
    EXCEPTIONS
    not_found = 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.
    MOVE: t_tab-kunnr TO g_tab_create-kunnr,
    l_message TO g_tab_create-messa.
    APPEND g_tab_create.
    ELSEIF
    tab_error-msgtyp = 'E'.
    MOVE-CORRESPONDING t_tab TO t_tab1.
    APPEND t_tab1.
    DATA: text1 TYPE string.
    CONCATENATE t_tab-kunnr
    t_tab-bukrs
    t_tab-vkorg
    t_tab-vtweg
    t_tab-spart
    t_tab-ktokd
    t_tab-name1
    t_tab-sortl
    t_tab-ort01
    t_tab-land1
    t_tab-spras
    t_tab-pstlz
    t_tab-civve
    t_tab-akont
    t_tab-awahr
    t_tab-waers
    t_tab-kzazu
    t_tab-antlf
    INTO text1 SEPARATED BY '|'.
    l_tab-l_text = text1 .
    APPEND l_tab.
    *error records downlaod to pc...
    PERFORM gui_downlaod.
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
    id = tab_error-msgid
    lang = 'EN'
    no = tab_error-msgnr
    v1 = tab_error-msgv1
    v2 = tab_error-msgv2
    v3 = tab_error-msgv3
    v4 = tab_error-msgv4
    IMPORTING
    msg = l_message
    EXCEPTIONS
    not_found = 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.
    MOVE: t_tab-kunnr TO g_tab_error-kunnr,
    l_message TO g_tab_error-messa.
    APPEND g_tab_error.
    ENDIF.
    ENDLOOP.
    REFRESH tab_error.
    CLEAR l_message.
    ENDLOOP.
    ENDFORM. "call_ctm
    *& Form sub
    text
    -->A text
    -->B text
    FORM sub USING a b.
    CLEAR tab_map.
    tab_map-program = a.
    tab_map-dynpro = b.
    tab_map-dynbegin = 'X'.
    APPEND tab_map.
    ENDFORM. "FORM
    " sub
    *& Form sub1
    text
    -->P_0579 text
    -->P_0580 text
    FORM sub1 USING c d.
    CLEAR tab_map.
    tab_map-fnam = c.
    tab_map-fval = d.
    APPEND tab_map.
    ENDFORM. " sub1
    *END-OF-SELECTION.
    *& Form disply_block_alv
    text
    --> p1 text
    <-- p2 text
    FORM disply_block_alv .
    PERFORM fill_fieldcatlog.
    PERFORM fill_fieldcatlog1.
    PERFORM call_block_alv.
    ENDFORM. " disply_block_alv
    *& Form fill_fieldcatlog
    text
    --> p1 text
    <-- p2 text
    FORM fill_fieldcatlog .
    PERFORM build_catlog USING l_pos 'G_TAB_CREATE' 'KUNNR' '16' text-004.
    PERFORM build_catlog USING l_pos 'G_TAB_CREATE' 'MESSA' '90' text-005.
    ENDFORM. " fill_fieldcatlog
    *& Form BUILD_CATLOG
    text
    -->P_L_POS text
    -->P_0844 text
    -->P_0845 text
    -->P_0846 text
    -->P_TEXT_004 text
    FORM build_catlog USING u_pos TYPE any
    value(u_0844) TYPE any
    value(u_0845) TYPE any
    value(u_0846) TYPE any
    u_text TYPE any.
    DATA: l_wa_fieldcatlog TYPE slis_fieldcat_alv.
    ADD 1 TO u_pos.
    l_wa_fieldcatlog-col_pos = u_pos.
    l_wa_fieldcatlog-tabname = u_0844.
    l_wa_fieldcatlog-fieldname = u_0845.
    l_wa_fieldcatlog-outputlen = u_0846.
    l_wa_fieldcatlog-reptext_ddic = u_text.
    APPEND l_wa_fieldcatlog TO l_tab_fieldcatlog.
    ENDFORM. " BUILD_CATLOG
    *& Form fill_fieldcatlog1
    text
    --> p1 text
    <-- p2 text
    FORM fill_fieldcatlog1 .
    PERFORM build_catlog1 USING l_pos 'G_TAB_ERROR' 'KUNNR' '16' text-004.
    PERFORM build_catlog1 USING l_pos 'G_TAB_ERROR' 'MESSA' '90' text-005.
    ENDFORM. " fill_fieldcatlog1
    *& Form build_catlog1
    text
    -->P_L_POS text
    -->P_0913 text
    -->P_0914 text
    -->P_0915 text
    -->P_TEXT_004 text
    FORM build_catlog1 USING u_pos TYPE any
    value(u_0913) TYPE any
    value(u_0914) TYPE any
    value(u_0915) TYPE any
    u_text TYPE any.
    DATA: l_wa_fieldcatlog1 TYPE slis_fieldcat_alv.
    ADD 1 TO u_pos.
    l_wa_fieldcatlog1-col_pos = u_pos.
    l_wa_fieldcatlog1-tabname = u_0913.
    l_wa_fieldcatlog1-fieldname = u_0914.
    l_wa_fieldcatlog1-outputlen = u_0915.
    l_wa_fieldcatlog1-reptext_ddic = u_text.
    APPEND l_wa_fieldcatlog1 TO l_tab_fieldcatlog1.
    ENDFORM. " build_catlog1
    *& Form CALL_BLOCK_ALV
    text
    --> p1 text
    <-- p2 text
    FORM call_block_alv .
    report = sy-repid.
    CLEAR l_events.
    l_wa_events-name = slis_ev_top_of_page.
    l_wa_events-form = 'TOP_OF_PAGE'.
    APPEND l_wa_events TO l_events.
    CLEAR l_wa_events.
    l_wa_events-name = slis_ev_top_of_page.
    l_wa_events-form = 'ETOP_OF_PAGE'.
    APPEND l_wa_events TO l_events1.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
    i_callback_program = report
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
    IT_EXCLUDING =
    IF g_tab_create[] IS INITIAL.
    MESSAGE s101(zsmep).
    EXIT.
    ELSE.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
    is_layout = l_layout
    it_fieldcat = l_tab_fieldcatlog
    i_tabname = 'G_TAB_CREATE'
    it_events = l_events
    IT_SORT =
    I_TEXT = ' '
    TABLES
    t_outtab = g_tab_create
    EXCEPTIONS
    PROGRAM_ERROR = 1
    MAXIMUM_OF_APPENDS_REACHED = 2
    OTHERS = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDIF.
    IF g_tab_error[] IS INITIAL.
    MESSAGE s102(zsmep).
    ELSE.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
    is_layout = l_layout
    it_fieldcat = l_tab_fieldcatlog1
    i_tabname = 'G_TAB_ERROR'
    it_events = l_events1
    IT_SORT =
    I_TEXT = ' '
    TABLES
    t_outtab = g_tab_error
    EXCEPTIONS
    PROGRAM_ERROR = 1
    MAXIMUM_OF_APPENDS_REACHED = 2
    OTHERS = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    IS_PRINT =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    EXCEPTIONS
    PROGRAM_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.
    ENDFORM. " CALL_BLOCK_ALV
    *& Form top_of_page
    text
    --> p1 text
    <-- p2 text
    FORM top_of_page .
    WRITE: 'Created Records'.
    ENDFORM. " top_of_page
    *& Form ETOP_OF_PAGE
    text
    --> p1 text
    <-- p2 text
    FORM etop_of_page .
    WRITE: 'Error Records'.
    ENDFORM. " ETOP_OF_PAGE
    *& Form gui_downlaod
    text
    --> p1 text
    <-- p2 text
    FORM gui_downlaod .
    MOVE file1 TO path1.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    BIN_FILESIZE =
    filename = path1
    filetype = 'ASC'
    APPEND = ' '
    write_field_separator = '|'
    HEADER = '00'
    TRUNC_TRAILING_BLANKS = ' '
    WRITE_LF = 'X'
    COL_SELECT = ' '
    COL_SELECT_MASK = ' '
    DAT_MODE = ' '
    CONFIRM_OVERWRITE = ' '
    NO_AUTH_CHECK = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    WRITE_BOM = ' '
    TRUNC_TRAILING_BLANKS_EOL = 'X'
    WK1_N_FORMAT = ' '
    WK1_N_SIZE = ' '
    WK1_T_FORMAT = ' '
    WK1_T_SIZE = ' '
    WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
    IMPORTING
    FILELENGTH =
    TABLES
    data_tab = l_tab
    FIELDNAMES =
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6
    HEADER_NOT_ALLOWED = 7
    SEPARATOR_NOT_ALLOWED = 8
    FILESIZE_NOT_ALLOWED = 9
    HEADER_TOO_LONG = 10
    DP_ERROR_CREATE = 11
    DP_ERROR_SEND = 12
    DP_ERROR_WRITE = 13
    UNKNOWN_DP_ERROR = 14
    ACCESS_DENIED = 15
    DP_OUT_OF_MEMORY = 16
    DISK_FULL = 17
    DP_TIMEOUT = 18
    FILE_NOT_FOUND = 19
    DATAPROVIDER_EXCEPTION = 20
    CONTROL_FLUSH_ERROR = 21
    OTHERS = 22
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " gui_downlaod 
    this is one of the bdc method to upload data from notepad to sap.
    regards,
    seshu.

  • Method for uploading Customer Hierarchy Data

    hi experts,
    i have a requirement in which i need to upload Customer Hierarchy data into ECC system from CRM system.
    I need to know is there any method in LSMW by which i can do it?
    thanks,
    Ags.

    resolved..

  • Lsmw to upload master data

    Hi,
    if we want to upload master data  for example customer master data,vendor master data and material master data.
    then which one is the best method  lsmw or BDC ?
    if we use lsmw then we need to use recording or direct input program.
    what will be the volume of data when we used lsmw for master data.
    Thanks in advance.
    Thanks,
    Jigar

    Hi,
    The basis for deciding which method to upload the master data can be considered on the following:
    1. Customer Requirement.
    2. Volume of the data.
    3. How much effort is required.
    4. Whether error handling is to be done explicitly or automatically.
    The most preference order as follows:
    1. LSMW
    Latest tool and less effort/coding is required. It covers all the methods.
    - by standard Batch/ Direct input,
    - by Batch Input Recording,
    - by Buisness Object Method , and
    - IDoc ( Intermidiate Document) .
    2. BAPI
    BAPI is an abbreviation used for Business Application Programming Interface. These are interfaces within the business framework to link SAP components to one another and SAP components with third-party components.
    The SAP Business Objects are an essential part of the Business Framework and the prerequisites for interoperability. SAP Business Objects cover a broad range of R/3 business data and processes and can be accessed using BAPIs. The SAP Business Objects and their BAPIs thus provide an object-oriented view of R/3 business functionality.
    3. BDC 
    It can be done in two ways:
    a) Session - it handles error implicitly .
    Transaction: error handling is explicit.
    b) Call transaction is 6 times faster than session .
    c) Session can handle multiple transactions while, call transaction can handle one transaction at a time.
    d) Session method is used to handle basically very lage amount of data .
    What will be the volume of data when we used lsmw for master data.
    It depends on the company master data volume in their legacy systems. LSMW can handle huge volume data.
    Hope this will help.
    Regards,
    Ferry Lianto

  • Mass upload of data into Custom table

    Hello all,
                I made search in SDN and could not find the best solution to my problem and hence posting .
               What is the best way for Mass upload of data into Custom database table ?
               I think LSMW would not be a viable option as it would take longer time .
               Locking of the table also needs to be taken care.
               PLease let me know if you have a alternative to this and the best way to do this .
    Comradely,
    K.Sibi

    Hi Sibi,
    See Lock objects are required when we enter the data through screen level, or multiple users should not enter the data at same time.
    Create one Lock object in SE11, It automatically creates FM.
    DEQUEUE_EYTEST2                Release lock on object EYTEST2
    ENQUEUE_EYTEST2                Request lock for object EYTEST2
    Call these FM in your program.
    EX: Refer this links
    1 http://help.sap.com/saphelp_nw70/helpdata/en/41/7af4c8a79e11d1950f0000e82de14a/content.htm
    2 http://wiki.sdn.sap.com/wiki/display/Snippets/lockingandunlockingofthe+tables
    Rgds
    Aeda

  • Reg lsmw for customer master data transfer

    Hello All,
    I want to know while transfering data by lsmw for customer master data .
    Scenario : There are more then one ship-to-party and bill to party so how to upload the data in this case?????
    Thanks,
    Sunny

    hi
    just refer to the link below
    http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g   
    <b>step by step procedure with screen shots</b>          
    regards
    vijay
    <b>plz dont forget to reward points if helpful</b>

  • For uploading master data(ex:customer data) into sap,

    hi
    for uploading master data(ex:customer data) into sap,
    which methods you prefer? call
    transaction/session/lsmw/bapi? why?
    Thanks
    Rama

    Hello,
    Check this:
    COde:
    REPORT zprataptable2
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    DATA : BEGIN OF itab OCCURS 0,
            i1 TYPE i,
            lifnr LIKE   rf02k-lifnr,
            bukrs LIKE   rf02k-bukrs,
            ekorg LIKE   rf02k-ekorg,
            ktokk LIKE   rf02k-ktokk,
            anred LIKE lfa1-anred,
            name1 LIKE lfa1-name1,
            sortl LIKE lfa1-sortl,
            land1 LIKE lfa1-land1,
            akont LIKE lfb1-akont,
            fdgrv LIKE lfb1-fdgrv,
             waers LIKE lfm1-waers,
            END OF itab.
    DATA : BEGIN OF jtab OCCURS 0,
            j1 TYPE i,
            banks LIKE lfbk-banks,
            bankl LIKE lfbk-bankl,
            bankn LIKE lfbk-bankn,
             END OF jtab.
    DATA : cnt(4) TYPE n.
    DATA : fdt(20) TYPE c.
    DATA : c TYPE i.
    INCLUDE bdcrecx1.
    START-OF-SELECTION.
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = 'C:\first1.txt'
          filetype = 'DAT'
        TABLES
          data_tab = itab.
      CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
         filename                      = 'C:\second.txt'
         filetype                      = 'DAT'
        TABLES
          data_tab                      = jtab.
      LOOP AT itab.
        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'
                                      itab-lifnr.
        PERFORM bdc_field       USING 'RF02K-BUKRS'
                                      itab-bukrs.
        PERFORM bdc_field       USING 'RF02K-EKORG'
                                       itab-ekorg.
        PERFORM bdc_field       USING 'RF02K-KTOKK'
                                       itab-ktokk.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0110'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFA1-LAND1'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFA1-ANRED'
                                      itab-anred.
        PERFORM bdc_field       USING 'LFA1-NAME1'
                                      itab-name1.
        PERFORM bdc_field       USING 'LFA1-SORTL'
                                      itab-sortl.
        PERFORM bdc_field       USING 'LFA1-LAND1'
                                      itab-land1.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0120'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFA1-KUNNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBK-BANKN(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        cnt = 0.
        LOOP AT jtab WHERE j1 = itab-i1.
          cnt = cnt + 1.
          CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
          PERFORM bdc_field  USING fdt jtab-banks.
          CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
          PERFORM bdc_field USING fdt jtab-bankl.
          CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
          PERFORM bdc_field   USING fdt jtab-bankn.
          IF cnt = 5.
            cnt = 0.
            PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'LFBK-BANKS(01)'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=P+'.
            PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'LFBK-BANKN(02)'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=ENTR'.
          ENDIF.
        ENDLOOP.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBK-BANKS(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0210'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-FDGRV'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFB1-AKONT'
                                      itab-akont.
        PERFORM bdc_field       USING 'LFB1-FDGRV'
                                      itab-fdgrv.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0215'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-ZTERM'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0220'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB5-MAHNA'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0310'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFM1-WAERS'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFM1-WAERS'
                                      itab-waers.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0320'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF02K-LIFNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
        PERFORM bdc_transaction USING 'XK01'.
      ENDLOOP.
      PERFORM close_group.
    Header file:
    1     63190      0001     0001     0001     mr     bal188     b     in     31000     a1     inr
    2     63191      0001     0001     0001     mr     bal189     b     in     31000     a1     inr
    TC file:
    1 in sb 11000
    1 in sb 12000
    1 in sb 13000
    1 in sb 14000
    1 in sb 15000
    1 in sb 16000
    1 in sb 17000
    1 in sb 18000
    1 in sb 19000
    1 in sb 20000
    1 in sb 21000
    1 in sb 22000
    2 in sb 21000
    2 in sb 22000
    Regards,
    Vasanth

  • LSMW to upload infotype data

    Hi,
    I need to upload folowing data for InfoType0000 using LSMW...
    Start Date
    End Date
    Personnel number
    Action type
    Reason for Action
    Customer Specific Status
    Employee Status
    Special Payment Status
    Position
    Personnel Area
    Employee Group
    Employee Subgroup
    Can any one plz let me know how to do this......
    Thanks,
    Shilpa K

    Check below Link
    http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/LSMW_tutorial.html
    Rewards points  if useful....
    Regards
    Minal

Maybe you are looking for

  • Upgraded to CS5; TOC Links don't work in the created PDF from InDesign

    We recently upgraded to CS5. When we convert our InDesign User Guide to PDF, the main TOC links don't work. The TOC does function from each chapter page but not from the main TOC. We have done our normal steps in Acrobat to link them. Same issue with

  • Non - interactive PDF form needs to be typed in

    I have a PDF form, non-interactive, which I would like to type the answers into. Easiest and most effective way to do this? Thanks, Jay

  • Problem with KDevelop

    Well, hi there, i've got a little problem with KDevelop. Most of it works perfect, but when i try to create a new project, the programm crashs without any error messages. Okay, allmost without, when i run it in a terminal, there is a little output, b

  • Copy / Paste malfunctioning in Cp5 for Windows

    Hi, I have a situation of creating eCourses that involve a lot of standardized wording.  I often want to copy and paste text from a previous slide into a later slide (or page - whatever) in the same project.  For example "Click forward to proceed and

  • My iPhone lock button is not working

    my iphone lock button is barely working what should i do?