Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Create sales order by using BAPI or batch input?

Former Member
0 Kudos

Hey,

I have written a program, which should create sales orders from a quotation document

in VBAK.

When I do that over VA01, I need to pass the following data:

On the entry screen:

-

-


order type

sales org.

distribution channel

division

--> then press the button "create with reference"

On screen "create with reference"

-

-


quotation doc (reference doc from vbak)

requested date "D" and todays date

--> then, there are some popups I need to accept

On "create sales order initial screen popup

-

-


profit center

If I have passed that all, I´m on the sales order screen and have all items from

my reference document. Now I just have to press save, and the sales order is

going to be created.

But if i´m using batch input, there might be unexpected popups and all will crash...

I have found the function BAPI_SALESORDER_CREATEFROMDAT2, to create sales

orders, but can anybody explain me, how exactly to use it in my case? Which fields

I have to pass and where?

The advantage of batchinput would be, that you can look at the batch input session

and run it again, if an error occured. How could I report an error, if there would be one

with the bapi?

The program will be started by a job when it´s finished.

Thank you for you help!

Michael

1 ACCEPTED SOLUTION

Former Member
0 Kudos

REPORT ZBAPI_SALESORDER_CREATE LINE-SIZE 132 MESSAGE-ID ZMMBAPI .

----


  • Internal table definition *

----


****<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>>>

DATA: GT_ORDER_HEADER_IN LIKE BAPISDHD1,

*******<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>

GT_ORDER_HEADER_INX LIKE BAPISDHD1X,

*****<<<<<Return Parameter>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

GT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE, " Return Messages

*********<<<Communication Fields: Sales and Distribution Document Item<>>>>>

GT_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE, " Item Data

*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>

GT_ORDER_ITEMS_INX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE, "Item Data Checkbox

*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>

GT_SALESDOCUMENT LIKE BAPIVBELN-VBELN , "Number of Generated Document

*********<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE, "Document Partner

********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_IN LIKE BAPISCHDL OCCURS 0 WITH HEADER LINE, "Schedule Line Data

****<<<<<<<<Checkbox List for Maintaining Sales Document Schedule Line>>>>>>>>

GT_ORDER_SCHEDULES_INX LIKE BAPISCHDLX OCCURS 0 WITH HEADER LINE, " Checkbox Schedule Line Data

*******Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_IN LIKE BAPICOND OCCURS 0 WITH HEADER LINE,

******Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_INX LIKE BAPICONDX OCCURS 0 WITH HEADER LINE.

----


  • Data definition *

----


DATA: BEGIN OF GT_FT_SALES OCCURS 0,

DOC_TYPE(4) , "Sales Document Type

SALES_ORG(4) , "Sales Organization

DISTR_CHAN(2) , "Distribution Channel

DIVISION(2) , "DIVISION(2)

SALES_DIST(6) , "Sales district

INCOTERMS1(3) , "Incoterms (part 1)

INCOTERMS2(28) , "Incoterms (part 2)

PMNTTRMS(4) , "Terms of payment key

PRICE_DATE(8) , "Date for pricing and exchange rate

PURCH_NO_C(35) , "Customer purchase order number

PURCH_NO_S(35) , "Ship-to Party's Purchase Order Number

EXCHG_RATE(8) , "Directly quoted exchange rate for pricing and statistics

CURRENCY(5) , "SD document currency

MATERIAL(18), "MATERIAL

TARGET_QTY(13) , "Target quantity in sales units

ITEM_CATEG(4) , "Sales document item category

MATL_GROUP(8) , "Material Group

PURCH_NO_C1(35), "Customer purchase order number

SALES_DIST1(6) , "Sales district

INCOTERMS11(3) , "Incoterms (part 1)

INCOTERMS21(28), "Incoterms (part 2)

PMNTTRMS1(4) , "Terms of payment key

EXCHG_RATE1(8) , "Directly quoted exchange rate for pricing and statistics

PRICE_DATE1(8) , "Date for pricing and exchange rate

TRG_QTY_NO(5) , "Factor for converting sales units to base units (target qty)

DIVISION1(2) , "DIVISION1

SALQTYNUM(5) , "Numerator (factor) for conversion of sales quantity into SKU

GROSS_WGHT(3) , "Gross Weight of the Item

NET_WEIGHT(15) , "Net Weight of the Item

UNTOF_WGHT(3) ,"Weight Unit

PARTN_ROLE(2) ,"Partner function

PARTN_NUMB(10) ,"Customer Number 1

********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

ITM_NUMBER(6) ,"Item number of the SD document

REQ_QTY(8) , "Schedule line date

DLV_DATE(8) , "Schedule line date

MS_DATE(8) , "Material availability date

LOAD_DATE(8) , "Loading time (local time with reference to a shipping point)

GI_DATE(8), "Time of goods issue (local DATE, with reference to a plant)

TP_DATE(8) , "Transportation planning -time (local w/ref. to shipping pnt)

ITM_NUMBER2(6) , "Condition item number

END OF GT_FT_SALES,

MSG(240) TYPE C, " Return Message

E_REC(8) TYPE C, " Error Records Counter

REC_NO(8) TYPE C, " Records Number Indicator

S_REC(8) TYPE C, " Successful Records Counter

T_REC(8) TYPE C. " Total Records Counter

    • selection block for EXCEL UPLOAD FILE>>>>>>>>>>>>>>>>>>>>>>>>

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.

PARAMETERS FILE TYPE IBIPPARMS-PATH OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

*<<<<AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .>>>>>>>>>>>>

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

IMPORTING

FILE_NAME = FILE.

**<<<<<<<<<<<<<<<<<START-OF-SELECTION.>>>>>>>>>>>>>>>>>>>>>>>>>>>

START-OF-SELECTION.

CALL FUNCTION 'WS_UPLOAD' "#EC *

EXPORTING

FILENAME = FILE

FILETYPE = 'DAT'

TABLES

DATA_TAB = GT_FT_SALES

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

NO_AUTHORITY = 10

OTHERS = 11.

IF SY-SUBRC <> 0 .

MESSAGE E000.

ENDIF.

SKIP 3.

FORMAT COLOR COL_HEADING INVERSE ON.

WRITE 40 TEXT-001.

FORMAT COLOR COL_HEADING INVERSE OFF.

SKIP 1.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

WRITE 😕 TEXT-002, 13 SY-MANDT , 104 TEXT-003, 111 SY-UNAME,

/ TEXT-004, 13 SY-DATUM , 104 TEXT-005, 111 SY-UZEIT.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

SKIP 3.

LOOP AT GT_FT_SALES.

PERFORM SLALE_UPLOAD_DATA.

ENDLOOP.

T_REC = E_REC + S_REC.

SKIP 3.

FORMAT COLOR COL_TOTAL INVERSE ON.

WRITE: /38 TEXT-007, T_REC.

FORMAT COLOR COL_TOTAL INVERSE OFF.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

WRITE: /38 TEXT-008, E_REC.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

FORMAT COLOR COL_TOTAL INVERSE ON.

WRITE: /38 TEXT-009, S_REC.

FORMAT COLOR COL_TOTAL INVERSE OFF.

&----


*& Form SLALE_UPLOAD_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SLALE_UPLOAD_DATA .

*******<<<<<<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>

GT_ORDER_HEADER_IN-DOC_TYPE = 'TA'.

GT_ORDER_HEADER_IN-SALES_ORG = GT_FT_SALES-SALES_ORG . "'0001'

GT_ORDER_HEADER_IN-DISTR_CHAN = GT_FT_SALES-DISTR_CHAN. "'01'

GT_ORDER_HEADER_IN-DIVISION = GT_FT_SALES-DIVISION. " '01'

GT_ORDER_HEADER_IN-SALES_DIST = GT_FT_SALES-SALES_DIST ."'000001'

GT_ORDER_HEADER_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1. "'CFR'

GT_ORDER_HEADER_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'

GT_ORDER_HEADER_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'

GT_ORDER_HEADER_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE ."'20060818'

GT_ORDER_HEADER_IN-PURCH_NO_C = '32'.

GT_ORDER_HEADER_IN-PURCH_NO_S = '32'.

GT_ORDER_HEADER_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE ."'1.00000'

GT_ORDER_HEADER_IN-CURRENCY = GT_FT_SALES-CURRENCY . " 'EUR'

********<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>

GT_ORDER_HEADER_INX-DOC_TYPE = 'X'.

GT_ORDER_HEADER_INX-SALES_ORG = 'X'.

GT_ORDER_HEADER_INX-DISTR_CHAN = 'X'.

GT_ORDER_HEADER_INX-DIVISION = 'X'.

GT_ORDER_HEADER_INX-SALES_DIST = 'X'.

GT_ORDER_HEADER_INX-INCOTERMS1 = 'X'.

GT_ORDER_HEADER_INX-INCOTERMS2 = 'X'.

GT_ORDER_HEADER_INX-PMNTTRMS = 'X'.

GT_ORDER_HEADER_INX-PRICE_DATE = 'X'.

GT_ORDER_HEADER_INX-PURCH_NO_C = 'X'.

GT_ORDER_HEADER_INX-PURCH_NO_S = 'X'.

GT_ORDER_HEADER_INX-EXCHG_RATE = 'X'.

GT_ORDER_HEADER_INX-CURRENCY = 'X'.

*****<<<<<<Communication Fields: Sales and Distribution Document Item>>>

GT_ORDER_ITEMS_IN-ITM_NUMBER = '000010'.

GT_ORDER_ITEMS_IN-MATERIAL = GT_FT_SALES-MATERIAL .

GT_ORDER_ITEMS_IN-PO_ITM_NO = '32'.

GT_ORDER_ITEMS_IN-CUST_MAT22 = 'AGNI-IV'.

GT_ORDER_ITEMS_IN-BILL_DATE = '20060808'.

GT_ORDER_ITEMS_IN-PLANT = '0001'.

*GT_ORDER_ITEMS_IN-STORE_LOC = '0001'.

GT_ORDER_ITEMS_IN-TARGET_QTY = GT_FT_SALES-TARGET_QTY . "'1000'

GT_ORDER_ITEMS_IN-ITEM_CATEG = GT_FT_SALES-ITEM_CATEG . "'TAN'

GT_ORDER_ITEMS_IN-MATL_GROUP = GT_FT_SALES-MATL_GROUP . "'01'

GT_ORDER_ITEMS_IN-PURCH_NO_C = GT_FT_SALES-PURCH_NO_C . "'32'

GT_ORDER_ITEMS_IN-SALES_DIST = GT_FT_SALES-SALES_DIST . "'000001'

GT_ORDER_ITEMS_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1 . "'CFR'

GT_ORDER_ITEMS_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'

GT_ORDER_ITEMS_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'.

GT_ORDER_ITEMS_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE . "'1.00000'

GT_ORDER_ITEMS_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE . "'20060808'

*GT_ORDER_ITEMS_IN-SALES_UNIT = 'DZ'.

GT_ORDER_ITEMS_IN-TRG_QTY_NO = GT_FT_SALES-TRG_QTY_NO . "'23'

GT_ORDER_ITEMS_IN-DIVISION = GT_FT_SALES-DIVISION . "'01'

GT_ORDER_ITEMS_IN-SALQTYNUM = GT_FT_SALES-SALQTYNUM . "'32'

GT_ORDER_ITEMS_IN-GROSS_WGHT = GT_FT_SALES-GROSS_WGHT. " ' 25272000'

GT_ORDER_ITEMS_IN-NET_WEIGHT = GT_FT_SALES-NET_WEIGHT. "'24464000'

GT_ORDER_ITEMS_IN-UNTOF_WGHT = GT_FT_SALES-UNTOF_WGHT . " 'KG'

*GT_ORDER_ITEMS_IN-CURRENCY = 'EUR'.

APPEND GT_ORDER_ITEMS_IN.

****<<<<<<Communication Fields: Sales and Distribution Document Item>>>

GT_ORDER_ITEMS_INX-ITM_NUMBER = '000010'.

GT_ORDER_ITEMS_INX-MATERIAL = 'X'.

*GT_ORDER_ITEMS_INX-PO_ITM_NO = 'X'.

GT_ORDER_ITEMS_INX-CUST_MAT22 = 'X'.

GT_ORDER_ITEMS_INX-BILL_DATE = 'X'.

GT_ORDER_ITEMS_INX-PLANT = 'X'.

*GT_ORDER_ITEMS_INX-STORE_LOC = 'X'.

GT_ORDER_ITEMS_INX-TARGET_QTY = 'X'.

GT_ORDER_ITEMS_INX-ITEM_CATEG = 'X'.

GT_ORDER_ITEMS_INX-MATL_GROUP = 'X'.

GT_ORDER_ITEMS_INX-PURCH_NO_C = 'X'.

GT_ORDER_ITEMS_INX-SALES_DIST = 'X'.

GT_ORDER_ITEMS_INX-INCOTERMS1 = 'X'.

GT_ORDER_ITEMS_INX-INCOTERMS2 = 'X'.

GT_ORDER_ITEMS_INX-PMNTTRMS = 'X'.

GT_ORDER_ITEMS_INX-EXCHG_RATE = 'X'.

GT_ORDER_ITEMS_INX-PRICE_DATE = 'X'.

*GT_ORDER_ITEMS_INX-SALES_UNIT = 'X'.

GT_ORDER_ITEMS_INX-TRG_QTY_NO = 'X'.

GT_ORDER_ITEMS_INX-DIVISION = 'X'.

GT_ORDER_ITEMS_INX-SALQTYNUM = 'X'.

GT_ORDER_ITEMS_INX-GROSS_WGHT = 'X'.

GT_ORDER_ITEMS_INX-NET_WEIGHT = 'X'.

GT_ORDER_ITEMS_INX-UNTOF_WGHT = 'X'.

*GT_ORDER_ITEMS_IN-CURRENCY = 'x'.

APPEND GT_ORDER_ITEMS_INX.

*****<<<<<<Communications Fields: SD Document Partner: WWW

GT_ORDER_PARTNERS-PARTN_ROLE = 'WE'.

GT_ORDER_PARTNERS-PARTN_NUMB = '0000000057'.

***GT_ORDER_PARTNERS-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER . " '000010'.

APPEND GT_ORDER_PARTNERS.

*********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER." '000010'

GT_ORDER_SCHEDULES_IN-REQ_QTY = GT_FT_SALES-REQ_QTY . "'234'

GT_ORDER_SCHEDULES_IN-DLV_DATE = GT_FT_SALES-DLV_DATE ." '20060824'.

GT_ORDER_SCHEDULES_IN-MS_DATE = GT_FT_SALES-MS_DATE . "'20060808'

GT_ORDER_SCHEDULES_IN-LOAD_DATE = GT_FT_SALES-LOAD_DATE. " '20060822'

GT_ORDER_SCHEDULES_IN-GI_DATE = GT_FT_SALES-GI_DATE . " '20060823'

GT_ORDER_SCHEDULES_IN-TP_DATE = GT_FT_SALES-TP_DATE . "'20060821'

APPEND gt_ORDER_SCHEDULES_IN.

*********<<<<Communications Fields: SD Document Partner: WWW FLAG>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_INX-ITM_NUMBER = '000010'.

GT_ORDER_SCHEDULES_INX-REQ_QTY = 'X'.

GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-MS_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-LOAD_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-GI_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.

APPEND gt_ORDER_SCHEDULES_INX.

********Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER ." '000010'

APPEND GT_ORDER_CONDITIONS_IN.

***Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_INX-ITM_NUMBER = '000010'.

APPEND GT_ORDER_CONDITIONS_INX.

*

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

ORDER_HEADER_IN = GT_ORDER_HEADER_IN

ORDER_HEADER_INX = GT_ORDER_HEADER_INX

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

SALESDOCUMENT = GT_SALESDOCUMENT

TABLES

RETURN = GT_RETURN

ORDER_ITEMS_IN = GT_ORDER_ITEMS_IN

ORDER_ITEMS_INX = GT_ORDER_ITEMS_INX

ORDER_PARTNERS = GT_ORDER_PARTNERS

ORDER_SCHEDULES_IN = GT_ORDER_SCHEDULES_IN

ORDER_SCHEDULES_INX = GT_ORDER_SCHEDULES_INX

ORDER_CONDITIONS_IN = GT_ORDER_CONDITIONS_IN

ORDER_CONDITIONS_INX = GT_ORDER_CONDITIONS_INX

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • ORDER_CCARD =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • EXTENSIONIN =

  • PARTNERADDRESSES =

.

IF GT_RETURN-TYPE EQ 'E' .

E_REC = E_REC + 1.

READ TABLE GT_RETURN WITH KEY ID = 'V1'.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

REC_NO = E_REC + S_REC.

CONCATENATE TEXT-006 REC_NO ':'

GT_RETURN-MESSAGE INTO MSG SEPARATED BY SPACE .

CONDENSE MSG.

WRITE: / MSG.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

ELSEIF GT_RETURN-TYPE EQ 'S'.

S_REC = S_REC + 1.

FORMAT COLOR COL_POSITIVE INVERSE ON.

MSG = GT_RETURN-MESSAGE.

CONDENSE MSG.

WRITE: / MSG .

FORMAT COLOR COL_POSITIVE INVERSE OFF.

PERFORM COMMIT_MM.

ENDIF.

CLEAR: GT_RETURN[], MSG.

ENDFORM. " SLALE_UPLOAD_DATA

&----


*& Form COMMIT_MM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM COMMIT_MM .

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = GT_RETURN.

clear: GT_ORDER_ITEMS_IN[],GT_ORDER_CONDITIONS_IN[].

ENDFORM. " COMMIT_MM

3 REPLIES 3

Former Member
0 Kudos

REPORT ZBAPI_SALESORDER_CREATE LINE-SIZE 132 MESSAGE-ID ZMMBAPI .

----


  • Internal table definition *

----


****<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>>>

DATA: GT_ORDER_HEADER_IN LIKE BAPISDHD1,

*******<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>

GT_ORDER_HEADER_INX LIKE BAPISDHD1X,

*****<<<<<Return Parameter>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

GT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE, " Return Messages

*********<<<Communication Fields: Sales and Distribution Document Item<>>>>>

GT_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE, " Item Data

*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>

GT_ORDER_ITEMS_INX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE, "Item Data Checkbox

*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>

GT_SALESDOCUMENT LIKE BAPIVBELN-VBELN , "Number of Generated Document

*********<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE, "Document Partner

********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_IN LIKE BAPISCHDL OCCURS 0 WITH HEADER LINE, "Schedule Line Data

****<<<<<<<<Checkbox List for Maintaining Sales Document Schedule Line>>>>>>>>

GT_ORDER_SCHEDULES_INX LIKE BAPISCHDLX OCCURS 0 WITH HEADER LINE, " Checkbox Schedule Line Data

*******Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_IN LIKE BAPICOND OCCURS 0 WITH HEADER LINE,

******Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_INX LIKE BAPICONDX OCCURS 0 WITH HEADER LINE.

----


  • Data definition *

----


DATA: BEGIN OF GT_FT_SALES OCCURS 0,

DOC_TYPE(4) , "Sales Document Type

SALES_ORG(4) , "Sales Organization

DISTR_CHAN(2) , "Distribution Channel

DIVISION(2) , "DIVISION(2)

SALES_DIST(6) , "Sales district

INCOTERMS1(3) , "Incoterms (part 1)

INCOTERMS2(28) , "Incoterms (part 2)

PMNTTRMS(4) , "Terms of payment key

PRICE_DATE(8) , "Date for pricing and exchange rate

PURCH_NO_C(35) , "Customer purchase order number

PURCH_NO_S(35) , "Ship-to Party's Purchase Order Number

EXCHG_RATE(8) , "Directly quoted exchange rate for pricing and statistics

CURRENCY(5) , "SD document currency

MATERIAL(18), "MATERIAL

TARGET_QTY(13) , "Target quantity in sales units

ITEM_CATEG(4) , "Sales document item category

MATL_GROUP(8) , "Material Group

PURCH_NO_C1(35), "Customer purchase order number

SALES_DIST1(6) , "Sales district

INCOTERMS11(3) , "Incoterms (part 1)

INCOTERMS21(28), "Incoterms (part 2)

PMNTTRMS1(4) , "Terms of payment key

EXCHG_RATE1(8) , "Directly quoted exchange rate for pricing and statistics

PRICE_DATE1(8) , "Date for pricing and exchange rate

TRG_QTY_NO(5) , "Factor for converting sales units to base units (target qty)

DIVISION1(2) , "DIVISION1

SALQTYNUM(5) , "Numerator (factor) for conversion of sales quantity into SKU

GROSS_WGHT(3) , "Gross Weight of the Item

NET_WEIGHT(15) , "Net Weight of the Item

UNTOF_WGHT(3) ,"Weight Unit

PARTN_ROLE(2) ,"Partner function

PARTN_NUMB(10) ,"Customer Number 1

********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

ITM_NUMBER(6) ,"Item number of the SD document

REQ_QTY(8) , "Schedule line date

DLV_DATE(8) , "Schedule line date

MS_DATE(8) , "Material availability date

LOAD_DATE(8) , "Loading time (local time with reference to a shipping point)

GI_DATE(8), "Time of goods issue (local DATE, with reference to a plant)

TP_DATE(8) , "Transportation planning -time (local w/ref. to shipping pnt)

ITM_NUMBER2(6) , "Condition item number

END OF GT_FT_SALES,

MSG(240) TYPE C, " Return Message

E_REC(8) TYPE C, " Error Records Counter

REC_NO(8) TYPE C, " Records Number Indicator

S_REC(8) TYPE C, " Successful Records Counter

T_REC(8) TYPE C. " Total Records Counter

    • selection block for EXCEL UPLOAD FILE>>>>>>>>>>>>>>>>>>>>>>>>

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.

PARAMETERS FILE TYPE IBIPPARMS-PATH OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

*<<<<AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .>>>>>>>>>>>>

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

IMPORTING

FILE_NAME = FILE.

**<<<<<<<<<<<<<<<<<START-OF-SELECTION.>>>>>>>>>>>>>>>>>>>>>>>>>>>

START-OF-SELECTION.

CALL FUNCTION 'WS_UPLOAD' "#EC *

EXPORTING

FILENAME = FILE

FILETYPE = 'DAT'

TABLES

DATA_TAB = GT_FT_SALES

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

NO_AUTHORITY = 10

OTHERS = 11.

IF SY-SUBRC <> 0 .

MESSAGE E000.

ENDIF.

SKIP 3.

FORMAT COLOR COL_HEADING INVERSE ON.

WRITE 40 TEXT-001.

FORMAT COLOR COL_HEADING INVERSE OFF.

SKIP 1.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

WRITE 😕 TEXT-002, 13 SY-MANDT , 104 TEXT-003, 111 SY-UNAME,

/ TEXT-004, 13 SY-DATUM , 104 TEXT-005, 111 SY-UZEIT.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

SKIP 3.

LOOP AT GT_FT_SALES.

PERFORM SLALE_UPLOAD_DATA.

ENDLOOP.

T_REC = E_REC + S_REC.

SKIP 3.

FORMAT COLOR COL_TOTAL INVERSE ON.

WRITE: /38 TEXT-007, T_REC.

FORMAT COLOR COL_TOTAL INVERSE OFF.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

WRITE: /38 TEXT-008, E_REC.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

FORMAT COLOR COL_TOTAL INVERSE ON.

WRITE: /38 TEXT-009, S_REC.

FORMAT COLOR COL_TOTAL INVERSE OFF.

&----


*& Form SLALE_UPLOAD_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SLALE_UPLOAD_DATA .

*******<<<<<<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>

GT_ORDER_HEADER_IN-DOC_TYPE = 'TA'.

GT_ORDER_HEADER_IN-SALES_ORG = GT_FT_SALES-SALES_ORG . "'0001'

GT_ORDER_HEADER_IN-DISTR_CHAN = GT_FT_SALES-DISTR_CHAN. "'01'

GT_ORDER_HEADER_IN-DIVISION = GT_FT_SALES-DIVISION. " '01'

GT_ORDER_HEADER_IN-SALES_DIST = GT_FT_SALES-SALES_DIST ."'000001'

GT_ORDER_HEADER_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1. "'CFR'

GT_ORDER_HEADER_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'

GT_ORDER_HEADER_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'

GT_ORDER_HEADER_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE ."'20060818'

GT_ORDER_HEADER_IN-PURCH_NO_C = '32'.

GT_ORDER_HEADER_IN-PURCH_NO_S = '32'.

GT_ORDER_HEADER_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE ."'1.00000'

GT_ORDER_HEADER_IN-CURRENCY = GT_FT_SALES-CURRENCY . " 'EUR'

********<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>

GT_ORDER_HEADER_INX-DOC_TYPE = 'X'.

GT_ORDER_HEADER_INX-SALES_ORG = 'X'.

GT_ORDER_HEADER_INX-DISTR_CHAN = 'X'.

GT_ORDER_HEADER_INX-DIVISION = 'X'.

GT_ORDER_HEADER_INX-SALES_DIST = 'X'.

GT_ORDER_HEADER_INX-INCOTERMS1 = 'X'.

GT_ORDER_HEADER_INX-INCOTERMS2 = 'X'.

GT_ORDER_HEADER_INX-PMNTTRMS = 'X'.

GT_ORDER_HEADER_INX-PRICE_DATE = 'X'.

GT_ORDER_HEADER_INX-PURCH_NO_C = 'X'.

GT_ORDER_HEADER_INX-PURCH_NO_S = 'X'.

GT_ORDER_HEADER_INX-EXCHG_RATE = 'X'.

GT_ORDER_HEADER_INX-CURRENCY = 'X'.

*****<<<<<<Communication Fields: Sales and Distribution Document Item>>>

GT_ORDER_ITEMS_IN-ITM_NUMBER = '000010'.

GT_ORDER_ITEMS_IN-MATERIAL = GT_FT_SALES-MATERIAL .

GT_ORDER_ITEMS_IN-PO_ITM_NO = '32'.

GT_ORDER_ITEMS_IN-CUST_MAT22 = 'AGNI-IV'.

GT_ORDER_ITEMS_IN-BILL_DATE = '20060808'.

GT_ORDER_ITEMS_IN-PLANT = '0001'.

*GT_ORDER_ITEMS_IN-STORE_LOC = '0001'.

GT_ORDER_ITEMS_IN-TARGET_QTY = GT_FT_SALES-TARGET_QTY . "'1000'

GT_ORDER_ITEMS_IN-ITEM_CATEG = GT_FT_SALES-ITEM_CATEG . "'TAN'

GT_ORDER_ITEMS_IN-MATL_GROUP = GT_FT_SALES-MATL_GROUP . "'01'

GT_ORDER_ITEMS_IN-PURCH_NO_C = GT_FT_SALES-PURCH_NO_C . "'32'

GT_ORDER_ITEMS_IN-SALES_DIST = GT_FT_SALES-SALES_DIST . "'000001'

GT_ORDER_ITEMS_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1 . "'CFR'

GT_ORDER_ITEMS_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'

GT_ORDER_ITEMS_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'.

GT_ORDER_ITEMS_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE . "'1.00000'

GT_ORDER_ITEMS_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE . "'20060808'

*GT_ORDER_ITEMS_IN-SALES_UNIT = 'DZ'.

GT_ORDER_ITEMS_IN-TRG_QTY_NO = GT_FT_SALES-TRG_QTY_NO . "'23'

GT_ORDER_ITEMS_IN-DIVISION = GT_FT_SALES-DIVISION . "'01'

GT_ORDER_ITEMS_IN-SALQTYNUM = GT_FT_SALES-SALQTYNUM . "'32'

GT_ORDER_ITEMS_IN-GROSS_WGHT = GT_FT_SALES-GROSS_WGHT. " ' 25272000'

GT_ORDER_ITEMS_IN-NET_WEIGHT = GT_FT_SALES-NET_WEIGHT. "'24464000'

GT_ORDER_ITEMS_IN-UNTOF_WGHT = GT_FT_SALES-UNTOF_WGHT . " 'KG'

*GT_ORDER_ITEMS_IN-CURRENCY = 'EUR'.

APPEND GT_ORDER_ITEMS_IN.

****<<<<<<Communication Fields: Sales and Distribution Document Item>>>

GT_ORDER_ITEMS_INX-ITM_NUMBER = '000010'.

GT_ORDER_ITEMS_INX-MATERIAL = 'X'.

*GT_ORDER_ITEMS_INX-PO_ITM_NO = 'X'.

GT_ORDER_ITEMS_INX-CUST_MAT22 = 'X'.

GT_ORDER_ITEMS_INX-BILL_DATE = 'X'.

GT_ORDER_ITEMS_INX-PLANT = 'X'.

*GT_ORDER_ITEMS_INX-STORE_LOC = 'X'.

GT_ORDER_ITEMS_INX-TARGET_QTY = 'X'.

GT_ORDER_ITEMS_INX-ITEM_CATEG = 'X'.

GT_ORDER_ITEMS_INX-MATL_GROUP = 'X'.

GT_ORDER_ITEMS_INX-PURCH_NO_C = 'X'.

GT_ORDER_ITEMS_INX-SALES_DIST = 'X'.

GT_ORDER_ITEMS_INX-INCOTERMS1 = 'X'.

GT_ORDER_ITEMS_INX-INCOTERMS2 = 'X'.

GT_ORDER_ITEMS_INX-PMNTTRMS = 'X'.

GT_ORDER_ITEMS_INX-EXCHG_RATE = 'X'.

GT_ORDER_ITEMS_INX-PRICE_DATE = 'X'.

*GT_ORDER_ITEMS_INX-SALES_UNIT = 'X'.

GT_ORDER_ITEMS_INX-TRG_QTY_NO = 'X'.

GT_ORDER_ITEMS_INX-DIVISION = 'X'.

GT_ORDER_ITEMS_INX-SALQTYNUM = 'X'.

GT_ORDER_ITEMS_INX-GROSS_WGHT = 'X'.

GT_ORDER_ITEMS_INX-NET_WEIGHT = 'X'.

GT_ORDER_ITEMS_INX-UNTOF_WGHT = 'X'.

*GT_ORDER_ITEMS_IN-CURRENCY = 'x'.

APPEND GT_ORDER_ITEMS_INX.

*****<<<<<<Communications Fields: SD Document Partner: WWW

GT_ORDER_PARTNERS-PARTN_ROLE = 'WE'.

GT_ORDER_PARTNERS-PARTN_NUMB = '0000000057'.

***GT_ORDER_PARTNERS-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER . " '000010'.

APPEND GT_ORDER_PARTNERS.

*********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER." '000010'

GT_ORDER_SCHEDULES_IN-REQ_QTY = GT_FT_SALES-REQ_QTY . "'234'

GT_ORDER_SCHEDULES_IN-DLV_DATE = GT_FT_SALES-DLV_DATE ." '20060824'.

GT_ORDER_SCHEDULES_IN-MS_DATE = GT_FT_SALES-MS_DATE . "'20060808'

GT_ORDER_SCHEDULES_IN-LOAD_DATE = GT_FT_SALES-LOAD_DATE. " '20060822'

GT_ORDER_SCHEDULES_IN-GI_DATE = GT_FT_SALES-GI_DATE . " '20060823'

GT_ORDER_SCHEDULES_IN-TP_DATE = GT_FT_SALES-TP_DATE . "'20060821'

APPEND gt_ORDER_SCHEDULES_IN.

*********<<<<Communications Fields: SD Document Partner: WWW FLAG>>>>>>>>>>>>>>>>>>

GT_ORDER_SCHEDULES_INX-ITM_NUMBER = '000010'.

GT_ORDER_SCHEDULES_INX-REQ_QTY = 'X'.

GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-MS_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-LOAD_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-GI_DATE = 'X'.

GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.

APPEND gt_ORDER_SCHEDULES_INX.

********Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER ." '000010'

APPEND GT_ORDER_CONDITIONS_IN.

***Communication Fields for Maintaining Conditions in the Order

GT_ORDER_CONDITIONS_INX-ITM_NUMBER = '000010'.

APPEND GT_ORDER_CONDITIONS_INX.

*

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

ORDER_HEADER_IN = GT_ORDER_HEADER_IN

ORDER_HEADER_INX = GT_ORDER_HEADER_INX

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

SALESDOCUMENT = GT_SALESDOCUMENT

TABLES

RETURN = GT_RETURN

ORDER_ITEMS_IN = GT_ORDER_ITEMS_IN

ORDER_ITEMS_INX = GT_ORDER_ITEMS_INX

ORDER_PARTNERS = GT_ORDER_PARTNERS

ORDER_SCHEDULES_IN = GT_ORDER_SCHEDULES_IN

ORDER_SCHEDULES_INX = GT_ORDER_SCHEDULES_INX

ORDER_CONDITIONS_IN = GT_ORDER_CONDITIONS_IN

ORDER_CONDITIONS_INX = GT_ORDER_CONDITIONS_INX

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • ORDER_CCARD =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • EXTENSIONIN =

  • PARTNERADDRESSES =

.

IF GT_RETURN-TYPE EQ 'E' .

E_REC = E_REC + 1.

READ TABLE GT_RETURN WITH KEY ID = 'V1'.

FORMAT COLOR COL_NEGATIVE INVERSE ON.

REC_NO = E_REC + S_REC.

CONCATENATE TEXT-006 REC_NO ':'

GT_RETURN-MESSAGE INTO MSG SEPARATED BY SPACE .

CONDENSE MSG.

WRITE: / MSG.

FORMAT COLOR COL_NEGATIVE INVERSE OFF.

ELSEIF GT_RETURN-TYPE EQ 'S'.

S_REC = S_REC + 1.

FORMAT COLOR COL_POSITIVE INVERSE ON.

MSG = GT_RETURN-MESSAGE.

CONDENSE MSG.

WRITE: / MSG .

FORMAT COLOR COL_POSITIVE INVERSE OFF.

PERFORM COMMIT_MM.

ENDIF.

CLEAR: GT_RETURN[], MSG.

ENDFORM. " SLALE_UPLOAD_DATA

&----


*& Form COMMIT_MM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM COMMIT_MM .

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = GT_RETURN.

clear: GT_ORDER_ITEMS_IN[],GT_ORDER_CONDITIONS_IN[].

ENDFORM. " COMMIT_MM

0 Kudos

Hi,

thank you for your code example. But what about the reference to the quotation document? What about the profit center?

And do you think it´s better to use the BAPI, or using batch input? What is, when the BAPI returns with an error? How could I report that afterwards?

Michael

Former Member
0 Kudos

hi Michael,

you can use BDC's as well as BAPI also, each bapi will have return structure, which will return sales order number created, and four messages, msg_v4 will made you to know weather that sales order is created sucessfully or not,

u can maintain log file with those retruns and you can re execute the program with correct data as input

if this helpful, reward marks

regards,

Pavan