Cerating Po Using BAPI
Hi Gurus,
I'm creating purchase order using bapi ''BAPI_PO_CREATE'' but it will return a message like ' No master record exists for vendor 1015 '. But i check in lfa1 table this record will exits.
please tell me what is this error.
HI,
problem is with the alpha conversion of the vendor number.
use fm
CONVERSION_EXIT_ALPHA_INPUT
vendor_variable = '1015'
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = vendor_variable
IMPORTING
OUTPUT = vendor_variable .
after the function call vendor_variable will be
0000001015.
or use like this...
DATA: w_vendor LIKE EKKO-LIFNR,
w_vendor_n(10) TYPE N.
* Lets assign w_vendor the vendor number 1015
w_vendor = '1015'.
* Convert vendor number 1015 to vendor number 0000001015
w_vendor_n = w_vendor.
* Now use w_vendor_n in the BAPI.
CALL FUNCTION 'BAPI_PO_CREATE' ...
you need to use the new vendor number with preceeding 0's.
Regards,
Omkaram.
Edited by: Omkaram Yanamala on Oct 8, 2008 5:09 PM
Similar Messages
-
Deletion of Scheduling Agreement and Delivery Schedule using BAPI
Hi SAP MM Gurus,
Please assist in inquiry below:
My scenario is that I am trying to delete delivery schedules and scheduling lines using BAPIs. I have no issues when there is no GR made yet for the delivery schedules. The error arises when there are already existing Goods Receipts and Invoices for the schedule line that I wish to delete
When using the BAPIs (either BAPI_SAG_CHANGE or BAPI_SCHEDULE_MAINTAIN), I set the deletion indicator to "L" and set to X all change relevant fields (i.e. DELETION_INDX). However, whenever I execute it, I get the error message 06088. The funny thing is both the Quantities and the delivered quantities that are normally populated are left blank.
For example:
Normal error for 06088:
Quantity 100.0 smaller than quantity delivered 179.0
Error using BAPI with deletion indicator:
Quantity smaller than quantity delivered
Is this a bug of the BAPI? or am I just missing some settings?
Your immediate response is appreciated
Regards,
DeLoHi,
Please find the below link check the setting are correct or not
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a02cb00a-bfb4-2c10-98aa-e33e7f64ba28?quicklink=index&overridelayout=true
Reagrds,
Pramod -
Issue in material master update from presentation server using BAPI....
Hi Guru's...
i am trying to change the material master from presentation server (desktop flat file)
using BAPI(BAPI_MATERIAL_SAVEDATA) ....
while executing my program i am getting the message like material had changed...
but while in mm02 i am un able to fine the updates...
please find below program logic and correct me if any mistakes....
thanks in advance...
*& Report ZAREPAS36
REPORT zarepas36.
DATA : gs_bapimathead TYPE bapimathead,
gs_clientdata TYPE bapi_mara,
gs_clientdatax TYPE bapi_marax.
TYPES : BEGIN OF gty_itab1,
matnr(18),
matkl(9),
spart(2),
ntgew(13),
gewei(3),
meins(3),
END OF gty_itab1.
DATA : gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
gwa_itab1 TYPE gty_itab1.
TYPES: BEGIN OF gty_itab2,
abc(132),
END OF gty_itab2.
DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
gwa_itab2 TYPE gty_itab2.
flat file at selection screen
PARAMETERS: p_files TYPE string.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = p_files
filetype = 'ASC'
CHANGING
data_tab = gt_itab2
EXCEPTIONS
OTHERS = 8.
LOOP AT gt_itab2 INTO gwa_itab2.
IF gwa_itab2-abc(1) = 'S'.
gwa_itab1 = gwa_itab2-abc(132).
APPEND gwa_itab1 TO gt_itab1.
ENDIF.
ENDLOOP.
loop at gt_itab1 into gwa_itab1.
*Material
gs_bapimathead-material = gwa_itab1-matnr.
*Material details at client data
*material group.
gs_clientdata-matl_group = gwa_itab1-matkl.
gs_clientdatax-matl_group = 'X'.
*Division
gs_clientdata-division = gwa_itab1-spart.
gs_clientdatax-division = 'X'.
*Net Weight
gs_clientdata-net_weight = gwa_itab1-ntgew.
gs_clientdatax-net_weight = 'X'.
*Unit of Weight
gs_clientdata-unit_of_wt = gwa_itab1-gewei.
gs_clientdatax-unit_of_wt = 'X'.
*Base Unit of Measure
gs_clientdata-base_uom = gwa_itab1-meins.
gs_clientdatax-base_uom = 'X'.
endloop.
*calling BAPI for making changes in material and saving thru BAPI.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = gs_bapimathead
clientdata = gs_clientdata
clientdatax = gs_clientdatax.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
WRITE: / 'Error occured while changing material'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE: / 'material',gs_bapimathead-material,'changed'.
ENDIF.hi hello Guru's
i resolved the issuee..
pleaso go thru the below proram logic for your reference..........
*& Report ZAREPAS36
REPORT zarepas36.
DATA : gs_bapimathead TYPE bapimathead,
gs_clientdata TYPE bapi_mara,
gs_clientdatax TYPE bapi_marax.
TYPES : BEGIN OF gty_itab1,
matnr(18),
matkl(9),
spart(2),
ntgew(13),
gewei(3),
meins(3),
END OF gty_itab1.
DATA : gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
gwa_itab1 TYPE gty_itab1.
TYPES: BEGIN OF gty_itab2,
abc(132),
END OF gty_itab2.
DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
gwa_itab2 TYPE gty_itab2.
DATA:ls_return TYPE bapiret2,
lt_bapiret2 TYPE standard table of bapiret2.
flat file at selection screen
PARAMETERS: p_files TYPE string.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = p_files
filetype = 'ASC'
CHANGING
data_tab = gt_itab2
EXCEPTIONS
OTHERS = 8.
LOOP AT gt_itab2 INTO gwa_itab2.
IF gwa_itab2-abc(1) = 'S'.
gwa_itab1 = gwa_itab2-abc(132).
APPEND gwa_itab1 TO gt_itab1.
ENDIF.
ENDLOOP.
LOOP AT gt_itab1 INTO gwa_itab1.
*Material
gs_bapimathead-material = gwa_itab1-matnr.
*Material details at client data
*material group.
gs_clientdata-matl_group = gwa_itab1-matkl.
gs_clientdatax-matl_group = 'X'.
*Division
gs_clientdata-division = gwa_itab1-spart.
gs_clientdatax-division = 'X'.
*Net Weight
gs_clientdata-net_weight = gwa_itab1-ntgew.
gs_clientdatax-net_weight = 'X'.
*Unit of Weight
gs_clientdata-unit_of_wt = gwa_itab1-gewei.
gs_clientdatax-unit_of_wt = 'X'.
*Base Unit of Measure
gs_clientdata-base_uom = gwa_itab1-meins.
gs_clientdatax-base_uom = 'X'.
ENDLOOP.
*calling BAPI for making changes in material and saving thru BAPI.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = gs_bapimathead
clientdata = gs_clientdata
clientdatax = gs_clientdatax
IMPORTING
return = ls_return.
LOOP AT lt_bapiret2 INTO ls_return.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
WRITE: / 'Error occured while changing material'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE: / 'material',gs_bapimathead-material,'changed'.
ENDIF. -
Service order creation using bapi with repair order number
Hi experts,
Pls suggest me a BAPI to create a service order for those repair orders where a PGR has been done(for return delivery type : LR).
The plant should be 0260 with storage location wh01 and item category ZRRE
Creation of a service order with repair order type SM03 is not allowed in iw31.
thanks and regards,
Vijayb.Hi prakash,
Thank u for the BAPI
But an error is being displayed saying that the REFURBISHMENT ORDERS CANNOT BE PROCESSED USING BAPI.
ERROR DURING PROCESSING OF BAPI METHODS.
This is while u pass the order type as either ZM03 or SM01or SM02 or SM03.
pls help me on that.
thanks and regards,
Vijayb. -
Unable to capture error message while creating an SO using bapi
Hi,
Can anybody suggest how to capture the error message while creating a SO using BAPI.
I have developed a customeized BAPI and using the BDC format to create the SO.
Note: i am using a call transaction method for the BDC.
I am sending the message into message1.
but i am unable to send the same into an internal table
shyam.Hi Shyam
If my understanding is correct, you are performing BDC process within the customized BAPI...
And you want to collect the messages from BDC to an internal table and pass to the output.
Proceed as below:
1. While calling BDC, use CALL TRANSACTION .... with addition: <b>MESSAGES INTO itab</b>. The structure of itab should be like <b>BDCMSGCOLL</b>.
2. Now the messages will be collected in ita.
3. Prepare the messages using FM: <b>FORMAT_MESSAGE</b>
4. Collect to the returning table.
Hope this helps...
Though i could not understand the reason of creating a BDC within BAPI, you can opt for loading orders via BAPI's like: BAPI_SALESORDER_CREATEFROMDAT1 or BAPI_SALESORDER_CREATEFROMDAT2.
Kind Regards
Eswar -
Please find herewith my below code. This program i have created for transferring goods with mvt type '657' to '555' using BAPI 'BAPI_GOODSMVT_CREATE' for TCODE MB1A.
*& Report Z_BAPI_FOR_MB1A
REPORT Z_BAPI_FOR_MB1A.
Tables : mkpf, mseg, WB2_V_MKPF_MSEG2.
DATA:
it_mb1a LIKE BAPI2017_GM_ITEM_CREATE OCCURS 0 WITH HEADER LINE,
it_return LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
it_ex_headret LIKE BAPI2017_GM_HEAD_RET OCCURS 0 WITH HEADER LINE,
it_im_header LIKE BAPI2017_GM_HEAD_01, " OCCURS 0, " WITH HEADER LINE,
it_im_gmcode LIKE BAPI2017_GM_CODE, " OCCURS 0, "WITH HEADER LINE,
mat_doc type bapi2017_gm_head_ret-mat_doc,
mat_docyear type bapi2017_gm_head_ret-doc_year.
*data : lv_intense(01).
data : it_mseg like WB2_V_MKPF_MSEG2 occurs 0 with header line,
it_cost like csks occurs 0 with header line.
selection-screen begin of block a with frame title text-001.
parameters: p_date type sy-datum default sy-datum.
select-options: so_budat for WB2_V_MKPF_MSEG2-budat,
so_werks for WB2_V_MKPF_MSEG2-werks_i,
so_matnr for WB2_V_MKPF_MSEG2-matnr_i,
so_lgort for WB2_V_MKPF_MSEG2-lgort_i.
selection-screen end of block a.
select * from WB2_V_MKPF_MSEG2 into
table it_mseg where
budat in so_budat and
werks_i in so_werks and
matnr_i in so_matnr and
lgort_i in so_lgort and
bwart_i = '657'.
select * from csks into table it_cost
for all entries in it_mseg where
gsber = it_mseg-werks_i.
*Filling BAPI Header Tables
it_im_header-pstng_date = sy-datum.
it_im_header-doc_date = sy-datum.
it_im_gmcode-gm_code = '03'.
*Filling BAPI Item Tables
loop at it_mseg.
read table it_cost with key gsber = it_mseg-werks_i.
it_mb1a-material = it_mseg-matnr_i.
it_mb1a-plant = it_mseg-werks_i.
it_mb1a-stge_loc = it_mseg-lgort_i.
it_mb1a-batch = it_mseg-charg_i.
it_mb1a-move_type = 555. " '103'.
it_mb1a-entry_qnt = it_mseg-menge_i.
it_mb1a-costcenter = it_cost-KOSTL.
it_mb1a-gl_account = '530089'.
append it_mb1a.
clear it_mb1a.
clear it_cost.
endloop.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = it_im_header
goodsmvt_code = it_im_gmcode
* TESTRUN = ' '
* GOODSMVT_REF_EWM =
IMPORTING
GOODSMVT_HEADRET = it_ex_headret
MATERIALDOCUMENT = mat_doc
MATDOCUMENTYEAR = mat_docyear
tables
goodsmvt_item = it_mseg
* GOODSMVT_SERIALNUMBER =
return = it_return
* GOODSMVT_SERV_PART_DATA =
* EXTENSIONIN =
if sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
endif.
But when i execute the above i am getting the following error.
Runtime Errors CALL_FUNCTION_UC_STRUCT
Except. CX_SY_DYN_CALL_ILLEGAL_TYPE
Date and Time 27.01.2009 14:43:06
Short text
Type conflict during structure parameter transfer at CALL FUNCTION.
What happened?
Error in the ABAP Application Program
The current ABAP program "Z_BAPI_FOR_MB1A" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
not caught and
therefore caused a runtime error.
The reason for the exception is:
In the function "BAPI_GOODSMVT_CREATE", the STRUCTURE parameter "GOODSMVT_ITEM"
is typed in such a way
that only actual parameters are allowed, which are compatible in Unicode
with respect to the fragment view. However, the specified actual
parameter "IT_MSEG" has an incompatible fragment view.
Missing Handling of System Exception
Program Z_BAPI_FOR_MB1A
Trigger Location of Exception
Program Z_BAPI_FOR_MB1A
Include Z_BAPI_FOR_MB1A
Row 72
Module Name START-OF-SELECTION
Source Code Extract
Line SourceCde
42 lgort_i in so_lgort and
43 bwart_i = '657'.
44
45 select * from csks into table it_cost
46 for all entries in it_mseg where
47 gsber = it_mseg-werks_i.
48 *Filling BAPI Header Tables
49 it_im_header-pstng_date = sy-datum.
50 it_im_header-doc_date = sy-datum.
51 it_im_gmcode-gm_code = '03'.
52
53 *Filling BAPI Item Tables
54 loop at it_mseg.
55
56 read table it_cost with key gsber = it_mseg-werks_i.
57
58 it_mb1a-material = it_mseg-matnr_i.
59 it_mb1a-plant = it_mseg-werks_i.
60 it_mb1a-stge_loc = it_mseg-lgort_i.
61 it_mb1a-batch = it_mseg-charg_i.
62 it_mb1a-move_type = 555. " '103'.
64 it_mb1a-costcenter = it_cost-KOSTL.
65 it_mb1a-gl_account = '530089'.
66
67 append it_mb1a.
68 clear it_mb1a.
69 clear it_cost.
70 endloop.
71
72*>>>> CALL FUNCTION 'BAPI_GOODSMVT_CREATE'* 73 EXPORTING
74 goodsmvt_header = it_im_header
75 goodsmvt_code = it_im_gmcode
76 * TESTRUN = ' '
77 * GOODSMVT_REF_EWM =
78 IMPORTING
79 GOODSMVT_HEADRET = it_ex_headret
80 MATERIALDOCUMENT = mat_doc
81 MATDOCUMENTYEAR = mat_docyear
82 tables
83 goodsmvt_item = it_mseg
84 * GOODSMVT_SERIALNUMBER =
85 return = it_return
86 * GOODSMVT_SERV_PART_DATA =
87 * EXTENSIONIN =
88 .
89 if sy-subrc = 0.
90 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
91 EXPORTING
Can u explain why this is coming. Your valuable suggestions are required.
Thanks,
Jitesh M NairHi,
Try this Code.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = WF_HEADER
GOODSMVT_CODE = WF_CODE
TESTRUN = WL_space
IMPORTING
MATERIALDOCUMENT = FS_MATERIAL_DOC
TABLES
GOODSMVT_ITEM = INT_ITEM
GOODSMVT_SERIALNUMBER = INT_SERIALNO
RETURN = INT_RETURN1.
*VARIABLES for goods movement creation bapi
DATA : WF_HEADER TYPE BAPI2017_GM_HEAD_01,
WF_CODE TYPE BAPI2017_GM_CODE.
DATA : FS_MATERIAL_DOC TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
FS_SERIALNO TYPE BAPI2017_GM_SERIALNUMBER,
FS_ITEM TYPE BAPI2017_GM_ITEM_CREATE,
FS_RETURN1 TYPE BAPIRET2,
data declaration for goods movement creation bapi
DATA : INT_ITEM TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
INT_SERIALNO TYPE TABLE OF BAPI2017_GM_SERIALNUMBER,
INT_RETURN1 TYPE TABLE OF BAPIRET2.
Hope this will help.
Regards,
Rohan. -
Send mail to non-sap using bapi's
hi friends,
Can any one please help me how to send mail from sap to non-sap systems using bapi's.plesae help me .i want the procedure and code
regards
srikanth.vHi,
Use this sample Code...
REPORT ZSENDMAIL.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
DATA: DOC_CHNG LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
Creation of the document to be sent
File Name
DOC_CHNG-OBJ_NAME = 'SENDFILE'.
Mail Subject
DOC_CHNG-OBJ_DESCR = 'Send External Mail'.
Mail Contents
OBJTXT = 'Minimum bid : $250000'.
APPEND OBJTXT.
OBJTXT = 'A representation of the pictures up for auction'.
APPEND OBJTXT.
OBJTXT = 'was included as attachment.'.
APPEND OBJTXT.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
Creation of the entry for the compressed document
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
Creation of the document attachment
(Assume that the data in OBJBIN is in BMP format)
*OBJBIN = ' \O/ '. APPEND OBJBIN.
*OBJBIN = ' | '. APPEND OBJBIN.
*OBJBIN = ' / \ '. APPEND OBJBIN.
*DESCRIBE TABLE OBJBIN LINES TAB_LINES.
*OBJHEAD = 'PICTURE.BMP'.
*APPEND OBJHEAD.
Creation of the entry for the compressed attachment
*OBJPACK-TRANSF_BIN = 'X'.
*OBJPACK-HEAD_START = 1.
*OBJPACK-HEAD_NUM = 1.
*OBJPACK-BODY_START = 1.
*OBJPACK-BODY_NUM = TAB_LINES.
*OBJPACK-DOC_TYPE = 'BMP'.
*OBJPACK-OBJ_NAME = 'PICTURE'.
*OBJPACK-OBJ_DESCR = 'Representation of object 138'.
*OBJPACK-DOC_SIZE = TAB_LINES * 255.
*APPEND OBJPACK.
Completing the recipient list
RECLIST-RECEIVER = '[email protected]'.
RECLIST-REC_TYPE = 'U'.
APPEND RECLIST.
*RECLIST-RECEIVER = 'SAPUSERNAME'.
*RECLIST-REC_TYPE = 'P'.
*APPEND RECLIST.
Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
CASE SY-SUBRC.
WHEN 0.
WRITE: / 'Result of the send process:'.
LOOP AT RECLIST.
WRITE: / RECLIST-RECEIVER(48), ':'.
IF RECLIST-RETRN_CODE = 0.
WRITE 'The document was sent'.
ELSE.
WRITE 'The document could not be sent'.
ENDIF.
ENDLOOP.
WHEN 1.
WRITE: / 'No authorization for sending to the specified number',
'of recipients'.
WHEN 2.
WRITE: / 'Document could not be sent to any recipient'.
WHEN 4.
WRITE: / 'No send authorization'.
WHEN OTHERS.
WRITE: / 'Error occurred while sending'.
ENDCASE.
in this code....Internal table IF RECLIST-RETRN_CODE is not 0,then the mail is not send to the recipient, so if you want the undeliverable mail for a perticular recipient then call the same function module SO_NEW_DOCUMENT_ATT_SEND_API1 with undeliverd message to whom want to receive the undeliverd message.
hope this solves your problem -
Hi experts, Upload purchase order using BAPI
hi
Could you please help me how to do PURCHASE ORDER CREATION using BAPI.
Thank you.Satyendra,
The forum that you have posted your question in is for questions related to the SAP Business One Integration for SAP NetWeaver. Your question is or seems to be related to R/3 and should be posted in that forum.
Eddy -
Hi bapi Guru's,
I am asked to use bapi's(Instead of BDC's) for data upload .I am not getting good documentation on 'USING BAPI's IN ABAP',Like Defining structures, and what are the FM's to be called like bapi_commit.
Any Info is Appriciated.
Regards
satishSorry Satish,
Maybe this is going off topic a little, bit perhaps also its relevant as you have been asked to move from BDC's to BAPIs.
Juan,
When I talk about debugging, there are two levels to this:
<b>1. Debugging by the programmer</b>
In this case, how can it be easier to debug an error from a BAPI than from the screen? For a sales order, for example, when you enter a delivery date of 01.01.2000 for an item, via BDC you will get an error message as the item is entered (something along the lines of delivery date is in the past), and you will see exactly the date you have entered, and if you don't understand the error, you can click on F1 and it will give you the long description of the error. Via a BAPI, you would get the error message, and you MIGHT get the item number and the date in question. But if you don't understand the error what do you do then? Debug the BAPI itself? You could, but isn't this a rather lengthy way to get to the root of the problem? In general, any errors you get calling BAPIs/BDCs are errors with your master data, or breaking business rules, you shouldn't have to debug standard code to tell you whats going wrong, the application can tell you.
<b>2. Debugging by the end user</b>
When you implement a BAPI/BDC this will be related to an interface/automated transaction etc. When its in production you will occassionally get errors (due to bad master data, not fully capturing all the business logic in your custom coding [it happens], technical issues etc.) What do you do then? In the case of BDC you can do nothing. The error is recorded, and you can get end users to process the errors by stepping through the screens (which they already know how to use) and make corrections as required. In the case of BAPIs, you have to record the error in a table or a file, then develop some kind of interface to display the errors, then develop some kind of process for re-processing the errors. If the data used to call the BAPI is not correct then you also need to provide a facility for changing the data before reprocessing. Normally you do none of this because its too much work and you end up having all errors coming back to the SAP team who have to debug and change table entries etc. to get it all to work. I would not say that this makes BAPIs easier to debug.
Oops, just realised my pasta is burning!!!
Anyway, think I got my point across. Not personal but feel quite strongly about this topic. To me BDC's are still a relevant tool despite the push for Idocs/BAPIs.
Cheers,
Brad -
Changing Payment terms using Bapi
Hi Gurus,
I want to change the Payment terms in Purchase order / Scheduling agreement Using Bapi.
I used BAPI_PO_CHANGE.but Payment terms are not updating.
Useful Answers will be rewarded with Points.Did you use BAPI_TRANSACTION_COMMIT after BAPI_PO_CHANGE.
Look also at this <a href="http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm">Sample Abap code on BAPI_PO_CHANGE</a>
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
PURCHASEORDER = T_POHEADER-PO
POHEADER = T_BAPI_POHEADER
POHEADERX = T_BAPI_POHEADERX
TABLES
RETURN = T_BAPIRETURN
POITEM = T_BAPI_POITEM
POITEMX = T_BAPI_POITEMX.
READ TABLE t_bapireturn WITH KEY type = c_err TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_x.
ENDIF.
Regards -
Problem in Sales order create using BAPI with reference to quotation
Hi,
I am creating a sales order from Quotation using BAPI /AFS/BAPI_SALESORD_CREATEFDATA.
The Sale order is getting created and the document flow is updated. When i check the status of quotation it is "OPEN".
Ideally when a sale order is created in VA01 with reference to a quotation and if all items are added in the order from quotation, then the status of the quotation must be "Complete".
When i use the BAPI, the status of the quotation is sill "Open". Has anyone faced this issue?
Even if anyone has faced this issue with BAPI_SALESORDER_CREATEFROMDAT2, please let me know...
RegardsHi RV,
I am using BAPI to create order reference to contracts. I am facing same issue. Its not updating document flow (vbfa-plmin field). After creating orders I am forcing to update plmin field in vbfa. This worked fine. But now status in reference document not updating properly. I saw your thread. It looks like similar issue. I saw your comments "Customization was not maintained properly for the Order types ". Please can you explain little bit more about your solution. It will helps us lot.
Thanks,
srini -
Creating sale order by using BAPI
Hi,
My requirement is to create a inquiry(VA11), By using the Inquiry no as a input in report, i should create a salesorder using BAPI in which the datas should be flowed from inquiry to sale order. i did almost everything except the Pricing Condition.
I am fetching the pricing condition values from table KONV-KSCHL and passing the value via BAPI_SALESORDER_CREATEFROMDAT2 it creates saleorder. In the created salesorder, there are two same pricing conditions but different rate 1.) the price of the MATNR which is maintained 2.) the changed MATNR price in inquiry level,
i need the value which is changed in inquiry level that is 2nd value.
can anyone help me in this...REPORT ZSALESORDER.
<< Cut and paste without attribution from
create sales order using BAPI
removed >>
Edited by: Rob Burbank on Feb 24, 2009 10:43 AM -
Sale Order Item Quantity Not Populating When Create A Sale Order Using BAPI
I am having a problem when creating a sale order using BAPI
BAPI_SALESORDER_CREATEFROMDAT2
Problem is that sale order item quantity field is not populating
code is as follows
ORDER_ITEMS_IN-ITM_NUMBER = '0010'.
ORDER_ITEMS_IN-MATERIAL = '000000000010000262'.
ORDER_ITEMS_IN-TARGET_QU = 'LB'.
ORDER_ITEMS_IN-TARGET_QTY = 1.Hi,
Try populating ORDER_SCHEDULES_IN table in the bapi field REQ_QTY.
Regds,
Rudra -
Problem regarding the creation of sales order using bapi.
Hai all,
I am creating sales order using bapi but i am, get following error messages :
TYPE ID NUMBER MESSAGE
E VP 112 Please enter sold-to party or ship-to party
E V4 219 Sales document was not changed
I have entered all the parameters.
my program is as follows :
*& Report ZSD_SALES_ORDER
REPORT ZSD_SALES_ORDER.
Tables
*table definitions
TABLES:vbak, "Sales Document: Header Data
knvv, "Customer Master Sales Data
mara, "General Material Data
t001l, "Plants/Branches
mvke, "Sales Data for Material
vbap, "Sales Document: Item Data
konv. "Conditions (Transaction Data)
Types
*type for upload data
TYPES :BEGIN OF ty_upload,
matnr(20) TYPE c, " Old material number
quantity(20) TYPE c, " Cumulative order quantity in sales units
VALUE TYPE BAPIKWERT1,
value(20) TYPE c, " Condition value
value TYPE konv-kwert, " Condition value
END OF ty_upload.
*type for final output table
TYPES :BEGIN OF ty_main,
bismt TYPE mara-bismt, "Old material number
matnr TYPE vbap-matnr, "Material Number
kunnr TYPE vbak-kunnr, "customer number
auart TYPE vbak-auart, "Sales Document Type
vkorg TYPE vbak-vkorg, "Sales Organization
vtweg TYPE vbak-vtweg, "Distribution Channel
spart TYPE vbak-spart, "Division
vbeln TYPE vbak-vbeln, "Sales document
werks TYPE marc-werks, " Plant
lgort TYPE mard-lgort, "Storage Location
posnr TYPE vbap-posnr, "Sales Document Item
parvw TYPE vbpa-parvw, "Partner function
kwmeng TYPE vbap-kwmeng, "Cumulative order quantity in sales units
kschl TYPE konv-kschl, "Condition type
kwert TYPE konv-kwert, "Condition value
KWERT TYPE BAPIKWERT1,
kwert(20) TYPE c, "Condition value
waers TYPE konv-waers, "Currency
END OF ty_main.
*type for old material number
TYPES: BEGIN OF ty_matnr,
matnr TYPE mara-matnr,
bismt TYPE mara-bismt,
END OF ty_matnr.
*type for order number
TYPES :BEGIN OF ty_output,
vbeln TYPE vbak-vbeln, "Sales Document
END OF ty_output.
Constants Begin with C_ *
CONSTANTS:
c_zpmu(4) TYPE c VALUE 'ZPMU',
c_zpmm(4) TYPE c VALUE 'ZPMM'.
DATA: c_ch(1) TYPE c VALUE 'X'.
Data Begin with W_ *
*global data for validations
DATA: w_count TYPE i,
w_vkorg TYPE vbak-vkorg,
w_vtweg TYPE vbak-vtweg,
w_spart TYPE vbak-spart,
w_werks TYPE t001l-werks,
w_check TYPE c,
w_itemno TYPE posnr_va,
W_COND TYPE C.
w_cond(3) TYPE c.
Internal tables Begin with IT_ *
*internal table definitions
DATA : it_upload TYPE STANDARD TABLE OF ty_upload ,
wa_upload TYPE ty_upload.
DATA : it_main TYPE STANDARD TABLE OF ty_main,
wa_main TYPE ty_main.
DATA: it_matnr TYPE STANDARD TABLE OF ty_matnr,
wa_matnr TYPE ty_matnr.
DATA : it_output TYPE STANDARD TABLE OF ty_output.
Internal table for BAPI.
DATA: it_bapisdhd1 TYPE STANDARD TABLE OF bapisdhd1, "Sales and Distribution Document Header
wa_bapisdhd1 TYPE bapisdhd1.
DATA: it_bapisditm TYPE STANDARD TABLE OF bapisditm , "Sales and Distribution Document Item
wa_bapisditm TYPE bapisditm.
DATA: it_bapiparnr TYPE STANDARD TABLE OF bapiparnr, "SD Document Partner: WWW
wa_bapiparnr TYPE bapiparnr.
DATA: it_bapischdl TYPE STANDARD TABLE OF bapischdl, "Schedule Lines
wa_bapischdl TYPE bapischdl.
DATA: it_bapicond TYPE STANDARD TABLE OF bapicond, "Communication Fields for Maintaining Conditions in the Order
wa_bapicond TYPE bapicond.
DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2, "Return Parameter
wa_bapiret2 TYPE bapiret2.
Parameters Begin with PR_ *
*selection screen definition
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME .
PARAMETERS: pr_vkorg TYPE vbak-vkorg OBLIGATORY,
pr_vtweg TYPE vbak-vtweg OBLIGATORY,
pr_spart TYPE vbak-spart OBLIGATORY,
pr_kunnr TYPE kna1-kunnr OBLIGATORY,
pr_werks TYPE marc-werks OBLIGATORY,
pr_lgort TYPE mard-lgort OBLIGATORY.
PARAMETERS: pr_auart TYPE vbak-auart OBLIGATORY,
PR_AUGRU TYPE VBAK-AUGRU OBLIGATORY.
pr_augru TYPE vbak-augru.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME.
PARAMETERS : pr_file TYPE ibipparms-path OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk2.
At selection-screen *
AT SELECTION-SCREEN.
PERFORM f006_validate_vkorg.
PERFORM f007_validate_vtweg.
PERFORM f008_validate_spart.
PERFORM f009_validate_kunnr.
PERFORM f010_validate_werks.
PERFORM f011_validate_lgort.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
*for f4 help----
PERFORM f003_f4_help.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
*for material ,quantity and value upload
PERFORM f001_upload_file.
*get data
PERFORM f003_get_data.
*for check the data
PERFORM f002_check_data .
PERFORM f004_process.
*for posting
PERFORM f005_posting.
END-OF-SELECTION.
E N D O F S E L E C T I O N *
*& Form f001_upload_file
upload file
FORM f001_upload_file .
DATA : lw_fname TYPE string.
CLEAR lw_fname.
lw_fname = pr_file.
REFRESH it_upload.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lw_fname
filetype = 'ASC'
has_field_separator = c_ch
TABLES
data_tab = it_upload
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
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 it_upload INTO wa_upload.
wa_upload-value = ( wa_upload-value ) / 10.
MODIFY it_upload FROM wa_upload.
ENDLOOP.
ENDFORM. "F001_UPLOAD_FILE
*& Form f003_f4_help
f4 help
FORM f003_f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = pr_file.
ENDFORM. " f003_f4_help
*& Form check_data
text
FORM f002_check_data .
DATA: lw_lines TYPE i.
DESCRIBE TABLE it_main LINES lw_lines.
IF lw_lines LE 0.
RETURN.
ENDIF.
SELECT a~matnr
a~bismt FROM mara AS a INNER JOIN mvke AS b
ON amatnr = bmatnr
INTO CORRESPONDING FIELDS OF TABLE it_matnr
FOR ALL ENTRIES IN it_main
WHERE a~bismt = it_main-bismt.
IF sy-subrc = 0.
LOOP AT it_main INTO wa_main.
CLEAR : wa_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY bismt = wa_main-bismt.
IF sy-subrc = 0.
MOVE: wa_matnr-matnr TO wa_main-matnr.
ENDIF.
MODIFY it_main FROM wa_main TRANSPORTING matnr WHERE bismt = wa_main-bismt.
ENDLOOP.
ELSE.
MESSAGE e000(zmsd) WITH text-001.
ENDIF.
ENDFORM. "CHECK_DATA
*& Form F009_validate_vkorg
text
FORM f006_validate_vkorg .
CLEAR w_vkorg.
SELECT SINGLE vkorg
INTO w_vkorg FROM tvko
WHERE vkorg EQ pr_vkorg.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-012 pr_vkorg.
ENDIF.
ENDFORM. " F009_validate_vkorg
*& Form f007_validate_vtweg
text
FORM f007_validate_vtweg .
CLEAR:w_vtweg.
SELECT SINGLE vtweg
INTO w_vtweg FROM tvtw
WHERE vtweg EQ pr_vtweg.
IF sy-subrc <> 0.
MESSAGE e089(zmsd).
ENDIF.
ENDFORM. " f007_validate_vtweg
*& Form f008_validate_spart
text
FORM f008_validate_spart .
CLEAR:w_spart.
SELECT SINGLE spart
INTO w_spart FROM tspa
WHERE spart EQ pr_spart.
IF sy-subrc <> 0.
MESSAGE e087(zmsd).
ENDIF.
ENDFORM. " f008_validate_spart
*& Form F010_validate_kunnr
text
FORM f009_validate_kunnr .
DATA: l_kunnr TYPE kunnr.
CLEAR: w_vkorg, w_vtweg,w_spart.
SELECT SINGLE kunnr FROM knvv
INTO l_kunnr
WHERE kunnr = pr_kunnr
AND vkorg = pr_vkorg
AND vtweg = pr_vtweg
AND spart = pr_spart.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-010 pr_kunnr text-011 pr_vkorg .
ENDIF.
ENDFORM. " F010_validate_kunnr
*& Form f010_validate_werks
text
FORM f010_validate_werks .
CLEAR:w_werks.
SELECT SINGLE werks
INTO w_werks FROM t001w
WHERE werks EQ pr_werks.
IF sy-subrc <> 0.
MESSAGE e088(zmsd).
ENDIF.
ENDFORM. " f010_validate_werks
*& Form F011_validate_lgort
text
FORM f011_validate_lgort .
CLEAR:w_werks .
SELECT SINGLE werks FROM t001l
INTO w_werks
WHERE werks = pr_werks
AND lgort = pr_lgort.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-007 pr_lgort text-008 pr_werks .
ENDIF.
ENDFORM. " F011_validate_lgort
*& Form f003_get_data
text
FORM f003_get_data .
CLEAR wa_main.
REFRESH it_main.
LOOP AT it_upload INTO wa_upload.
CLEAR : wa_main.
MOVE: wa_upload-matnr TO wa_main-bismt,
wa_upload-quantity TO wa_main-kwmeng,
wa_upload-value TO wa_main-kwert,
pr_vkorg TO wa_main-vkorg,
pr_vtweg TO wa_main-vtweg,
pr_spart TO wa_main-spart,
pr_kunnr TO wa_main-kunnr,
pr_werks TO wa_main-werks,
pr_lgort TO wa_main-lgort.
APPEND wa_main TO it_main.
ENDLOOP.
ENDFORM. " f003_get_data
*& Form f004_process
text
FORM f004_process .
CLEAR w_check.
LOOP AT it_main INTO wa_main.
IF wa_main-matnr = ''.
WRITE:/ text-006,
wa_main-bismt.
w_check = 1.
ENDIF.
IF wa_main-kwmeng = 0.
WRITE:/ text-005,
wa_main-bismt.
w_check = 1.
ENDIF.
IF pr_auart <> 'ZM01'.
IF wa_main-kwert IS INITIAL.
WRITE:/ text-004,
wa_main-bismt.
w_check = 1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " f004_process
*& Form f005_posting
text
FORM f005_posting .
CLEAR: w_itemno,
w_cond.
w_itemno = 10.
w_cond = 1.
IF w_check = '' OR w_check = 1.
wa_bapisdhd1-doc_type = pr_auart.
wa_bapisdhd1-ord_reason = pr_augru.
LOOP AT it_main INTO wa_main.
IF w_cond = 1.
CLEAR: it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
REFRESH:it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
MOVE: wa_main-vkorg TO wa_bapisdhd1-sales_org,
wa_main-vtweg TO wa_bapisdhd1-distr_chan,
wa_main-spart TO wa_bapisdhd1-division.
wa_bapisdhd1-wbs_eleM = 'Y561.1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = pr_kunnr
IMPORTING
OUTPUT = pr_kunnr.
wa_bapisdhd1-PURCH_NO_S = pr_kunnr.
wa_bapisdhd1-PURCH_NO_C = pr_kunnr.
ENDIF.
MOVE: w_itemno TO wa_bapisditm-itm_number,
wa_main-matnr TO wa_bapisditm-material,
wa_main-BISMT TO wa_bapisditm-material,
wa_main-werks TO wa_bapisditm-plant,
wa_main-lgort TO wa_bapisditm-store_loc.
wa_bapisditm-target_qty = '10'.
wa_bapisditm-PURCH_NO_S = pr_kunnr.
wa_bapisditm-PURCH_NO_C = pr_kunnr.
APPEND wa_bapisditm TO it_bapisditm.
IF w_cond = 1.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-itm_number = 10.
wa_bapiparnr-partn_role = 'SP'.
APPEND wa_bapiparnr TO it_bapiparnr.
wa_bapiparnr-partn_role = 'AG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RE'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'WE'.
APPEND wa_bapiparnr TO it_bapiparnr.
ENDIF.
wa_bapischdl-itm_number = w_itemno.
wa_bapischdl-req_qty = wa_main-kwmeng.
wa_bapischdl-PURCH_NO_S = pr_kunnr.
APPEND wa_bapischdl TO it_bapischdl.
wa_bapicond-itm_number = w_itemno.
wa_bapicond-cond_type = 'ZECL'.
IF ( wa_bapisdhd1-doc_type = 'ZPMU' ) OR ( wa_bapisdhd1-doc_type = 'ZPMM' ).
wa_bapicond-cond_type = 'ZVAL'.
ELSE.
wa_bapicond-cond_type = 'ZMRP'. "+PK12122006
ENDIF.
wa_bapicond-cond_value = wa_main-kwert.
APPEND wa_bapicond TO it_bapicond.
w_itemno = w_itemno + 10.
w_cond = w_cond + 1.
ENDLOOP.
data : SALESDOCUMENTIN like BAPIVBELN-VBELN.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_bapisdhd1
IMPORTING
salesdocument = SALESDOCUMENTIN
TABLES
return = it_bapiret2
order_items_in = it_bapisditm
order_partners = it_bapiparnr
order_schedules_in = it_bapischdl
order_conditions_in = it_bapicond.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_ch.
ENDIF.
LOOP AT it_bapiret2 INTO wa_bapiret2.
DATA : w_err(100) TYPE c,
w_matnr TYPE matnr.
IF wa_bapiret2-type = 'E' AND wa_bapiret2-id = 'V1' AND wa_bapiret2-number = 392.
UNPACK wa_bapiret2-message_v1 TO w_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY matnr = w_matnr.
IF sy-subrc EQ 0.
CONCATENATE text-013 wa_matnr-bismt INTO w_err SEPARATED BY space.
MESSAGE w_err TYPE 'S'.
ENDIF.
ENDIF.
IF WA_BAPIRET2-TYPE = 'S'. " Comment
WRITE: 40 TEXT-009, WA_BAPIRET2-MESSAGE_V2+0(10).
ENDIF.
ENDLOOP.
ENDFORM. " f005_posting
I have given all the necessary parameters. it is telling that error is in parameter
sales_header_in.
I have checked it.
i have assigned purch_no_s and purch_no_c of the structure BAPISDHD1(ORDER_HEADER_IN)
in the bapi with customer number.
and also i have assigned the partnumber of the structure BAPIPARNR ORDER_PARTNERS
in the bapi with customer number.
but still , it is diplaying the error message, please enter the sold to or ship to party number.
how to resolve this error.
this is urgent requirement.
points will be awarded.
thanking u in advance,
a.srinivas.Hi,
Did u have a look at the standard programs which make use of BAPI_SALESORDER_CREATEFROMDAT1
Heres a list...
LWSSOU08
MV45WF0S
MWWMJF21_BAPI_SALESORDER_CREAT
RBUS2032
Regards,
Tanveer.
<b>Please mark helpful answers</b> -
Not able to create sales order using BAPI - BAPI_SALESORDER_CREATEFROMDAT2
Hi Experts,
I am not able to create sales order . I am using BAPI - BAPI_SALESORDER_CREATEFROMDAT2
to create sales order .I am passing external sales order number to the parameter
SALESDOCUMENTIN.
I am getting following error.
"524 |Only quantity 1 EA is allowed (Item 00001"
Here EA is UOM(Unit of measurement).
Below is the sample program through which i am trying to create the sales order.
*& Report ZSDC_SALES_TEST
report zsdc_sales_test.
*DATA: wa_bapi_header TYPE bapisdhd1.
Include Name - ZSDC_SALES_ORD_UPLOAD_TOP
Program Name - ZSDC_SALES_ORD_UPLOAD_1393
Program Title - Include for Data Declaration and selection screen
Created by - Lalitha W
Created on - 18-Nov-2008
Object ID - SD_C_1393_SALES_ORDER_UPLOAD
Request Id - SD3K905579
Description - This is a common INCLUDE for data declarations and
*selection screen details.
HISTORY
Date |Developer |Req by | Description |Reference ID
| | | |
| | | |
TYPE-POOLS
*TYPE-POOLS: truxs, abap, slis.
TABLES
*TABLES: t100.
TYPES
types:begin of ty_header,
auart(4) type c, " Sales Order Type
vkorg(4) type c, " Sales Organization
vtweg(2) type c, " Distrubution Channel
spart(2) type c, " Division
kunnr_1(10) type c, " Sold to Party
kunnr_2(10) type c, " Ship to Party
augru(3) type c, " Order Reason
bstkd(35) type c, " PO Number
bstdk(10) type c, " PO Date
ketdat(10) type c, " Required Delivery Date
zterm(4) type c, " Payment Terms
inco1(3) type c, " Inco Terms -1
inco2(28) type c, " Inco Terms -2
prsdt(10) type c, " pricing date
waerk(5) type c, " Document Currency
vkbur(4) type c, " Sales Office
vkgrp(3) type c, " Sales group
pltyp(2) type c, " Price List type
kdgrp(2) type c, " Customer Group
bstkd_e(35) type c, " Ship-to-party PO number
submi(10) type c, " Collective Number
bname(35) type c, " Name
ihrez(12) type c, " Your Reference
kschl_1(4) type c, " Condition Type
kbetr_1(11) type c, " Amount
kschl_2(4) type c, " Condition Type
kbetr_2(11) type c, " Amount
kschl_3(4) type c, " Condition Type
kbetr_3(11) type c, " Amount
partner_1(25) TYPE c, " Partner(Bill To Party Number)
partner_2(25) TYPE c, " Partner(Payer Number)
partner_3(25) TYPE c, " Partner(Sales Responsible Number)
partner_4(25) TYPE c, " Partner(Order admin)
partner_5(25) TYPE c, " Partner(Contact person)
partner_1(10) type c, " Partner(Bill To Party Number)
partner_2(10) type c, " Partner(Payer Number)
partner_3(10) type c, " Partner(Sales Responsible Number)
partner_4(10) type c, " Partner(Order admin)
partner_5(10) type c, " Partner(Contact person)
tdspras_1(2) type c,
text_1(500) type c, " Text Before Items Z012
tdspras_2(2) type c,
text_2(500) type c, " Invocie Up Z034
tdspras_3(2) type c,
text_3(500) type c, " Invocie Down Z035
tdspras_4(2) type c,
text_4(500) type c, " Customer Reference Continue Z018
tdspras_5(2) type c,
text_5(500) type c, " Dispatch Marks/ Order Z019
tdspras_6(2) type c,
text_6(500) type c, " Ordered By Z003
tdspras_7(2) type c,
text_7(500) type c, " Sales Parameters Z002
kvgr1(3) type c, " Industry
kvgr2(3) type c, " customer BU
end of ty_header.
types: begin of ty_item,
bstkd(35) type c, " PO Number
bstdk(10) type c, " PO Date
bstkd_e(35) type c, " Ship-to-party PO number
posnr(6) type c, " POSTION NUMBER
matnr(18) type c, " Material Number
kwmeng(18) type c, " Order Quantity
pstyv(4) type c, " Sales doc. item categ
kursk(18) type c, " EXCHANGE RATE****
ffprf(8) type c, " DIP PROFILE
werks(4) type c, " Delivering Plant
vstel(4) type c, " SHIPPING POINT
lgort(4) type c, " STORAGE LOCATION
route(6) type c, " Route
kurrf(18) type c, " EXCHANGE RATE-FI
ntgew(18) type c, " Net Weight
brgew(18) type c, " Gross Weight
gewei(3) type c, " Weight Unit
prctr(10) type c, " profit center
abgrs(6) type c, " RESULT ANALYSIS KEY
kalsm_k(4) type c, " COSTING SHEET
kschl_1(4) type c, " Condition Type
kbetr_1(11) type c, " Amount
kschl_2(4) type c, " Condition Type
kbetr_2(11) type c, " Amount
kschl_3(4) type c, " Condition Type
kbetr_3(11) type c, " Amount
text_1(500) type c, " material Text 0001
tdspras_1(1) type c,
text_2(500) type c, " Pr Text 9001
tdspras_2(1) type c,
end of ty_item.
types: begin of ty_schedule_line,
bstkd(35) type c, "PO number
bstdk(10) type c, "PO date
bstkd_e(35) type c, "Ship-to-party PO number
posnr(6) type c, "sales doc.Item
etdat(10) type c, "Schedule line date
wmeng(2) type c, "Order Quantity
end of ty_schedule_line.
types: begin of ty_err ,
auart(4) type c, " Sales Order Type
vkorg(4) type c, " Sales Organization
vtweg(2) type c, " Distrubution Channel
spart(2) type c, " Division
kunnr_1(10) type c, " Sold to Party
kunnr_2(10) type c, " Ship to Party
augru(3) type c, " Order Reason
bstkd(35) type c, " PO Number
bstdk(10) type c, " PO Date
ketdat(10) type c, " Required Delivery Date
zterm(4) type c, " Payment Terms
inco1(3) type c, " Inco Terms -1
inco2(28) type c, " Inco Terms -2
prsdt(10) type c, " pricing date
waerk(5) type c, " Document Currency
vkbur(2) type c, " Sales Office
vkgrp(3) type c, " Sales group
pltyp(2) type c, " Price List type
kdgrp(2) type c, " Customer Group
bstkd_e(35) type c, " Ship-to-party PO number
submi(10) type c, " Collective Number
bname(35) type c, " Name
ihrez(12) type c, " Your Reference
kschl_1(4) type c, " Condition Type
kbetr_1(11) type c, " Amount
kschl_2(4) type c, " Condition Type
kbetr_2(11) type c, " Amount
kschl_3(4) type c, " Condition Type
kbetr_3(11) type c, " Amount
partner_1(25) type c, " Partner(Bill To Party Number)
partner_2(25) type c, " Partner(Payer Number)
partner_3(25) type c, " Partner(Sales Responsible Number)
partner_4(25) type c, " Partner(Order admin)
partner_5(25) type c, " Partner(Contact person)
tdspras_1(2) type c,
text_1(500) type c, " Text Before Items Z012
tdspras_2(2) type c,
text_2(500) type c, " Invocie Up Z034
tdspras_3(2) type c,
text_3(500) type c, " Invocie Down Z035
tdspras_4(2) type c,
text_4(500) type c, " Customer Reference Continue Z018
tdspras_5(2) type c,
text_5(500) type c, " Dispatch Marks/ Order Z019
tdspras_6(2) type c,
text_6(500) type c, " Ordered By Z003
tdspras_7(2) type c,
text_7(500) type c, " Sales Parameters Z002
kvgr1(3) type c, " Industry
kvgr2(3) type c, " customer BU
message(600) type c,
end of ty_err.
types: begin of ty_t685a,
kschl type kschl,
krech type krech,
end of ty_t685a.
INTERNAL TABLES
***header
data: g_krech_1(4) type c, " Calculation type for condition
g_krech_2(4) type c, " Calculation type for condition
g_krech_3(4) type c. " Calculation type for condition
g_krech_4(4) TYPE c, " Calculation type for condition
g_krech_5(4) TYPE c, " Calculation type for condition
g_krech_6(4) TYPE c, " Calculation type for condition
g_krech_7(4) TYPE c, " Calculation type for condition
g_krech_8(4) TYPE c, " Calculation type for condition
g_krech_9(4) TYPE c, " Calculation type for condition
g_krech_10(4) TYPE c, " Calculation type for condition
g_krech_11(4) TYPE c, " Calculation type for condition
g_krech_12(4) TYPE c, " Calculation type for condition
g_krech_13(4) TYPE c, " Calculation type for condition
g_krech_14(4) TYPE c, " Calculation type for condition
g_krech_15(4) TYPE c, " Calculation type for condition
g_krech_16(4) TYPE c, " Calculation type for condition
g_krech_17(4) TYPE c, " Calculation type for condition
g_krech_18(4) TYPE c, " Calculation type for condition
g_krech_19(4) TYPE c, " Calculation type for condition
g_krech_20(4) TYPE c. " Calculation type for condition
Items
data: g_krech_item_1(4) type c, " Calculation type for condition
g_krech_item_2(4) type c, " Calculation type for condition
g_krech_item_3(4) type c. " Calculation type for condition
g_krech_item_4(4) TYPE c, " Calculation type for condition
g_krech_item_5(4) TYPE c, " Calculation type for condition
g_krech_item_6(4) TYPE c, " Calculation type for condition
g_krech_item_7(4) TYPE c, " Calculation type for condition
g_krech_item_8(4) TYPE c, " Calculation type for condition
g_krech_item_9(4) TYPE c, " Calculation type for condition
g_krech_item_10(4) TYPE c, " Calculation type for condition
g_krech_item_11(4) TYPE c, " Calculation type for condition
g_krech_item_12(4) TYPE c, " Calculation type for condition
g_krech_item_13(4) TYPE c, " Calculation type for condition
g_krech_item_14(4) TYPE c, " Calculation type for condition
g_krech_item_15(4) TYPE c, " Calculation type for condition
g_krech_item_16(4) TYPE c. " Calculation type for condition
data: it_t685a type standard table of ty_t685a.
data: wa_bapi_header type bapisdhd1,
wa_bapi_headerx TYPE bapisdhd1x,
it_bapi_item type table of bapisditm,
it_bapi_itemx TYPE TABLE OF bapisditmx,
it_bapi_cond type table of bapicond,
it_bapi_condx TYPE TABLE OF bapicondx,
it_bapi_partner type table of bapiparnr,
it_bapi_shdl type table of bapischdl,
it_bapi_shdlx TYPE TABLE OF bapischdlx,
it_bapi_order_text type TABLE OF BAPISDTEXT,
it_bapireturn type table of bapiret2.
data: wa_bapi_item like line of it_bapi_item,
wa_bapi_itemx LIKE LINE OF it_bapi_itemx,
wa_bapi_cond like line of it_bapi_cond,
wa_bapi_condx LIKE LINE OF it_bapi_condx,
wa_bapi_partner like line of it_bapi_partner,
wa_bapi_shdl like line of it_bapi_shdl,
wa_bapi_shdlx LIKE LINE OF it_bapi_shdlx,
wa_bapi_order_text like LINE OF it_bapi_order_text,
wa_bapireturn like line of it_bapireturn.
*DATA: zmode(1) VALUE 'N'.
data: it_header type standard table of ty_header.
*DATA: it_temp_header TYPE STANDARD TABLE OF ty_header.
data: it_item type standard table of ty_item.
*DATA: it_temp_item TYPE STANDARD TABLE OF ty_item.
data: it_err type standard table of ty_err.
data: it_fline1 type standard table of tline,
wa_fline1 type tline.
data: it_thead1 type thead.
data: it_fline2 type standard table of tline,
wa_fline2 type tline.
data: it_thead2 type thead.
data: it_fline3 type standard table of tline,
wa_fline3 type tline.
data: it_thead3 type thead.
data: it_fline4 type standard table of tline,
wa_fline4 type tline.
data: it_thead4 type thead.
data: it_fline5 type standard table of tline,
wa_fline5 type tline.
data: it_thead5 type thead.
data: wa_header like line of it_header,
wa_item like line of it_item,
wa_err type ty_err,
wa_bill LIKE LINE OF it_bill,
wa_bill1 LIKE LINE OF it_bill,
wa_iterr like line of it_err,
wa_t685a like line of it_t685a.
wa_bill_item TYPE ty_bill_item.
data: it_schedule_line type standard table of ty_schedule_line,
wa_schedule_line type ty_schedule_line.
data: sales_order_no type bapivbeln-vbeln.
data: ext_sales_order_no type bapivbeln-vbeln.
Variable to be used to separate the fields which are concatenated by a
runtime character
*DATA: g_tabchar(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
*DATA: wa_truxs_t_text_data TYPE truxs_t_text_data.
*DATA: g_filename TYPE string,
g_path TYPE string,
g_fullpath TYPE string,
g_user_action TYPE i,
g_file_encoding TYPE abap_encoding.
*DATA : g_text(8192),
data : g_mstring1(100) type c,
g_mstring2(100) type c,
g_mstring3(100) type c,
g_mstring4(100) type c,
g_mstring5(100) type c.
data: g_count1 type ebelp,
g_str_count1(6) type c.
data: g_count type ebelp,
g_str_count(6) type c.
*DATA: f_subrc LIKE sy-subrc,
f_subrc1 LIKE sy-subrc,
f_error(500) TYPE c,
item1(27) TYPE c,
item2(27) TYPE c,
item3(27) TYPE c,
item4(27) TYPE c,
i TYPE ekpo-ebelp.
*DATA: g_billplan_header TYPE c,
g_billplan_item TYPE c.
data : g_external_so type vbak-vbeln. "SO
SELECTION-SCREEN
selection-screen begin of block frame1 with frame title text-001 .
parameters:p_file1 type rlgrap-filename, "OBLIGATORY, "Header data.
p_file2 type rlgrap-filename, "OBLIGATORY, "Item Data.
p_file3 type rlgrap-filename, "Schedule line.
p_file4 type rlgrap-filename ."OBLIGATORY. "Error file.
selection-screen end of block frame1.
start-of-selection.
wa_bapi_header-doc_type = 'Z0MX'. "order type
wa_bapi_header-sales_org = '0130'."sales org
wa_bapi_header-distr_chan = '13'. "distr channel
wa_bapi_header-division = '13'. "division
Old code from copied program
wa_bapi_header-purch_no_s = wa_header-kunnr_2. " Ship to party
New code as required in Finland project
We are using to Header ->Order Tab -> Ship to Party -> Purchase order no (BSTKD_E) to store Old legacy SO number
wa_bapi_header-purch_no_s = 'MX100443'. "External SO i.e Old legacey SO number
wa_bapi_header-ref_1_s = '0000666666'. "Sold to party
wa_bapi_header-ord_reason = wa_header-augru.
wa_bapi_header-purch_no_c = 'ddr1234'. " PO number
wa_bapi_header-purch_date = sy-datum. " PO date
wa_bapi_header-req_date_h = sy-datum. " Required Delivery Date
wa_bapi_header-pmnttrms = '01'. " Payment Terms
wa_bapi_header-incoterms1 = wa_header-inco1.
wa_bapi_header-incoterms2 = wa_header-inco2.
wa_bapi_header-price_date = wa_header-prsdt. " Pricing date
wa_bapi_header-currency = wa_header-waerk. " Document Currency
wa_bapi_header-sales_grp = wa_header-vkgrp. " Sales group
wa_bapi_header-price_list = wa_header-pltyp. " Price list type
wa_bapi_header-cust_group = wa_header-kdgrp. " Cust Group
wa_bapi_header-ship_type = wa_header-vsart. " Shipping Type
wa_bapi_header-purch_no_s = wa_header-bstkd_e. " Ship-to-party po number
wa_bapi_header-collect_no = wa_header-submi. " Collective No.
wa_bapi_header-name = wa_header-bname. " Name
wa_bapi_header-ref_1 = wa_header-ihrez. " Your Reference
wa_bapi_header-cust_grp1 = wa_header-kvgr1. " Industry
wa_bapi_header-cust_grp2 = wa_header-kvgr2. " Customer BU
*ENDFORM. " f_header
IF wa_header-partner_1 IS NOT INITIAL.
wa_bapi_partner-partn_role = 'AG'.
wa_bapi_partner-partn_numb = '0000666666'.
wa_bapi_partner-itm_number = '000000'.
append wa_bapi_partner to it_bapi_partner.
clear wa_bapi_partner.
ENDIF.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_header-partner_2
importing
output = wa_header-partner_2.
IF wa_header-partner_2 IS NOT INITIAL.
wa_bapi_partner-partn_role = 'WE'.
wa_bapi_partner-partn_numb = '0000666666'.
wa_bapi_partner-itm_number = '000000'.
append wa_bapi_partner to it_bapi_partner.
clear wa_bapi_partner.
ENDIF.
perform f_item.
data : order_items_inx type table of bapisditmx with header line.
order_items_inx-material = 'X'. "
order_items_inx-target_qty = 'X'. "
order_items_inx-comp_quant = 'X'. "
order_items_inx-trgqty_den = 'X'.
order_items_inx-rnddlv_qty = 'X'.
order_items_inx-updateflag = 'I'.
order_items_inx-target_qu = 'X'.
order_items_inx-plant = 'X'. "
append order_items_inx.
call function 'BAPI_SALESORDER_CREATEFROMDAT2'
exporting
salesdocumentin = 'MX11111152'
order_header_in = wa_bapi_header
order_header_inx = wa_bapi_headerx
importing
salesdocument = sales_order_no
tables
return = it_bapireturn
order_items_in = it_bapi_item
order_items_inx = order_items_inx
order_partners = it_bapi_partner
order_conditions_in = it_bapi_cond.
if sy-subrc is initial.
commit work.
endif.
*& Form f_item
text
form f_item .
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_item-posnr
importing
output = wa_item-posnr.
wa_item-posnr = '000010'.
IF sy-subrc EQ 0. "IS INITIAL.
move wa_item-posnr to g_str_count."commented out by shakti
ENDIF.
wa_bapi_item-itm_number = wa_item-posnr. " Line item
WA_BAPI_ITEM-PO_ITM_NO = WA_ITEM-EBELP.
wa_bapi_item-division = wa_item-spart.
wa_bapi_item-purch_no_c = 'ddr1234'. " po number
wa_bapi_item-purch_date = sy-datum. " po date
wa_bapi_item-purch_no_s = 'MX11111112'. " Ship-to-party po number
wa_item-matnr = 'MAXIMO_SERVICE'.
call function 'CONVERSION_EXIT_MATN1_INPUT'
exporting
input = wa_item-matnr
importing
output = wa_item-matnr
exceptions
length_error = 1
others = 2.
if sy-subrc is initial.
wa_bapi_item-material = wa_item-matnr. "material
endif.
wa_bapi_item-target_qty = '1'. " Order qty
wa_bapi_item-comp_quant = '1'.
wa_bapi_item-target_qu = 'EA'.
wa_bapi_item-fixed_quan = '1'.
wa_bapi_item-comp_quant = wa_item-kwmeng.
wa_bapi_item-trgqty_den = '1'.
wa_bapi_item-rnddlv_qty = wa_item-kwmeng.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_item-ps_psp_pnr
IMPORTING
output = wa_item-ps_psp_pnr.
IF sy-subrc = 0.
wa_bapi_item-wbs_elem = wa_item-ps_psp_pnr.
ENDIF.
wa_bapi_item-item_categ = 'ZMAX'.
wa_bapi_item-ex_rate_fi = wa_item-kurrf.
wa_bapi_item-dli_profil = wa_item-ffprf. " Dynamic item processor profile
wa_bapi_item-route = wa_item-route. " route
wa_bapi_item-exchg_rate = wa_item-kursk.
wa_bapi_item-plant = '2090'. " Plant
wa_bapi_item-ship_point = 'FN11'. " Shipping point
wa_bapi_item-store_loc = wa_item-lgort. " stg loc
REPLACE ALL OCCURRENCES OF ',' IN wa_item-ntgew WITH '.'.
REPLACE ALL OCCURRENCES OF ',' IN wa_item-brgew WITH '.'.
wa_bapi_item-net_weight = wa_item-ntgew. "
wa_bapi_item-gross_wght = wa_item-brgew. "
call function 'CONVERSION_EXIT_CUNIT_INPUT'
exporting
input = wa_item-gewei
language = sy-langu
importing
output = wa_item-gewei.
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
wa_bapi_item-untof_wght = 'KG'. " weight unit
replace all occurrences of ',' in wa_item-kursk with '.'.
replace all occurrences of ',' in wa_item-kurrf with '.'.
wa_bapi_item-profit_ctr = wa_item-prctr. " Profit center
wa_bapi_item-resanalkey = wa_item-abgrs. " RESULT ANALYSIS KEY
wa_bapi_item-cstg_sheet = wa_item-kalsm_k. " COSTING SHEET
append wa_bapi_item to it_bapi_item.
endform. " f_item
Thanks & regards,
Chetansee the following to create sales order:-
*& Report ZSALESORDER
*&DEVELOPED BY JANI KRUPA 4.10.2008
REPORT ZSALESORDER.
Parameters
Sales document type
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.
PARAMETERS: p_auart TYPE auart OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Sales organization
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Distribution channel
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Division.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.
PARAMETERS: p_spart TYPE spart OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SKIP 1.
Sold-to
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.
PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Ship-to
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.
PARAMETERS: p_ship TYPE kunnr OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SKIP 1.
Material
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.
PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Quantity.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.
PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
SELECTION-SCREEN END OF LINE.
Plant
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.
PARAMETERS: p_plant TYPE werks_d .
SELECTION-SCREEN END OF LINE.
Complete Deliver
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(20) v_text10 FOR FIELD p_autlf.
PARAMETERS: p_autlf TYPE autlf DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
Data declarations.
DATA: v_vbeln LIKE vbak-vbeln.
DATA: header LIKE bapisdhead1.
DATA: headerx LIKE bapisdhead1x.
DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
WITH HEADER LINE.
DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH HEADER LINE.
DATA: lt_schedules_ink TYPE STANDARD TABLE OF bapisdhead1
WITH HEADER LINE.
Initialization.
INITIALIZATION.
v_text = 'Order type'.
v_text1 = 'Sales Org'.
v_text2 = 'Distribution channel'.
v_text3 = 'Division'.
v_text4 = 'Sold-to'.
v_text5 = 'Ship-to'.
v_text6 = 'Material'.
v_text7 = 'Quantity'.
v_text9 = 'Plant'.
v_text10 = 'Complete delivery'.
Start-of-selection.
START-OF-SELECTION.
Header data
Sales document type
header-doc_type = p_auart.
headerx-doc_type = 'X'.
Sales organization
header-sales_org = p_vkorg.
headerx-sales_org = 'X'.
Distribution channel
header-distr_chan = p_vtweg.
headerx-distr_chan = 'X'.
Division
header-division = p_spart.
headerx-division = 'X'.
headerx-updateflag = 'I'.
*Complete delivery
header-COMPL_DLV = p_autlf.
header-COMPL_DLV = 'X'.
Partner data
Sold to
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.
Ship to
partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.
ITEM DATA
itemx-updateflag = 'I'.
Line item number.
item-itm_number = '000010'.
itemx-itm_number = 'X'.
Material
item-material = p_matnr.
itemx-material = 'X'.
Plant
item-plant = p_plant.
itemx-plant = 'X'.
Quantity
item-target_qty = p_menge.
itemx-target_qty = 'X'.
item category
itemx-ITEM_CATEG = 'X'.
APPEND item.
APPEND itemx.
ITEM DATA
itemx-updateflag = 'I'.
Line item number.
item-itm_number = '000020'.
itemx-itm_number = 'X'.
Material
item-material = p_matnr.
itemx-material = 'X'.
Plant
item-plant = p_plant.
itemx-plant = 'X'.
Quantity
item-target_qty = p_menge.
itemx-target_qty = 'X'.
APPEND item.
APPEND itemx.
Fill schedule lines
lt_schedules_in-itm_number = '000010'.
lt_schedules_in-sched_line = '0001'.
lt_schedules_in-req_qty = p_menge.
APPEND lt_schedules_in.
Fill schedule line flags
lt_schedules_inx-itm_number = '000010'.
lt_schedules_inx-sched_line = '0001'.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.
Fill schedule lines
lt_schedules_in-itm_number = '000020'.
lt_schedules_in-sched_line = '0001'.
lt_schedules_in-req_qty = p_menge.
APPEND lt_schedules_in.
Fill schedule line flags
lt_schedules_inx-itm_number = '000020'.
lt_schedules_inx-sched_line = '0001'.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.
Call the BAPI to create the sales order.
CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
EXPORTING
sales_header_in = header
sales_header_inx = headerx
IMPORTING
salesdocument_ex = v_vbeln
TABLES
return = return
sales_items_in = item
sales_items_inx = itemx
sales_schedules_in = lt_schedules_in
sales_schedules_inx = lt_schedules_inx
sales_partners = partner.
Check the return table.
LOOP AT return WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
WRITE: / 'Error in creating document'.
ELSE.
Commit the work.
COMMIT WORK AND WAIT.
WRITE: / 'Document ', v_vbeln, ' created'.
ENDIF.
Maybe you are looking for
-
My family recently got a new Gateway windows 7 computer, because our old one crashed. I had to reinstall itunes, and now have absolutely no music on the computer. When I plug my ipod touch into the computer it gives me like two choices it asks if I
-
Acrobat X Windows 7 Using the Portfolio tool > Wave template Can you place a static image on the "background" and keep the color/opacity? For example The green opacticy background In the lower left corner/dead space a FIXED/permenant image with my na
-
Where is the "Devices" list in iTunes???
I must be blind - but I can't find the Devices list, let alone: "Select the Apple TV icon with "Click to set up" next to it in the Devices list." I have iTunes 7.1.1 (5) - have downloaded and REinstalled it twice, restared computer multiple times, et
-
Touchscreen issue since IOS 5.1
Is anyone else having problems with the touchscreen since installing IOS 5.1? It seems like the calibration is off. I am also unable to install apps. Ive tried restoring and soft resets but nothing seems to work. Am I the only one? or does anyone kno
-
Instrument I/O assistant error msg "Unable to view proterties​"
Hi, NI's AE, I have re-installed many times NI LabView8.2(EV) + DAQmx8.3 on all in one SOC platform(X86) with WinXP(SP3) step by step, but all rebooting fail after DAQmx8.3 installed. Then I re-install pure WinXP(SP3) + LabView8.2(EV) + DAQmx