‎2007 Nov 06 2:13 PM
Hello all,
1)what is the quantity of records noramlly in real time we upload for Medium to Big client for master data like
a)XD01(customer)
b)XK01(Vendor)
c)MM01(Material)
2)In real time what normally we use Session or call transaction for above given transactions
With Regards,
Satya.
‎2007 Nov 06 2:18 PM
‎2007 Nov 06 2:19 PM
Depend upon client .
you have to look at business functionality.
We have 30,000 materials ,2000 vendors,3,00000 customers,in this case you can use simple session method.
Thanks
Seshu
‎2007 Nov 07 7:22 AM
Hi satya kumar ,
Whether we should follow Session or call transaction method depends on the requirement i.e if there is a huge volume of records we opt for session method else if less number of records r there we wil follow call transaction method .
I m sending sample code for BDC in XK01
XK01
REPORT zxk01 NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA: bdcdat LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF record OCCURS 0,
data element: ELIFN
lifnr(010),
data element: EKORG
ekorg(004),
data element: BKGRP
ekgrp(003),
data element: EMATNR
ematn(018),
data element: BSTMG
menge(017),
data element: EWERK
werks(004),
END OF record.
DATA : BEGIN OF head_itab OCCURS 0,
data element: ELIFN
lifnr(010),
data element: EKORG
ekorg(004),
data element: BKGRP
ekgrp(003),
END OF head_itab.
DATA : BEGIN OF item_itab OCCURS 0,
data element: ELIFN
lifnr(010),
data element: EMATNR
ematn(018),
data element: BSTMG
menge(017),
data element: EWERK
werks(004),
END OF item_itab.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = 'c:/hello.txt'
filetype = 'ASC'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = record
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10
.
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 record.
ON CHANGE OF record-lifnr.
head_itab-lifnr = record-lifnr.
head_itab-ekorg = record-ekorg.
head_itab-ekgrp = record-ekgrp.
APPEND head_itab.
CLEAR head_itab.
ENDON.
TO HAVE LINK BETWEEN HEADER AND ITEM TABLE USE LIFNR AS LINKER
item_itab-lifnr = record-lifnr.
item_itab-ematn = record-ematn.
item_itab-menge = record-menge.
item_itab-werks = record-werks.
APPEND item_itab.
CLEAR item_itab.
ENDLOOP.
*TO CHECH THE DATA IN HEADET ITAB AND DETAIL/ITEM ITAB
*
*loop at head_itab.
*write 😕 head_itab.
*endloop.
*skip 2.
*loop at item_itab.
*write:/ item_itab.
*endloop.
SORT head_itab BY lifnr ekorg ekgrp.
SORT item_itab BY lifnr.
DATA linecount TYPE i.
START-OF-SELECTION.
LOOP AT head_itab.
ON CHANGE OF head_itab-lifnr.
REFRESH bdcdat.
CLEAR bdcdat.
PERFORM bdc_dynpro USING 'SAPMM06E' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EKKO-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EKKO-LIFNR'
head_itab-lifnr.
PERFORM bdc_field USING 'EKKO-EKORG'
head_itab-ekorg.
PERFORM bdc_field USING 'EKKO-EKGRP'
head_itab-ekgrp.
linecount = 0.
LOOP AT item_itab WHERE lifnr = head_itab-lifnr.
linecount = linecount + 1.
IF linecount = 1.
PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EKPO-WERKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EKPO-EMATN(01)'
item_itab-ematn.
PERFORM bdc_field USING 'EKPO-MENGE(01)'
item_itab-menge.
PERFORM bdc_field USING 'EKPO-WERKS(01)'
item_itab-werks.
PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.
ELSE.
PERFORM bdc_field USING 'BDC_CURSOR'
'EKPO-WERKS(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NP'.
PERFORM bdc_field USING 'EKPO-EMATN(02)'
item_itab-ematn.
PERFORM bdc_field USING 'EKPO-MENGE(02)'
item_itab-menge.
PERFORM bdc_field USING 'EKPO-WERKS(02)'
item_itab-werks.
PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.
ENDIF.
AT END OF lifnr.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
ENDAT.
ENDLOOP.
ENDON.
CALL TRANSACTION 'ME21' USING bdcdat MODE 'A'.
REFRESH bdcdat.
ENDLOOP.
FORM bdc_dynpro USING value(a) value(b).
bdcdat-program = a.
bdcdat-dynpro = b.
bdcdat-dynbegin = 'X'.
APPEND bdcdat.
CLEAR bdcdat.
ENDFORM.
FORM bdc_field USING value(c) value(d).
bdcdat-fnam = c.
bdcdat-fval = d.
APPEND bdcdat.
CLEAR bdcdat.
ENDFORM.
cheers!
gyanaraj
****Pls reward points if u find this helpful