BDC_OKCODE
Hi Guys,
I would like to asked for your help regarding BDC_OKCODE. I need the system to accept automatically the BDC_OKCODE rather than ticking the check box to accept the BDC_CODE. Thanks in advance!
Regards,
Michael Nacionales
try changing the mode in which you are calling the transaction.
if you use the mode N the pop up will not appear.
and if you use mode E then the pop up will appear only in case of an error.
CALL TRANSACTION <tcode>
USING <bdc_data_table>
MODE <A/E/N>
UPDATE <S/A/L>
MESSAGES INTO <message_table>.
MODES -> mode of transaction
A - interactive
E - Screen only on Error
N - Background
UPDATE -> update for transaction
S - Synchronous
A - Asynchronous
L - Local
Similar Messages
-
Parametre id for 'BDC_OKCODE' ???
Hi EveryBody ...
I want to parametre id for Bdc_code .
I want to use -
in my code ..
SET PARAMETER ID '------' FIELD '=IFLU' .
Thanks For reply .
Edited by: Serkan Taskan on Aug 13, 2008 8:30 PMHi,
In the bdc you can pass the ok code using the following routine
PERFORM bdc_field USING 'BDC_OKCODE' 'IFLU'.
FORM bdc_field USING fnam fval.
IF fval <> nodata.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM. -
RE-FX:call transaction using bdc-tab:No bdc_okcode for swapping table-entry
Hello,
I am trying to call transaction RERAOP (module RE-FX) to make an accounting transaction. There is 1 debit posting and 1 credit posting in a grid. Selecting the debit posting, a details scrren is shown, consisting of 2 registers.
On the first register you have to fill different fields. At this point it isn't possible to select the second register. The second (credit) posting is diplayed when you hit the enter key. After the fields in the details screen of this (credit) postings have been filled, it is possible to swap back to the first (debit) posting with a double-click on the first entry of the postings-table.
Finally I come to the point ...
If I record these steps (batch-input recorder) and generate an report of this code there is no bdc_okcode for the above mentioned swap back to the debit posting. While executing this report I get a lot of error message because the swap back to the debit posting doesn't work (--> because of the missing bdc_okcode) and therefore the batch input tries to fill fields which are not on the active screen (because they are on the 2. register which is not displayed).
Hope that there is someone out there who:
1. Understands my miserable english and
2. has an advice for me.
Thanks in advance!!!
Stephan
Edited by: Stephan Scholze on Apr 22, 2008 1:34 PM
Edited by: Stephan Scholze on Apr 22, 2008 2:24 PM
Edited by: Stephan Scholze on Apr 22, 2008 3:19 PMNot sure how much I can help as we don't run RE-FX (RERAOP - what's the program name btw?) at any sites I work at, but a couple of general BDC things you might try (based on problems I've had with BDCs to other Tcodes)...
When you are in that transaction normally do a right click to see what function codes are defined as there might be one there that allows you to switch between these debit & credit data entry places (how are they rendered, btw - are they ALV grids or what? If they are table controls then you should be able to position the cursor on row 1 and trigger an F2 double-click)... also look at the PF-STATUS carefully in case (once again) there is a function code that lets you swap from DR to CR & vice versa... and even browse the source code in the user-command for the screen might give a clue as to how to achieve this. Of course it may not be possible if the data entry is control based i.e. the input areas are provided in the SAPGui not the application server (such as the text editor & ALV grids)... in which case you start hunting for BAPIs and function modules and the like, or end up having to pass data into the transaction via something like an "export" and catch it inside a user exit or enhancement via an "import"... all rather messy, but quite possible.
Jonathan -
Populating BDC_OKCODE from Z Program
In a Z program I wrote I am updating FB01 (bgr00, bbkpf, bbseg) using SAP program RFBIBL00. It processes fine but when I go into SM35 to process the records written I have to enter a BDC_OKCODE for every record written. This will take too long for the business to process the file. Is there anyway I can default the valus for the BDC_OKCODE in the program? Or is there some thing else I am missing?
- Helento process the records written I have to enter a BDC_OKCODE for every record written
I think so you are running the session in foreground mode. In the popup choose background mode execution. -
Question on :BDC_OKCODE
Hi Abapes,
what is difference in 'BACK' and '=BACK', when they are assigned to
BDC_OKCODE.
With Regards
Bhaskar Rao.MGenerally we assign the function codes to SY-UCOMM i mean, when u click a pushbutton or some other user interaction the corresponding function code will be stored in SY-UCOMM.
Placing the <b>function code with '=' before</b> them in OK_CODE is equivalent to clicking that <b>pushbutton or placing the function code in SY-UCOMM</b>.
Not onli 'back' any function code..
Thats it...
regards ,
sai ramesh -
Removing BDC_OKCODE popup window
Hi,
I have a BDC for posting document. BDC has code
perform f_bdc_field using 'BDC_OKCODE'
'/00'.
Due to this the window pop ups, with value /00 as BDC_OKCODE and I have to click enter.
The requirement is to remove the popup window.
Is there any way I can hardcode this value so that it autmatically takes this values during runtime??try this:
At the top of your screen (toolbar) there is a button with a monitor displayed (colors green, red & blue), next to the question mark (Help) button, to maintain some settings. Click this button and choose 'Options'. On tab 'Expert' there is a checkbox for BDC OK code. Uncheck it and try again. -
BDC_OKCODE for batch jobs
Hi everyone
I am modifying an existing program that creates a batch job. Does anybody know what the possible values are for the BDC_OKCODE field eg. /00, BACK, =PDE3 and so on. I see that they tend to relate to function codes from the Gui status - is there an easy way to find out what they do?
Thanks
AndyHi Andrew,
BDC_OKCODE identifies the command field.
it can use function key number or function code
/ for function key number and = for function code
'/3' -->Back function key
'/15'-->Quit function key
'/11'--> save
All functions in menus and buttons are identified by function codes.
Regards,
Ferry Lianto
Please reward points if helpful. -
BDC_OKCODE and BDC_CURSOR ?
hello everybody.
in bdc, what is the purpose of bdc_okcode and bdc_cursor,
while refering the book, i got the answer
bdc_okcode to save the bdc data
bdc_cursor to position the cursor.
but i am not clear with that answer.
please guide meHi,
we use these fields in data uploading through recording.
the transaction is 'SHDB' for making recording for transaction. and then transfer these recordings to a program for mass uploading of data.
Here i have paste a sample code where bdc_cursor and bdc_okcode is used in recording.
<b>
perform bdc_field using 'BDC_CURSOR'
'PROJ-PSPID'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
</b>
for details on BDC recordings go through the following link and you will have all details.
http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
Regards,
Wasim Ahmed -
Bdc_okcode & bdc_cursor
hi friends
what is the difference betweenn
bdc_okcode and bdc_cursorBDC_OKCODE
BDC_OKCODE is used to trigger the function keys
BDC_CURSOR
BDC_CURSOR is used to place cursor on particular field.
BDC_OKCODE
OK_CODE is the key which gets filled when u click on user-commands(like buttons).
BDC_OKCODE is one which is normally used in BDC programming...When U want to navigate from one screen to other screen or u want to press enter or save buttons...U need to fill the BDC_OKCODE with revelant values so that while running the BDC u can navigate according to the values specified.
Execute the transaction SHDB and give the transaction for which you want to do A BDC. Enter all the details and then save it.
Now, when you see the saved data, you can see that in many places, BDC_OKCODE would have some values like /00 and such things..These indicate, what is the action that you have done ,
For example, /00 indicates ENTER.
BDC_CURSOR
Eg...HANDLING OF POP UP SCREEN IN BDC
Many times in transaction pop up screen appears and for this screen you dont pass any record but some indication to system telling it to proceed further.
To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR. -
can anyboy explain me what is the meaning of this .
in what conditions it will get exicute ?
PERFORM bdc_field USING 'BDC_OKCODE'
'=NEW'.can you please tell me
why its coming out from the loop if lv_amount values suppose 0.36 (even thought its NE 0 )
LOOP AT t_output INTO wa_output.
lv_amount = <fv_output>.
CONDENSE lv_amount.
IF lv_amount NE 0.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NEW'.
PERFORM bdc_field USING 'GLU1-TSL'
lv_amount.
PERFORM bdc_field USING 'RGBUK-O_V01'
wa_output-racct.
PERFORM bdc_field USING 'RGBUK-O_V04'
p_rprctr.
PERFORM bdc_field USING 'RGBUK-O_V05'
wa_output-rzzplat.
PERFORM bdc_dynpro USING 'SAPMGBUK' '0110'.
ENDIF. "
ENDLOOP. -
Bdc_OkCode Tree Expand All
Hi EveryBody,
I urge trees on a screen using a BDC.
But Three is coming off.
How can we open all in BDC ?
Best Regards,
Rasim BASCH.Thank you Felipe,
But, No, transection is not standard.
I created a transection own.
I have a screen, working in the tree structure.
When you click to another alv I'm calling it.
But coming off the tree.
I want all of you to come open.
Regards... -
How can i see log in sm35 after i run my program ?
i ahve some problem in my recording , but i cant get what screen couse
to the error .
i get message in the end of the session "Start screen does not exist in batch input data".
i try to fix ( remark or open some lines ) but i cant find
the problem , so i wan to see the log in sm35 but i cant see .
how can i do it ?
i now about "RSBDC_PROTOCOL " , but it didn't help .
my program/record :
LOOP AT IT_AGR_LIST .
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0205'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-EVRTN'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RM06E-EVRTN'
IT_AGR_LIST-EVRTN . " '4610000065'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-EBELP'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=NP'.
PERFORM BDC_FIELD USING 'RM06E-EBELP'
'10'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EKPO-PEINH(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RM06E-EBELP'
'20'.
LOOP AT IT_BKPF WHERE EVRTN = IT_AGR_LIST-EVRTN .
PERFORM BDC_FIELD USING 'EKPO-EMATN(02)'
IT_BKPF-EMATN . " '7000305'.
PERFORM BDC_FIELD USING 'EKPO-NETPR(02)'
IT_BKPF-NETPR . "'2552'.
PERFORM BDC_FIELD USING 'EKPO-PEINH(02)'
'1000'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-EVRTP(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TXP'.
PERFORM BDC_FIELD USING 'RM06E-EBELP'
COUNTR . "'20'.
PERFORM BDC_FIELD USING 'RM06E-TCSELFLAG(02)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0106'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-LTEX1(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TEDE'.
PERFORM BDC_FIELD USING 'RM06E-SELKZ(01)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=EDNP'.
PERFORM BDC_FIELD USING 'RSTXT-TXLINE(02)'
IT_BKPF-STR_LEN1.
'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa' &
*'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(03)'.
if not IT_BKPF-STR_LEN2 is initial .
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=EDNP'.
PERFORM BDC_FIELD USING 'RSTXT-TXLINE(03)'
IT_BKPF-STR_LEN2.
'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa' &
*'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
endif.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(04)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=EDNP'.
PERFORM BDC_FIELD USING 'RSTXT-TXLINE(04)'
IT_BKPF-STR_LEN3.
'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa' &
*'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(05)'.
if not IT_BKPF-STR_LEN2 is initial .
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=EDNP'.
PERFORM BDC_FIELD USING 'RSTXT-TXLINE(05)'
**'ssssssssssssssssssssssssssssssssssssss'
***'sendif.sssssssssssssssssssssssssssssssss'.
**endif.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(06)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=EDNP'.
PERFORM BDC_FIELD USING 'RSTXT-TXLINE(06)'
**'ssssssssssssssssssssssssssssssssssssss'
***'ssssssssssssssssssssssssssssssssss'.
PERFORM BDC_DYNPRO USING 'SAPLSTXX' '1100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSTXT-TXLINE(07)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TXBA'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0106'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-SELKZ(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'RM06E-SELKZ(01)'
'X'.
CALL TRANSACTION 'ME32K' USING BDCDATA
MODE P_DMODE "A"
UPDATE 'S'
MESSAGES INTO ITAB_MSG1.hi,
goto se38 - find - rsbdc*:
you'll find a lot of prg. to analyse your bdc-map
like RSBDCLOG or RSBDC_ANALYSE
A. -
MULTIPLE ITEM PROBLEM IN VL31N BDC
hI FRIENDS ,
I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
CODE IS AS FOLLOWS:.........
FUNCTION y_synie_bdcinbdly.
""Local interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(EXTNID) LIKE MAKT-MAKTG
*" VALUE(VENDORNO) LIKE LFA1-LIFNR
*" VALUE(PONUMBER) LIKE EKKO-EBELN
*" VALUE(ITEMNUMBER) LIKE LIPS-VGPOS
*" VALUE(MATERIAL) LIKE MAKT-MAKTG
*" VALUE(DLYQTY) LIKE LIPS-LFIMG
*" VALUE(BTCHNO) LIKE LIPS-CHARG
*" VALUE(POSLR) LIKE EKES-EBELP OPTIONAL
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" VALUE(INDELYNO) LIKE SY-MSGV2
*" VALUE(MSG1) LIKE SY-MSGV1
*" VALUE(MSG2) LIKE SY-MSGV2
*" VALUE(MSG3) LIKE SY-MSGV3
*" VALUE(MSG4) LIKE SY-MSGV4
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL
*" ERRTAB STRUCTURE YSYNERRMSGS
*" INDLYTAB STRUCTURE YSYN_QTYTAB
Updated by ANAND SYNISE 19.1.2007
DATA: BEGIN OF bdctab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
DATA: datenow(10) TYPE c,
fldvar(30) TYPE c,
fldno TYPE i,
flditoc(6) TYPE c,
qty(13) TYPE c.
DATA maxposnr LIKE lips-posnr.
DATA testposnr TYPE posnr.
DATA itemnoint TYPE i.
CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
CLEAR bdctab.
REFRESH bdctab.
PERFORM open_group USING group user keep holddate ctu.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '4007'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-VERUR_LA'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-LIFNR'.
bdctab-fval = vendorno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LV50C-BSTNR'.
bdctab-fval = ponumber.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-VERUR_LA'.
bdctab-fval = extnid.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=MKAL_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIKP-BLDAT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POPO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '0111'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-PO_MATNR'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = 'WEIT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-PO_MATNR'.
bdctab-fval = material.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POLO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
*ADDED BY ANAND ON 22-01-2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = ITEMNUMBER . "ITEMNUMBER = LIPS-VGPOS
APPEND bdctab.
************ENDED***********************
ADDED BY MILIND 19.01.2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = poslr .
APPEND bdctab.
* ENDED * *
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
bdctab-fval = ''.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-CHARG(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
QTY = INDLYTAB-DLYQTY.
qty = dlyqty.
bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
bdctab-fval = QTY.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIPS-CHARG(01)'.
* BDCTAB-FVAL = INDLYTAB-BTCHNO.
bdctab-fval = btchno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=SICH_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-MATNR(02)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CALL TRANSACTION 'VL31N' USING bdctab MODE 'N' MESSAGES INTO messtab.
subrc = sy-subrc.
PERFORM close_group USING ctu.
CLEAR bdctab.
REFRESH bdctab.
IF sy-subrc EQ 0.
indelyno = sy-msgv2.
ENDIF.
LOOP AT messtab.
MOVE: messtab-msgid TO errtab-msgid,
messtab-msgnr TO errtab-msgnr,
messtab-msgv1 TO errtab-msg1,
messtab-msgv2 TO errtab-msg2,
messtab-msgv3 TO errtab-msg3,
messtab-msgv4 TO errtab-msg4.
APPEND ERRtab.
ENDLOOP.
LOOP AT errtab.
SELECT SINGLE text FROM t100
INTO errtab-errmsg
WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
AND sprsl EQ sy-langu.
MODIFY errtab.
ENDLOOP.
ENDFUNCTION.Hi,
Check this code:
REPORT Z_CUSTOMER_UPLOAD .
D A T A D E C L A R A T I O N S *
DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_CUSTOMER.
DATA:BEGIN OF IT_success OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_success.
DATA:BEGIN OF IT_error OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_error.
DATA: L_INDEX TYPE SY-TABIX.
DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
ERROR MESSAGE TABLE
DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : C_S TYPE C VALUE 'S',
C_E TYPE C VALUE 'E'.
*DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
IT_ERROR LIKE IT_CUSTOMER OCCURS 0.
DATA : V_RECTOT TYPE I,
V_RECERR TYPE I,
V_RECSUC TYPE I.
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN : END OF BLOCK B1.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
to get F4 help for p_file
PERFORM F4_FILENAME USING P_FILE.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Uploading data from flat file into it_tab
PERFORM BDC_UPLOAD USING P_FILE.
PERFORM PROCESS_DATA.
PERFORM POPULATE_BDC.
E N D O F S E L E C T I O N *
*END-OF-SELECTION.
PERFORM DISPLAY_REPORT.
*& Form F4_FILENAME
text
-->P_P_FILE text
FORM F4_FILENAME 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. " F4_FILENAME
*& Form BDC_UPLOAD
text
-->P_P_FILE text
FORM BDC_UPLOAD USING P_P_FILE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = IT_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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. " BDC_UPLOAD
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA.
SORT IT_DATA BY ROW COL.
LOOP AT IT_DATA.
CASE IT_DATA-COL.
WHEN 1.
IT_CUSTOMER-KUNNR = IT_DATA-VALUE.
WHEN 2.
IT_CUSTOMER-VKORG = IT_DATA-VALUE.
WHEN 3.
IT_CUSTOMER-VTWEG = IT_DATA-VALUE.
WHEN 4.
IT_CUSTOMER-MATNR = IT_DATA-VALUE.
WHEN 5.
IT_CUSTOMER-KDMAT = IT_DATA-VALUE.
WHEN 6.
IT_CUSTOMER-MEGRU = IT_DATA-VALUE.
WHEN 7.
IT_CUSTOMER-LPRIO = IT_DATA-VALUE.
WHEN 8.
IT_CUSTOMER-ANTLF = IT_DATA-VALUE.
APPEND IT_CUSTOMER.
ENDCASE.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*& Form POPULATE_BDC
text
--> p1 text
<-- p2 text
FORM POPULATE_BDC.
DATA:L_COUNTER TYPE N,
L_STRING TYPE STRING.
LOOP AT IT_CUSTOMER.
AT NEW KUNNR.
CLEAR L_COUNTER.
L_INDEX = SY-TABIX.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'MV10A-KUNNR'
IT_CUSTOMER-KUNNR.
perform bdc_field using 'MV10A-VKORG'
IT_CUSTOMER-VKORG.
perform bdc_field using 'MV10A-VTWEG'
IT_CUSTOMER-VTWEG.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MATNR.
CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-KDMAT.
CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MEGRU.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*-- For Page down in Call Transaction Mode
IF L_COUNTER = 14.
CLEAR L_COUNTER.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-SELKZ.
perform bdc_field using 'BDC_OKCODE'
'=SELE'.
perform bdc_dynpro using 'SAPMV10A' '0300'.
perform bdc_field using 'MV10A-KDMAT'
IT_CUSTOMER-KDMAT.
perform bdc_field using 'MV10A-LPRIO'
IT_CUSTOMER-LPRIO.
perform bdc_field using 'MV10A-ANTLF'
IT_CUSTOMER-ANTLF.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'.
at end of kunnr.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
CLEAR IT_BDC.
REFRESH IT_BDC.
ENDAT.
IF NOT IT_MESSAGES[] IS INITIAL.
PERFORM FORMAT_MESSAGE.
ENDIF.
ENDLOOP.
ENDFORM. " POPULATE_BDC
*& Form bdc_dynpro
text
-->P_0273 text
-->P_0274 text
FORM bdc_dynpro USING VALUE(P_0273)
VALUE(P_0274).
IT_BDC-PROGRAM = P_0273.
IT_BDC-DYNPRO = P_0274.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0278 text
-->P_RECORD_KUNNR_001 text
FORM bdc_field USING VALUE(P_0278)
VALUE(P_0279).
IT_BDC-FNAM = P_0278.
IT_BDC-FVAL = P_0279.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_field
*& Form FORMAT_MESSAGE
text
--> p1 text
<-- p2 text
FORM FORMAT_MESSAGE.
DATA: L_MSG(100).
LOOP AT IT_MESSAGES.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGES-MSGID
LANG = SY-LANGU
NO = IT_MESSAGES-MSGNR
V1 = IT_MESSAGES-MSGV1
V2 = IT_MESSAGES-MSGV2
V3 = IT_MESSAGES-MSGV3
V4 = IT_MESSAGES-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write:/ l_msg.
ENDLOOP.
ENDFORM. " FORMAT_MESSAGE
reward if helpful,
keerthi -
Creation of PGI using BDC for tc VL02N is not happening..
Hi All,
i need to do Post Goods Issue (PGI) thro' BDC and after that i need to update the flag in Ztable.
its giving Success message and updating the database also.
but its not issuing the PGI.and further i want to create billing doc.So its compulsory to me to post PGI.
if i look into the BDCMSGCOLL structure its giving "NO BATCH INPUT DATA FOR SCREEN"? why this is happening?
please let me know immediately....
REFRESH: tt_bdcmsgcoll .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_created-document_numb
IMPORTING
output = wa_created-document_numb.
REFRESH tt_bdcdata.
PERFORM bdc_dynpro USING text-001 text-002.
PERFORM bdc_field USING text-008
text-014.
PERFORM bdc_field USING text-009
text-011.
PERFORM bdc_field USING text-014
wa_created-document_numb.
PERFORM bdc_dynpro USING text-001 text-003.
PERFORM bdc_field USING text-009
text-036.
PERFORM bdc_field USING text-025
sy-datum.
PERFORM bdc_field USING text-008
text-035.
PERFORM bdc_field USING text-037
sy-datum.
PERFORM bdc_field USING text-038
text-029.
PERFORM bdc_field USING text-016
c_x.
CALL TRANSACTION c_t_del USING tt_bdcdata
MODE c_m
UPDATE c_u
MESSAGES INTO tt_bdcmsgcoll .
SORT tt_bdcmsgcoll BY msgtyp.
READ TABLE tt_bdcmsgcoll INTO wa_bdcmsgcoll WITH KEY msgtyp = c_e.
IF sy-subrc EQ 0.
LOOP AT tt_bdcmsgcoll INTO wa_bdcmsgcoll WHERE msgtyp = c_e.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = wa_bdcmsgcoll-msgid
lang = text-010
no = wa_bdcmsgcoll-msgnr
v1 = wa_bdcmsgcoll-msgv1
v2 = wa_bdcmsgcoll-msgv2
v3 = wa_bdcmsgcoll-msgv3
v4 = wa_bdcmsgcoll-msgv4
IMPORTING
msg = v_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
WRITE :/ v_msg.
ENDLOOP.
ELSE.
MOVE : c_x TO wa_worklist-pgi_flag.
READ TABLE tt_epit INTO wa_epit WITH KEY epi_id = wa_worklist-epi_id epi_sr = wa_worklist-epi_sr.
IF sy-subrc EQ 0.
MODIFY tt_epit FROM wa_worklist TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND epi_sr = wa_worklist-epi_sr.
ELSE.
APPEND wa_worklist TO tt_epit.
ENDIF.
wa_epit-pgi_flag = c_x.
MODIFY tt_epit FROM wa_epit TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
UPDATE zsd_dt_epit SET pgi_flag = 'X' WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
IF sy-subrc EQ 0.
ENDIF.
ENDIF.HI,
Please refer this
To perform Post goods issue
PERFORM OPEN_GROUP.
PERFORM BDC_DYNPRO USING 'SAPMV50A' '4004'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'LIKP-VBELN'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WABU_T'.
PERFORM BDC_FIELD USING 'LIKP-VBELN' DELIVERY.
'84000064'.
PERFORM BDC_TRANSACTION USING 'VL02N'.
PERFORM CLOSE_GROUP.
CLEAR : DELIVERY,
T_BSITEM,
T_BSICTL.
ENDIF.
ENDFORM. " DELIVERY -
Hello Everyone,
My program not working when sceduled to run in background, but works fine when run in foreground. Think i need to change some funcution modules as the ones i used are, think, referencing for foreground processing. Can anyone point to some function modules which does the job for me.
I am picking up the files from file server.
REPORT zco11n
NO STANDARD PAGE HEADING
LINE-SIZE 255.
INCLUDE zdeclerations. " Data Declarations part
*---------------Get actual filepath from logical filepath---------------------*
CALL FUNCTION 'FILE_GET_NAME'
EXPORTING
* CLIENT = SY-MANDT
logical_filename = 'ZBARCODE_APPLICATION' "logical path
IMPORTING
file_name = pa_file "actual path
EXCEPTIONS
file_not_found = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*---------------Get all the required files from the directory-------------------*
CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'
EXPORTING
directory = pa_file "Directory path
filter = '*.CSV'
TABLES
file_table = lt_file "Files in the direcory
dir_table = lt_dir
EXCEPTIONS
cntl_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*-------Get the directory and file name as single path & move to internal table----*
LOOP AT lt_file INTO lw_file.
CONCATENATE pa_file lw_file-pathname INTO lstring.
MOVE lstring TO lw_filename-pathname.
MOVE lw_file-pathname TO lw_filename-filename.
APPEND lw_filename TO lt_filename.
CLEAR lw_filename.
CLEAR lw_file.
ENDLOOP.
START-OF-SELECTION.
LOOP AT lt_filename INTO lw_filename.
file_name = lw_filename-pathname.
*-------Read the contents of the file to an internal table--------------------------*
CALL FUNCTION 'DX_FILE_READ'
EXPORTING
filename = file_name
pc = 'X'
TABLES
data_tab = lt_temp "File contents
EXCEPTIONS
no_file_on_server = 1
no_data_on_server = 2
gui_upload_failed = 3
no_authority = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
*-------------Split and move the contents as required for BDC---------------*
LOOP AT lt_temp INTO lw_temp.
SPLIT lw_temp AT ',' INTO lw_afrud-aufnr lw_afrud-lmnga lw_afrud-budat.
APPEND lw_afrud TO lt_afrud.
ENDLOOP.
************----------Start Of BDC-----------------------***************
LOOP AT lt_afrud INTO lw_afrud.
PERFORM bdc_dynpro USING 'SAPLCORU_S' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'AFRUD-AUFNR'
lw_afrud-aufnr.
PERFORM bdc_field USING 'AFRUD-LMNGA'
'1'.
PERFORM bdc_field USING 'AFRUD-ISDZ'
'00:00:00'.
PERFORM bdc_field USING 'AFRUD-IEDZ'
'00:00:00'.
PERFORM bdc_field USING 'AFRUD-PEDZ'
'00:00:00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFRUD-BUDAT'.
PERFORM bdc_field USING 'AFRUD-BUDAT'
lw_afrud-budat.
PERFORM bdc_dynpro USING 'SAPLCORU_S' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'CO11N' USING lt_bdcdata MODE 'N'
UPDATE 'S' MESSAGES INTO lt_bdcmsgcoll. "#EC CI_CALLTA
ENDLOOP.
*******-----------End of BDC-------------------------------------*******
CLEAR lw_afrud.
REFRESH lt_afrud.
************************File Manipulations*********************
lv_file_name = lw_filename-filename. "Assign the filename to a local variable
CONCATENATE '\CAUVERYSAPBARCODESUCCESS'
lv_file_name INTO lstring_success. "Place holder for BDC Success Files
CONCATENATE '\CAUVERYSAPBARCODEERROR'
lv_file_name INTO lstring_error. "Place holder for BDC Error Files
file_name_source = file_name. "Source file path
file_name_success_dest = lstring_success. "Success file path
file_name_error_dest = lstring_error. "Error file path
*For the files with no data in them, move them to desired(error) folder.
if lt_bdcmsgcoll[] is initial.
CALL METHOD cl_gui_frontend_services=>file_copy
EXPORTING
SOURCE = file_name_source
destination = file_name_error_dest.
endif.
LOOP AT lt_bdcmsgcoll INTO lw_bdcmsgcoll.
IF lw_bdcmsgcoll-msgtyp EQ 'S' AND
lw_bdcmsgcoll-msgnr EQ '110'.
*----------Move the succes files to designated folder---------------*.
CALL METHOD cl_gui_frontend_services=>file_copy
EXPORTING
SOURCE = file_name_source
DESTINATION = file_name_success_dest
overwrite = 'X'
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
disk_full = 4
access_denied = 5
file_not_found = 6
destination_exists = 7
unknown_error = 8
path_not_found = 9
disk_write_protect = 10
drive_not_ready = 11
not_supported_by_gui = 12
OTHERS = 13.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSE.
*--------Move the error files to designated folder-----------------*.
IF lw_bdcmsgcoll-msgtyp EQ 'E' OR
lt_bdcmsgcoll[] IS INITIAL.
CALL METHOD cl_gui_frontend_services=>file_copy
EXPORTING
SOURCE = file_name_source
DESTINATION = file_name_error_dest
overwrite = 'X'
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
disk_full = 4
access_denied = 5
file_not_found = 6
destination_exists = 7
unknown_error = 8
path_not_found = 9
disk_write_protect = 10
drive_not_ready = 11
not_supported_by_gui = 12
OTHERS = 13.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
*----------------Delete file from the directory---------------------------*
CALL METHOD cl_gui_frontend_services=>file_delete
EXPORTING
filename = file_name_source
CHANGING
rc = lv_rc
EXCEPTIONS
file_delete_failed = 1
cntl_error = 2
error_no_gui = 3
file_not_found = 4
access_denied = 5
unknown_error = 6
not_supported_by_gui = 7
wrong_parameter = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
REFRESH lt_bdcmsgcoll.
REFRESH lt_bdcdata.
ENDLOOP.
*& Form bdc_dynpro
* text
* -->PROGRAM text
* -->DYNPRO text
FORM bdc_dynpro USING program dynpro. "#EC *
CLEAR lw_bdcdata.
lw_bdcdata-program = program.
lw_bdcdata-dynpro = dynpro.
lw_bdcdata-dynbegin = 'X'.
APPEND lw_bdcdata TO lt_bdcdata.
ENDFORM. "BDC_DYNPRO
*& Form bdc_field
* text
* -->FNAM text
* -->FVAL text
FORM bdc_field USING fnam fval. "#EC *
IF fval <> space.
CLEAR lw_bdcdata.
lw_bdcdata-fnam = fnam.
lw_bdcdata-fval = fval.
APPEND lw_bdcdata TO lt_bdcdata.
ENDIF.
ENDFORM. "bdc_field
*& Include ZDECLERATIONS
*-----------------------------Types decleration--------------------------*
TYPES: BEGIN OF tw_afrud,
aufnr TYPE aufnr,
lmnga(13) TYPE c,
budat TYPE buchdatum,
END OF tw_afrud,
tt_afrud TYPE STANDARD TABLE OF tw_afrud.
TYPES: BEGIN OF tw_temp,
rec(7000) TYPE c,
END OF tw_temp,
tt_temp TYPE STANDARD TABLE OF tw_temp.
TYPES: BEGIN OF tw_errorlog,
aufnr TYPE aufnr,
message TYPE string,
END OF tw_errorlog,
tt_errorlog TYPE STANDARD TABLE OF tw_errorlog.
TYPES: BEGIN OF tw_file,
pathname TYPE sdok_filnm,
END OF tw_file,
tt_file TYPE STANDARD TABLE OF tw_file.
TYPES: BEGIN OF tw_dir,
pathname1 TYPE sdok_filnm,
END OF tw_dir,
tt_dir TYPE STANDARD TABLE OF tw_dir.
TYPES: BEGIN OF tw_filename,
filename TYPE rlgrap-filename,
pathname TYPE localfile,
END OF tw_filename,
tt_filename TYPE STANDARD TABLE OF tw_filename.
*-------------Variable decleration---------------------------------------*
DATA: pa_file TYPE rlgrap-filename.
DATA: lstring TYPE string,
lstring_success TYPE string,
lstring_error TYPE string,
file_name TYPE dxfile-filename,
lv_rc TYPE i,
file_name_source TYPE string,
file_name_error_dest TYPE string,
file_name_success_dest TYPE string,
lv_file_name TYPE rlgrap-filename.
*---------------Internal tables & Work area's ------------------------------*
DATA : lw_afrud TYPE tw_afrud,
lt_afrud TYPE tt_afrud,
lw_temp TYPE tw_temp,
lt_temp TYPE tt_temp,
lw_file TYPE tw_file,
lt_file TYPE tt_file,
lw_dir TYPE tw_dir, "#EC *
lt_dir TYPE tt_dir,
lw_filename TYPE tw_filename,
lt_filename TYPE tt_filename,
lw_bdcdata TYPE bdcdata,
lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
lw_bdcmsgcoll TYPE bdcmsgcoll,
lt_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll.
RegardsThe methods of the class
cl_gui_frontend_services
cannot be used in background since they refer to the presentation server. You have to upload the files to the application server to run the program in the background. You can use transaction CG3Z or the function module
ARCHIVFILE_CLIENT_TO_SERVER
to upload the files.
Manoj
Maybe you are looking for
-
after trying to remember my new pass code and failing, my iphone disabled and is now telling me to connect to itunes, ive done that and tried instruction to restore from back up however when i do that i get an error msg saying that i need to turn off
-
Hello: I am really hoping someone would be able to help me out with this problem I have just ran into with my iMac G3 Graphite (833 MHz, 60GB HD, 256 RAM, OS 10.2). I am not exactly even sure what happened, but here is the sequence of events // I was
-
Snow Leopard Server in a VM.
Looking for answers specific to running SL Server in a virtual machine such as VirtualBox, Parallels, etc. I'd rather just use the client version, but that's not allowed. I have a few apps that are PPC only. Two are Monaco Profiler and ProfileMaker 5
-
Hi everyone, we've maintained the set of text header types to use for Purchase Orders in SPRO. The view that's behind the customizing is V_TTXID_MM_UPD, which is a join of TTXID and TTXIT. The thing is that we want to retrieve the list of the text he
-
Hi, I recently had to move my entire music library from one partition to another, and made a bit of a mess of working with iTunes. Now iTunes has two copies of every song in the library, every other one being marked with a question mark because (obvi