‎2008 Mar 12 12:47 PM
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.
‎2008 Mar 12 12:50 PM
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.
‎2008 Mar 12 12:58 PM
‎2008 Mar 12 12:58 PM
‎2008 Mar 12 1:04 PM
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