Regarding bdc upload for purchase order
hi friends,
here i got a problem in purchase order upload.the format in excel sheet data is in this format mentioned bellow
lifnr ekorg ekgrp werks lgort ematn menge netpr
142 1000 1000 1000 1000 <b>100-100 10 150
100-100 15 100
100-100 10 140
100-100 12 56
100-100 8 40</b>
here to identify items which r in bold and to write code for this is my problem. if the iteams r separated with ' , ' i can use split at , and between loop and end loop i executed the code earlier. but now my flat file containing 1000+ records and to convert that in my mode of program is a problem. so can any one suggest me how to proceed and code the above mentioned flat file structure to be uploaded in one record.
<b>this program is very urgent.............so take it as a request and help me in futher proceddings.......</b>
thaning you all........
i wait for replay...............
Hi,
I hope earlier you are comma seperated file, and you are easily spliting the values using SPLIT command.
Now you are using flat file (fixed length) Using offset values you need map the fields manually in loop ... endloop control statement. (takes long time to find total lengh of record although you have to).
If you using TABDELIMITED, use the same SPLIT command , instead of 'comma' use 'CL_ABAP_CHAR_UTILITIES=>TAB_DELIMITED' attribute.
If you can maintain hierarchy. I hope it will be easy.
see below structure if want to do in hierarchy mode. Write logic determine the detail record and map it. It is easy rather than direct offset mapping.
<b>indicator ifnr ekorg ekgrp werks lgort
indicator ematn menge netpr
1 142 1000 1000 1000 1000
<i>2 100-100 10 150
2 100-100 15 100
2 100-100 10 140
2 100-100 12 56
2 100-100 8 40</i></b>
Please let me know what type of file i.e. reason i have given all three types.
If it helps.Plz reward points.
Regards
Bhupal Reddy.
Similar Messages
-
Hi guys I have written the following program to upload the purchase order data by using BDC call transaction method, now I want to write whatever is in the message table, I mean the errors if there are any and the other required fields. So can you please help me in writing that :
Thanks
Rajeev Gupta
*& Report ZBDC_PURCHASEORDER *
REPORT zbdc_purchaseorder .
Definition of Structures *
DATA: bdctab LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab OCCURS 0,
vend_no(10),
ord_typ(2),
date(8),
purch_org(4),
purch_grp(3),
plant(4),
sloc(4),
mat_grp(3),
mat_no(18),
quant(13),
inc_term(3),
inc_inf(28),
END OF itab.
DATA: itab2 LIKE itab OCCURS 0 WITH HEADER LINE.
Definition of Variables *
DATA: v_tabix LIKE syst-tabix,
v_tabix2(2) TYPE n,
v_ekorg LIKE ekko-ekorg,
v_werks LIKE ekpo-werks,
v_lifnr LIKE ekko-lifnr,
v_bednr LIKE ekpo-bednr,
v_index LIKE syst-index,
l1 LIKE syst-tabix,
c_tabix(2),
v_mat_no(18),
v_mat_quant(16).
Definition of Constants *
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM get_data.
PERFORM create_bdcdata.
END-OF-SELECTION.
*& Form get_data
text
--> p1 text
<-- p2 text
FORM get_data .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\Documents and Settings\ekansh\Desktop\purc_order.txt'
filetype = 'DAT'
TABLES
data_tab = itab
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
gui_refuse_filetransfer = 8
OTHERS = 9.
itab2[] = itab[].
*write : / itab-vend_no.
ENDFORM. " get_data
*& Form create_bdcdata
text
--> p1 text
<-- p2 text
FORM create_bdcdata .
DESCRIBE TABLE itab LINES l1.
LOOP AT itab.
v_tabix = syst-tabix.
IF v_tabix = 1.
MOVE v_tabix TO v_tabix2.
PERFORM bdc_dynpro USING:
'X' 'SAPMM06E' '0100',
'' 'BDC_OKCODE' '/00',
'' 'EKKO-LIFNR' itab-vend_no,
'' 'RM06E-BSART' itab-ord_typ,
'' 'RM06E-BEDAT' itab-date,
'' 'EKKO-EKORG' itab-purch_org,
'' 'EKKO-EKGRP' itab-purch_grp,
'' 'RM06E-WERKS' itab-plant,
'' 'RM06E-LGORT' itab-sloc,
'' 'RM06E-MATKL' itab-mat_grp.
PERFORM line_bdc_tab.
v_lifnr = itab-vend_no.
v_ekorg = itab-purch_org.
v_werks = itab-plant.
v_bednr = itab-bednr.
ELSE.
IF v_lifnr = itab-vend_no AND
v_ekorg = itab-purch_org AND
v_werks = itab-plant.
v_bednr = itab-bednr.
v_tabix2 = v_tabix2 + 1.
PERFORM line_bdc_tab.
ELSE.
PERFORM bdc_dynpro USING:
'X' 'SAPMM06E' '0100',
'' 'BDC_OKCODE' '/00',
'' 'EKKO-LIFNR' itab-vend_no,
'' 'RM06E-BSART' itab-ord_typ,
'' 'RM06E-BEDAT' itab-date,
'' 'EKKO-EKORG' itab-purch_org,
'' 'EKKO-EKGRP' itab-purch_grp,
'' 'RM06E-WERKS' itab-plant,
'' 'RM06E-LGORT' itab-sloc,
'' 'RM06E-MATKL' itab-mat_grp.
CLEAR v_tabix2.
v_tabix2 = v_tabix2 + 1.
PERFORM line_bdc_tab.
v_lifnr = itab-vend_no.
v_ekorg = itab-purch_org.
v_werks = itab-plant.
v_bednr = itab-bednr.
ENDIF.
ENDIF.
READ TABLE itab2 WITH KEY vend_no = itab-vend_no
purch_org = itab-purch_org
plant = itab-plant.
IF v_tabix = 1.
MOVE syst-tabix TO v_index.
ENDIF.
v_index = v_index + 1.
READ TABLE itab2 INDEX v_index.
IF itab2-vend_no = itab-vend_no AND
itab2-purch_org = itab-purch_org AND
itab2-plant = itab-plant.
IF l1 = v_tabix.
PERFORM call_save.
CALL TRANSACTION 'ME21' USING bdctab
MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
CLEAR bdctab.
REFRESH bdctab.
ENDIF.
ELSE.
PERFORM call_save.
CALL TRANSACTION 'ME21' USING bdctab
MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
CLEAR bdctab.
REFRESH bdctab.
ENDIF.
ENDLOOP.
ENDFORM. " create_bdcdata
*& Form bdc_dynpro
text
-->P_0120 text
-->P_0121 text
-->P_0122 text
FORM bdc_dynpro USING p1
p2
p3.
IF p1 = 'X'.
bdctab-dynbegin = p1.
bdctab-program = p2.
bdctab-dynpro = p3.
ELSE.
bdctab-fnam = p2.
bdctab-fval = p3.
ENDIF.
APPEND bdctab.
CLEAR bdctab.
ENDFORM. " bdc_dynpro
*& Form line_bdc_tab
text
--> p1 text
<-- p2 text
FORM line_bdc_tab .
PERFORM bdc_dynpro USING:
'X' 'SAPMM06E' '0120',
'' 'BDC_OKCODE' '/00'.
MOVE v_tabix2 TO c_tabix.
CONCATENATE 'EKPO-EMATN(' c_tabix ')' INTO v_mat_no.
CONCATENATE 'EKPO-MENGE(' c_tabix ')' INTO v_mat_quant.
CONDENSE v_mat_no.
CONDENSE v_mat_quant.
PERFORM bdc_dynpro USING:
'' v_mat_no itab-mat_no,
'' v_mat_quant itab-quant.
ENDFORM. " line_bdc_tab
*& Form call_save
text
--> p1 text
<-- p2 text
FORM call_save .
PERFORM bdc_dynpro USING:
'X' 'SAPMM06E' '0120',
'' 'BDC_OKCODE' '=BU',
'X' 'SAPLSPO1' '0300',
'' 'BDC_OKCODE' '=YES'.
ENDFORM. " call_save<b>Overview</b>
loop at itab.
call transaction ......
if sy-subrc <> '0'.
perform error_message.
endif.
endloop.
form error_message.
call funtion 'format_message'. * to write the error message in to the screen
endform.
See the below example code for BDMSGCOLL Structure ...
REPORT znit_bdc_assign
NO STANDARD PAGE HEADING LINE-SIZE 255.
for programs doing a data transfer by creating a batch-input session
and
for programs doing a data transfer by CALL TRANSACTION USING
*******Here SESSION = ' ' and CTU = 'X'
DATA: ctumode LIKE ctu_params-dismode VALUE 'N' ,
cupdate LIKE ctu_params-updmode VALUE 'L' ,
e_group(12), "group name of error-session
e_user(12) , "user for error-session
e_keep VALUE 'X', "'X' = keep session if finished
e_hdate LIKE sy-datum.
DATA: smalllog VALUE ' ' ,
nodata VALUE '/'.
DATA: flag .
DATA DECLARATION *
TYPES: begin of t_result,
matnr(18) , "TYPE RMMG1-MATNR
maktx(40) , "TYPE makt-maktx
bismt(18) , "TYPE mara-bismt
brgew(13) , "TYPE mara-brgew
gewei(3) , "TYPE mara-gewei
message(250), "Message
END OF t_result .
DATA : right TYPE STANDARD TABLE OF t_result ,
wrong TYPE STANDARD TABLE OF t_result ,
wa_result TYPE t_result .
data definition
Batchinputdata of single transaction
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
error session opened (' ' or 'X')
DATA: e_group_opened.
message texts
TABLES: t100.
*INITIALIZATION
INITIALIZATION.
MOVE sy-uname TO e_user .
Start new transaction according to parameters *
FORM bdc_transaction USING tcode.
DATA: l_mstring(480).
DATA: l_subrc LIKE sy-subrc.
batch input session
REFRESH messtab.
CALL TRANSACTION tcode USING bdcdata
MODE ctumode
UPDATE cupdate
MESSAGES INTO messtab.
l_subrc = sy-subrc.
IF smalllog <> 'X'.
WRITE: / 'CALL_TRANSACTION', "CH01
tcode, "CH01
'returncode:'(i05), "CH01
l_subrc, "CH01
'RECORD:', "CH01
sy-index. "CH01
LOOP AT messtab.
SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
AND arbgb = messtab-msgid
AND msgnr = messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
WRITE: / messtab-msgtyp, l_mstring(250).
IF messtab-msgtyp = 'S' . "If successfully uploaded CH01
flag = '1' .
ELSE .
flag = '2' . "if not succesfully uploaded CH01
ENDIF.
MOVE l_mstring TO wa_result-message .
ELSE.
WRITE: / messtab.
ENDIF.
ENDLOOP.
SKIP.
Erzeugen fehlermappe ************************************************
IF l_subrc <> 0 AND e_group <> space.
IF e_group_opened = ' '.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = e_group
user = e_user
keep = e_keep
holddate = e_hdate.
e_group_opened = 'X'.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = tcode
TABLES
dynprotab = bdcdata.
ENDIF.
ENDIF.
REFRESH bdcdata.
ENDFORM.
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.
*Structure of the internal table in which data has to be uploaded
TYPES: BEGIN OF t_final,
matnr(18) , "TYPE RMMG1-MATNR
maktx(40) , "TYPE makt-maktx
bismt(18) , "TYPE mara-bismt
brgew(13) , "TYPE mara-brgew
gewei(3) , "TYPE mara-gewei
END OF t_final .
DATA: answer , "return value in popup_to_comfirm
count1 TYPE i , "no. of records not succusfully uploaded
count2 TYPE i . "no. of records successfully uploaded
DATA: i_final TYPE STANDARD TABLE OF t_final ,
wa_final TYPE t_final .
PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY.
stores file name to be uploaded
AT SELECTION SCREEN *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = ' '
mask = ',.,..'
MODE = ' '
TITLE = ' '
IMPORTING
filename = p_file
RC =
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 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.
ENDIF.
START OF SELECTION *
START-OF-SELECTION.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Confirm Pop-UP'
DIAGNOSE_OBJECT = ' '
text_question = 'Would you like to proceed?'
text_button_1 = 'Yes'(001)
icon_button_1 = 'ICON_OKAY'
text_button_2 = 'No'(002)
icon_button_2 = 'ICON_CANCEL'
default_button = '1'
display_cancel_button = 'X'
USERDEFINED_F1_HELP = ' '
start_column = 25
start_row = 6
POPUP_TYPE =
IMPORTING
answer = answer
TABLES
PARAMETER =
EXCEPTIONS
text_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.
CHECK answer EQ '1'.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = p_file
filetype = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = i_final
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 i_final INTO wa_final .
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MATNR'
wa_final-matnr.
MOVE wa_final-matnr TO wa_result-matnr .
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'MAKT-MAKTX'
wa_final-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-BISMT'.
PERFORM bdc_field USING 'MARA-BISMT'
wa_final-bismt.
PERFORM bdc_field USING 'MARA-BRGEW'
wa_final-brgew.
PERFORM bdc_field USING 'MARA-GEWEI'
wa_final-gewei.
MOVE wa_final-maktx TO wa_result-maktx .
MOVE wa_final-bismt TO wa_result-bismt .
MOVE wa_final-brgew TO wa_result-brgew .
MOVE wa_final-gewei TO wa_result-gewei .
PERFORM bdc_transaction USING 'MM02'.
flag = '1' Record updated successfully
flag = '2' Record not updated
IF flag = '1' .
APPEND wa_result TO right .
count1 = count1 + 1 .
ELSEIF flag = '2' .
APPEND wa_result TO wrong .
count2 = count2 + 1 .
ENDIF .
ENDLOOP.
Report Generation
WRITE : ' Success Item' .
SKIP .
WRITE : / ' Number of Success Items: ', count1 , ' Items.' .
SKIP .
WRITE: / 'Material Number ',
19 'Material Name',
59 'Old Mat. Name',
77 'Gross Wt.',
90 'Weight Unit',
105 'Message' .
WRITE: sy-uline .
LOOP AT right INTO wa_result .
WRITE: / wa_result-matnr ,
19 wa_result-maktx ,
59 wa_result-bismt ,
77 wa_result-brgew ,
90 wa_result-gewei ,
105 wa_result-message .
ENDLOOP .
SKIP 2 .
WRITE : /' Error Item' .
SKIP .
WRITE : / ' Number of Error Items: ', count2 , ' Items.' .
SKIP .
WRITE: / 'Material Number ',
19 'Material Name',
59 'Old Mat. Name',
77 'Gross Wt.',
90 'Weight Unit',
105 'Message' .
WRITE: sy-uline .
LOOP AT wrong INTO wa_result .
WRITE: / wa_result-matnr ,
19 wa_result-maktx ,
59 wa_result-bismt ,
77 wa_result-brgew ,
90 wa_result-gewei ,
105 wa_result-message .
ENDLOOP .
Reward Points if it is helpful
Rgds,
Naren
Message was edited by:
Naren Someneni -
Need help regarding payment terms f4 for purchase order
hello everyone,
im currently workin on smartform for purchase order so transaction code is me23n in dat 1st tab delivery/invoice can u see payment terms field its technical field name is ZTERM in dat if u click on f4 ull find tht value along with description say eg 0001 payable immediately due net lik dis it comes so i need to display ths text i.e payable imm... lik dis in my smartforms field im unable to retrieve tht text element i gt 1 function module also ie Fi_F4_ZTERM here im gettin whole record i wnt only 1st record i.e 0001 payable if u click on f4 thr r many records...so whn u go to me23n ie for display u shd hav value tht is alrdy stored lik dis u check ulll understand.. thnx in advance fr ur help...Hi,
The text of payment terms is stored in table T052U.
You can get the payment terms of a PO in table EKKO and field ZTERM.
Pass the value of this field i.e. EKKO-ZTERM to T052U-ZTERM and T052U-SPRAS as SY-LANGU .
You will get the description of the payment terms maintained in the PO.
Regards,
Vinod -
Upload of purchase order text in the material master
Now we have information of Purchase order text for all the material.
Is it possible to upload the Purchase order text using LSMW.
Some friends were telling that LSMW is not possible for Purchase Order text.
Can anyone suggest how I can upload this purchase order text for all 1000
material using LSMW program.
/if not LSMW is there any other method to upload it
thanks in advance
deepak.s.gouraDear Deepak,
there is standard direct upload i believe
go to lsmw
Execute 1st option
then inLSMW:Object Attribute screen
in standard batch/ direct input
firsr radio button
select object 005
and method 003
Program name RSTXLITF.
Then go by normal process i.e source field , field mapping...
In this way u can also upload Text in the Material master.
Rewards if helpful
Regards
Sanjay L -
Error while uploading Complex Purchase Order through POXPOPDOI open interfa
Dear Gurus,
I am trying to upload Complex Purchase Orders in Oracle EBS R 12.1.2
The PO_INTERFACE_ERRORS table is populated with the following message:
STYLE_ID Error: Style (STYLE_ID = 103) with progress payments is not supported.
We have checked each and every setup. It is OK.
We tried to enter the complex POs from Front end screen, there is no issue. But I dont know why this error comes everytime we try to upload the POs throught the interface
We ran the Diagnostic Test. It is also OK.
Cannot figure out what is the issue. Please help.
RegardsHi
I think some basis related configuartions to be done
Try like this and inform me
A cyclic job runs, which processes the messages seen in the SOST queue.
Are you sure it's not the frequency of the cyclic job, rather than the
number of messages in the queue, that you are observing? In messages
that are queued and before the cyclic job runs, "wait for comm. service"
is the normal status.
If you mean that there are always 4 items queued in SOST regardless of
the cyclic send job, then I have no ideas. I would have thought there
was no way to do that.
when the send job runs it just never
picks them up & sends them, while it picks up many others. The send job
is somehow blind to these; no error message occurs. In this case, I
'delete' them from the queue (in SOST) and then 'undelete' (drop down
menu -> /Go to /Deleted Items) them and then re-queue them. THEN they
actually get picked up & sent when the next cyclic send job executes.
Regards
Pavan -
Table for purchase order status
Hello friends,
There's a tab STATUS in purchase order (tcoe ME21N).
I can't find a table which contains theses statuses.
Anybody knows what's the table for purchase orders status ??
Regards,
BahiaHi
PO status is stored in Structure not in the table.
Please use the List displays to get the information like ME2N,ME2L, ME2M, ME2K etc
You can also get the information from the table EKKO, EKPO, EKET,EKBE
Hope it helps
thanks/karthik -
Require Standard DataSources for Purchase Orders
Hi,
Please provide me the standard datasources for purchase orders to get the data updated automatically in a BI System.
I have to display report containing the purchase orders details of each day.
Regards
Sunil KumarHi,
Following link will give you complete details of purchase order deports and data sources.
http://help.sap.com/saphelp_nw70/helpdata/en/df/cfb839f6a7a307e10000000a11402f/frameset.htm
Regards,
Vishnu -
Driver program for Purchase Order form "/SMB40/MMPO_A"
Hi All
Could you please suggest me Driver program for Purchase Order form "/SMB40/MMPO_A" ?
Driver program "/SMB40/FM06P" does not have the same interface structure as this form, hence can not be used.
<< Text removed>>.
Regards
Ansh
Edited by: Matt on Mar 27, 2009 7:22 AM - Please do not offer pointsHi Ansh
see this link
[Driver program |https://forums.sdn.sap.com/click.jspa?searchID=24089230&messageID=6810108]
Regards
HAreesh Menon -
Problem in creating a SyncBo for Purchase Order BAPIs
Hello Everybody,
I am trying to create a smart sync application for Purchase Orders.
I have used standard bapis like BAPI_PO_GETDETAIL AND BAPI_PO_CREATE1.
I have developed my own wrapper functions using these std bapis. For the PO creation i only plan to insert the necessary and mandatory data. The problem i face is that some of the tables in the create bapi which are mandatory for a PO creation are freezed in the SyncBo.
Tables like POITEMX, POADDRDELIVERY, POSCHEDULE and structure POHEADERX are all required for the creation of a PO. Without this minimum data a PO cannot be created.
After i have created the syncBo, on the mapping screen i can only see these tables under the create BAPI. But i am not able to perform the mapping of their fields. These are non-editable or i must say that they are freezed.
And if i cannot map them then i cannot pass data for them from the client. Although i can do the mapping for the table PO_ITEM and the structure PO_HEADER.
I hope i am able to expplain my problem. Kindly get back to me if i am not clear. Any sort of help is welcome.
Thanking in advance,
Saurabh.Hi Saurabh,
Hope you are aware of the prerequisites for creating the BAPI Wrappers.
If you want to insert some data into the Business Object, then you have to include
GETLIST, GETDETAIL and CREATE Bapi Wrappers.
I think in your case,
You might not have mapped those fields in your GETLIST Bapi Wrapper.Just check whether you have mapped those fields that are necessary for PO creation in your GETLIST and GETDETAIL BApi wrapper mapping screen.
Those fields you have mapped in the GETLIST and GETDETAIL BAPI wrappers will be visible (for selection - checkboxes will be editable) in the mapping screen for CREATE BAPI Wrapper.
So first of all, you have to map fields there in the mapping screens for GETLIST and GETDETAIL Bapi Wrappers...
check this thing...
refer these links..
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/com.sap.km.cm.docs/library/mobile/mobile%20infrastructure/mobile%20development%20kit%202.5/content/appdev/smartsync/introduction.html
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/com.sap.km.cm.docs/library/mobile/mobile%20infrastructure/mobile%20development%20kit%202.5/content/appdev/smartsync/bapi_wrapper_types.html
In the second link, you can see one figure, which is explaining the things that are to be satisfied by the BAPI Wrappers for SyncBO creation...
Let me know If you have doubts in the prerequisite section itself...
Regards,
Kishor Gopinathan -
Error:-document is in transfer for purchase order..creation is not possible
Hello,
While doing confirmation of PO I am getting this error, saying "document is in transfer for purchase order..creation is not possible".
can anyone please suggest me solution on this type of error?Hi,
Is the PO in ORDERED status? Is there any confirmation posted for this PO which might be stuck (idoc failed to reach back end)?
If it is a case of idoc failure, then reprocess the idoc and then do the next confirmation.
regards,
MRao -
No goods receipt possible for purchase order 'PO#" "Lineitem"
Hi gurus,
Please help on below error.
While doing return to vendor transaction using BAPI 'BAPI_GOODSMVT_CREATE' error 'No goods receipt possible for purchase order 'PO#" "Lineitem"' was encountered. As checked, all data are correct including the plant, sloc, PO#, stocks, batch.
Please kindly advice on how to resolve the issue.
Thank you in advance.Hi,
Few things which immediately comes to my mind.
1. Check if the PO is released?
2. Check if the confirmation control is properly set in Confirmations tab of item details of a PO.
3. Check if the Goods Receipt indicator is ticked at item level of PO.
I hope these helps.
Kind Regards,
Prakash -
Goods receipt for purchase order not allowed for a particular wbs
hello everybody..
Am creating a good receipt for a purchase order using the T-CODE-: MIGO...
While doing so am getting an error as " goods receipt for purchase order not allowed(wbs element)".
What can be done to rectify this error?
Plz do help me....
Regards,
Deepika
Moderator message: not directly related to ABAP development, please have a look in the appropriate functional forum, study the long text of this error message.
Edited by: Thomas Zloch on Dec 1, 2010 5:52 PMHi Br. Ajay M,
Released the order and Status line as follow
REL AVAC BUDG GMPS
but the error changed while reverse the document
item 0001 Order is invalid.
Many thanks for your kindly reply.
regards,
Steven -
Getting errors when iam using BAPI_PO_CREATE1 for Purchase Order creation
Hi sap Gurus,
I am getting Errors when iam using BAPI_PO_CREATE1 for Purchase Order creation that Material (144) does not exist but it is alreardy maintained in MM01.
I dont get how it is coming.and what are the mandatory fields in bapi BAPI_PO_CREATE1 in item level .that is too material only.
pls let me know .
thanks in advance.Hi,
Check the sample code..
report zpo_test .
*DATA DECLARATION
constants : c_x value 'X'.
*Structures to hold PO header data
data : header like bapimepoheader ,
headerx like bapimepoheaderx .
*Structures to hold PO account data
data : account like bapimepoaccount occurs 0 with header line ,
accountx like bapimepoaccountx occurs 0 with header line .
*Internal Tables to hold PO ITEM DATA
data : item like bapimepoitem occurs 0 with header line,
itemx like bapimepoitemx occurs 0 with header line,
*Internal table to hold messages from BAPI call
return like bapiret2 occurs 0 with header line,
*Internal table to hold messages from BAPI call
pocontractlimits like bapiesucc occurs 0 with header line.
data : w_header(40) value 'PO Header',
purchaseorder like bapimepoheader-po_number,
delivery_date like bapimeposchedule-delivery_date.
data : ws_langu like sy-langu.
*text-001 = 'PO Header' - define as text element
selection-screen begin of block b1 with frame title text-001.
parameters : company like header-comp_code default '122' ,
doctyp like header-doc_type default 'NB' ,
cdate like header-creat_date default sy-datum ,
vendor like header-vendor default '2000000012' ,
pur_org like header-purch_org default 'PU01' ,
pur_grp like header-pur_group default '005' .
*sociedad like HEADER-COMP_CODE default '122' ,
*vendedor like HEADER-SALES_PERS default 'sale person'.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-002.
parameters : item_num like item-po_item default '00010',
material like item-material default '12000000' ,
tipo_imp like item-acctasscat default 'K' ,
*pos_doc like ITEM-ITEM_CAT default 'F' ,
shorttxt like item-short_text default 'PRUEBA BAPI' ,
grup_art like item-matl_group default '817230000' ,
plant like item-plant default '3001' ,
mpe like item-trackingno default '9999' ,
*contrato like ITEM-AGREEMENT default '4904000003' ,
*quantity like ITEM-QUANTITY default 1 .
po_unit like item-po_unit default 'EA'.
selection-screen end of block b2.
Par?mnetros de imputaci?n
selection-screen begin of block b3 with frame title text-004.
parameters : centro like account-costcenter default '1220813150',
cuenta like account-gl_account default '6631400' ,
num_pos like account-po_item default '10' ,
serial like account-serial_no default '01' ,
ind_imp like account-tax_code default 'I2' .
selection-screen end of block b3.
start-of-selection.
*DATA POPULATION
ws_langu = sy-langu. "Language variable
*POPULATE HEADER DATA FOR PO
*HEADER-COMP_CODE = sociedad .
header-doc_type = doctyp .
header-vendor = vendor .
header-creat_date = cdate .
header-created_by = 'TD17191' .
header-purch_org = pur_org .
header-pur_group = pur_grp .
header-comp_code = company .
header-langu = ws_langu .
*HEADER-SALES_PERS = vendedor .
*HEADER-CURRENCY = 'DOP' .
*HEADER-ITEM_INTVL = 10 .
*HEADER-PMNTTRMS = 'N30' .
*HEADER-EXCH_RATE = 1 .
*POPULATE HEADER FLAG.
headerx-comp_code = c_x.
headerx-doc_type = c_x.
headerx-vendor = c_x.
headerx-creat_date = c_x.
headerx-created_by = c_x.
headerx-purch_org = c_x.
headerx-pur_group = c_x.
headerx-langu = c_x.
*HEADERX-sales_pers = c_x.
*HEADERX-CURRENCY = c_x.
*HEADER-ITEM_INTVL = c_x.
*HEADER-PMNTTRMS = c_x.
*HEADER-EXCH_RATE = c_x.
*HEADER-EXCH_RATE = c_x.
*POPULATE ITEM DATA.
item-po_item = item_num.
item-quantity = '1'.
*ITEM-MATERIAL = material .
item-short_text = 'prueba bapi_po_create1'.
*ITEM-TAX_CODE = ''.
item-acctasscat = 'K' .
*ITEM-ITEM_CAT = 'D' .
item-matl_group = '817230000' .
item-plant = '3001' .
item-trackingno = '99999'.
item-preq_name = 'test'.
*ITEM-AGREEMENT = '' .
*ITEM-AGMT_ITEM = ''.
item-quantity = '1' .
item-po_unit = 'EA'.
*ITEM-ORDERPR_UN = 'EA'.
item-conv_num1 = '1'.
item-conv_den1 = '1'.
item-net_price = '1000000' .
item-price_unit = '1'.
item-gr_pr_time = '0'.
item-prnt_price = 'X'.
item-unlimited_dlv = 'X'.
item-gr_ind = 'X' .
item-ir_ind = 'X' .
item-gr_basediv = 'X'.
*ITEM-PCKG_NO = '' .
append item. clear item.
*POPULATE ITEM FLAG TABLE
itemx-po_item = item_num.
itemx-po_itemx = c_x.
*ITEMX-MATERIAL = C_X.
itemx-short_text = c_x.
itemx-quantity = c_x.
*ITEMX-TAX_CODE = C_X.
itemx-acctasscat = c_x.
*ITEMX-ITEM_CAT = c_x.
itemx-matl_group = c_x.
itemx-plant = c_x.
itemx-trackingno = c_x.
itemx-preq_name = c_x.
*ITEMX-AGREEMENT = C_X.
*ITEMX-AGMT_ITEM = c_x.
itemx-stge_loc = c_x.
itemx-quantity = c_x.
itemx-po_unit = c_x.
*ITEMX-ORDERPR_UN = C_X.
itemx-conv_num1 = c_x.
itemx-conv_den1 = c_x.
itemx-net_price = c_x.
itemx-price_unit = c_x.
itemx-gr_pr_time = c_x.
itemx-prnt_price = c_x.
itemx-unlimited_dlv = c_x.
itemx-gr_ind = c_x .
itemx-ir_ind = c_x .
itemx-gr_basediv = c_x .
append itemx. clear itemx.
*POPULATE ACCOUNT DATA.
account-po_item = item_num.
account-serial_no = serial .
account-creat_date = sy-datum .
account-costcenter = centro .
account-gl_account = cuenta .
account-gr_rcpt = 'tester'.
append account. clear account.
*POPULATE ACCOUNT FLAG TABLE.
accountx-po_item = item_num .
accountx-po_itemx = c_x .
accountx-serial_no = serial .
accountx-serial_nox = c_x .
accountx-creat_date = c_x .
accountx-costcenter = c_x .
accountx-gl_account = c_x .
account-gr_rcpt = c_x.
append accountx. clear accountx.
*BAPI CALL
call function 'DIALOG_SET_NO_DIALOG'.
call function 'BAPI_PO_CREATE1'
exporting
poheader = header
poheaderx = headerx
importing
exppurchaseorder = purchaseorder
tables
return = return
poitem = item
poitemx = itemx
poaccount = account
poaccountx = accountx.
*Confirm the document creation by calling database COMMIT
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'
IMPORTING
RETURN =
end-of-selection.
*Output the messages returned from BAPI call
loop at return.
write / return-message.
endloop.
Regards
Sudheer -
IDoc Error "" No goods receipt possible for purchase order"
Hi All
I am getting IDoc failed with the error massaeg " No goods receipt possible for purchase order I510954-02 00010
Message type :MBGMCR
Basic type : MBGMCR03
Message no. M7036
Status : 51
Please suggest on this
Thanks
AjitHi
Please go through thid link i think it will help you..
No goods receipt possible in PO
Error - E 036 No goods receipt possible for purchase order
No goods receipt possible for purchase order
Regards
Sharada -
No (suitable) item found for purchase order
Dear All,
The order is stock transfer order (STO) item category U. i saw GR is already create. GI and also DCGR. i want to do DCIR which is invoice receipt in tcode mr01, the error "No (suitable) item found for purchase order" is coming out. What would be the cause of this situation? i check with old last PO it is same set with the one that having in problem. i also double click the item to see the detail and what i can see tick option for del completed and no tick on final del.
no GR-based-4 or invoice receipt option to tick. means no tick option for this. but when i see previous po also same. but there is history on DCIR.
Really need to know what should i do? is bug?
Regards
AishahIn case of out company it was SA(schudule agrement) PO we try on the Credit memo by MIRO t-code through IV
but we met the same error message
The problem cause of not exist delivery schedule quantiry we have put in the qty to there by manually after than this issue cleared.
Hoil.
Maybe you are looking for
-
Multiple Idocs creation based on source conditions
Dear All, I have to create multiple idocs from the source idoc based on the line litems ie if my source Idocs has 5 line items so 5 different idocs to be generated at target. I am able to process upto this stage. Now my requirement is that target Ido
-
R6002 - floating point not loaded / C++ Runtime Error
Good Evening, I have been having this problem with Adobe Bridge for a while and tonight sat down to try and solve it. Fresh version of Windows XP reinstalled all programs and this is still happening! Any Ideas? This error only occurs with Adobe Bridg
-
Hi Friends, I have requirement in partner function, when I configured a new partner function ZH and create vendor it auto picks up the this PF and same vendor number... but my requirement is number needs to blank and it should not be mandatory.. is i
-
Why can't i use installed fonts in microsoft office?
i downloaded and installed new fonts to font book and can use them in mac-based applications, but they do not show up in the font list in microsoft office. how can i get them to load in office? thanks!
-
Iphone 5: contact problem
I enter a new number into the phone and press add contact, but it does not save to the address book. however if i search the contact its on the phone somewhere but not the address book. how do the contacts add to the address book when added using the