Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc

Former Member
0 Likes
769

hi,

doing call transaction in bdc.i want to

upload correct data from flat file into internal table and incorrect data into another internal table .can i get a code for to this.

4 REPLIES 4
Read only

Former Member
0 Likes
670

hi,

Check out this sample code. Hope this might help


REPORT  ztest_report
 NO STANDARD PAGE HEADING
                        LINE-SIZE 255
                        MESSAGE-ID ZRASH.

************************************************************************
*                 Internal Table Declarations                          *
************************************************************************
*--Internal Table for Data Uploading.
DATA : BEGIN OF IT_FFCUST OCCURS 0,
         KUNNR(10),
         BUKRS(4),
         KTOKD(4),
         ANRED(15),
         NAME1(35),
         SORTL(10),
         STRAS(35),
         ORT01(35),
         PSTLZ(10),
         LAND1(3),
         SPRAS(2),
         AKONT(10),
       END OF IT_FFCUST.

*--Internal Table to Store Error Records.
DATA : BEGIN OF IT_ERRCUST OCCURS 0,
         KUNNR(10),
         EMSG(255),
       END OF IT_ERRCUST.

*--Internal Table to Store Successful Records.
DATA : BEGIN OF IT_SUCCUST OCCURS 0,
         KUNNR(10),
         SMSG(255),
       END OF IT_SUCCUST.

*--Internal Table for Storing the BDC data.
DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

*--Internal Table for storing the messages.
DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA : V_FLAG1(1) VALUE ' ',
"Flag used for opening session.
       V_TLINES LIKE SY-TABIX,
       "For storing total records processed.
       V_ELINES LIKE SY-TABIX,
       "For storing the no of error records.
       V_SLINES LIKE SY-TABIX.
       "For storing the no of success records.


************************************************************************
*          Selection screen                                            *
************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1.
PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,
             V_SESNAM  LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B1.

************************************************************************
*          Start-of-selection                                          *
************************************************************************

START-OF-SELECTION.
*-- Form to upload flatfile data into the internal table.
  PERFORM FORM_UPLOADFF.

************************************************************************
*        TOP-OF-PAGE                                                   *
************************************************************************
TOP-OF-PAGE.
  WRITE:/ 'Details of the error and success records for the transaction'
  .
  ULINE.
  SKIP.


************************************************************************
*          End of Selection                                            *
************************************************************************
END-OF-SELECTION.
*-- Form to Generate a BDC from the Uploaded Internal table
  PERFORM FORM_BDCGENERATE.

*--To write the totals and the session name.
  PERFORM FORM_WRITEOP.



*&---------------------------------------------------------------------*
*&      Form  form_uploadff
*&---------------------------------------------------------------------*
*     Form to upload flatfile data into the internal table.
*----------------------------------------------------------------------*
FORM FORM_UPLOADFF .

*--Variable to change the type of the parameter file name.
  DATA : LV_FILE TYPE STRING.

  LV_FILE = V_FNAME.

*--Function to upload the flat file to the internal table.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                      =  LV_FILE
*     FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = 'X'
*     HEADER_LENGTH                 = 0
*     READ_BY_LINE                  = 'X'
*     DAT_MODE                      = ' '
*   IMPORTING
*     FILELENGTH                    =
*     HEADER                        =
    TABLES
      DATA_TAB                      = IT_FFCUST
    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.
*--Deleting the headings from the internal table.
    DELETE IT_FFCUST INDEX 1.
*--Getting the total number of records uploaded.
    DESCRIBE TABLE IT_FFCUST LINES V_TLINES.

  ENDIF.


ENDFORM.                    " form_uploadff
*&---------------------------------------------------------------------*
*&      Form  Form_bdcgenerate
*&---------------------------------------------------------------------*
*     Form to Generate a BDC from the Uploaded Internal table
*----------------------------------------------------------------------*
FORM FORM_BDCGENERATE .

*--Generating the BDC table for the fields of the internal table.
  LOOP AT IT_FFCUST.
    PERFORM POPULATEBDC USING :
                                'X' 'SAPMF02D' '0105',
                                ' ' 'BDC_OKCODE'  '/00' ,
                                ' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,
                                ' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,
                                ' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,
                                'X' 'SAPMF02D' '0110' ,
                                ' ' 'BDC_OKCODE'  '/00',
                                ' ' 'KNA1-ANRED'  IT_FFCUST-ANRED,
                                ' ' 'KNA1-NAME1' IT_FFCUST-NAME1,
                                ' ' 'KNA1-SORTL'  IT_FFCUST-SORTL,
                                ' ' 'KNA1-STRAS' IT_FFCUST-STRAS,
                                ' ' 'KNA1-ORT01' IT_FFCUST-ORT01,
                                ' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,
                                ' ' 'KNA1-LAND1' IT_FFCUST-LAND1,
                                ' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,

                                'X' 'SAPMFO2D' '0120',	
                                ' ' 'BDC_OKCODE'  '/00',

                                'X' 'SAPMF02D' '0125',	
                                ' ' 'BDC_OKCODE'  '/00',

                                'X' 'SAPMF02D' '0130',	
                                ' ' 'BDC_OKCODE'  '=ENTR',

                                'X' 'SAPMF02D' '0340',	
                                ' ' 'BDC_OKCODE'  '=ENTR',

                                'X' 'SAPMF02D' '0360',
                                ' ' 'BDC_OKCODE'  '=ENTR',

                                'X' 'SAPMF02D' '0210',	
                                ' ' 'KNB1-AKONT'  IT_FFCUST-AKONT,
                                ' ' 'BDC_OKCODE'  '/00',

                                'X' 'SAPMF02D' '0215',
                                ' ' 'BDC_OKCODE'  '/00',

                                'X' 'SAPMF02D' '0220',	
                                ' ' 'BDC_OKCODE'  '/00',

                                'X' 'SAPMF02D' '0230',	
                                ' ' 'BDC_OKCODE'  '=UPDA'.
*--Calling the transaction 'fd01'.
    CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'
    MESSAGES INTO IT_CUSTMSG.
    IF SY-SUBRC <> 0.
*--Populating the error records internal table.
      IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.
      APPEND IT_ERRCUST.
      CLEAR IT_ERRCUST.
*--Opening a session if there is an error record.
      IF V_FLAG1 = ' '.
        PERFORM FORM_OPENSESSION.
        V_FLAG1 = 'X'.
      ENDIF.
*--Inserting the error records into already open session.
      IF V_FLAG1 = 'X'.
        PERFORM FORM_INSERT.
      ENDIF.
*--Populating the Success records internal table.
    ELSE.
      IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.
      APPEND IT_SUCCUST.
      CLEAR IT_SUCCUST.
    ENDIF.
*--Displaying the messages.
    IF NOT IT_CUSTMSG[] IS INITIAL.
      PERFORM FORM_FORMATMSG.
    ENDIF.
*--Clearing the message and bdc tables.
    CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].
  ENDLOOP.

*--Getting the total no of error records.
  DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.

*--Getting the total no of successful records.
  DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.

*--Closing the session only if it is open.
  IF V_FLAG1 = 'X'.
    PERFORM FORM_CLOSESESS.
  ENDIF.


ENDFORM.                    " Form_bdcgenerate


*&---------------------------------------------------------------------*
*&      Form  populatebdc
*&---------------------------------------------------------------------*
*       FOrm to Populate the BDC table.
*----------------------------------------------------------------------*
FORM POPULATEBDC  USING    VALUE(P_0178)
                           VALUE(P_0179)
                           VALUE(P_0180).

  IF P_0178 = 'X'.
    IT_CUSTBDC-PROGRAM = P_0179.
    IT_CUSTBDC-DYNPRO = P_0180.
    IT_CUSTBDC-DYNBEGIN = 'X'.
  ELSE.
    IT_CUSTBDC-FNAM = P_0179.
    IT_CUSTBDC-FVAL = P_0180.
  ENDIF.

  APPEND IT_CUSTBDC.
  CLEAR IT_CUSTBDC.


ENDFORM.                    " populatebdc


*&---------------------------------------------------------------------*
*&      Form  FORM_OPENSESSION
*&---------------------------------------------------------------------*
*       Form to Open a session.
*----------------------------------------------------------------------*
FORM FORM_OPENSESSION .

*--Variable to convert the given session name into reqd type.
  DATA : LV_SESNAM(12).

  LV_SESNAM = V_SESNAM.

*--Opening a session.
  CALL FUNCTION 'BDC_OPEN_GROUP'
   EXPORTING
     CLIENT                    = SY-MANDT
     GROUP                     = LV_SESNAM
     HOLDDATE                  = '20040805'
     KEEP                      = 'X'
     USER                      = SY-UNAME
     PROG                      = SY-CPROG
*  IMPORTING
*    QID                       =
   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 :/ 'Session not open'.
  ENDIF.


ENDFORM.                    " FORM_OPENSESSION
*&---------------------------------------------------------------------*
*&      Form  FORM_INSERT
*&---------------------------------------------------------------------*
*       fORM TO INSERT ERROR RECOED INTO A SESSION.
*----------------------------------------------------------------------*
FORM FORM_INSERT .

*--Inserting the record into session.
  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      TCODE                  = 'FD01'
*     POST_LOCAL             = NOVBLOCAL
*     PRINTING               = NOPRINT
*     SIMUBATCH              = ' '
*     CTUPARAMS              = ' '
    TABLES
      DYNPROTAB              = IT_CUSTBDC
    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 :/ 'Unable to insert the record'.
  ENDIF.


ENDFORM.                    " FORM_INSERT
*&---------------------------------------------------------------------*
*&      Form  FORM_CLOSESESS
*&---------------------------------------------------------------------*
*       Form to Close the Open Session.
*----------------------------------------------------------------------*
FORM FORM_CLOSESESS .


  CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
      NOT_OPEN    = 1
      QUEUE_ERROR = 2
      OTHERS      = 3.
  IF SY-SUBRC <> 0.
  ENDIF.



ENDFORM.                    " FORM_CLOSESESS
*&---------------------------------------------------------------------*
*&      Form  FORM_FORMATMSG
*&---------------------------------------------------------------------*
*       Form to format messages.
*----------------------------------------------------------------------*
FORM FORM_FORMATMSG .

*--Var to store the formatted msg.
  DATA : LV_MSG(255).


  CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
      ID        = SY-MSGID
      LANG      = SY-LANGU
      NO        = SY-MSGNO
      V1        = SY-MSGV1
      V2        = SY-MSGV2
      V3        = SY-MSGV3
      V4        = SY-MSGV4
    IMPORTING
      MSG       = LV_MSG
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 2.
  IF SY-SUBRC = 0.

    WRITE :/ LV_MSG.

  ENDIF.
  ULINE.


ENDFORM.                    " FORM_FORMATMSG
*&---------------------------------------------------------------------*
*&      Form  form_writeop
*&---------------------------------------------------------------------*
*       To write the totals and the session name.
*----------------------------------------------------------------------*
FORM FORM_WRITEOP .

  WRITE :/ 'Total Records Uploaded :',V_TLINES,
           / 'No of Error Records :',V_ELINES,
           / 'No of Success Records :',V_SLINES,
           / 'Name of the Session :',V_SESNAM.
  ULINE.

ENDFORM.                    " form_writeop



*  if routeindicator is initial.
*   LOOP AT IT_YMMEE00090.
*      LV_LENGTH = STRLEN( IT_YMMEE00090-CHANGETYPE ).
*      IF SY-TABIX = '1'.
*        IF  IT_YMMEE00090-CHANGETYPE = 'B' AND LV_LENGTH = 1.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE = 'R' AND LV_LENGTH = 1.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE = 'S' AND LV_LENGTH = 1.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE CA 'BRSCD' AND LV_LENGTH GT 1
*                                          AND LV_LENGTH LE 5.
*          ROUTEINDICATOR = 'S'.
*        ENDIF.
*      ELSE.
*        IF  IT_YMMEE00090-CHANGETYPE = 'B' AND LV_LENGTH = 1 AND
*                                         ROUTEINDICATOR = 'S'.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE = 'R' AND LV_LENGTH = 1 AND
*                                         ROUTEINDICATOR = 'S'.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE = 'S' AND LV_LENGTH = 1 AND
*                                         ROUTEINDICATOR = 'S'.
*          ROUTEINDICATOR = 'S'.
*        ELSEIF IT_YMMEE00090-CHANGETYPE CA 'BRSCD' AND LV_LENGTH GT 1
*                  AND LV_LENGTH LE 5 AND ROUTEINDICATOR = 'S'.
*          ROUTEINDICATOR = 'S'.
*        ENDIF.
*      ENDIF.
*  ENDLOOP.
* endif. 

Read only

Former Member
0 Likes
670

i dont want for session i want for call transaction method

Read only

Former Member
0 Likes
670

i dont want for session i want for call transaction method

Read only

0 Likes
670

Hi,

See the below code, uploades Customer Master data using call transaction mode and creates file as well as a batch session.

REPORT zgli2oc_cust_crt

MESSAGE-ID zartc

NO STANDARD PAGE HEADING.

***********************************************************************

  • P R O G R A M *

***********************************************************************

----


  • DATA DECLARATION *

----


----


  • CONSTANTS

----


CONSTANTS : k_sep TYPE c VALUE '|',

k_nodata TYPE c VALUE '',

k_tcode TYPE tstc-tcode VALUE 'XD01',

k_dispmode TYPE c VALUE 'N',

k_updmode TYPE c VALUE 'S',

k_checked TYPE c VALUE 'X',

k_so_1100 TYPE vkorg VALUE '1100',

k_so_2100 TYPE vkorg VALUE '2100',

k_so_4200 TYPE vkorg VALUE '4200',

k_so_4400 TYPE vkorg VALUE '4400',

k_so_4500 TYPE vkorg VALUE '4500',

k_so_4600 TYPE vkorg VALUE '4600',

k_comma TYPE c VALUE ','.

----


  • TYPE DEFINITION

----


  • Input File Type.

TYPES : BEGIN OF ty_inp_file,

rec_string TYPE string,

END OF ty_inp_file.

  • Mapping File Type.

TYPES : BEGIN OF ty_mapp_file,

ktokd TYPE ktokd, " Customer account group

kunnr TYPE kunnr, " SAP Customer number

bukrs TYPE bukrs, " Company Code

vkorg TYPE vkorg, " Sales Organization

vtweg TYPE vtweg, " Distribution Channel

spart TYPE spart, " Division

name1 TYPE name, " Customer name 1

name2 TYPE name, " Customer name 2

schtm TYPE text20, " Search Term 1

stras TYPE stras_gp, " Street Address

pstlz TYPE pstlz, " Postal Code

ort01 TYPE ort01, " City

land1 TYPE land1, " Country

regio TYPE regio, " Region (State)

tzone TYPE lzone, " Transportation Zone

txjcd TYPE txjcd, " Tax Jurisdiction Code

strt2 TYPE text40, " STREET 2

strt3 TYPE text40, " STREET 3

distt TYPE text20, " District/County

langu TYPE spras, " Language

telf1 TYPE telf1, " Telephone Number

entxn TYPE char10, " Extn Number

telfx TYPE telfx, " Fax Number

email TYPE ad_smtpadr, " Email ID

bbbnr TYPE bbbnr, " Location number 1

bahns TYPE bahns, " Legacy Customer Number

stceg TYPE stceg, " VAT REG No.

kukla TYPE kukla, " CUSTOMER CLASSIFICATION

namc1 TYPE name, " NAME1

abtnr TYPE abtnr, " Department

pafkt TYPE pafkt, " Function

telc1 TYPE telf1, " Telephone

extn1 TYPE char10, " Extension

tefc1 TYPE telfx, " Fax

emal1 TYPE ad_smtpadr, " Email

namc2 TYPE name, " NAME1

abtc2 TYPE abtnr, " Department

pafc2 TYPE pafkt, " Function

telc2 TYPE telf1, " Telephone

extn2 TYPE char10, " Extension

tefc2 TYPE telfx, " Fax

emac2 TYPE ad_smtpadr, " Email

akont TYPE akont, " Reconciliation Account

zuawa TYPE dzuawa, " Sort key

zterm TYPE dzterm, " Payment Terms

togru TYPE togru, " Tolerance Group

xzver TYPE xzver, " Payment history

zwels TYPE dzwels, " Payment Method

lockb TYPE lockb, " Lock Box

mahna TYPE mahna, " Dunning procedure

bzirk TYPE bzirk, " Sales District

vkbur TYPE vkbur, " Sales Office

vkgrp TYPE vkgrp, " Sales group

kdgrp TYPE kdgrp, " Customer group

waers TYPE waers, " Currency

konda TYPE konda, " Price Group

kalks TYPE kalks, " Pricing Procedure

pltyp TYPE pltyp, " Price list

versg TYPE stgku, " Customer statistic group (for SIS)

lprio TYPE lprio, " Delivery Priority

kzazu TYPE kzazu_d, " Order Combination Indicator

vsbed TYPE vsbed, " Shipping Conditions

vwerk TYPE vwerk, " Delivering plant

autlf TYPE autlf, " Complete delivery required by law

antlf TYPE char30, " Max # partial delivery

kztlf TYPE kztlf, " Partial delivery per item

bokre TYPE bokre, " Rebate Relevant Indicator

prfre TYPE prfre, " Rebate for Price Determination

inco1 TYPE inco1, " Inco Terms 1

inco2 TYPE inco2, " Inco terms 2

zter1 TYPE dzterm, " Payment Terms

ktgrd TYPE ktgrd, " Account assignment group

aland TYPE aland, " Tax country

tatyp TYPE tatyp, " Tax category

taxld TYPE char01, " Taxable Classification

taxd_bel TYPE char01, " Taxable Classification Belgium

bnkstmt TYPE char01, " Bank Statement

txusg(60) TYPE c, " Tax Usage

txid(60) TYPE c, " Tax ID

crind(60) TYPE c, " Credit Hold Indicator

shvia(60) TYPE c, " Ship Via

namc3 TYPE name, " NAME3

abtc3 TYPE abtnr, " Department

pafc3 TYPE pafkt, " Function

telc3 TYPE telf1, " Telephone

tefc3 TYPE telfx, " Fax

emac3 TYPE ad_smtpadr, " Email

namc4 TYPE name, " NAME4

abtc4 TYPE abtnr, " Department

pafc4 TYPE pafkt, " Function

telc4 TYPE telf1, " Telephone

tefc4 TYPE telfx, " Fax

emac4 TYPE ad_smtpadr, " Email

namc5 TYPE name, " NAME5

abtc5 TYPE abtnr, " Department

pafc5 TYPE pafkt, " Function

telc5 TYPE telf1, " Telephone

tefc5 TYPE telfx, " Fax

emac5 TYPE ad_smtpadr, " Email

namc6 TYPE name, " NAME6

abtc6 TYPE abtnr, " Department

pafc6 TYPE pafkt, " Function

telc6 TYPE telf1, " Telephone

tefc6 TYPE telfx, " Fax

emac6 TYPE ad_smtpadr, " Email

namc7 TYPE name, " NAME7

abtc7 TYPE abtnr, " Department

pafc7 TYPE pafkt, " Function

telc7 TYPE telf1, " Telephone

tefc7 TYPE telfx, " Fax

emac7 TYPE ad_smtpadr, " Email

namc8 TYPE name, " NAME8

abtc8 TYPE abtnr, " Department

pafc8 TYPE pafkt, " Function

telc8 TYPE telf1, " Telephone

tefc8 TYPE telfx, " Fax

emac8 TYPE ad_smtpadr, " Email

namc9 TYPE name, " NAME9

abtc9 TYPE abtnr, " Department

pafc9 TYPE pafkt, " Function

telc9 TYPE telf1, " Telephone

tefc9 TYPE telfx, " Fax

emac9 TYPE ad_smtpadr, " Email

END OF ty_mapp_file.

  • Error File Type.

TYPES : BEGIN OF ty_upld_err,

err_msg TYPE string,

rec_string TYPE string,

END OF ty_upld_err.

  • Error Record Type.

TYPES : BEGIN OF ty_fld_err,

mandat_fld TYPE string,

END OF ty_fld_err.

----


  • DATA DEFINITION

----


DATA : v_filename TYPE string,

v_err_fname TYPE string,

v_tot_no_records TYPE i,

v_tot_no_succ_rec TYPE i,

v_tot_no_fail_rec TYPE i,

v_mandat_flg TYPE c,

v_open_grp TYPE c.

----


  • INTERNAL TABLES

----


DATA : i_inp_file TYPE STANDARD TABLE OF ty_inp_file,

i_upld_err TYPE STANDARD TABLE OF ty_upld_err,

i_bdcdata TYPE STANDARD TABLE OF bdcdata,

i_messtab TYPE STANDARD TABLE OF bdcmsgcoll,

i_fld_err TYPE STANDARD TABLE OF ty_fld_err.

----


  • WORK AREA

----


DATA : wa_inp_file TYPE ty_inp_file,

wa_map_file TYPE ty_mapp_file,

wa_bdcdata TYPE bdcdata,

wa_upld_err TYPE ty_upld_err,

wa_ctuparams TYPE ctu_params,

wa_fld_err TYPE ty_fld_err,

wa_messtab TYPE bdcmsgcoll.

----


  • SELECTION SCREEN

----


SELECTION-SCREEN BEGIN OF BLOCK input_file WITH FRAME TITLE text-001.

PARAMETERS : p_inp_fi TYPE rlgrap-filename OBLIGATORY,

p_err_fi TYPE string OBLIGATORY,

p_ersess TYPE apqi-groupid OBLIGATORY DEFAULT 'Customer_Err'.

SELECTION-SCREEN END OF BLOCK input_file.

SELECTION-SCREEN BEGIN OF BLOCK oth WITH FRAME TITLE text-002.

PARAMETERS : p_sestst TYPE char1 AS CHECKBOX DEFAULT k_checked,

p_cmpcd TYPE char1 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK oth.

&----


*& AT SELECTION-SCREEN ON VALUE-REQUEST(P_INP_FI)

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_inp_fi.

PERFORM get_filename CHANGING p_inp_fi.

&----


*& AT SELECTION-SCREEN ON VALUE-REQUEST(p_err_fi)

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_err_fi.

PERFORM get_filepath CHANGING p_err_fi.

&----


*& AT SELECTION-SCREEN ON (P_INP_FI)

&----


AT SELECTION-SCREEN ON p_inp_fi.

PERFORM val_file_name USING p_inp_fi. "To validate the input file name

&----


*& AT SELECTION-SCREEN ON (p_err_fi)

&----


AT SELECTION-SCREEN ON p_err_fi.

PERFORM val_file_path USING p_err_fi. "To validate the error file path

&----


*& START-OF-SELECTION

&----


START-OF-SELECTION.

  • Read Legacy Customer Master Data From Presentation Server

PERFORM read_cust_mast_file.

CHECK i_inp_file IS NOT INITIAL.

  • Process Legacy Data and Post Data to the transaction. Catch the Errors at the same time.

PERFORM proc_post_data.

&----


*& END-OF-SELECTION

&----


END-OF-SELECTION.

CLEAR : v_err_fname.

IF i_upld_err IS NOT INITIAL.

CONCATENATE p_err_fi '\' 'CUST_CRT_ERR' sy-datum sy-uzeit '.txt' INTO v_err_fname.

  • Create the Upload Error File and download to the presentation Server

PERFORM download_err_file TABLES i_upld_err

USING v_err_fname.

ENDIF.

IF v_open_grp IS NOT INITIAL.

  • CLOSE BATCH INPUT SESSION.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDIF.

  • Display Statistics after program execution.

PERFORM display_statistics.

&----


*& Form proc_post_data

&----


  • Process the legacy data and CALL transaction XD01.Capture errors.

----


FORM proc_post_data .

DATA : l_v_mand_msg TYPE string.

LOOP AT i_inp_file INTO wa_inp_file.

SPLIT wa_inp_file-rec_string

AT k_sep

INTO wa_map_file-ktokd wa_map_file-kunnr wa_map_file-bukrs wa_map_file-vkorg wa_map_file-vtweg wa_map_file-spart

wa_map_file-name1 wa_map_file-name2 wa_map_file-schtm wa_map_file-stras wa_map_file-pstlz wa_map_file-ort01

wa_map_file-land1 wa_map_file-regio wa_map_file-tzone wa_map_file-txjcd wa_map_file-strt2 wa_map_file-strt3

wa_map_file-distt wa_map_file-langu wa_map_file-telf1 wa_map_file-entxn wa_map_file-telfx wa_map_file-email

wa_map_file-bbbnr wa_map_file-bahns wa_map_file-stceg wa_map_file-kukla wa_map_file-namc1 wa_map_file-abtnr

wa_map_file-pafkt wa_map_file-telc1 wa_map_file-extn1 wa_map_file-tefc1 wa_map_file-emal1 wa_map_file-namc2

wa_map_file-abtc2 wa_map_file-pafc2 wa_map_file-telc2 wa_map_file-extn2 wa_map_file-tefc2 wa_map_file-emac2

wa_map_file-akont wa_map_file-zuawa wa_map_file-zterm wa_map_file-togru wa_map_file-xzver wa_map_file-zwels

wa_map_file-lockb wa_map_file-mahna wa_map_file-bzirk wa_map_file-vkbur wa_map_file-vkgrp wa_map_file-kdgrp

wa_map_file-waers wa_map_file-konda wa_map_file-kalks wa_map_file-pltyp wa_map_file-versg wa_map_file-lprio

wa_map_file-kzazu wa_map_file-vsbed wa_map_file-vwerk wa_map_file-autlf wa_map_file-antlf wa_map_file-kztlf

wa_map_file-bokre wa_map_file-prfre wa_map_file-inco1 wa_map_file-inco2 wa_map_file-zter1 wa_map_file-ktgrd

wa_map_file-aland wa_map_file-tatyp wa_map_file-taxld wa_map_file-taxd_bel wa_map_file-bnkstmt wa_map_file-txusg

wa_map_file-txid wa_map_file-crind wa_map_file-shvia wa_map_file-namc3 wa_map_file-abtc3 wa_map_file-pafc3

wa_map_file-telc3 wa_map_file-tefc3 wa_map_file-emac3 wa_map_file-namc4 wa_map_file-abtc4 wa_map_file-pafc4

wa_map_file-telc4 wa_map_file-tefc4 wa_map_file-emac4 wa_map_file-namc5 wa_map_file-abtc5 wa_map_file-pafc5

wa_map_file-telc5 wa_map_file-tefc5 wa_map_file-emac5 wa_map_file-namc6 wa_map_file-abtc6 wa_map_file-pafc6

wa_map_file-telc6 wa_map_file-tefc6 wa_map_file-emac6 wa_map_file-namc7 wa_map_file-abtc7 wa_map_file-pafc7

wa_map_file-telc7 wa_map_file-tefc7 wa_map_file-emac7 wa_map_file-namc8 wa_map_file-abtc8 wa_map_file-pafc8

wa_map_file-telc8 wa_map_file-tefc8 wa_map_file-emac8 wa_map_file-namc9 wa_map_file-abtc9 wa_map_file-pafc9

wa_map_file-telc9 wa_map_file-tefc9 wa_map_file-emac9.

  • Check Mandatory Fields.

CLEAR : v_mandat_flg,

l_v_mand_msg.

REFRESH : i_fld_err.

IF p_sestst = 'X'.

  • PERFORM check_mandatory USING wa_map_file.

ENDIF.

IF i_fld_err IS NOT INITIAL.

  • Populate the Error Log Table with Error Message and not use this record for upload

l_v_mand_msg = text-003.

LOOP AT i_fld_err INTO wa_fld_err.

CONCATENATE l_v_mand_msg wa_fld_err-mandat_fld

INTO l_v_mand_msg SEPARATED BY k_comma.

ENDLOOP.

PERFORM create_err_log_tab USING wa_inp_file

l_v_mand_msg.

CONTINUE.

ELSE.

  • Transfer Data to BDCDATA Table. It will be used for uploading legacy data through Call Transaction.

PERFORM tranf_data_bdcdata.

  • Call transaction XD01 and Capture Error Messages

PERFORM call_trans_xd01 TABLES i_bdcdata

USING k_tcode

k_dispmode

k_updmode

wa_inp_file.

ENDIF.

ENDLOOP. " ENDLOOP i_inp_file

ENDFORM. " proc_post_data

&----


*& Form TRANF_DATA_BDCDATA

&----


  • Fill BDCDATA Internal Table

----


FORM tranf_data_bdcdata.

REFRESH : i_bdcdata.

  • If Company Code Checkbox is checked.

IF p_cmpcd = k_checked.

PERFORM append_bdcdata_with_compcd.

  • If Company Code Checkbox is Unchecked.

ELSEIF p_cmpcd IS INITIAL.

PERFORM append_bdcdata_no_compcd.

ENDIF.

ENDFORM. "TRANF_DATA_BDCDATA

&----


*& Form APPEND_BDCDATA_TAB

&----


  • Append BDCDATA TABLE to Call Transaction CS01.

----


FORM append_bdcdata_tab USING scr_or_fld TYPE c

scr_fld_name TYPE c

scr_fld_valu TYPE any.

CLEAR wa_bdcdata.

IF scr_or_fld EQ 'SCR'.

wa_bdcdata-program = scr_fld_name.

wa_bdcdata-dynpro = scr_fld_valu.

wa_bdcdata-dynbegin = 'X'.

ELSEIF scr_or_fld EQ 'FLD'.

IF scr_fld_valu <> k_nodata.

wa_bdcdata-fnam = scr_fld_name.

wa_bdcdata-fval = scr_fld_valu.

ELSEIF scr_fld_name EQ 'KNVV-KZAZU'.

wa_bdcdata-fnam = scr_fld_name.

wa_bdcdata-fval = scr_fld_valu.

ENDIF.

ENDIF.

APPEND wa_bdcdata TO i_bdcdata.

ENDFORM. "APPEND_BDCDATA_TAB

&----


*& GET_FILENAME

&----


  • Get the Filename : Show Windows File Browser Dialog Box

----


FORM get_filename CHANGING l_v_filename TYPE rlgrap-filename.

DATA: l_i_filetable TYPE filetable,

l_v_rc TYPE i,

l_v_text TYPE string.

l_v_text = text-004.

CALL METHOD cl_gui_frontend_services=>file_open_dialog

EXPORTING

window_title = l_v_text

default_extension = '*.txt'

default_filename = ''

file_filter = ',..'

initial_directory = 'C:\'

  • MULTISELECTION =

  • WITH_ENCODING =

CHANGING

file_table = l_i_filetable

rc = l_v_rc

  • USER_ACTION =

  • FILE_ENCODING =

EXCEPTIONS

file_open_dialog_failed = 1

cntl_error = 2

error_no_gui = 3

not_supported_by_gui = 4

OTHERS = 5.

IF sy-subrc <> 0.

MESSAGE e006(zartc) WITH text-016.

ENDIF.

READ TABLE l_i_filetable INTO l_v_filename INDEX 1.

ENDFORM. " GET_FILENAME

&----


*& Form READ_CUST_MAST_FILE

&----


  • Read Customer Master Legacy Data File.

----


FORM read_cust_mast_file.

CLEAR : v_filename.

v_filename = p_inp_fi.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = v_filename

filetype = 'ASC'

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

data_tab = i_inp_file

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 s006(zartc) WITH text-006.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " READ_CUST_MAST_FILE

&----


*& Form DISPLAY_STATISTICS

&----


  • Display Execution Statistics

----


FORM display_statistics.

DATA : l_v_line01 TYPE string,

l_v_line02 TYPE string,

l_v_line03 TYPE string,

l_v_line04 TYPE string,

l_v_line05 TYPE string,

l_v_line06 TYPE string.

CLEAR : v_tot_no_records,

v_tot_no_fail_rec,

l_v_line01,

l_v_line02,

l_v_line03,

l_v_line04,

l_v_line05,

l_v_line06.

l_v_line01 = text-007.

l_v_line02 = text-008.

l_v_line03 = text-009.

l_v_line04 = text-010.

l_v_line05 = text-011.

l_v_line06 = text-018.

IF p_sestst IS NOT INITIAL.

WRITE AT 80(9) text-019.

ELSE.

WRITE AT 80(15) text-020.

ENDIF.

IF p_cmpcd IS NOT INITIAL.

SKIP.

WRITE AT 74(21) text-021.

ELSE.

SKIP.

WRITE AT 72(26) text-022.

ENDIF.

DESCRIBE TABLE i_inp_file LINES v_tot_no_records.

DESCRIBE TABLE i_upld_err LINES v_tot_no_fail_rec.

WRITE : /2 l_v_line01, v_tot_no_records.

WRITE : /2 l_v_line02, v_tot_no_succ_rec.

WRITE : /2 l_v_line03, v_tot_no_fail_rec.

SKIP 5.

IF v_err_fname IS NOT INITIAL AND i_upld_err IS NOT INITIAL.

WRITE : /2 l_v_line04,v_err_fname.

IF p_sestst IS INITIAL. "" Added by SPANDURA on 10/29

WRITE : /2 l_v_line06,p_ersess.

ENDIF. "" Added by SPANDURA on 10/29

ELSE.

WRITE : /2 l_v_line05.

ENDIF.

ENDFORM. " display_statistics

&----


*& Form GET_FILEPATH

&----


  • Get the Filepath : Show Windows File Browser Dialog Box(Filepath)

----


FORM get_filepath CHANGING lv_filepath TYPE string.

DATA: l_v_fndfile TYPE string.

CLEAR l_v_fndfile.

l_v_fndfile = text-012.

CALL METHOD cl_gui_frontend_services=>directory_browse

EXPORTING

window_title = l_v_fndfile

initial_folder = 'C:\'

CHANGING

selected_folder = lv_filepath

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

not_supported_by_gui = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE e006 WITH text-013.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. "GET_FILEPATH

&----


  • To validate the file name

----


FORM val_file_name USING l_v_filename TYPE any.

DATA : l_v_res TYPE char1.

CLEAR: l_v_res,

v_filename.

v_filename = l_v_filename.

CALL METHOD cl_gui_frontend_services=>file_exist

EXPORTING

file = v_filename

RECEIVING

result = l_v_res

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

wrong_parameter = 3

not_supported_by_gui = 4

OTHERS = 5.

IF l_v_res IS INITIAL.

MESSAGE e006 WITH text-016.

LEAVE LIST-PROCESSING.

CLEAR: l_v_filename.

ENDIF.

ENDFORM. " val_file_name

&----


*& Form val_file_path

&----


  • To validate the file path

----


FORM val_file_path USING l_v_erfilepath TYPE string.

DATA : l_v_result TYPE char1.

CLEAR: l_v_result.

CALL METHOD cl_gui_frontend_services=>directory_exist

EXPORTING

directory = l_v_erfilepath

RECEIVING

result = l_v_result

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

wrong_parameter = 3

not_supported_by_gui = 4

OTHERS = 5.

IF l_v_result IS INITIAL.

MESSAGE e006 WITH text-013.

LEAVE LIST-PROCESSING.

CLEAR: l_v_erfilepath.

ENDIF.

ENDFORM. " val_file_path

&----


*& Form download_err_file

&----


  • Download the Error File on to the Presentation Server

----


FORM download_err_file TABLES li_upld_err_tab

USING lv_err_fname TYPE any.

DATA : l_v_err_msg TYPE string,

l_v_msg TYPE string.

l_v_msg = text-014.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = lv_err_fname

filetype = 'DAT'

write_field_separator = '|'

TABLES

data_tab = li_upld_err_tab

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.

CONCATENATE l_v_msg lv_err_fname INTO l_v_err_msg.

MESSAGE e006(zartc) WITH text-014.

ENDIF.

ENDFORM. " download_err_file

&----


*& Form CREATE_ERR_BATCH_INP_SESSION

&----


  • Create Batch Input Session for the Errored Records.

----


FORM create_err_batch_inp_session .

IF v_open_grp IS INITIAL.

  • CREATE BATCH INPUT SESSION

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

client = sy-mandt

group = p_ersess

user = sy-uname

keep = 'X'.

v_open_grp = 'X'.

ENDIF.

  • INSERT BDCDATA DETAILS TO THE SESSION.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = k_tcode

TABLES

dynprotab = i_bdcdata

EXCEPTIONS

internal_error = 1

not_open = 2

queue_error = 3

tcode_invalid = 4

printing_invalid = 5

posting_invalid = 6

OTHERS = 7.

IF sy-subrc <> 0.

MESSAGE e006(zartc) WITH text-015.

ENDIF.

ENDFORM. " CREATE_ERR_BATCH_INP_SESSION

&----


*& Form CALL_TRANS_XD01

&----


  • Call Transaction XD01.

----


FORM call_trans_xd01 TABLES li_bdcdata

USING lv_tcode TYPE any

lv_mode TYPE any

lv_update TYPE any

lv_wa_inp_file TYPE ty_inp_file.

DATA : l_v_old_msg_text TYPE string,

l_v_new_msg_text TYPE string.

REFRESH i_messtab.

CLEAR : l_v_old_msg_text,

l_v_new_msg_text .

PERFORM make_ctuparams_struct USING lv_mode

lv_update.

CALL TRANSACTION lv_tcode USING li_bdcdata

OPTIONS FROM wa_ctuparams

MESSAGES INTO i_messtab.

IF NOT sy-subrc IS INITIAL.

READ TABLE i_messtab WITH KEY msgtyp = 'E'

INTO wa_messtab.

IF sy-subrc = 0.

LOOP AT i_messtab INTO wa_messtab.

IF wa_messtab-msgtyp = 'E'.

CALL FUNCTION 'MESSAGE_PREPARE'

EXPORTING

language = sy-langu

msg_id = wa_messtab-msgid

msg_no = wa_messtab-msgnr

msg_var1 = wa_messtab-msgv1(50)

msg_var2 = wa_messtab-msgv2(50)

msg_var3 = wa_messtab-msgv3(50)

msg_var4 = wa_messtab-msgv4(50)

IMPORTING

msg_text = l_v_new_msg_text

EXCEPTIONS

function_not_completed = 1

message_not_found = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE e006(zartc) WITH text-017.

ENDIF.

CONCATENATE l_v_old_msg_text l_v_new_msg_text INTO l_v_new_msg_text SEPARATED BY ';'.

ENDIF.

ENDLOOP.

ELSE.

*-- when an unexpected is triggered

READ TABLE i_messtab WITH KEY msgid = '00'

msgnr = 344

INTO wa_messtab.

IF sy-subrc = 0.

CALL FUNCTION 'MESSAGE_PREPARE'

EXPORTING

language = sy-langu

msg_id = wa_messtab-msgid

msg_no = wa_messtab-msgnr

msg_var1 = wa_messtab-msgv1(50)

msg_var2 = wa_messtab-msgv2(50)

msg_var3 = wa_messtab-msgv3(50)

msg_var4 = wa_messtab-msgv4(50)

IMPORTING

msg_text = l_v_new_msg_text

EXCEPTIONS

function_not_completed = 1

message_not_found = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE e006(zartc) WITH text-017.

ENDIF.

ENDIF.

*-- No Screen Field

READ TABLE i_messtab WITH KEY msgid = '00'

msgnr = 343

INTO wa_messtab.

IF sy-subrc = 0.

CALL FUNCTION 'MESSAGE_PREPARE'

EXPORTING

language = sy-langu

msg_id = wa_messtab-msgid

msg_no = wa_messtab-msgnr

msg_var1 = wa_messtab-msgv1(50)

msg_var2 = wa_messtab-msgv2(50)

msg_var3 = wa_messtab-msgv3(50)

msg_var4 = wa_messtab-msgv4(50)

IMPORTING

msg_text = l_v_new_msg_text

EXCEPTIONS

function_not_completed = 1

message_not_found = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE e006(zartc) WITH text-017.

ENDIF.

ENDIF.

ENDIF.

IF l_v_new_msg_text IS NOT INITIAL.

  • Create an Internal Table having Error Message Generated

PERFORM create_err_log_tab USING lv_wa_inp_file

l_v_new_msg_text.

  • Create Batch Input Session for the Failed Records.

PERFORM create_err_batch_inp_session.

ELSE.

v_tot_no_succ_rec = v_tot_no_succ_rec + 1.

ENDIF.

ELSE.

v_tot_no_succ_rec = v_tot_no_succ_rec + 1.

ENDIF.

ENDFORM. " CALL_TRANS_XD01

&----


*& Form CREATE_ERR_LOG_TAB

&----


  • Create Error Log Table.

----


FORM create_err_log_tab USING lv_wa_inp_file TYPE ty_inp_file

l_v_new_msg_text TYPE any.

REPLACE FIRST OCCURRENCE OF ';' IN l_v_new_msg_text WITH space.

CONCATENATE l_v_new_msg_text k_sep INTO wa_upld_err-err_msg.

wa_upld_err-rec_string = lv_wa_inp_file-rec_string.

APPEND wa_upld_err TO i_upld_err.

ENDFORM. " CREATE_ERR_LOG_TAB

&----


*& Form MAKE_CTUPARAMS_STRUCT

&----


  • Fill CTUPARAMS Structure values. Will be passed to CALL Transaction

----


FORM make_ctuparams_struct USING lv_mode TYPE any

lv_update TYPE any.

wa_ctuparams-dismode = lv_mode.

wa_ctuparams-updmode = lv_update.

ENDFORM. " MAKE_CTUPARAMS_STRUCT

&----


*& Form append_bdcdata_with_compcd

&----


  • Append BDCDATA Table with Company Code.

----


FORM append_bdcdata_with_compcd.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0100',

'FLD' 'BDC_CURSOR' 'RF02D-KTOKD',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'RF02D-BUKRS' wa_map_file-bukrs,

'FLD' 'RF02D-VKORG' wa_map_file-vkorg,

'FLD' 'RF02D-VTWEG' wa_map_file-vtweg,

'FLD' 'RF02D-SPART' wa_map_file-spart,

'FLD' 'RF02D-KTOKD' wa_map_file-ktokd,

'FLD' 'USE_ZAV' 'X',

'SCR' 'SAPMF02D' '0111',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_CURSOR' 'SZA1_D0100-SMTP_ADDR',

'FLD' 'ADDR1_DATA-NAME1' wa_map_file-name1,

'FLD' 'ADDR1_DATA-NAME2' wa_map_file-name2,

'FLD' 'ADDR1_DATA-SORT1' wa_map_file-schtm,

'FLD' 'ADDR1_DATA-STR_SUPPL1' wa_map_file-strt2,

'FLD' 'ADDR1_DATA-STR_SUPPL2' wa_map_file-strt3,

'FLD' 'ADDR1_DATA-STREET' wa_map_file-stras,

'FLD' 'ADDR1_DATA-CITY2' wa_map_file-distt,

'FLD' 'ADDR1_DATA-POST_CODE1' wa_map_file-pstlz,

'FLD' 'ADDR1_DATA-CITY1' wa_map_file-ort01,

'FLD' 'ADDR1_DATA-COUNTRY' wa_map_file-land1,

'FLD' 'ADDR1_DATA-REGION' wa_map_file-regio,

'FLD' 'ADDR1_DATA-TAXJURCODE' wa_map_file-txjcd,

'FLD' 'ADDR1_DATA-TRANSPZONE' wa_map_file-tzone,

'FLD' 'ADDR1_DATA-LANGU' wa_map_file-langu,

'FLD' 'SZA1_D0100-TEL_NUMBER' wa_map_file-telf1,

'FLD' 'SZA1_D0100-TEL_EXTENS' wa_map_file-entxn,

'FLD' 'SZA1_D0100-FAX_NUMBER' wa_map_file-telfx,

'FLD' 'SZA1_D0100-SMTP_ADDR' wa_map_file-email,

'SCR' 'SAPMF02D' '0120',

'FLD' 'BDC_CURSOR' 'KNA1-BBBNR',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNA1-LIFNR' '',

'FLD' 'KNA1-STCEG' wa_map_file-stceg,

'FLD' 'KNA1-BBBNR' wa_map_file-bbbnr,

'FLD' 'KNA1-BAHNS' wa_map_file-bahns,

'SCR' 'SAPMF02D' '0125',

'FLD' 'BDC_CURSOR' 'KNA1-KUKLA',

'FLD' 'KNA1-KUKLA' wa_map_file-kukla,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0130',

'FLD' 'BDC_CURSOR' 'RF02D-KUNNR',

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0340',

'FLD' 'BDC_CURSOR' 'RF02D-KUNNR',

'FLD' 'BDC_OKCODE' '=VW'.

PERFORM append_contact_person.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0210',

'FLD' 'BDC_CURSOR' 'KNB1-ZUAWA',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNB1-AKONT' wa_map_file-akont,

'FLD' 'KNB1-ZUAWA' wa_map_file-zuawa,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0215',

'FLD' 'BDC_CURSOR' 'KNB1-XZVER',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNB1-ZTERM' wa_map_file-zterm,

'FLD' 'KNB1-TOGRU' wa_map_file-togru,

'FLD' 'KNB1-XZVER' wa_map_file-xzver,

'FLD' 'KNB1-ZWELS' wa_map_file-zwels,

'FLD' 'KNB1-LOCKB' wa_map_file-lockb,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0220',

'FLD' 'BDC_CURSOR' 'KNB1-XAUSZ',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNB5-MAHNA' wa_map_file-mahna,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0310',

'FLD' 'BDC_CURSOR' 'KNVV-KDGRP',

*-- Start of Changes by Santosh T G on 08Feb08 - D01K904131

'FLD' 'KNVV-VKBUR' wa_map_file-vkbur,

'FLD' 'KNVV-VKGRP' wa_map_file-vkgrp,

*-- End of Changes by Santosh T G on 08Feb08 - D01K904131

'FLD' 'KNVV-KDGRP' wa_map_file-kdgrp,

'FLD' 'KNVV-VERSG' wa_map_file-versg,

'FLD' 'KNVV-WAERS' wa_map_file-waers,

'FLD' 'KNVV-KONDA' wa_map_file-konda,

'FLD' 'KNVV-KALKS' wa_map_file-kalks,

'FLD' 'KNVV-PLTYP' wa_map_file-pltyp,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0315',

'FLD' 'BDC_CURSOR' 'KNVV-ANTLF',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVV-LPRIO' wa_map_file-lprio,

'FLD' 'KNVV-KZAZU' wa_map_file-kzazu,

'FLD' 'KNVV-VSBED' wa_map_file-vsbed,

'FLD' 'KNVV-VWERK' wa_map_file-vwerk,

'FLD' 'KNVV-AUTLF' wa_map_file-autlf,

'FLD' 'KNVV-KZTLF' wa_map_file-kztlf,

'FLD' 'KNVV-ANTLF' wa_map_file-antlf,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0320',

'FLD' 'BDC_CURSOR' 'KNVV-INCO1',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVV-BOKRE' wa_map_file-bokre,

'FLD' 'KNVV-PRFRE' wa_map_file-prfre,

'FLD' 'KNVV-INCO1' wa_map_file-inco1,

'FLD' 'KNVV-INCO2' wa_map_file-inco2,

'FLD' 'KNVV-ZTERM' wa_map_file-zter1,

'FLD' 'KNVV-KTGRD' wa_map_file-ktgrd,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0324',

'FLD' 'BDC_CURSOR' 'KNVP-PARVW(01)',

  • 'SCR' 'SAPMF02D' '1350',

  • 'FLD' 'BDC_CURSOR' 'KNVI-TAXKD(01)',

  • 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

  • 'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxld,

  • 'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxld,

  • 'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxld,

'FLD' 'BDC_OKCODE' '=ENTR'.

IF p_sestst = 'X'.

PERFORM append_bdcdata_tab USING : 'FLD' 'BDC_CURSOR' 'KNVP-PARVW(01)',

'FLD' 'BDC_OKCODE' '=PF03',

'SCR' 'SAPMF02D' '0100',

'FLD' 'BDC_OKCODE' '=NO'.

ELSE.

PERFORM append_bdcdata_tab USING : "'SCR' 'SAPLSTCX' '0600',

"'FLD' 'BDC_OKCODE' '/EEXIT',

"'FLD' 'BDC_CURSOR' 'SAVE_VERSION',

"'SCR' 'SAPMF02D' '1350',

'FLD' 'BDC_CURSOR' 'RF02D-KUNNR',

'FLD' 'BDC_OKCODE' '=UPDA'.

ENDIF.

ENDFORM. " append_bdcdata_with_compcd

&----


*& Form append_bdcdata_no_compcd

&----


  • Append BDCDATA table without the company code screens.

----


FORM append_bdcdata_no_compcd.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0100',

'FLD' 'BDC_CURSOR' 'RF02D-KTOKD',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'RF02D-BUKRS' wa_map_file-bukrs,

'FLD' 'RF02D-VKORG' wa_map_file-vkorg,

'FLD' 'RF02D-VTWEG' wa_map_file-vtweg,

'FLD' 'RF02D-SPART' wa_map_file-spart,

'FLD' 'RF02D-KTOKD' wa_map_file-ktokd,

'FLD' 'USE_ZAV' 'X',

'SCR' 'SAPMF02D' '0111',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_CURSOR' 'SZA1_D0100-SMTP_ADDR',

'FLD' 'ADDR1_DATA-NAME1' wa_map_file-name1,

'FLD' 'ADDR1_DATA-NAME2' wa_map_file-name2,

'FLD' 'ADDR1_DATA-SORT1' wa_map_file-schtm,

'FLD' 'ADDR1_DATA-STR_SUPPL1' wa_map_file-strt2,

'FLD' 'ADDR1_DATA-STR_SUPPL2' wa_map_file-strt3,

'FLD' 'ADDR1_DATA-STREET' wa_map_file-stras,

'FLD' 'ADDR1_DATA-CITY2' wa_map_file-distt,

'FLD' 'ADDR1_DATA-POST_CODE1' wa_map_file-pstlz,

'FLD' 'ADDR1_DATA-CITY1' wa_map_file-ort01,

'FLD' 'ADDR1_DATA-COUNTRY' wa_map_file-land1,

'FLD' 'ADDR1_DATA-REGION' wa_map_file-regio,

'FLD' 'ADDR1_DATA-TAXJURCODE' wa_map_file-txjcd,

'FLD' 'ADDR1_DATA-TRANSPZONE' wa_map_file-tzone,

'FLD' 'ADDR1_DATA-LANGU' wa_map_file-langu,

'FLD' 'SZA1_D0100-TEL_NUMBER' wa_map_file-telf1,

'FLD' 'SZA1_D0100-TEL_EXTENS' wa_map_file-entxn,

'FLD' 'SZA1_D0100-FAX_NUMBER' wa_map_file-telfx,

'FLD' 'SZA1_D0100-SMTP_ADDR' wa_map_file-email,

'SCR' 'SAPMF02D' '0120',

'FLD' 'BDC_CURSOR' 'KNA1-BBBNR',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNA1-LIFNR' '',

'FLD' 'KNA1-STCEG' wa_map_file-stceg,

'FLD' 'KNA1-BBBNR' wa_map_file-bbbnr,

'FLD' 'KNA1-BAHNS' wa_map_file-bahns,

'SCR' 'SAPMF02D' '0125',

'FLD' 'BDC_CURSOR' 'KNA1-KUKLA',

'FLD' 'KNA1-KUKLA' wa_map_file-kukla,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0340',

'FLD' 'BDC_CURSOR' 'RF02D-KUNNR',

'FLD' 'BDC_OKCODE' '=VW'.

PERFORM append_contact_person.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0310',

'FLD' 'BDC_CURSOR' 'KNVV-KDGRP',

*-- Start of Changes by Santosh T G on 08Feb08 - D01K904131

'FLD' 'KNVV-VKBUR' wa_map_file-vkbur,

'FLD' 'KNVV-VKGRP' wa_map_file-vkgrp,

*-- End of Changes by Santosh T G on 08Feb08 - D01K904131

'FLD' 'KNVV-KDGRP' wa_map_file-kdgrp,

'FLD' 'KNVV-VERSG' wa_map_file-versg,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0315',

'FLD' 'BDC_CURSOR' 'KNVV-ANTLF',

'FLD' 'BDC_OKCODE' '/00',

  • 'FLD' 'KNVV-LPRIO' wa_map_file-lprio,

'FLD' 'KNVV-KZAZU' wa_map_file-kzazu,

  • 'FLD' 'KNVV-VSBED' wa_map_file-vsbed,

'FLD' 'KNVV-VWERK' wa_map_file-vwerk,

'FLD' 'KNVV-AUTLF' wa_map_file-autlf,

'FLD' 'KNVV-KZTLF' wa_map_file-kztlf,

'FLD' 'KNVV-ANTLF' wa_map_file-antlf,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '0320',

'FLD' 'BDC_CURSOR' 'KNVV-INCO1',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVV-BOKRE' wa_map_file-bokre,

'FLD' 'KNVV-PRFRE' wa_map_file-prfre,

'FLD' 'KNVV-INCO1' wa_map_file-inco1,

'FLD' 'KNVV-INCO2' wa_map_file-inco2,

'FLD' 'KNVV-ZTERM' wa_map_file-zter1,

'FLD' 'KNVV-KTGRD' wa_map_file-ktgrd,

'FLD' 'BDC_OKCODE' '=VW',

'SCR' 'SAPMF02D' '1350',

'FLD' 'BDC_CURSOR' 'KNVI-TAXKD(01)'.

CASE wa_map_file-vkorg.

WHEN k_so_1100.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxld,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxld,

'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxld,

'FLD' 'KNVI-TAXKD(05)' wa_map_file-taxld,

  • 'FLD' 'KNVI-TAXKD(06)' wa_map_file-taxld,

  • 'FLD' 'KNVI-TAXKD(07)' wa_map_file-taxld,

'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN k_so_2100.

PERFORM append_bdcdata_tab USING : 'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN k_so_4200 OR '4210'.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(05)' wa_map_file-taxd_bel,

'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN k_so_4400.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(05)' wa_map_file-taxd_bel,

'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN k_so_4500.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(05)' wa_map_file-taxd_bel,

'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN k_so_4600.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(04)' wa_map_file-taxd_bel,

'FLD' 'KNVI-TAXKD(05)' wa_map_file-taxd_bel,

'FLD' 'BDC_OKCODE' '=ENTR'.

WHEN '1110' OR

'1115'.

PERFORM append_bdcdata_tab USING : 'FLD' 'KNVI-TAXKD(01)' wa_map_file-taxld,

'FLD' 'KNVI-TAXKD(02)' wa_map_file-taxld,

'FLD' 'KNVI-TAXKD(03)' wa_map_file-taxld,

'FLD' 'BDC_OKCODE' '=ENTR'.

ENDCASE.

IF p_sestst = 'X'.

PERFORM append_bdcdata_tab USING : 'FLD' 'BDC_CURSOR' 'KNVI-TAXKD(01)',

'FLD' 'BDC_OKCODE' '=PF03',

'SCR' 'SAPMF02D' '0100',

'FLD' 'BDC_OKCODE' '=NO'.

ELSE.

PERFORM append_bdcdata_tab USING : "'SCR' 'SAPLSTCX' '0600',

"'FLD' 'BDC_OKCODE' '/EEXIT',

"'FLD' 'BDC_CURSOR' 'SAVE_VERSION',

"'SCR' 'SAPMF02D' '1350',

'FLD' 'BDC_CURSOR' 'RF02D-KUNNR',

'FLD' 'BDC_OKCODE' '=UPDA'.

ENDIF.

ENDFORM. " append_bdcdata_no_compcd

&----


*& Form CHECK_MANDATORY

&----


  • Check any mandatory field should not be blank.

----


FORM check_mandatory USING p_wa_map_file TYPE ty_mapp_file.

CLEAR : v_mandat_flg.

IF p_cmpcd IS INITIAL.

PERFORM fields_chk_without_cc.

ELSEIF p_cmpcd EQ k_checked.

PERFORM fields_chk_with_cc.

ENDIF.

ENDFORM. " CHECK_MANDATORY

&----


*& Form append_contact_person

&----


  • Append Contact Person Data.

----


FORM append_contact_person.

  • PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360'.

IF NOT wa_map_file-namc1 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(01)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(01)' wa_map_file-namc1,

'FLD' 'KNVK-ABTNR(01)' wa_map_file-abtnr,

'FLD' 'KNVK-PAFKT(01)' wa_map_file-pafkt,

'SCR' 'SAPMF02D' '0360',

  • 'FLD' 'BDC_CURSOR' 'KNVK-NAME1(01)',

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtnr,

'FLD' 'KNVK-PAFKT' wa_map_file-pafkt,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc1,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc1,

'FLD' 'SZA5_D0700-TEL_EXTENS' wa_map_file-extn1,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc1,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emal1,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc2 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(02)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(02)' wa_map_file-namc2,

'FLD' 'KNVK-ABTNR(02)' wa_map_file-abtc2,

'FLD' 'KNVK-PAFKT(02)' wa_map_file-pafc2,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc2,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc2,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc2,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc2,

'FLD' 'SZA5_D0700-TEL_EXTENS' wa_map_file-extn2,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc2,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac2,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc3 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(03)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(03)' wa_map_file-namc3,

'FLD' 'KNVK-ABTNR(03)' wa_map_file-abtc3,

'FLD' 'KNVK-PAFKT(03)' wa_map_file-pafc3,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc3,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc3,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc3,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc3,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc3,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac3,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc4 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(04)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(04)' wa_map_file-namc4,

'FLD' 'KNVK-ABTNR(04)' wa_map_file-abtc4,

'FLD' 'KNVK-PAFKT(04)' wa_map_file-pafc4,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc4,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc4,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc4,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc4,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc4,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac4,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc5 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(05)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(05)' wa_map_file-namc5,

'FLD' 'KNVK-ABTNR(05)' wa_map_file-abtc5,

'FLD' 'KNVK-PAFKT(05)' wa_map_file-pafc5,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc5,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc5,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc5,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc5,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc5,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac5,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc6 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(06)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(06)' wa_map_file-namc6,

'FLD' 'KNVK-ABTNR(06)' wa_map_file-abtc6,

'FLD' 'KNVK-PAFKT(06)' wa_map_file-pafc6,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc6,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc6,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc6,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc6,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc6,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac6,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc7 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(07)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(07)' wa_map_file-namc7,

'FLD' 'KNVK-ABTNR(07)' wa_map_file-abtc7,

'FLD' 'KNVK-PAFKT(07)' wa_map_file-pafc7,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc7,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc7,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc7,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc7,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc7,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac7,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc8 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(08)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(08)' wa_map_file-namc8,

'FLD' 'KNVK-ABTNR(08)' wa_map_file-abtc8,

'FLD' 'KNVK-PAFKT(08)' wa_map_file-pafc8,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc8,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc8,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc8,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc8,

'FLD' 'SZA5_D0700-FAX_NUMBER' wa_map_file-tefc8,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac8,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

IF NOT wa_map_file-namc9 IS INITIAL.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAME1(09)',

  • 'FLD' 'BDC_OKCODE' '=ENTR',

'FLD' 'BDC_OKCODE' '=LSDP',

'FLD' 'KNVK-NAME1(09)' wa_map_file-namc9,

'FLD' 'KNVK-ABTNR(09)' wa_map_file-abtc9,

'FLD' 'KNVK-PAFKT(09)' wa_map_file-pafc9,

  • 'FLD' 'BDC_OKCODE' '=LSDP',

'SCR' 'SAPMF02D' '1361',

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'KNVK-ABTNR' wa_map_file-abtc9,

'FLD' 'KNVK-PAFKT' wa_map_file-pafc9,

'FLD' 'BDC_CURSOR' 'SZA5_D0700-SMTP_ADDR',

'FLD' 'ADDR3_DATA-NAME_LAST' wa_map_file-namc9,

'FLD' 'SZA5_D0700-TEL_NUMBER' wa_map_file-telc9,

'FLD' 'SZA5_D0700-SMTP_ADDR' wa_map_file-emac9,

'FLD' 'BDC_OKCODE' '/00',

'FLD' 'BDC_OKCODE' '=PF03'.

ENDIF.

PERFORM append_bdcdata_tab USING : 'SCR' 'SAPMF02D' '0360',

'FLD' 'BDC_CURSOR' 'KNVK-NAMEV(01)',

'FLD' 'BDC_OKCODE' '=ENTR'.

ENDFORM. " append_contact_person

&----


*& Form fields_chk_without_cc

&----


  • Check Mandatory Fields for Upload without company code data.

----


FORM fields_chk_without_cc .

CLEAR wa_fld_err.

IF wa_map_file-ktokd IS INITIAL.

wa_fld_err-mandat_fld = text-023.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vkorg IS INITIAL.

wa_fld_err-mandat_fld = text-024.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vtweg IS INITIAL.

wa_fld_err-mandat_fld = text-025.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-spart IS INITIAL.

wa_fld_err-mandat_fld = text-026.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-name1 IS INITIAL.

wa_fld_err-mandat_fld = text-027.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-schtm IS INITIAL.

wa_fld_err-mandat_fld = text-028.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-pstlz IS INITIAL.

wa_fld_err-mandat_fld = text-029.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-ort01 IS INITIAL.

wa_fld_err-mandat_fld = text-030.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-land1 IS INITIAL.

wa_fld_err-mandat_fld = text-031.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-regio IS INITIAL.

wa_fld_err-mandat_fld = text-032.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-tzone IS INITIAL.

wa_fld_err-mandat_fld = text-033.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-txjcd IS INITIAL.

wa_fld_err-mandat_fld = text-034.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-langu IS INITIAL.

wa_fld_err-mandat_fld = text-035.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-versg IS INITIAL.

wa_fld_err-mandat_fld = text-044.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vwerk IS INITIAL.

wa_fld_err-mandat_fld = text-046.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-inco1 IS INITIAL.

wa_fld_err-mandat_fld = text-047.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-inco2 IS INITIAL.

wa_fld_err-mandat_fld = text-048.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-ktgrd IS INITIAL.

wa_fld_err-mandat_fld = text-050.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-taxld IS INITIAL.

wa_fld_err-mandat_fld = text-051.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

ENDFORM. " fields_chk_without_cc

&----


*& Form fields_chk_with_cc

&----


  • Check Mandatory Fields for Upload with company code data.

----


FORM fields_chk_with_cc .

CLEAR wa_fld_err.

IF wa_map_file-ktokd IS INITIAL.

wa_fld_err-mandat_fld = text-023.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vkorg IS INITIAL.

wa_fld_err-mandat_fld = text-024.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vtweg IS INITIAL.

wa_fld_err-mandat_fld = text-025.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-spart IS INITIAL.

wa_fld_err-mandat_fld = text-026.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-name1 IS INITIAL.

wa_fld_err-mandat_fld = text-027.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-schtm IS INITIAL.

wa_fld_err-mandat_fld = text-028.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-pstlz IS INITIAL.

wa_fld_err-mandat_fld = text-029.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-ort01 IS INITIAL.

wa_fld_err-mandat_fld = text-030.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-land1 IS INITIAL.

wa_fld_err-mandat_fld = text-031.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-regio IS INITIAL.

wa_fld_err-mandat_fld = text-032.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-tzone IS INITIAL.

wa_fld_err-mandat_fld = text-033.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-txjcd IS INITIAL.

wa_fld_err-mandat_fld = text-034.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-langu IS INITIAL.

wa_fld_err-mandat_fld = text-035.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-kukla IS INITIAL.

wa_fld_err-mandat_fld = text-036.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-akont IS INITIAL.

wa_fld_err-mandat_fld = text-037.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-zterm IS INITIAL.

wa_fld_err-mandat_fld = text-038.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vkbur IS INITIAL.

wa_fld_err-mandat_fld = text-039.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vkgrp IS INITIAL.

wa_fld_err-mandat_fld = text-040.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-waers IS INITIAL.

wa_fld_err-mandat_fld = text-041.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-kalks IS INITIAL.

wa_fld_err-mandat_fld = text-042.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-pltyp IS INITIAL.

wa_fld_err-mandat_fld = text-043.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-versg IS INITIAL.

wa_fld_err-mandat_fld = text-044.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vsbed IS INITIAL.

wa_fld_err-mandat_fld = text-045.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-vwerk IS INITIAL.

wa_fld_err-mandat_fld = text-046.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-inco1 IS INITIAL.

wa_fld_err-mandat_fld = text-047.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-inco2 IS INITIAL.

wa_fld_err-mandat_fld = text-048.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-zter1 IS INITIAL.

wa_fld_err-mandat_fld = text-049.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-ktgrd IS INITIAL.

wa_fld_err-mandat_fld = text-050.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

IF wa_map_file-taxld IS INITIAL.

wa_fld_err-mandat_fld = text-051.

APPEND wa_fld_err TO i_fld_err.

CLEAR wa_fld_err.

ENDIF.

ENDFORM. " fields_chk_with_cc

Regards,

Mayank