Vendor master criteria upload

hi all,
in a same program i have to create a vendor master data using tcode XK01
and in the same program i want to change the one field for vendor address
which i will do with tcode XK02.
so for the both above scenario which method i should use
means call transaction or session method and why?
plz clarify it.
i am expecting some good replies from all u genius there?
thanx
sanjeev

Check this code...
This program is used for both creation as well as change...
*& Report  ZFC_VENDOR_CREATE                                           *
REPORT  ZFC_VENDOR_CREATE  LINE-SIZE 100
                           NO STANDARD PAGE HEADING
                           MESSAGE-ID ZZ.
DESCRIPTION           : Vendor Master Data - Intercompany
                     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.

Similar Messages

  • Vendor Master Mass Upload or change T code

    Hi What is the Tcode for Vendor Master Mass Upload or change .
    Thanks
    Lekhram

    You can use T_code XK99 for mass maintainence ( changes) for Vendor mater data.

  • Vendor master data upload

    how do we upload vendor master data into SAP from legacy system.can anyone give me a detailed explination.
    regards,
    deepthi

    Deepthi,
    The steps would be (in LSMW) :
    1 Create a new Project, Subproject (if not existing). Then give a name for the Object, say VendorMaster.
    2 On the next screen, you will see several steps (radio buttons) to be performed. You should go in sequential order.
    Double click the first, I think its called Maintain Object (sorry don't have access to SAP system right now)
    3 On this screen you will see various options/methods (in the second section) for loading the data.
    You may select which ever is appropriate or most suitable in your case.
    Let's assume you want to use the very first options - Standard program for Direct Input/Batch.
    4 Pull down (F4) for the Object & select Vendor Master.
    5 Pull down again for the Method & select (I think( Standard). The program name & Type will be populated by LSMW.
    If let's say none of the programs in this list satisfies your requirement, then you may decide to go for a Recording or a BAPI (again pull down & select appropriate method) or IDoc (CREMAS).
    So now you have decided on the method you want to use for posting the Vendor Master data. Save the information & go back to the main screen of the object.
    6 Double click on the next step for maintaining the Source Structure. Give the name(s) of the Source Structure(s).
    7 Next step is to define the Source Structure(s) format (fields, attributes etc).
    8 Next you maintain the relationship between the Structure(s) - Source & Target. The Target structures depend upon the method elected by you in step 5.
    9 Next will be the most important step - ie specifying the mapping/conversion rules for each Target field. You can even write ABAP code by double clicking on the field - it will open up the editor where you can put in your ABAP code. There are also several events available - for instance at the <i>Beginning of Processing</i> or <i>Beginning of Transaction</i> etc. where again you can specify your own logic.
    10 In the Next 2 steps you will give the file name & path & also associate the file(s) to the Source structure(s).
    The develoment for the object is complete. Now you are ready to read, convert & post your Vendor Master data in SAP.
    Let me know if you need additional assistance.
    Regards,
    Homiar.

  • LSMW -- Vendor master data upload / e-mail address

    Hi Expert,
    I would like to use LSMW to upload some data of vendor master.
    Who can tell me which structure include the filed of " E-mail " which shown in the address view of vendor master ?
    Thanks and Regards
    Shubin

    Hi,
    When you are doing the recording for FK02 or XK02
    Try to check
    Address Check box
    USE CENTRAL ADDRESS MANAGEMENT (if you do not check this check box, your email address and standard communication method will not be available)
    Hope this solves your problem.
    Regards,
    Anupam

  • Enter new withhold tax type in vendor master - Mass upload

    Hi All
    I need to upload mass withhold data in vendor master, may i know other than LSMW and BDC is there other way to do this.
    Thanks
    Shubhada

    Hi,
    Ask the abaper to write a BDC  program on change vendor master and update the WHtax information.
    Regards,
    Padma

  • Vendor master data upload-Urgent

    Hi all,
    I am using LSMW to upload vendor master data. It is giving some errors as " Function Code cannot be selected". When i try to run through "Display all screens", it is accecpting the data. but when I try to go with E or N mode, it is giving errors.
    I found a note for this also, but that is for manual recording. I am using std program for Batch Input.
    One more strange thing is happening. One field of recon. acc is getting uploaded, converted. I can see the data in " display converted data" , and also in debugging. But when i run the batch input session, Mode 'A', the value is not posted in the field. when i manually give, it accecpts.
    Any help on this is appriciated. Its urgent 
    Thanks.

    Hi all,
    I am using LSMW to upload vendor master data. It is giving some errors as " Function Code cannot be selected". When i try to run through "Display all screens", it is accecpting the data. but when I try to go with E or N mode, it is giving errors.
    I found a note for this also, but that is for manual recording. I am using std program for Batch Input.
    One more strange thing is happening. One field of recon. acc is getting uploaded, converted. I can see the data in " display converted data" , and also in debugging. But when i run the batch input session, Mode 'A', the value is not posted in the field. when i manually give, it accecpts.
    Any help on this is appriciated. Its urgent 
    Thanks.

  • Error in the LSMW for vendor master using standard batch/direct input

    I am facing the problem in the LSMW for the Vendor master data. The vendor is initially created for the company code 350 by using LSMW. NOw when I try to uploasd the same vendor using the same LSMW for the company code 450 then I get the error in the Bach input creation as follows:
    Batch Input Interface for Vendors
    FB012                    Session 1 : Special character for 'empty field' is /
    FB007                    Session 1 session name VNDR_CREATE_ was opened
    FB104                    Trans. 2 XK01 : Acct already exists; general area not being processed
    FB125                    ... Data in table BLFA1 cannot be processed
    FB016                    ... Last header record ...
    FB014                    ... BLF00-STYPE 1
    FB014                    ... BLF00-TCODE XK01
    FB014                    ... BLF00-LIFNR 300951
    FB014                    ... BLF00-BUKRS 402
    FB014                    ... BLF00-EKORG /
    FB014                    ... BLF00-KTOKK VEND
    FB017                    ... Last data record ...
    FB014                    ... BLFA1-STYPE 2
    FB014                    ... BLFA1-TBNAM BLFA1
    FB014                    ... BLFA1-ANRED /
    FB014                    ... BLFA1-NAME1 SAVOIE AUTOMATISME DEXIS
    This is because when we use XK01 to create the vendor by using the

    Please check this answered link:
    Re: LSMW for Vendor Master
    LSMW Upload vendor master data
    Edited by: Afshad Irani on May 5, 2010 12:42 PM

  • *Journal Entries while uploading the vendor master data from legacy system*

    hi SAP Folks,
    can any one of you tell me the journal entries while uploading the vendor master data from legacy system to SAP system.
    Eg: legacy system is having 10000 vendors list, 1 reconciliation account and $ 1000000. while uploading all these data from legacy system to SAP what are the journal entries we get.
    thanks in advance.
    Edited by: ravindranath manikonda on Nov 24, 2008 1:12 PM

    Hi
    you will be having  only one entry logically
    i.e. Opening Bal. clrng A/c Dr.
           To Vendor A/c Cr.
    regards

  • Upload program for vendor master

    Hi Friends,
    Could you please help me in this.
    actually i have a program like this:
    i have to download the data from an excel sheet and reformat it and output into a text file so that the data can be uploaded into vendor master using standard progarm
    <b>"RFBIKR00".</b>
    i have written the program like this:
    but in the middle when formatting the data...i'm facing the problem....
    plz help me in solving that...
    thnx very very much...........
    the program i wrote is like this:
    <b>
    tables: lfa1,             
            lfb1,             
            lfm1,             
            lfbk,             
            bnka,             
            bgr00,            
            blf00,            
            blfa1,            
            blfb1,           
            blfbk,           
            blfm1,           
            blfb5,           
            blfbw,           
            blfei,           
            blfza,           
            blflr,           
            blfm2,           
            bwyt3,           
            bwyt1,           
            blfat.           
    *--- Internal table for spread sheet.
    data: t_filedata like alsmex_tabline occurs 0 with header line.
    *--- Internal table for Vendor Master Data in Spread Sheet.
    data: begin of t_sheet occurs 0,
            name1 like lfa1-name1,           "vendor name1
            name2 like lfa1-name2,           "vendor name2
            altkn like lfb1-altkn,           "previous master record number
            bukrs like lfb1-bukrs,           "company code
            ekorg like lfm1-ekorg,           "purchase organization
            ktokk like lfa1-ktokk,           "account group
            stras like lfa1-stras,           "street
            street4 like lfa1-name4,         "street4
            pfach like lfa1-pfach,           "po box
            ort01 like lfa1-ort01,           "city
            regio like lfa1-regio,           "region
            pstlz like lfa1-pstlz,           "postal code
            land1 like lfa1-land1,           "country
            telf1 like lfa1-telf1,           "first telephone number
            telfx like lfa1-telfx,           "first fax number
            stcd1 like lfa1-stcd1,           "fed tax ID#
            brsch like lfa1-brsch,           "commodity code
            akont like lfb1-akont,           "reconciliation account
            mindk like lfb1-mindk,           "monitory indicator
            zwels like lfb1-zwels,           "payment method
            reprf like lfb1-reprf,           "check double invoice
            banka like bnka-banka,           "bank name
            stret like bnka-stras,           "house number and street
            city  like bnka-ort01,           "city
            provz like bnka-provz,           "bank state
            banks like lfbk-banks,           "bank country
            swift like bnka-swift,           "swift code
            bankl like lfbk-bankl,           "aba#
            bankn like lfbk-bankn,           "bank account no
            zterm like lfb1-zterm,           "payment terms
            terms like lfm1-zterm,           "terms of payment key
          end of t_sheet.
    *--- Internal table for Vendor Master data in Text File.
    data: begin of t_file occurs 0,
            s_session type bgr00,
            s_header  type blf00,
            s_blfa1   type blfa1,
            s_blfb1   type blfb1,
            s_blfbk   type blfbk,
            s_blfm1   type blfm1,
            s_blfbk   type blfbk,
            s_blfb5   type blfb5,
            s_blfza   type blfza,
            s_blfm1   type blfm1,
            s_blfat   type blfat,
            s_bwyt1   type bwyt1,
            s_bwyt3   type bwyt3,
            s_blfm2   type blfm2,
            s_blfei   type blfei1,
            s_blfbw   type blfbw,
            s_blflr   type blflr,
         end of t_file.
                       SELECTION SCREEN                          *****
    *---Selection Parameters.
    selection-screen begin of block b1 with frame title title1.
    parameters: p_xlfile like rlgrap-filename.
    parameters: p_txfile type rlgrap-filename.
    selection-screen end of block b1.
                       INITIALIZATION                            *****
    initialization.
    *---Initialize text fields for selection-screen.
      title1 = 'Selection Parameters'.
                       AT SELECTION-SCREEN                       *****
    at selection-screen.
    at selection-screen on p_xlfile.
       perform check_file using p_xlfile.
    at selection-screen on value-request for p_xlfile.
       perform select_file using p_xlfile.
                       START-OF-SELECTION                        *****
    start-of-selection.
       clear t_sheet.
       refresh t_sheet.
    *---Upload Spreadsheet.
       perform read_file using p_xlfile.
    *---Process data into formatted internal table.
       perform format_data.
            append t_file.
         clear t_file.
       endloop.
    *---Download data to Text file.
       perform download_data.
                       TOP-OF-PAGE                               *****
    top-of-page.
       perform top_of_page.
                       S-U-B-R-O-U-T-I-N-E-S                     *****
           Form TOP_OF_PAGE
          Calling the Standard Report Header
    form top_of_page.
       perform header using 'CREATE FILE FOR'
                            'VENDOR MASTER UPLOAD'
                            132.
       skip 2.
    endform.                        "TOP_OF_PAGE
         Form check_file                                              **
         Checking the File entered                                    **
    data: p_filename type string.
    form check_file using p_filename.
    *---The entered File must be Excel spreadsheet.
      data: l_length type i,
            l_ext(4) type c.
      l_length = strlen( p_xlfile ).
      subtract 4 from l_length.
      l_ext = p_xlfile+l_length(4).
      translate l_ext to upper case.
      if l_ext <> '.XLS'.
         message e009 with 'Only Excel spreadsheets are supported'.
      endif.
    *---Check if File exits and not empty.
      data: l_return(10) type c.
      CALL FUNCTION 'WS_QUERY'
           EXPORTING
                FILENAME             = p_filename
                QUERY                = 'FL'
           IMPORTING
                RETURN               = l_return
           EXCEPTIONS
                INV_QUERY            = 1
                NO_BATCH             = 2
                FRONTEND_ERROR       = 3
                OTHERS               = 4
      IF l_return = space or l_return = '0'.
         message e530(pj) with p_filename.
      ENDIF.
    endform.                        "CHECK_FILE
         Form select_file                                              **
    form select_file using p_filename like rlgrap-filename.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
           EXPORTING
              PROGRAM_NAME        = SYST-REPID
              DYNPRO_NUMBER       = SYST-DYNNR
              FIELD_NAME          = ' '
                STATIC              = 'X'
                MASK                = ',MS Excel (.xls),.xls.'
           CHANGING
                FILE_NAME           = p_filename
           EXCEPTIONS
                MASK_TOO_LONG       = 1
                OTHERS              = 2
    IF SY-SUBRC <> 0.
      MESSAGE e838(29) with p_filename.
    ENDIF.
    endform.                        "SELECT_FILE
         Form read_file                                                **
    form read_file using p_filename like rlgrap-filename.
    *---Display status message for User.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
           EXPORTING
                TEXT             = 'Uploading Spreadsheet'
    *---Upload spreadsheet.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           EXPORTING
                FILENAME                      = p_filename
                I_BEGIN_COL                   = 1
                I_BEGIN_ROW                   = 1
                I_END_COL                     = 256
                I_END_ROW                     = 65536
           TABLES
                INTERN                        = t_filedata
           EXCEPTIONS
                INCONSISTENT_PARAMETERS       = 1
                UPLOAD_OLE                    = 2
                OTHERS                        = 3
    IF t_filedata[] is initial.
    message i009 with 'NO DATA FOUND IN FILE' p_filename.
    stop.
    ENDIF.
    sort t_filedata by row col.
    endform.                        "READ_FILE
         Form format_data                                              **
    form format_data.
      data: l_index type i.
      field-symbols: <fs1>.
    *---Display status message for user.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
           EXPORTING
                TEXT             = ' Processing Data...'
      loop at t_filedata.
        l_index = t_filedata-col.
        assign component l_index of structure t_sheet to <fs1>.
        <fs1> = t_filedata-value.
        at end of row.
           append t_sheet.
           clear t_sheet.
        endat.
      endloop.
        refresh t_filedata.
        free t_filedata.
    endform.                        "FORMAT_DATA
         Form download_data.
    form download_data.
    OPEN DATASET p_txfile for OUTPUT.
      LOOP at t_file.
         TRANSFER t_file to p_txfile.
      ENDLOOP.
    CLOSE DATASET p_txfile.
    IF SY-SUBRC = 0.
      WRITE: / 'Excel to Textfile for Vendor Master Upload: ', P_TXFILE.
    ENDIF.
    endform.                    "DOWNLOAD_DATA</b>

    Hi!
    You don't need to program the 'translation' from a file into input data for RFBIKR00 yourself. SAP has done this, so that you can do this (nearly) without programming. If you need some special conversion rules, then you can add some coding, but most is possible without.
    Have a look at transaction LSMW. It's not so complicated it looks at the first time. Just look at <a href="http://help.sap.com/saphelp_erp2004/helpdata/en/ad/2d54a41d7011d2b42e006094b944c8/frameset.htm">help</a> for the way to use LSMW.
    Regards,
    Christian
    P.S.: sorry for lost your efforts, but you should switch to LSMW

  • Data upload Vendor Master Chinese character from Excel does not upload

    Hi Gurus,
    We are trying to upload Vendor Master from Excel sheet.
    The Chinese characters in excel sheet is not getting uploaded.
    After upload, we see in SAP as ????? for these Chinese character.
    Could any one inform what setting I may need to change?
    Thanks and Best Regards,
    Mohan

    Hi Bala,
    Goto he Initial screen of SAP and click the ALT+F12    costomizating of local setup.the choose the options-->choose the I18N Tab in that POP up and check the Activate the multi byte support.
    press Apply and OK.
    close the  SAP Log on and Re-loag on.if u r not closing the Logon screen the changes wiil not effect.
    or
    click on the log on SAP and choose the server  name -->right click ->Properties>chose the log on language as chanies .-->Apply and Logon.
    Now u can eassily Upload to the Excel in checnies language.
    Thanks & REgards,
    Nelson.

  • Upload vendor master data from legacy system to internal table tcode xk01

    through batch input program how to upload vendor master data from legacy system to internal table and then to SAP R/3 database(transaction XK01) by using recording method.

    By learning the basics of BDC recording and the use of GUI_UPLOAD

  • Email upload in vendor master change

    Hi all,
    I have to do emails upload in vendor master change but when i do through shdb recording i am not able to see the communication screen to enter the values. Can any one of you please guide me step by step.
    Thanks & regards,
    Kumar

    Hi,
    you have to use table BAPICOMREM. Just go to one testing customer and add email address with note to this customer. Then go to SE37 and call BAPI BAPI_ADDRESSORG_GETDETAIL. This BAPI has same structure as BAPI_ADDRESSORG_CHANGE. Hence you will see how you have to fill all structures to change email address and also note.
    Cheers

  • Vendor Master- CIN details Upload

    Hello Experts
    I want to upload the CIN details of the vendors. We are working on implementation of CIN, so please suggest what all things should be taken care.
    We are planing to go with LSMW, recording method.
    But when i tried that in ides, the pop up window for cin details was not coming in XK02 transaction. What can be the issue?
    Also, is the concept of small scale industries still maintained in india?
    Also there is a field 'type of vendor' in the excise duty tab in the CIn details. whats its significance?
    Regards

    hi,
    go to
    spro - logistics-general - material master - Configuring the Material Master - Maintain User Settings
    here you need to put the SAP user ID. Only these people can view the CIN data at Vendor Master (XK01, 02, 03). For them, the CIN Data button will be displayed.
    You can upload the data by LSMW, but you need to do the above mentioned setting in each and every client. For LSMW the screen should be identical in all clients.
    You need to use the SAP ID for which you have given access of the CIN Data Tab.
    I am sure this will help you. I have used it in my earlier projects.
    Regards,
    Anand

  • LSMW-Vendor master data and Vendor Open items Upload

    Dear Experts,
    I need help on the following
    Do you have any docs with you where I can familiarize myself with the AP upload programs in LSMW?
    sample template for me  to test the upload via LSMW? sample template and the programs used to upload the vendor master and Vendor open items.how to use the program for example like some instruction docs step by step doc etc.
    Thanks n Regards
    Rena.

    hi
    there are 14 steps u have to go through while uploading...
    first u create Project and Sub Projects...
    1 Maintain Object Attributes
       select Batch Input Recording.
               click on Overview.
       enter Recording
    Then it wil ask for the Transaction code there u enter XK01 for creation
    u enter all The details Which are Given to u in Excel by ur CTM Members.
    note: Dont use Mouse while Entering the data.Use Only Key Board.
    After Entering all the required details  click on  Save...
    select Default All
    System-> List -> Save -> Local File
    Convert Excel to Text File(Text Tab Limited)
      2 Maintain Source Structures
         Create Source Structure.
    3 Maintain Source Fields
         click on Copy Fields
         Select From Data File
         Select Max Len
         save + back
      4 Maintain Structure Relations
         save+back
       5 Maintain Field Mapping and Conversion Rules
          Extras -> Auto Field Mapping
          select Edit All Target Fields
          save + Back
       7 Specify Files
         Click on Execute Button or press F8.Select u201CSPECIFY FILESu201D click on Execute or press ctrl+F8.
         then double click on the u201CLEGACY DATA FILEu201D and select the text file to be uploaded
         Then select u201CTABULATORu201D and u201CFIELDS NAMES AT START OF FILEu201D
        8 Assign Files
           SAVE AND CLICK ON BACK
         9 Read Data
             Execute + back
        10 Display Read Data
             Back
        11 Convert Data
              Execute + back
        12 Display Converted Data
             back
        13 Create Batch Input Session
             Select u201CKeep Batch Input Folderu201D click on Execute.
         14 Run Batch Input Session
              Select Processing mode
               1)     Process in Foreground: Executes Each Step.
                2)     Display Errors Only: Displays only the Errors.
              3)     Background: Skips The Errors.
    Select Extended Log and Click on Process as shown in Screen Shot.
    Edited by: Smitha KB on Feb 24, 2009 10:32 AM

  • LSMW: Uploading Vendor Master : Muliple-Items

    Hi ,
    This is Prabhu , i created one LSMW for Uploading vendor Master .For Withholding tax Type i have to upload atleast 18 items.for that one I given Pagedown to Fill all The Item.But In the maintaining Source Structute I am getting Error.How can overcome This error.How to handle Table Control COncept in LSMW.
    please Guide me.
    regards
    Prabhu

    First Set :-„³   
         SAPMF02K 0610
              BDC_OKCODE                     =P+
             BDC_SUBSCR                     SAPMFWTV
             BDC_CURSOR                     LFBW-WT_SUBJCT(06)
             LFB1-QLAND                     IN                   QLAND  
             LFBW-WITHT(01)                 1A                   WITHT_01         
             LFBW-WITHT(02)                 1B                   WITHT_02 
             LFBW-WITHT(03)                 1C                   WITHT_03            
    LFBW-WITHT(04)                 1D                   WITHT_04                          LFBW-WITHT(05)                 1E                   WITHT_05
    LFBW-WITHT(06)                 1G                   WITHT_06            LFBW-WT_SUBJCT(01)             X                    WT_SUBJCT_01        
    LFBW-WT_SUBJCT(02)             X                    WT_SUBJCT_02                      LFBW-WT_SUBJCT(03)             X                    WT_SUBJCT_03                      LFBW-WT_SUBJCT(04)             X                    WT_SUBJCT_04                      LFBW-WT_SUBJCT(05)             X                    WT_SUBJCT_05                      LFBW-WT_SUBJCT(06)             X                    WT_SUBJCT_06        
    For Second Set
             SAPMF02K 0610
                 BDC_OKCODE                     =P+
                 BDC_SUBSCR                     SAPMFWTV
                 BDC_CURSOR                     LFBW-WT_SUBJCT(06)
                 LFB1-QLAND                     IN                   QLAND
                 LFBW-WITHT(01)                 1H                   WITHT_01 
                 LFBW-WITHT(02)                 1S                   WITHT_02            
                 LFBW-WITHT(03)                 1T                   WITHT_03            
                 LFBW-WITHT(04)                 2A                   WITHT_04            
                 LFBW-WITHT(05)                 2B                   WITHT_05            
                 LFBW-WITHT(06)                 2C                   WITHT_06            
                 LFBW-WT_SUBJCT(01)             X                    WT_SUBJCT_01        
                 LFBW-WT_SUBJCT(02)             X                    WT_SUBJCT_02        
                 LFBW-WT_SUBJCT(03)             X                    WT_SUBJCT_03        
                 LFBW-WT_SUBJCT(04)             X                    WT_SUBJCT_04        
                 LFBW-WT_SUBJCT(05)             X                    WT_SUBJCT_05
    Here I am enclosing The Source Structure .i am looking for Ur Comments on This .
    I am doing recording itself.

Maybe you are looking for

  • Hard drive back up

    How can I back up my hard drive, I am quite new to the Mac world. Can I revert to it after a Hard drive format? Thanks a lot all the best Rafcio

  • Ipad mini ios6 disconnects from wifi

    Ipad mini disconnect from wifi while sleep. How will find my ipad work when it disconnects in like 5 minutes? Help please.

  • Multiple BPs for an employee in CRM

    Hi, We have ECC-HR (6.0) integaration with CRM (6.0)for employee data . We have triggered initial download and all the Organizational units, positions and employees downloaded and relationships created without any issues.  Now a days we are getting s

  • Do I need antivirus on my Galaxy 3?

    Do I need antivirus on my GalaxyS3 phone?

  • Read only method arguments

    Can I make method arguments read only?? I want to send an object to a method and make it read only. i dont want a method to change public varables of the mthod argument object. Can anyone help me on this?? Thanks, Vaijayanti