‎2006 Oct 16 12:26 PM
hi all,
can we use both methods call transaction & session method
in a same program for data uploading.
if yes then how .
plz give me the steps for it?
thanks & regards
sanjeev
‎2006 Oct 16 12:31 PM
hi ,
we can use both the methods in same program.
see the sample code here:
FORM update_processing.
PERFORM construct_bdc_data .
ENDFORM. " UPDATE_PROCESSING
*
&----
*& Form Construct_BDC_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM construct_bdc_data .
DATA: w_qty_tx(17),
w_meins LIKE mara-meins.
LOOP AT g_t_tab.
REFRESH bdcdata.
REFRESH t_msg.
PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MKPF-BUDAT'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MKPF-BKTXT' '93900 Golive'.
PERFORM bdc_field USING 'RM07M-BWARTWA' '309'.
PERFORM bdc_field USING 'RM07M-WERKS' g_t_tab-owerks.
PERFORM bdc_field USING 'RM07M-LGORT' g_t_tab-olgort.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MSEGK-UMWRK' p_nwerks.
PERFORM bdc_field USING 'MSEGK-UMLGO' p_nlgort.
PERFORM bdc_field USING 'MSEGK-UMMAT' g_t_tab-nmatnr.
PERFORM bdc_field USING 'MSEG-MATNR(01)' g_t_tab-omatnr.
w_qty_tx = g_t_tab-erfmg.
PERFORM bdc_field USING 'MSEG-ERFMG(01)' w_qty_tx.
CLEAR w_meins.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = g_t_tab-nmatnr
IMPORTING
output = g_t_tab-nmatnr.
SELECT SINGLE meins
INTO w_meins
FROM mara
WHERE matnr = g_t_tab-nmatnr.
PERFORM bdc_field USING 'MSEG-ERFME(01)' w_meins.
PERFORM bdc_field USING 'DKACB-FMORE' 'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM call_transaction.
ENDLOOP.
DESCRIBE TABLE g_t_mat LINES g_f_mblnr.
ENDFORM. " Construct_BDC_data
&----
*& Form call_transaction
&----
text
----
--> p1 text
<-- p2 text
*----
FORM call_transaction .
DATA: w_mode VALUE 'N'.
Exucute transaction via Call Transaction
CALL TRANSACTION 'MB1B'
USING bdcdata
MODE w_mode
UPDATE 'S'
MESSAGES INTO t_msg .
check for all terminal error messages
READ TABLE t_msg WITH KEY msgtyp = 'S'
msgid = 'M7'
msgnr = '060'.
IF sy-subrc EQ 0.
g_t_mat-mblnr = t_msg-msgv1.
APPEND g_t_mat.
ADD 1 TO g_f_mblnr.
ENDIF.
ENDFORM. " CALL TRANSACTION
&----
*& Form bdc_dynpro *
&----
*& text *
&----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field *
&----
*& text *
&----
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. " bdc_field
&----
*& Form GET_MSG_TEXT
&----
text
----
-->P_T_MSG_MSGID text
-->P_T_MSG_MSGNR text
<--P_W_DETAILS_MSG text
----
*
FORM get_msg_text USING p_msgid
p_msgnr
CHANGING p_text.
DATA : w_arbgb_tx LIKE t100-arbgb.
DATA : t100 LIKE t100.
GET MESSAGE TEXT
w_arbgb_tx = p_msgid.
CALL FUNCTION 'T100_SINGLE_READ'
EXPORTING
t100_sprsl = sy-langu
t100_arbgb = w_arbgb_tx
t100_msgnr = p_msgnr
IMPORTING
wt100 = t100
EXCEPTIONS
not_found = 1
OTHERS = 2.
CHECK sy-subrc = 0.
p_text = t100-text.
ENDFORM. " GET_MSG_TEXT
&----
*& Form bdc_create *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_create .
PERFORM bdc_open_group.
PERFORM bdcdata_populate.
PERFORM bdc_close.
ENDFORM. " bdc_create
&----
*& Form bdc_open_group *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_open_group .
DATA : w_user_tx LIKE apqi-userid.
w_user_tx = sy-uname.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'LT06'
keep = 'X'
user = w_user_tx
EXCEPTIONS
client_invalid = 01
destination_invalid = 02
group_invalid = 03
holddate_invalid = 04
internal_error = 05
queue_error = 06
running = 07
user_invalid = 08.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC OPEN ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_open_group
&----
*& Form bdc_populate *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdcdata_populate .
LOOP AT g_t_mat.
REFRESH bdcdata.
PERFORM bdc_dynpro1 USING 'SAPML02B' '0203'.
PERFORM bdc_field1 USING 'BDC_CURSOR' 'RL02B-DUNKL'.
PERFORM bdc_field1 USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field1 USING 'RL02B-MBLNR' g_t_mat-mblnr.
write sy-datum to w_date dd/mm/yyyy.
move w_date+6(4) TO w_date1.
PERFORM bdc_field1 USING 'RL02B-MJAHR' w_date1.
PERFORM bdc_field1 USING 'RL02B-LGNUM' p_lgnum.
PERFORM bdc_field1 USING 'RL02B-DUNKL' 'D'.
w_tcode = 'LT06'.
PERFORM bdc_insert.
ENDLOOP.
ENDFORM. " bdcdata_populate
&----
*& Form bdc_insert *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_insert.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = w_tcode
TABLES
dynprotab = bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC INSERT ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_insert
&----
*& Form bdc_close1 *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_close.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC CLOSE ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_close
&----
*& Form bdc_dynpro1 *
&----
*& text *
&----
FORM bdc_dynpro1 USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_feild1 *
&----
*& text *
&----
FORM bdc_field1 USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. " bdc_field
first is call transaction for MB1B second is SESSION FOR LT06
regards,
Message was edited by: shishupalreddy ramreddy
‎2006 Oct 16 12:27 PM
‎2006 Oct 16 12:30 PM
how?
plz specify it.
or if u have done this then send me the code for it.
it will be helpful for me otherwise just explain me how it is possible?
‎2006 Oct 16 12:31 PM
hi ,
we can use both the methods in same program.
see the sample code here:
FORM update_processing.
PERFORM construct_bdc_data .
ENDFORM. " UPDATE_PROCESSING
*
&----
*& Form Construct_BDC_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM construct_bdc_data .
DATA: w_qty_tx(17),
w_meins LIKE mara-meins.
LOOP AT g_t_tab.
REFRESH bdcdata.
REFRESH t_msg.
PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MKPF-BUDAT'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MKPF-BKTXT' '93900 Golive'.
PERFORM bdc_field USING 'RM07M-BWARTWA' '309'.
PERFORM bdc_field USING 'RM07M-WERKS' g_t_tab-owerks.
PERFORM bdc_field USING 'RM07M-LGORT' g_t_tab-olgort.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'MSEGK-UMWRK' p_nwerks.
PERFORM bdc_field USING 'MSEGK-UMLGO' p_nlgort.
PERFORM bdc_field USING 'MSEGK-UMMAT' g_t_tab-nmatnr.
PERFORM bdc_field USING 'MSEG-MATNR(01)' g_t_tab-omatnr.
w_qty_tx = g_t_tab-erfmg.
PERFORM bdc_field USING 'MSEG-ERFMG(01)' w_qty_tx.
CLEAR w_meins.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = g_t_tab-nmatnr
IMPORTING
output = g_t_tab-nmatnr.
SELECT SINGLE meins
INTO w_meins
FROM mara
WHERE matnr = g_t_tab-nmatnr.
PERFORM bdc_field USING 'MSEG-ERFME(01)' w_meins.
PERFORM bdc_field USING 'DKACB-FMORE' 'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM call_transaction.
ENDLOOP.
DESCRIBE TABLE g_t_mat LINES g_f_mblnr.
ENDFORM. " Construct_BDC_data
&----
*& Form call_transaction
&----
text
----
--> p1 text
<-- p2 text
*----
FORM call_transaction .
DATA: w_mode VALUE 'N'.
Exucute transaction via Call Transaction
CALL TRANSACTION 'MB1B'
USING bdcdata
MODE w_mode
UPDATE 'S'
MESSAGES INTO t_msg .
check for all terminal error messages
READ TABLE t_msg WITH KEY msgtyp = 'S'
msgid = 'M7'
msgnr = '060'.
IF sy-subrc EQ 0.
g_t_mat-mblnr = t_msg-msgv1.
APPEND g_t_mat.
ADD 1 TO g_f_mblnr.
ENDIF.
ENDFORM. " CALL TRANSACTION
&----
*& Form bdc_dynpro *
&----
*& text *
&----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field *
&----
*& text *
&----
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. " bdc_field
&----
*& Form GET_MSG_TEXT
&----
text
----
-->P_T_MSG_MSGID text
-->P_T_MSG_MSGNR text
<--P_W_DETAILS_MSG text
----
*
FORM get_msg_text USING p_msgid
p_msgnr
CHANGING p_text.
DATA : w_arbgb_tx LIKE t100-arbgb.
DATA : t100 LIKE t100.
GET MESSAGE TEXT
w_arbgb_tx = p_msgid.
CALL FUNCTION 'T100_SINGLE_READ'
EXPORTING
t100_sprsl = sy-langu
t100_arbgb = w_arbgb_tx
t100_msgnr = p_msgnr
IMPORTING
wt100 = t100
EXCEPTIONS
not_found = 1
OTHERS = 2.
CHECK sy-subrc = 0.
p_text = t100-text.
ENDFORM. " GET_MSG_TEXT
&----
*& Form bdc_create *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_create .
PERFORM bdc_open_group.
PERFORM bdcdata_populate.
PERFORM bdc_close.
ENDFORM. " bdc_create
&----
*& Form bdc_open_group *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_open_group .
DATA : w_user_tx LIKE apqi-userid.
w_user_tx = sy-uname.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'LT06'
keep = 'X'
user = w_user_tx
EXCEPTIONS
client_invalid = 01
destination_invalid = 02
group_invalid = 03
holddate_invalid = 04
internal_error = 05
queue_error = 06
running = 07
user_invalid = 08.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC OPEN ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_open_group
&----
*& Form bdc_populate *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdcdata_populate .
LOOP AT g_t_mat.
REFRESH bdcdata.
PERFORM bdc_dynpro1 USING 'SAPML02B' '0203'.
PERFORM bdc_field1 USING 'BDC_CURSOR' 'RL02B-DUNKL'.
PERFORM bdc_field1 USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field1 USING 'RL02B-MBLNR' g_t_mat-mblnr.
write sy-datum to w_date dd/mm/yyyy.
move w_date+6(4) TO w_date1.
PERFORM bdc_field1 USING 'RL02B-MJAHR' w_date1.
PERFORM bdc_field1 USING 'RL02B-LGNUM' p_lgnum.
PERFORM bdc_field1 USING 'RL02B-DUNKL' 'D'.
w_tcode = 'LT06'.
PERFORM bdc_insert.
ENDLOOP.
ENDFORM. " bdcdata_populate
&----
*& Form bdc_insert *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_insert.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = w_tcode
TABLES
dynprotab = bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC INSERT ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_insert
&----
*& Form bdc_close1 *
&----
*& text *
&----
*& --> p1 text *
*& <-- p2 text *
&----
FORM bdc_close.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'BDC CLOSE ERROR', sy-subrc.
ENDCASE.
ENDFORM. " bdc_close
&----
*& Form bdc_dynpro1 *
&----
*& text *
&----
FORM bdc_dynpro1 USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_feild1 *
&----
*& text *
&----
FORM bdc_field1 USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. " bdc_field
first is call transaction for MB1B second is SESSION FOR LT06
regards,
Message was edited by: shishupalreddy ramreddy
‎2006 Oct 16 12:56 PM
hi reddy
thanks for sending the code .
but can u plz explain me that what is this program doing?
and how it will run both the methods after executing it?
plz make it clear.
‎2006 Oct 16 12:38 PM
Hi,
Go thru this code.
report yramu_bdc_stvg
no standard page heading line-size 255.
----
INTERNAL TABLES *
----
DATA: BEGIN OF IT_KNA1 OCCURS 0,
CUSTOMER LIKE RF02D-KUNNR,
COMPANY_CODE LIKE RF02D-BUKRS,
ACCOUNT_GROUP LIKE RF02D-KTOKD,
TITLE LIKE KNA1-ANRED,
NAME LIKE KNA1-NAME1,
SEARCH_TERM LIKE KNA1-SORTL,
STREET LIKE KNA1-STRAS,
CITY LIKE KNA1-ORT01,
POSTAL_CODE LIKE KNA1-PSTLZ,
COUNTRY LIKE KNA1-LAND1,
LANGUAGE_KEY LIKE KNA1-SPRAS,
CNTRY LIKE KNBK-BANKS,
BANK_KEY LIKE KNBK-BANKL,
BANK_ACCOUNT LIKE KNBK-BANKN,
REC_ACCOUNT LIKE KNB1-AKONT,
END OF IT_KNA1.
DATA: IT_BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: IT_MESSAGES TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
----
SELECTION SCREEN *
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER P_FILE TYPE RLGRAP-FILENAME DEFAULT 'C:\CUSTOMER.TXT'
OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
----
AT SELECTION SCREEN *
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM HELP_FILE USING P_FILE.
----
START OF SELECTION *
----
START-OF-SELECTION.
*UPLOADING THE FILE FROM WORKSTATION
PERFORM UPLOAD_FILE USING P_FILE.
*POPULATING DATA.
PERFORM POPULATE_FILE.
&----
*& Form HELP_FILE
&----
text
----
-->P_P_FILE text
----
form HELP_FILE using p_p_file.
DATA: L_FILE TYPE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = L_FILE.
P_P_FILE = L_FILE.
endform. " HELP_FILE
&----
*& Form UPLOAD_FILE
&----
text
----
-->P_P_FILE text
----
form UPLOAD_FILE using p_p_file.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = 'P_P_FILE'
FILETYPE = 'DAT'
ITEM = ' '
FILEMASK_MASK = ' '
FILEMASK_TEXT = ' '
FILETYPE_NO_CHANGE = ' '
FILEMASK_ALL = ' '
FILETYPE_NO_SHOW = ' '
LINE_EXIT = ' '
USER_FORM = ' '
USER_PROG = ' '
SILENT = 'S'
IMPORTING
FILESIZE =
CANCEL =
ACT_FILENAME =
ACT_FILETYPE =
TABLES
data_tab = IT_KNA1
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
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. " UPLOAD_FILE
&----
*& Form POPULATE_FILE
&----
text
----
--> p1 text
<-- p2 text
----
form POPULATE_FILE .
DATA: L_STRING TYPE STRING,
L_COUNTER(2) TYPE N,
V_INDEX TYPE SY-TABIX.
LOOP AT IT_KNA1.
V_INDEX = SY-TABIX.
AT NEW CUSTOMER.
READ TABLE IT_KNA1 INDEX V_INDEX.
IF SY-SUBRC = 0.
perform bdc_dynpro using 'SAPMF02D' '0105'.
perform bdc_field using 'BDC_CURSOR'
'RF02D-KTOKD'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02D-KUNNR'
IT_KNA1-CUSTOMER.
perform bdc_field using 'RF02D-BUKRS'
IT_KNA1-COMPANY_CODE.
perform bdc_field using 'RF02D-KTOKD'
IT_KNA1-ACCOUNT_GROUP.
*PERFORM BDC_FIELD USING 'RF02D-D0130'
'X'.
perform bdc_dynpro using 'SAPMF02D' '0110'.
perform bdc_field using 'BDC_CURSOR'
'KNA1-SPRAS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KNA1-ANRED'
IT_KNA1-TITLE.
perform bdc_field using 'KNA1-NAME1'
IT_KNA1-NAME.
perform bdc_field using 'KNA1-SORTL'
IT_KNA1-SEARCH_TERM.
perform bdc_field using 'KNA1-STRAS'
IT_KNA1-STREET.
perform bdc_field using 'KNA1-ORT01'
IT_KNA1-CITY.
perform bdc_field using 'KNA1-PSTLZ'
IT_KNA1-POSTAL_CODE.
perform bdc_field using 'KNA1-LAND1'
IT_KNA1-COUNTRY.
perform bdc_field using 'KNA1-SPRAS'
IT_KNA1-LANGUAGE_KEY.
perform bdc_dynpro using 'SAPMF02D' '0120'.
perform bdc_field using 'BDC_CURSOR'
'KNA1-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02D' '0130'.
PERFORM BDC_FIELD USING 'RF02D-D0130'
'X'.
perform bdc_field using 'BDC_CURSOR'
'KNBK-BANKN(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02D' '0210'.
perform bdc_field using 'BDC_CURSOR'
'KNB1-AKONT'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
perform bdc_field using 'KNB1-AKONT'
IT_KNA1-REC_ACCOUNT.
perform bdc_dynpro using 'SAPLRSFH' '0100'.
perform bdc_field using 'BDC_OKCODE'
'/EBACK'.
perform bdc_field using 'BDC_CURSOR'
'RSIODYNP4-LOW(01)'.
ENDIF.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
CONCATENATE 'KNBK-BANKS(' L_COUNTER ')' INTO L_STRING.
PERFORM BDC_FIELD USING L_STRING
IT_KNA1-CNTRY.
CLEAR L_STRING.
CONCATENATE 'KNBK-BANKL(' L_COUNTER ')' INTO L_STRING.
PERFORM BDC_FIELD USING L_STRING
IT_KNA1-BANK_KEY.
CLEAR L_STRING.
CONCATENATE 'KNBK-BANKN(' L_COUNTER ')' INTO L_STRING.
PERFORM BDC_FIELD USING L_STRING
IT_KNA1-BANK_ACCOUNT.
AT END OF CUSTOMER.
READ TABLE IT_KNA1 INDEX V_INDEX.
IF SY-SUBRC = 0.
CALL TRANSACTION 'FD01' USING IT_BDCDATA MODE 'A' UPDATE 'S' MESSAGES
INTO IT_MESSAGES.
IF SY-SUBRC <> 0.
PERFORM EMPLOYEEID_ERROR.
*ELSE.
ENDIF.
WRITE: SY-SUBRC.
perform message_format_write.
*ENDIF.
*WRITE: SY-SUBRC.
CLEAR IT_BDCDATA.
REFRESH IT_BDCDATA.
ENDIF.
ENDAT.
ENDLOOP.
endform. " POPULATE_FILE
&----
*& Form bdc_dynpro
&----
text
----
-->P_0224 text
-->P_0225 text
----
form bdc_dynpro using value(p_0224)
value(p_0225).
IT_BDCDATA-PROGRAM = P_0224.
IT_BDCDATA-DYNPRO = P_0225.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " bdc_dynpro
&----
*& Form bdc_field
&----
text
----
-->P_0229 text
-->P_0230 text
----
form bdc_field using value(p_0229)
value(p_0230).
IT_BDCDATA-FNAM = P_0229.
IT_BDCDATA-FVAL = P_0230.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
endform. " bdc_field
&----
*& Form EMPLOYEEID_ERROR
&----
text
----
--> p1 text
<-- p2 text
----
form EMPLOYEEID_ERROR .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'Z50583_REC1'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FD01'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
dynprotab = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " EMPLOYEEID_ERROR
&----
*& Form message_format_write
&----
text
----
--> p1 text
<-- p2 text
----
form message_format_write .
DATA: L_MSG(200).
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 = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
WRITE: / L_MSG.
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. " message_format_write
Thanks
Sunil
‎2006 Oct 16 1:01 PM
hi sunil
thanks for the code.
but i think that ur code is making use of only
call transaction method not both method .
so plz send me the code where u have used both the methods for uploading data in same program.
or if i am wrong in understandin ur code then plz let me know.
thanks
‎2006 Oct 16 1:01 PM
Hi Sanjeev,
The program first creates the material document using MB1B (call transaction method) .
all the created material documnet Numbers (MBLNR) will be captured into an internal table .
Using session method for the created MBLNR s transfer orders will be created using LT06 tocde.
regards,
‎2006 Oct 16 1:03 PM
‎2006 Oct 16 1:05 PM
HI,
It will create matrial documnet numbers for all the materials in spreadsheet .
for the creatred material document numbers it will also creates Transfer orders (lt06 tcode)
what is ur doubt
be clear
regards
‎2006 Oct 16 1:13 PM
my doubt is that when i will execute this program
it will execute immediately and it will createthe material document nos.so after executing it a seesion will also be created for lt06 and we have to execute that session also.
or i am wrong plz explain me
‎2006 Oct 16 1:57 PM
Hi ,
First it will create material documnets and creates the session .
then go to sm35 to process the session which will create the transfer orders
regards,