BDC for IW52 with giving Priority
Hi All,
I'll we very thankful if any one please help me in doing BDC for IW52 with giving Priority value .
Actually I don't able to find Priority option in IW52.
It'll be highly applicable if any one help me for this.
Thanks
Hi,
I think you can make use of the FM "ALM_ME_NOTIFICATION_CHANGE" instead of IW52 BDC.
Regards,
Smart Varghese
Similar Messages
-
BDC for MM with different material types.
Hi, Can anyone explain me how the MM01 tcode can be handled in BDC, when material with different material types are present in the flat file. Different material types have different views and hence different recordings....How to handle this scenario?
Based on different types of material, you can able to find out which all views are required to call through BDC. Try to find out views by using tables MARA, MAKT, MARD, MARC etc. Once it is confirmed you can call views using screen numbers.
Here I don't think so more than one recording is required. Record MM01 transaction using Basic Data1, once you go inside the transaction select all the views required to complete the MM01 transaction. It will record all the views (hence screen numbers), then you can switch/call views based on screen numbers.
Hope this helps you to resolve your query. -
BDC for notification with sales order
Hi,
I have to code a BDC program for IW51 : Service Notification with sales order.
The problem is that in simulation mode (SHDB) the button "Sales order" is not working !!!
although it works well in transaction mode!
please help!
A+
Ihsenhi all,
so anyone came across any BAPI or FM that creates Orders from Notification.
My requirement is similar to "Order Explode" functionality in WPS1 transaction (MEB). For two notificaitons, if the task list having the same operation and same type, then a single order gets created.
I want to know whether any FM/ BAPI is available that creates Order in reference to Notification. I just want to simulate Order creation.
Waiting for reply.
Debs -
BDC for VA01 with multiple line items
Hi,
My client is 4.6c version, I have created a BDC program for transaction VA01 which will have multiple line items. I'm able to enter 12 items in the first instance, then 12 items next time. But I'm not doing any P+..System is automatically taking me to first item after reaching item 12 every time.
But I have a doubt in production system also I will have only 12 items every time to enter..If not my program may not work..
I'm calling BDC using following statment..
CALL TRANSACTION 'VA01' USING BDCDATA
MODE 'N'
UPDATE 'S'
MESSAGES INTO lt_message.
Please suggest me the solution.
Regards
Jaker.I had a similar problem with goods movements in a CO11N BDC I wrote. Here's how it was fixed:
DATA: lcl_opt TYPE ctu_params.
lcl_opt-defsize = 'X'.
CALL TRANSACTION 'CO11N' USING i_bdctbl OPTIONS FROM lcl_opt
MESSAGES INTO messco11n.
The option "defsize" makes sure that the screen always contains the same number of lines as it goes through the BDC. That way, you can write in the paging logic without having to worry about the number of lines that appear on a user's screen as it may vary depending on how their screen resolution is set up. -
Bdc for MM01 with classification view
Hi all,
I need to create materials using mm01 with classification view. since there is no bapi supporting this view, i am ding by bdc.
The problem is in classification view once i give the class type and name a screen pops with caption
characteristic value assignment, but theere are no charateristics displayed - wat values do i have to enter here >
once i leave this screen the characteristics show up one after the other and i can load the details. but then while tryin to save error comes staing incnsisitent value assigned. wat do i ener in the intermediate screen t avoid this error.
thankshi when you are creating a classification view with characteristics.. you need to do all at once... you cannot modify..
all you can do is delete the whole view and create with all the changed again.. I dont memorize the BAPI .. but you have BAPIdelete.. BAPIadd.. -
User exit for XD01 with delivery priority
Hi ,
I am using a user exit EXIT_SAPMF02D_001 for customer master.Below is the piece of code .I am just displaying message based on delivery priority field in the customer master .
But the probleam is when user only change the value in delivery priority field then only my message should come .But now my logic executes when ever no changes in the delivery priority field also and any touch other than this field also getting the message.
Means the value in the delivery priority field not refreshed in the customer master screen .Thats why the message is coming any time when not touching the field also.
so can somebody suggest what to do?My logic should work only when delivery priority field only changed.
TABLES:tpakd.
DATA:l_lprio TYPE lprio,
l_kztlf TYPE kztlf,
l_antlf TYPE antlf.
DATA:l_lp(2) TYPE c VALUE '03',
l_kz(1) TYPE c VALUE 'B',
l_an(1) TYPE c VALUE '1'.
SELECT SINGLE * FROM tpakd
INTO tpakd
WHERE parvw = 'WE'
AND ktokd = i_kna1-ktokd.
IF sy-subrc = 0 .
MOVE i_knvv-lprio TO l_lprio.
MOVE i_knvv-kztlf TO l_kztlf.
MOVE i_knvv-antlf TO l_antlf.
IF l_lprio = l_lp AND ( l_kztlf NE l_kz OR l_antlf NE l_an ) .
MESSAGE w534(zm).
ELSEIF l_lprio IS NOT INITIAL
AND ( l_kztlf IS NOT INITIAL
OR l_antlf IS NOT INITIAL
OR l_antlf NE '0'
OR l_antlf NE '9' ).
MESSAGE w534(zm) .
ENDIF.
ELSE.
EXIT.
ENDIF.HI
I think something doesn't sound good in this control
ELSEIF l_lprio IS NOT INITIAL
AND ( l_kztlf IS NOT INITIAL
OR l_antlf IS NOT INITIAL "<-------
OR l_antlf NE '0'
OR l_antlf NE '9' ).
MESSAGE w534(zm) .
ENDIF.
The control for L_ANTIF seems to be always valid, probably you should use AND insted of OR
ELSEIF l_lprio IS NOT INITIAL
AND ( l_kztlf IS NOT INITIAL
OR ( l_antlf IS NOT INITIAL "<-------
AND l_antlf NE '0'
AND l_antlf NE '9' ) ).
MESSAGE w534(zm) .
ENDIF.
Max
Max -
Hi Friends
I am working on data transfer for ME11, info records, i have to upload Note(Text) as well in this , but button for this text dos'nt come in recording.
how to upload this SOOD object..
thanks
regards
siddharthHi,
you can load the InfoRecords by following LSMW objects including the Long texts:
Object 0060 Purchasing info rec.
Method 0000
Program name RM06IBI0
Program type B Batch input
Use appropriate structure to load the long text.
Hope this helps.
Regards, Murugesh -
Hi all,
i am doing BDC for XK01 with Line Item for Bank Details(Table Control..)
With 3 Internal table
IT_dummy to get the flat file
IT_vend for Header details
IT_bank for Item Details
in this there is a Nested loop
Loop at it_vend.
perform bdc
loop at it_bank.
concatenate................
endloop.
endloop.
because of the above nested loops..it's bit slow..
& i am trying to do with a single internal table..
The problem is..
with the header data it's not picking all the item data(it's picking only one..)..help me in resolving the problem..
Below the code..
REPORT ZMM_BDCTC1 NO STANDARD PAGE HEADING LINE-SIZE 255.
PARAMETER:P_FILE TYPE RLGRAP-FILENAME.
DATA BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_DUMMY OCCURS 0,
TYP,
DES(255) TYPE C,
END OF IT_DUMMY.
DATA:DELIMITER VALUE ',',
cnt(4) TYPE N,
L_FNAM(30) TYPE C,
FILENAME TYPE STRING.
TYPES:BEGIN OF TY_FINAL,
N(4) TYPE C,
LIFNR TYPE RF02K-LIFNR,
BUKRS TYPE RF02K-BUKRS,
EKORG TYPE RF02K-EKORG,
KTOKK TYPE RF02K-KTOKK,
NAME1 TYPE LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
LAND1 TYPE LFA1-LAND1,
AKONT TYPE LFB1-AKONT,
FDGRV TYPE LFB1-FDGRV,
WAERS LIKE LFM1-WAERS,
M(4) TYPE C,
BANKS TYPE LFBK-BANKS,
BANKL TYPE LFBK-BANKL,
BANKN TYPE LFBK-BANKN,
KOINH TYPE LFBK-KOINH,
END OF TY_FINAL.
DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = P_FILE.
FILENAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = FILENAME
FILETYPE = 'ASC'
tables
data_tab = IT_DUMMY.
START-OF-SELECTION.
LOOP AT it_dummy.
IF it_dummy-typ = 'H'.
SPLIT it_dummy-des AT delimiter INTO WA_FINAL-lifnr "Populating Header Table
WA_FINAL-bukrs
WA_FINAL-ekorg
WA_FINAL-ktokk
WA_FINAL-name1
WA_FINAL-sortl
WA_FINAL-land1
WA_FINAL-akont
WA_FINAL-fdgrv
WA_FINAL-waers.
WA_FINAL-N = WA_FINAL-N + 1.
WA_FINAL-M = WA_FINAL-M + 1.
ELSEIF it_dummy-typ = 'I'.
SPLIT it_dummy-des AT delimiter INTO WA_FINAL-BANKS
WA_FINAL-BANKL
WA_FINAL-BANKN
WA_FINAL-KOINH.
APPEND WA_FINAL TO IT_FINAL.
ENDIF.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
WRITE:/ WA_FINAL-N,
WA_FINAL-LIFNR,
WA_FINAL-BUKRS,
WA_FINAL-EKORG,
WA_FINAL-KTOKK,
WA_FINAL-NAME1,
WA_FINAL-SORTL,
WA_FINAL-LAND1,
WA_FINAL-AKONT,
WA_FINAL-FDGRV,
WA_FINAL-WAERS,
WA_FINAL-M,
WA_FINAL-BANKS,
WA_FINAL-BANKL,
WA_FINAL-BANKN,
WA_FINAL-KOINH.
ENDLOOP.
data: WA_FINAL1 like line of IT_FINAL.
clear WA_FINAL1.
******************BDC STARTS***********************
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'ZMM_BDCTAB'
KEEP = 'X'
USER = SY-UNAME.
Clear wa_final.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_FINAL1 = WA_FINAL.
CLEAR BDCDATA[].
AT NEW N.
cnt = 1.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
WA_FINAL1-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
WA_FINAL1-BUKRS.
perform bdc_field using 'RF02K-EKORG'
WA_FINAL1-EKORG.
perform bdc_field using 'RF02K-KTOKK'
WA_FINAL1-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-LAND1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
WA_FINAL1-NAME1.
perform bdc_field using 'LFA1-SORTL'
WA_FINAL1-SORTL.
perform bdc_field using 'LFA1-LAND1'
WA_FINAL1-LAND1.
perform bdc_dynpro using 'SAPMF02K' '0120'. "ERROR CLEARED
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-KOINH(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
ENDAT.
*ENDON.
IF WA_FINAL1-N = WA_FINAL1-M.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKS.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKL.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKN.
CONCATENATE 'LFBK-KOINH(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-KOINH.
*ENDDO.
cnt = cnt + 1.
ENDIF.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*AT NEW LIFNR.
perform bdc_field using 'LFB1-AKONT'
WA_FINAL1-AKONT.
perform bdc_field using 'LFB1-FDGRV'
WA_FINAL1-FDGRV.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
WA_FINAL1-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
AT END OF M.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
DYNPROTAB = BDCDATA.
ENDAT.
CLEAR WA_FINAL1.
CLEAR WA_FINAL.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
*********************BDC ENDS***********************
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Flat File is..
HAAA45,1000,1000,0002,NAME45,N,IN,31000,A1,USD
IIN,1000,1021,Name45
IIN,1000,1022,Name45
HAAA50,1000,1000,0002,NAME50,N,IN,31000,A1,USD
IIN,1000,1023,Name50
IIN,1000,1024,Name50Regarding avoiding the loop I have a suggestion, though I have not tried this .
SAP help says " Using the internal table bdc_tab, you can provide any number of screens of the called transaction with input and user actions. " .
Above implies you can load all records in the itab bdc_tab when doing call transaction. Say, your bdc_tabl has 30 records for 1 pass of the transaction. You need to update 10 vendor records. You simply load up all 300 records into bdc_tab. After every 30 record loads, you simulate a 'SAVE' press in your program but do not leave the transaction. Rather you simulate the keystroke that takes you to the first screen of XK01 after the save if not aready there, and start loading up the next transaction. -
BDC scroll down with OK_CODE '=P+'
Hi All,
I am facing a problem with BDC scoll down. I have written BDC for MB1C with serial numbers. i have 100 serial numbers for my 100 qty. While running BDC i am not able to fill more than 19 rows( max allowed rows for that windaw) . So i have used '=P' OK_CODE.....while excecuting this i am getting error......"P Function not defined".
Can anyone help me ........Following is the my BDC code for looping to enter serial numbers.
MOVE 1 TO v_indx.
*DO V_CNT TIMES.
LOOP AT IT_EXCEL1 WHERE WERKS = IT_EXCEL-WERKS
AND LGORT = IT_EXCEL-LGORT
AND MATNR = IT_EXCEL-MATNR
AND CHARG = IT_EXCEL-CHARG.
perform bdc_dynpro using 'SAPLIPW1' '0200'.
CONCATENATE 'RIPW0-SERNR(' v_indx ')' INTO V_FNAM.
perform bdc_field using 'BDC_CURSOR'
V_FNAM.
perform bdc_field using V_FNAM
IT_EXCEL1-SERNR.
perform bdc_field using 'BDC_OKCODE'
'=P+'.
v_indx = v_indx + 1.
ENDLOOP.Instead of Using '=p+' try with Insert OK CODE IT WILL WORK FINE in your items table .
This is VA01 item table loop condition ..
loop at it_va01a into wa_va01a where index = wa_header-index.
if sy-tabix = 1.
concatenate 'RV45A-MABNR(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-mabnr.
concatenate 'RV45A-KWMENG(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-kwmeng.
endif.
if sy-tabix >= 2.
idx = 2.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=POAN'.
concatenate 'RV45A-MABNR(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-mabnr.
concatenate 'RV45A-KWMENG(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-kwmeng.
endif.
endloop.
Hope this will solve your issue.
Regards,
Alan Babu -
Problem with uploading data from excel using BDC for tcode f-02
Hi All,
I am uploading data from excel using BDC for tcode f-02. The problem here is, while recording, the values of some fields are recording twice. I dont know why it's happening so. But if I run my abap program, I have to give those fields twice in my excel sheet. Otherwise data does not upload. But it is not the feasible way. We must give those fields once in excel. Please tell me, how I can solve the issue.
With regards,
Rosaline.Hi,
in BDC each and every action is recording. If your press enter in same screen that also recorded once aging may be this is your case repeating field values will appear. we can solve the problem for repeat fields like below.
suppose in your excel having repeated field X1 X2 X3 the X2 contains repeated field X3 means delete the X3 field.
Now In your itab having X1 and X2 fields. While in the LOOP the ITAB pass the X2 field to repeated the fields.
LOOP at ITAB to WA.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM08M-EBELN'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." 1st time pass the X2 fields
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." pass the same value to repeated field
APPEND bdcdata_wa TO bdcdata_tab.
Endloop.
Hope you can understand.
Regards,
Dhina.. -
Issue with MB25 BDC for Dynamic Selection Screen
Hi Experts,
I recorded one BDC for MB25 Tcode regarding to determine Open Reservation(s) in E Mode (Display Mode). I am passing 3 parameters.
1. Plant,
2. Requirement Date
3. Multiple Reservation Numbers i.e. RSNUM from Dynamic Selection i.e. 2nd Button -> Header Data for Reservation -> Reservation -> Multiple Selection Icon.
But while executing that BDC, I need to manually click every time on 'Header Data for Reservation' Tree and then Multiple Selection for Reservation Icon.
I want below steps automatically while executing:
- Open 'Header Data for Reservation' Tree
- Click Reservation
- Open Popup for 'Multiple Selection'.
So no need to click every time on Dynamic Selection Screen i.e. Header Data for Reservation -> Reservation -> Multiple Selection Icon.
Please find attached screen shot for your reference.
Please guide.
Thanks and Regards,
Emon MasterHello Jainam,
submit (sy-repid) with selection-table v_sp
with free selections EXPRESSIONS
via selection-screen.
Without going through the details, dont you think this will cause an inifinite loop as the calling & the called programs are the same.
Please enlighten me !!
BR,
Suhas -
BDC for Uploading data from XL sheet with unknown order of fields
Hi SAP Gurus,
My requirement is as follows,
A BDC is to be developed for uploading data from an XL sheet, but the problem here is , the order of fileds in the sheet can be changed .
ie, for example the fields in the XL sheet are :-
matnr maktx menge amount
but the user can give as
matnr amount menge maktx
or
maktx matnr amount menge
how i can solve this problem.
Thanks and Regards,
pavan.Hi Pavan,
You need to handle it by your self, you can create a dynamic table based on the file value.
The field name pass from file with the record as a header, and based on the header name create your dynamic table.
afterward you can pass your value to BDC.
for creating dynamic table you can use this method
call method cl_alv_table_create=>create_dynamic_table
exporting
i_style_table =
it_fieldcatalog = it_field[]
i_length_in_byte =
importing
ep_table = dyn_tab
e_style_fname =
exceptions
generate_subpool_dir_full = 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.
-Dhirendra -
Problem with OPERATION TEXT(LTXA1) uploading using BDC For C202 Transaction
Hi Experts,
Im presently doing a BDC for the trransaction C202 (Change Master Recipe),my task was to upload the 'OPERATION TEXT' field PLPOD-LTXA1 which is actually Long text to an existing master recipe from a flat file during updation of the 'OPERATION TEXT the number of lines i was able to were 34 which we number lines on the displayed page and while updating the 35th line using the concept of bdc table control it is failing to insert the update text.
I used all the ok codes but failed to update more than 34 lines.So,can someone tell me how to update the longtext beyound it.
This is the Screenshot of my problem:
[BDC_C202_error|http://www.freeimagehosting.net/uploads/79af6bac49.jpg]
Thanx in advance.Hi,
There is a better way of doing the long text upload in SAP. In your BDC, if I change the text editor, the BDC will not work.
Hence ,
Use function module " Save_Text" to update long texts in SAP.
Please check its FM documentation or perform a search for this FM in SDN for more clarity.
Write back in case you face further issues.
Regards,
Rijuraj
Edited by: Rijuraj Raju on Sep 10, 2010 3:05 PM -
Follow-up question for Chris H on longtext in BDC for IW31
Chris -
Here's the relevant part of my code:
PERFORM DYNPRO USING:
'X' 'SAPLCOIH' '3000', "
' ' 'CAUFVD-KTEXT ' SCRN_PROBLEM1, " 1st line problem text
' ' 'CAUFVD-ANLZU ' CAUFVD-ANLZU, " System condition
' ' 'BDC_OKCODE' '=LTXK'. "
LOOP AT i_txt INTO wa_txt.
v_txtln_ctr_n = sy-tabix + 2. " Chris - note that I'm bumping to "3" here
v_txtln_ctr_c = v_txtln_ctr_n.
CONCATENATE 'RSTXT-TXLINE('
v_txtln_ctr_c
INTO v_bdc_txtln_lit.
CONDENSE v_bdc_txtln_lit NO-GAPS.
PERFORM DYNPRO USING:
'X' 'SAPLSTXX' '1100', "
' ' v_bdc_txtln_lit wa_txt, " line of problem text
' ' 'BDC_OKCODE' '=ENTR'. "
ENDLOOP.
This actually works - it creates an order in which the long text begins with what is in the variable SCRN_PROBLEM1 and continues with what is in i_txt concatenated together. So I get, for example:
"This is the short description. a b c d e"
where:
scrn_problem1 = 'This is the short description'
row 1 of i_txt = 'a'
row 2 of i_txt = 'b'
row 3 of i_txt = 'c'
row 4 of i_txt = 'd'
row 5 of i_txt = 'e'
The only problem is that the BDC doesn't go thru on its own. When I change 'N' to 'E', the BDC brings up a screen with the title:
"Change order text header Alternative Language EN"
Then, when I just "back-arrow" from this, the BDC does complete successfully and I can see the correct text saved for the order in IW32.
What am I doing wrong to cause this "change order text header" screen to come up? Is it the "LTXK" value of the OK-CODE in the first dynpro call above?
Or maybe something with my default user parameters? I had to set quite a few of these in order to get the BDC to go with just a system, priority, and short text/long text.
I'm really hoping you can see what's going on here because I'm at a loss.
Thanks for whatever help you can provide. You seem to have coded this BDC before, so that's why I'm directing this question to you.
BTW, I'd try the BAPI except the documentation specifically says it won't observe user default parameters and this is a must in our situation.
Thanks again
DaveChris/Rich -
My suspicion was correct. In the last loop over the longtext itab, the ok_code must be 'TXBA', not 'ENTR'.
Here's the code that works without any 'E' interruptions:
PERFORM DYNPRO USING:
'X' 'SAPLCOIH' '3000', "
' ' 'CAUFVD-KTEXT ' SCRN_PROBLEM1, " 1st line problem text
' ' 'CAUFVD-ANLZU ' CAUFVD-ANLZU, " System condition
' ' 'BDC_OKCODE' '=LTXK'. "
DESCRIBE TABLE i_txt LINES v_txt_cnt.
LOOP AT i_txt INTO wa_txt.
v_txtln_ctr_n = sy-tabix + 2.
v_txtln_ctr_c = v_txtln_ctr_n.
CONCATENATE 'RSTXT-TXLINE('
v_txtln_ctr_c
INTO v_bdc_txtln_lit.
CONDENSE v_bdc_txtln_lit NO-GAPS.
IF sy-tabix = v_txt_cnt.
v_txt_ok = '=TXBA'. " no more text lines coming
ELSE.
v_txt_ok = '=ENTR'. " more text lines coming
ENDIF.
PERFORM DYNPRO USING:
'X' 'SAPLSTXX' '1100',
' ' v_bdc_txtln_lit wa_txt, " line of problem text
' ' 'BDC_OKCODE' v_txt_ok. " ok_code
ENDLOOP.
The result is that the longtest display in IW32 will be what's in "SCRN_PROBLEM1" followed by all the lines that are in i_txt.
Reagrds
djh -
BDC for MIGO for GR OutBound Delivery( A01 & R05 ) from Movement Type 107 to 109
Hi,
I am stuck with a very typical situation need all your expertise and advices for a solution.
We are basically trying to create change the movement type from 107 to 109 through MIGO.
I have made a BDC recording for MIGO ( because we would like to track each delivery specifically under shipment , I know that there is a BAPI which is there to do this but it works fine if we do the shipment with Purchase Order as input which dont want in that manner )
Process:
1. Creating Production Order
2. Creating Purchase Order
3. Creating STO
4. Deliveries
5. PGI for Deliveries
6. Shipment for group of outbound Deliveries
I have created a z program where i am passing shipment number in the selection screen.
Then it would take all the deliveries for that shipment and pass each delivery to MIGO and process it and change the status from 107 to 109.
Interesting part here is, the code works absolutely perfect only from my ID. But when I test from other ID it is not executing, so to check where is the problem I have added mess_tab to the CALL TRANSACTION to capture what message is been populated for my ID comparing with others
Message Captured on Others ID's:
MSGID: 00
MSGNR: 344
MSGV1: SAPLMIGO
MSGV2: 1300
Message Captured on MY ID:
MSGID: MIGO
MSGNR: 012
MSGV1: 5000005802
MSGV2: (empty)
This is the problem this program is executing only on MY ID, rest all ID's it is not processing.
We have cross verified with security and basis regarding any authorization issues but nothing came up.
Please help me what could be the issue ( WHY it is processing successfully for my and WHY NOT for other ID's)
Below is the main code :
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' " Converting Date format to DD/MM/YYYY
EXPORTING
DATE_INTERNAL = sy-datum
IMPORTING
DATE_EXTERNAL = lv_date_external
EXCEPTIONS
DATE_INTERNAL_IS_INVALID = 1
OTHERS = 2.
IF SY-SUBRC <> 0. "#EC NEEDED
* Implement suitable error handling here
ENDIF.
* Validating input shipment number with database table VTTP
SELECT VTTP~TKNUM
VTTP~TPNUM
VTTP~VBELN
FROM VTTP INNER JOIN VTTK
ON VTTP~TKNUM = VTTK~TKNUM
INTO TABLE IT_VTTP
WHERE VTTK~TKNUM = P_TKNUM
AND VTTK~STDIS = 'X'.
IF sy-subrc = 0.
* Validating all deliveries having same Delivery type or not
SELECT * FROM likp INTO TABLE it_likp FOR ALL ENTRIES IN it_vttp WHERE vbeln = it_vttp-vbeln
AND vbtyp = 'J'.
IF sy-subrc = 0.
CLEAR lv_lines.
LOOP AT it_likp INTO wa_likp.
REFRESH:it_vbfa,BDCDATA.
* Validating if Delivery Type = 109 (GR already done), or Delivery Type = 107 (must process for GR )
SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
* AND vbtyp_v = 'J'
AND bwart = '109'.
IF sy-subrc = 0.
lv_flag1 = 'X'.
ELSE.
SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
* AND vbtyp_v = 'J'
AND bwart = '107'.
IF sy-subrc NE 0.
MESSAGE 'No Deliveries with Movement Type "107" ' TYPE 'I'.
ELSE.
lv_flag2 = 'X'.
lv_lines = lv_lines + 1.
** BDC for MIGO
perform bdc_dynpro using 'SAPLMIGO' '0001'.
perform bdc_field using 'BDC_OKCODE'
'=OK_GO'.
perform bdc_field using 'GODYNPRO-ACTION'
'A01'.
perform bdc_field using 'GODYNPRO-REFDOC'
'R05'.
perform bdc_field using 'GODEFAULT_TV-BWART'
'109'.
perform bdc_field using 'BDC_CURSOR'
'GODYNPRO-OUTBOUND_DELIVERY'.
perform bdc_field using 'GODYNPRO-OUTBOUND_DELIVERY'
wa_likp-vbeln. "'80019574'.
perform bdc_field using 'GOHEAD-BLDAT'
lv_date_external. "'04/29/2015'.
perform bdc_field using 'GOHEAD-BUDAT'
lv_date_external. "'04/29/2015'.
perform bdc_field using 'GOHEAD-WEVER'
'1'.
perform bdc_dynpro using 'SAPLMIGO' '0001'.
perform bdc_field using 'BDC_OKCODE'
'=OK_POST1'.
perform bdc_field using 'GODEFAULT_TV-BWART'
'109'.
perform bdc_field using 'GOHEAD-BLDAT'
lv_date_external. "'04/29/2015'.
perform bdc_field using 'GOHEAD-LFSNR'
wa_likp-vbeln. "'0080019574'.
perform bdc_field using 'GOHEAD-BUDAT'
lv_date_external. "'04/29/2015'.
perform bdc_field using 'GOHEAD-WEVER'
'1'.
perform bdc_field using 'GODYNPRO-DETAIL_ZEILE'
' 1'.
perform bdc_field using 'GOITEM-ERFME'
'EA'.
perform bdc_field using 'GOITEM-ERFMG'
'1'.
perform bdc_field using 'GOITEM-LSMNG'
'1'.
perform bdc_field using 'GOITEM-LSMEH'
'EA'.
perform bdc_field using 'GOITEM-MIGO_ELIKZ'
'1'.
perform bdc_field using 'GOITEM-BWART'
'109'.
perform bdc_field using 'GOITEM-LGOBE'
'RX Cross-docking'.
perform bdc_field using 'BDC_CURSOR'
'GODYNPRO-DETAIL_TAKE'.
perform bdc_field using 'GODYNPRO-DETAIL_TAKE'
'X'.
PERFORM bdc_dynpro USING 'SAPLMIGO' '1300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'G_TIP_DONT_SHOW_AGAIN'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=OK_TIP_GO'.
PERFORM bdc_field USING 'G_TIP_DONT_SHOW_AGAIN'
'X'.
*& Avoid unncessary screens to populate while processing background.
LV_OPTIONS-DISMODE = 'N'.
LV_OPTIONS-UPDMODE = 'S'.
LV_OPTIONS-NOBINPT = 'X'.
CALL TRANSACTION 'MIGO' USING BDCDATA OPTIONS FROM LV_OPTIONS MESSAGES INTO IT_MESSTAB1 .
WAIT UP TO 1 SECONDS.
DELETE IT_MESSTAB1 WHERE MSGTYP NE 'E'.
IF IT_MESSTAB1[] IS NOT INITIAL.
APPEND LINES OF IT_MESSTAB1 TO IT_MESSTAB.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
MESSAGE 'Shipment Number does not exists Or not Planned' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'Please insert Shipment Number' TYPE 'E'.
ENDIF.
IF lv_flag1 = 'X' AND lv_flag2 = 'X'.
MESSAGE 'This shipment is processed with an inconsistent goods receipt' TYPE 'I'.
ELSEIF lv_flag1 = 'X'.
MESSAGE 'Shipment already been processed for these deliveries' TYPE 'I'.
ELSEIF lv_flag2 = 'X'.
lv_lines1 = lv_lines.
CONDENSE lv_lines1 NO-GAPS .
CONCATENATE lv_lines1 'Goods Receipt are posted for the shipment '
INTO lv_message SEPARATED BY space.
MESSAGE lv_message TYPE 'I'.
ENDIF.
* Display Messages from Message TAB.
DELETE ADJACENT DUPLICATES FROM IT_MESSTAB.
DATA:lv_msg TYPE string.
LOOP AT IT_MESSTAB INTO WA_MESSTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = WA_MESSTAB-MSGID
NO = WA_MESSTAB-MSGNR
V1 = WA_MESSTAB-MSGV1
V2 = WA_MESSTAB-MSGV2
V3 = WA_MESSTAB-MSGV3
V4 = WA_MESSTAB-MSGV4
IMPORTING
MSG = lv_msg
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
WRITE:/ lv_msg.
ENDLOOP.
* Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO. "#EC PF_NO_TYPE
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
* Insert field *
FORM BDC_FIELD USING FNAM FVAL. "#EC PF_NO_TYPE
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM.
Thanks,
SriniHi Rob,
Thanks for quick reply.
I have checked the NOTE : 304122
But there in the NOTE it says ( " BAPI, BAPI_GOODSMVT_CANCEL, BAPI_GOODSMVT_CREATE, CNTL_ERROR" )
These BAPI's work perfectly for (purchase order as input type), but here out type is ( A01 & R05 ) we are giving DELIVERY NUMBER as input to MIGO.
So for this scenario we cannot use those BAPI's mentioned in the NOTE.
Also as stated earlier in the message interesting part is
"The code works absolutely perfect only from my ID. But when I test from other ID it is not executing. Code is working exactly as expected ONLY to my ID. When i try to execute the same code from another's ID it is not working"
So what do you think might be the issue?
Maybe you are looking for
-
Is using iWeb without a MobileMe account futile
I have no need for a MobileMe account so it's way overpriced compared to an average host. I was able to do this much - publish an iWeb site to a local folder and use my Mac as a host (This shouldn't matter but I used the Safari server with MAMP - i.e
-
Multiple Downpayment condition in PO
Hi Is it possible to config multiple downpayment feild in purchase order.?
-
Hi SAPiens, I have copied xxxx India Model Co with new co code yyyy and copied 1111 chart of accounts-India with new chart of accounts 9999. I am getting an error msg when I am trying to assign Chart of accounts 9999 to company code yyyy. The error
-
Call a function at specific intervals
Hi, I need to call a function or page at specific intervals. Or I need a ping a page at specific intervals, to keep the session alive. I found window.setInterval() works fine. Is there any such function in coldfusion?
-
How to recover photos from device that screen doesnt work, and didn't use cloud or a memory card. (chip)