‎2008 Mar 10 5:03 AM
‎2008 Mar 10 5:09 AM
Hi,
&----
*& Report ZPROG65_11 *
*& *
&----
REPORT zprog65_11 .
TABLES : lfa1.
TYPES : BEGIN OF ven ,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs ,
ekorg LIKE rf02k-ekorg,
ktokk LIKE rf02k-ktokk,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
spars LIKE lfa1-spras,
akont LIKE lfb1-akont,
fdgrv LIKE lfb1-fdgrv,
waers LIKE lfm1-waers,
anred LIKE lfa1-anred ,
END OF ven .
DATA : t_ven TYPE TABLE OF ven WITH HEADER LINE ,
t_bdc LIKE TABLE OF bdcdata WITH HEADER LINE .
DATA : v_file TYPE string ,
v_temp TYPE i ,
v_lifnr(10) TYPE n,
v_hdate LIKE sy-datum.
DATA : c_tcode LIKE sy-tcode ."value 'XK01'.
PARAMETERS : p_file(30) DEFAULT 'c:\vendor1_11.txt',
p_group LIKE apqi-groupid.
START-OF-SELECTION .
MOVE p_file TO v_file .
PERFORM file_upload TABLES t_ven USING v_file .
v_hdate = sy-datum - 1.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
DEST = FILLER8
group = p_group
holddate = v_hdate
keep = 'X'
user = sy-uname
*
IMPORTING
QID =
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
OTHERS = 11
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT t_ven .
clear lfa1.
v_temp = 0.
MOVE t_ven-lifnr TO v_lifnr.
SELECT SINGLE * FROM lfa1 INTO lfa1 WHERE lifnr =
v_lifnr.
IF sy-subrc = 0.
WRITE 😕 'found'.
v_temp = 1.
else.
write: / 'not found'.
ENDIF.
IF v_temp = 0.
c_tcode = 'xk01'.
PERFORM fill_ddc_table .
ELSEIF v_temp = 1.
c_tcode = 'xk02'.
PERFORM fill_bdc_table .
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = c_tcode
TABLES
dynprotab = t_bdc
EXCEPTIONS
internal_error = 1
OTHERS = 7.
REFRESH t_bdc .
ENDLOOP .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
&----
*& Form file_upload
&----
text
----
-->P_T_VEN text
-->P_V_FILE text
----
FORM file_upload TABLES p_tven STRUCTURE t_ven
USING p_vfile.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_vfile
filetype = 'ASC'
has_field_separator = 'X'
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = p_tven
EXCEPTIONS
file_open_error = 1
file_read_error = 2
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " file_upload
&----
*& Form FILL_DDC_TABLE
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_ddc_table .
SCREN 100
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0100'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-LIFNR'.
t_bdc-fval = t_ven-lifnr .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-BUKRS'.
t_bdc-fval = t_ven-bukrs.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-EKORG'.
t_bdc-fval = t_ven-ekorg.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-KTOKK'.
t_bdc-fval = t_ven-ktokk.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
110
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0110'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-NAME1'.
t_bdc-fval = t_ven-name1 .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-SORTL'.
t_bdc-fval = t_ven-sortl.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-LAND1'.
t_bdc-fval = t_ven-land1.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-SPRAS'.
t_bdc-fval = t_ven-spars.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
120
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0120'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
130
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0130'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '=ENTR'.
APPEND t_bdc. CLEAR t_bdc.
210
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0210'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFB1-AKONT'.
t_bdc-fval = t_ven-akont .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFB1-FDGRV'.
t_bdc-fval = t_ven-fdgrv.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
215
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0215'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
220
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0220'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
310
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0310'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFM1-WAERS'.
t_bdc-fval = t_ven-waers .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
320
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0320'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '=UPDA'.
APPEND t_bdc. CLEAR t_bdc.
ENDFORM. "FILL_DDC_TABLE
" FILL_DDC_TABLE
&----
*& Form FILL_BDC_TABLE
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_bdc_table .
SCREN 101
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0101'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-LIFNR'.
t_bdc-fval = t_ven-lifnr .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-BUKRS'.
t_bdc-fval = t_ven-bukrs.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'RF02K-EKORG'.
t_bdc-fval = t_ven-ekorg.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
110
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0110'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'lfa1-anred'.
t_bdc-fval = t_ven-anred .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-NAME1'.
t_bdc-fval = t_ven-name1 .
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-SORTL'.
t_bdc-fval = t_ven-sortl.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-LAND1'.
t_bdc-fval = t_ven-land1.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'LFA1-SPRAS'.
t_bdc-fval = t_ven-spars.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '/00'.
APPEND t_bdc. CLEAR t_bdc.
300
t_bdc-program = 'SAPMF02K'.
t_bdc-dynpro = '0300'.
t_bdc-dynbegin = 'X'.
APPEND t_bdc. CLEAR t_bdc.
t_bdc-fnam = 'BDC_OKCODE'.
t_bdc-fval = '=YES'.
APPEND t_bdc. CLEAR t_bdc.
ENDFORM. " FILL_BDC_TABLE
Regards
‎2008 Mar 10 5:11 AM
Hi,
REPORT ztest_278
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1.
START-OF-SELECTION.
PERFORM open_group.
PERFORM bdc_dynpro USING 'SAPMSRD0' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SHOW'.
PERFORM bdc_field USING 'RSRD1-TBMA'
'X'.
PERFORM bdc_field USING 'RSRD1-TBMA_VAL'
'LFBK'.
PERFORM bdc_field USING 'RSRD1-TYMA_VAL'
'/SMB/'.
PERFORM bdc_field USING 'RSRD1-SHMA_VAL'
'Z_TEST278'.
PERFORM bdc_dynpro USING 'SAPLSD41' '2200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MAIN'.
PERFORM bdc_dynpro USING 'SAPLSD41' '2200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=F4V'.
PERFORM bdc_dynpro USING 'SAPLSD41' '2200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=REFF'.
PERFORM bdc_dynpro USING 'SAPLSD41' '2200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MAIN'.
PERFORM bdc_dynpro USING 'SAPLSD41' '2200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=WB_BACK'.
PERFORM bdc_dynpro USING 'SAPMSRD0' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'RSRD1-TBMA'
'X'.
PERFORM bdc_field USING 'RSRD1-TBMA_VAL'
'LFBK'.
PERFORM bdc_field USING 'RSRD1-TYMA_VAL'
'/SMB/'.
PERFORM bdc_field USING 'RSRD1-SHMA_VAL'
'Z_TEST278'.
PERFORM bdc_transaction USING 'SE11'.
PERFORM close_group.
Please reward if its helpful.
regards,
Abhishek
‎2008 Mar 10 5:12 AM
Hi,
REPORT YHUS40 .
---Declaration of internal table Fields-
data: begin of itab occurs 0,
LIFNR like RF02K-LIFNR,
KTOKK like RF02K-KTOKK,
NAME1 like LFA1-NAME1,
SORTL like LFA1-SORTL,
LAND1 LIKE LFA1-LAND1,
SPRAS(2) type c ,
END OF ITAB.
*----Declaration of Itab
DATA: I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
----Uploading**...(Pattern).
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\WINDOWS\DESKTOP\NIRMALA.TXT'
FILETYPE = 'ASC'
TABLES
data_tab = ITAB.
*---Call function pattren(opening).
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
GROUP = 'YHUS40'
HOLDDATE = SY-DATUM
KEEP = ' '
USER = SY-UNAME.
LOOP AT ITAB.
Filling the BDC -DATA.
perform fill_bdc_Data.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
dynprotab = I_BDCDATA.
REFRESH I_BDCDATA.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
&----
*& Form fill_bdc_Data
&----
text
----
--> p1 text
<-- p2 text
----
form fill_bdc_Data.
*---SCREEN 1
i_bdcdata-program = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0100'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'RF02K-LIFNR'.
I_BDCDATA-FVAL = itab-lifnr.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'RF02K-KTOKK'.
I_BDCDATA-FVAL = itab-KTOKK.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-fnam = 'BDC_OKCODE' .
i_bdcdata-fval = '/00'.
append i_bdcdata.
clear i_bdcdata.
*--Second Screen
i_bdcdata-program = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0110'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'LFA1-NAME1'.
I_BDCDATA-FVAL = itab-name1.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'LFA1-SORTL'.
I_BDCDATA-FVAL = itab-SORTL.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'LFA1-LAND1'.
I_BDCDATA-FVAL = itab-LAND1.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-FNAM = 'LFA1-SPRAS'.
I_BDCDATA-FVAL = itab-SPRAS.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
i_bdcdata-fnam = 'BDC_OKCODE' .
i_bdcdata-fval = '/00'.
append i_bdcdata.
clear i_bdcdata.
endform. " fill_bdc_Data
‎2008 Mar 10 5:15 AM
Hi,
REPORT ZSATBDC1_1 NO STANDARD PAGE HEADING MESSAGE-ID ZT.
************************************************************************
Declaration of internal tables
************************************************************************
internal table for selecting data from flat file
DATA : BEGIN OF IT_DATA OCCURS 0,
MBRSH, " Industry sector
MTART(4), " Material type
KZSEL, " Checkbox
MAKTX(40), " Material description
MEINS(3), " Base unit of measure
MATKL(9), " Material group
BISMT(18), " Old material number
END OF IT_DATA.
internal table for bdcdata
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
internal table to handle messages
DATA : IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
************************************************************************
Variables & Flag declaration
************************************************************************
variables declaration
DATA : V_MESG(50).
flag declaration
DATA : FG_BDC,
FG_FLAG1 TYPE I.
************************************************************************
selection screen
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
************************************************************************
parameter
************************************************************************
PARAMETERS : P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK1.
************************************************************************
initialization
************************************************************************
INITIALIZATION.
peform to initialize parameter
PERFORM INIT_PARM.
************************************************************************
start of selection
************************************************************************
start-of-selection.
perform to upload it_data
PERFORM UP_LOAD_IT_DATA.
perform transfer data
PERFORM TRANSFER_DATA.
end of selection
END-OF-SELECTION.
&----
*& Form INIT_PARM
&----
Initializing parameter
-
FORM INIT_PARM.
P_FILE = 'C:\'.
ENDFORM. " INIT_PARM
&----
*& Form UP_LOAD_IT_DATA
&----
Transfering data from file to internal table
-
FORM UP_LOAD_IT_DATA.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FILE
FILETYPE = 'ASC'
TABLES
DATA_TAB = IT_DATA
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
IF SY-SUBRC = 2 .
FG_FLAG1 = 1.
MESSAGE I001.
ENDIF.
ENDFORM. " UP_LOAD_IT_DATA
&----
*& Form TRANSFER_DATA
&----
Processing the data
-
FORM TRANSFER_DATA.
FG_BDC = 'N'.
LOOP AT IT_DATA.
perform to fill it_bdcdata.
PERFORM FILL_IT_BDCDATA.
CALL TRANSACTION 'MM01' USING IT_BDCDATA MODE 'N' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
IF SY-SUBRC 0.
FG_FLAG1 = 1.
if error occurs in transaction mode run bdc session for that data
PERFORM BDC_PROCESS.
ENDIF.
Handles error messages
PERFORM ERROR_MESSAGES.
CLEAR : IT_BDCDATA,IT_DATA,IT_MESSAGES.
REFRESH : IT_BDCDATA,IT_MESSAGES.
ENDLOOP.
IF FG_FLAG1 = 0.
MESSAGE I003.
ENDIF.
IF FG_BDC = 'O'.
close bdc if it is open
PERFORM CLOSE_BDC.
ENDIF.
ENDFORM. " TRANSFER_DATA
&----
*& Form FILL_IT_BDCDATA
&----
Filling Bdcdata structure with it_data
Some fields have been commented for future updations
-
FORM FILL_IT_BDCDATA.
PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0060'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',
: 'BDC_CURSOR' 'RMMG1_REF-MATNR',
: 'RMMG1-MBRSH' IT_DATA-MBRSH,
: 'RMMG1-MTART' IT_DATA-MTART.
PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=RESA'.
PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=ENTR',
: 'MSICHTAUSW-KZSEL(01)' IT_DATA-KZSEL.
PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=BU',
: 'BDC_SUBSCR' 'SAPLMGMM' & ' 2000TABFRA1',
: 'BDC_SUBSCR' 'SAPLMGD1' & ' 1002SUB1',
: 'BDC_CURSOR' 'MAKT-MAKTX',
: 'MAKT-MAKTX' IT_DATA-MAKTX,
: 'BDC_SUBSCR' 'SAPLMGD1' & ' 2001SUB2',
: 'MARA-MEINS' IT_DATA-MEINS,
: 'MARA-MATKL' IT_DATA-MATKL,
: 'MARA-BISMT' IT_DATA-BISMT,
: 'BDC_OKCODE' '=BU'.
*perform bdc_field using 'MARA-EXTWG' ''.
*perform bdc_field using 'MARA-LABOR' ''.
*perform bdc_field using 'MARA-KOSCH' ''.
*perform bdc_field using 'MARA-MSTAE' ''.
*perform bdc_field using 'MARA-MSTDE' ''.
*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2561SUB3'.
*perform bdc_field using 'MARA-BEGRU' ''.
*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2007SUB4'.
*perform bdc_field using 'MARA-NTGEW' ''.
*perform bdc_field using 'MARA-BRGEW' ''.
*perform bdc_field using 'MARA-GEWEI' ''.
*perform bdc_field using 'MARA-VOLUM' ''.
*perform bdc_field using 'MARA-VOLEH' ''.
*PERFORM BDC_FIELD USING 'MARA-GROES' ''.
*perform bdc_field using 'MARA-EAN11' ''.
*perform bdc_field using 'MARA-NUMTP' ''.
*PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'SAPLMGD1' & ' 2005SUB5'.
*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2011SUB6'.
*perform bdc_field using 'MARA-MAGRV' ''.
ENDFORM. " FILL_IT_BDCDATA
&----
*& Form BDC_DYNPRO
&----
Filling the it_bdcdata table with program name & screen number
-
FORM BDC_DYNPRO USING PROGRAM LIKE BDCDATA-PROGRAM
DYNPRO LIKE BDCDATA-DYNPRO.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
ENDFORM. " BDC_DYNPRO
&----
*& Form BDC_FIELD
&----
Filling it_bdcdata with field name and field value
-
FORM BDC_FIELD USING FNAM LIKE BDCDATA-FNAM
FVAL.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
ENDFORM. " BDC_FIELD
&----
*& Form ERROR_MESSAGES
&----
Displaying error messages
-
FORM ERROR_MESSAGES.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = SY-MSGID
LANG = '-D'
IMPORTING
MSG = V_MESG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
LOOP AT IT_MESSAGES WHERE MSGTYP = 'E'.
WRITE : / 'Message :'(I06) ,V_MESG.
CLEAR IT_MESSAGES.
ENDLOOP.
ENDFORM. " ERROR_MESSAGES
&----
*& Form BDC_PROCESS
&----
Open bdc session if call transaction fails
-
FORM BDC_PROCESS.
IF FG_BDC = 'N'.
open bdc session
PERFORM OPEN_BDC.
FG_BDC = 'O'.
ENDIF.
IF FG_BDC = 'O'.
insert data into bdc session
PERFORM INSERT_BDC.
ENDIF.
ENDFORM. " BDC_PROCESS
&----
*& Form OPEN_BDC
&----
Calling function module to open bdc session
-
FORM OPEN_BDC.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'SMM1'
KEEP = 'X'
USER = SY-UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
ENDFORM. " OPEN_BDC
&----
*& Form INSERT_BDC
&----
Insert it_bdcdata into bdc by calling function module bdc_insert
-
FORM INSERT_BDC.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MM01'
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
ENDFORM. " INSERT_BDC
&----
*& Form CLOSE_BDC
&----
Closing bdc session
-
FORM CLOSE_BDC.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
ENDFORM. " CLOSE_BDC
Thanks & Regards,
Keerthi vasan.M