Application Development and Automation 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: 
Read only

BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
851

Dear Frined,

Regarding this BAPI of Customer Order creation , BAPI_SALESORDER_CREATEFROMDAT2

How do I create the input Excel file with the respective feilds to be uploaded into the system.

Is there any standard process to get the input feilds which are used in the BAPI Program.

Please explain..Full point to correct explanation.

regards,

Amlan Sarkar

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
769

Please refer the below weblog which has the same process.

/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit

File-> BAPI request BAPI response->file.

Reward points..

3 REPLIES 3
Read only

Former Member
0 Likes
770

Please refer the below weblog which has the same process.

/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit

File-> BAPI request BAPI response->file.

Reward points..

Read only

Former Member
0 Likes
769

Hi Amlan Sarkar,

U need to create the Excel file with the mandatory fields on the Function Module

BAPI_SALESORDER_CREATEFROMDAT2 .

Importing
ORDER_HEADER_IN	        Order Header
Tables
ORDER_PARTNERS		Document Partner

These are Mandatory structures in BAPI_SALESORDER_CREATEFROMDAT2 .

so we need to create the input excel file minimun with these structures to upload the data.

Best regards,

raam

Read only

Former Member
0 Likes
769

Hi Amlan Sarkar,

Please refer the following code which might be useful

REPORT ZBAPI_SALESORDER_CREATE.

data : ORDER_HEADER_IN like BAPISDHD1.

data : ORDER_ITEMS_IN like BAPISDITM occurs 0 with

header line.

data : RETURN like BAPIRET2 occurs 0 with header line.

data : ORDER_PARTNERS like BAPIPARNR occurs 0 with

header line.

DATA : ORDER_KEYS LIKE BAPISDKEY OCCURS 0 WITH HEADER

LINE.

data : ORDER_SCHEDULES_IN like BAPISCHDL occurs 0 with

header line.

data : BEGIN OF TAB OCCURS 0,

SRNO(4),

DOC_TYPE like ORDER_HEADER_IN-dOC_TYPE,

SALES_ORG LIKE ORDER_HEADER_IN-SALES_ORG,

DISTR_CHAN LIKE ORDER_HEADER_IN-DISTR_CHAN,

DIVISION like ORDER_HEADER_IN-DIVISION,

  • REQ_DATE_H(10),

PURCH_DATE(10),

PMNTTRMS LIKE ORDER_HEADER_IN-PMNTTRMS,

PURCH_NO_C LIKE ORDER_HEADER_IN-PURCH_NO_C,

ITM_NUMBER like BAPISDITM-ITM_NUMBER,

CUST_MAT22 LIKE ORDER_ITEMS_IN-CUST_MAT22,

PLANT LIKE ORDER_ITEMS_IN-PLANT,

TARGET_QTY LIKE ORDER_ITEMS_IN-TARGET_QTY,

PARTN_ROLE LIKE ORDER_PARTNERS-PARTN_ROLE,

PARTN_NUMB LIKE ORDER_PARTNERS-PARTN_NUMB,

END OF TAB.

data: itab1 like alsmex_tabline occurs 0 with header

line.

DATA: gd_currentrow type i.

data : PURCHASEORDER like ekko-ebeln.

Data: tot_rec type i, "Total Records

gd_update type i, "Main Table Increement Counter

gd_lines type i, "Success Table increement Counter

w_textout like t100-text. "VARIABLE TO GET ERRORLOG

data : begin of it_success occurs 0,

SALESDOCUMENT LIKE BAPIVBELN-VBELN, "PROJECT

end of it_success.

data : begin of it_error occurs 0,

srno(4),

err_msg(73) TYPE c, "TO RETREIVE ERROR MESSAGES

end of it_error.

data : srno(4).

DATA : SALESDOCUMENT LIKE BAPIVBELN-VBELN.

selection-screen begin of block b1 with frame.

skip 3.

parameter:p_infile like rlgrap-filename obligatory.

skip 3.

selection-screen end of block b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.

PERFORM value_help.

start-of-selection.

call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = p_infile

i_begin_col = '1'

i_begin_row = '2' "Do not require

headings

i_end_col = '22'

i_end_row = '10000'

TABLES

intern = itab1

EXCEPTIONS

inconsistent_parameters = 1

upload_ole = 2

others = 3.

if sy-subrc <> 0.

message e010(zz) with text-001. "Problem uploading

Excel Spreadsheet

endif.

*perform open_group.

sort itab1 by row col.

  • Get first row retrieved

read table itab1 index 1.

  • Set first row retrieved to current row

gd_currentrow = itab1-row.

loop at itab1.

  • Reset values for next row

if itab1-row ne gd_currentrow.

append tab .

clear tab.

gd_currentrow = itab1-row.

endif.

SHIFT ITAB1-VALUE LEFT DELETING LEADING SPACE.

case itab1-col.

when '0001'.

TAB-SRNO = itab1-value.

when '0002'.

TAB-DOC_TYPE = itab1-value.

when '0003'.

TAB-SALES_ORG = itab1-value.

when '0004'.

TAB-DISTR_CHAN = itab1-value.

when '0005'.

TAB-DIVISION = itab1-value.

  • when '0006'.

  • TAB-REQ_DATE_H = itab1-value.

when '0006'.

TAB-PURCH_DATE = itab1-value.

when '0007'.

TAB-PMNTTRMS = itab1-value.

when '0008'.

TAB-PURCH_NO_C = itab1-value.

when '0009'.

TAB-ITM_NUMBER = itab1-value.

when '0010'.

TAB-CUST_MAT22 = itab1-value.

when '0011'.

TAB-PLANT = itab1-value.

when '0012'.

TAB-TARGET_QTY = itab1-value.

when '0013'.

TAB-PARTN_ROLE = itab1-value.

when '0014'.

TAB-PARTN_NUMB = itab1-value.

endcase.

endloop.

append tab.

clear tab.

sort tab by SRNO.

LOOP AT TAB.

  • concatenate tab-REQ_DATE_H+4(4)

tab-REQ_DATE_H2(2) tab-REQ_DATE_H0(2) into

tab-REQ_DATE_H.

concatenate tab-PURCH_DATE+4(4)

tab-PURCH_DATE2(2) tab-PURCH_DATE0(2) into

tab-PURCH_DATE.

SRNO = TAB-SRNO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = tab-PARTN_NUMB

IMPORTING

OUTPUT = tab-PARTN_NUMB.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = tab-CUST_MAT22

IMPORTING

OUTPUT = tab-CUST_MAT22.

IF TAB-SRNO = SRNO.

ORDER_HEADER_IN-DOC_TYPE = TAB-DOC_TYPE.

ORDER_HEADER_IN-SALES_ORG = TAB-SALES_ORG.

ORDER_HEADER_IN-DISTR_CHAN = TAB-DISTR_CHAN.

  • ORDER_HEADER_IN-REQ_DATE_H = TAB-REQ_DATE_H.

ORDER_HEADER_IN-PURCH_DATE = TAB-PURCH_DATE.

ORDER_HEADER_IN-PMNTTRMS = TAB-PMNTTRMS.

ORDER_HEADER_IN-PURCH_NO_C = TAB-PURCH_NO_C.

ORDER_HEADER_IN-DIVISION = tab-DIVISION.

ORDER_ITEMS_IN-ITM_NUMBER = tab-ITM_NUMBER.

ORDER_ITEMS_IN-material = TAB-CUST_MAT22.

ORDER_ITEMS_IN-PLANT = TAB-PLANT.

APPEND ORDER_ITEMS_IN.

ORDER_PARTNERS-PARTN_ROLE = TAB-PARTN_ROLE.

ORDER_PARTNERS-PARTN_NUMB = TAB-PARTN_NUMB.

APPEND ORDER_PARTNERS.

ORDER_SCHEDULES_IN-ITM_NUMBER = tab-ITM_NUMBER.

ORDER_SCHEDULES_IN-REQ_QTY = tab-TARGET_QTY.

append ORDER_SCHEDULES_IN.

ENDIF.

AT END OF SRNO.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

ORDER_HEADER_IN = ORDER_HEADER_IN

  • ORDER_HEADER_INX =

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

SALESDOCUMENT = SALESDOCUMENT

TABLES

RETURN = RETURN

ORDER_ITEMS_IN = ORDER_ITEMS_IN

  • ORDER_ITEMS_INX =

ORDER_PARTNERS = ORDER_PARTNERS

ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN

  • ORDER_SCHEDULES_INX =

  • ORDER_CONDITIONS_IN =

  • 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 = ORDER_KEYS

  • EXTENSIONIN =

  • PARTNERADDRESSES =

.

IF SALESDOCUMENT <> SPACE.

commit work.

ADD 1 TO gd_update.

it_success-SALESDOCUMENT = SALESDOCUMENT.

append it_success.

CLEAR :SALESDOCUMENT,ORDER_HEADER_IN.

REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.

ELSE.

loop at return.

it_error-SRNO = tab-SRNO.

it_error-err_msg = return-MESSAGE .

Append it_error.

ENDLOOP.

CLEAR :SALESDOCUMENT,ORDER_HEADER_IN.

REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.

ENDIF.

endat.

endloop.

DESCRIBE TABLE it_success LINES gd_lines.

IF gd_lines GT 0.

  • Display result report column headings

PERFORM display_column_headings.

  • Display result report

PERFORM DISPLAY_SUCESS.

ENDIF.

  • IF SUCESS FAILS Display Error Report

DESCRIBE TABLE it_error LINES gd_lines.

IF gd_lines GT 0.

PERFORM errorheadings.

PERFORM errorreport.

ENDIF.

&----


*& Form display_column_headings

&----


  • text

----


FORM display_column_headings.

WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.

SKIP.

WRITE:2 'The following records inserted

successfully:'(013).

WRITE:/ sy-uline(15).

FORMAT COLOR COL_HEADING.

WRITE:/ sy-vline,

(10) 'Sales order'(004), sy-vline.

WRITE:/ sy-uline(15).

ENDFORM. "display_column_headings

*Subroutine to display SUCESS REPORT

FORM DISPLAY_SUCESS.

FORMAT COLOR COL_NORMAL.

LOOP AT it_success.

WRITE:/ sy-vline,

(10) it_success-SALESDOCUMENT, sy-vline.

CLEAR it_success.

ENDLOOP.

WRITE:/ sy-uline(15).

REFRESH: it_success.

FORMAT COLOR COL_BACKGROUND.

ENDFORM. "

DISPLAY_REPORT

&----


*& Form errorreport

&----


  • text

----


FORM errorreport.

LOOP AT it_error.

WRITE:/ sy-vline,

(10) it_error-SRNO, sy-vline,

(40) it_error-err_msg, sy-vline.

ENDLOOP.

WRITE:/ sy-uline(104).

REFRESH: it_error.

endform. "errorreport

&----


*& Form ERRORHEADINGS

&----


  • text

----


FORM ERRORHEADINGS.

SKIP.

WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.

SKIP.

WRITE:2 'The following records failed during

update:'(008).

WRITE:/ sy-uline(104).

FORMAT COLOR COL_HEADING.

WRITE:/ sy-vline,

(10) 'ERROR.'(009), sy-vline.

WRITE:/ sy-uline(104).

FORMAT COLOR COL_NORMAL.

ENDFORM. "ERRORHEADINGS

**&----


**

**& Form value_help

**&----


**

    • text

**----


**

    • --> p1 text

    • <-- p2 text

**----


**

FORM value_help .

CALL FUNCTION 'DSVAS_DOC_WS_FILENAME_GET_50'

EXPORTING

DEF_FILENAME = ' '

DEF_PATH = ' '

MASK = ',.,..'

MODE = 'O'

TITLE = ' '

IMPORTING

FILENAME = p_infile

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.

***Please reward points if found useful

Regards,

Naresh