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: 

sales order change through bapi

Former Member
0 Kudos

iam uploading va02 changes through bapi..but its not changing the sales order

details in bapi_change function module item number its taking as zero. plz can any one

say where iam going wrong.this is my code

*______BAPI STRUCTURES

data : bapi_header type BAPISDH1 occurs 0 with header line,

bapi_item type BAPISDITM occurs 0 with header line,

bapi_header_x like BAPISDH1X occurs 0 with header line,

bapi_item_x type BAPISDITMX occurs 0 with header line,

it_return type BAPIRET2 occurs 0 with header line.

data: v_vbeln like BAPIVBELN-VBELN,

v_bstkd like bapisdh1-purch_no_c,

v_zterm like bapisdh1-pmnttrms,

v_inco1 like bapisdh1-incoterms1,

v_inco2 like bapisdh1-incoterms2,

v_arktx like bapisditm-short_text,

v_koe1n like bapisditm-currency.

*_____ Internal to hold the records in the text file

DATA : BEGIN OF it_header OCCURS 100,

VBELN(10) ,

BSTKD(35) ,

ZTERM(4) ,

INCO1(3) ,

INCO2(28) ,

POSNR(6) ,

matnr(18) ,

ARKTX(40) ,

END OF it_header.

*_____ Internal table to hold excel file data

DATA : it_intern TYPE alsmex_tabline OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK scr1 WITH FRAME TITLE text-111.

PARAMETER : p_file TYPE rlgrap-filename OBLIGATORY .

*paRAMETERS : p_header TYPE i DEFAULT 0.

parameters : p_begcol TYPE i DEFAULT 1 NO-DISPLAY,

p_begrow TYPE i DEFAULT 1 NO-DISPLAY,

p_endcol TYPE i DEFAULT 100 NO-DISPLAY,

p_endrow TYPE i DEFAULT 32000 NO-DISPLAY.

SELECTION-SCREEN END OF BLOCK scr1.

___________START-OF-SELECTION________________

START-OF-SELECTION.

PERFORM convert_xls_itab. "to convert excel data into internal table

___________END-OF-SELECTION________________

END-OF-SELECTION.

&----


*& Form convert_xls_itab

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM convert_xls_itab .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = p_file

i_begin_col = p_begcol

i_begin_row = p_begrow

i_end_col = p_endcol

i_end_row = p_endrow

TABLES

intern = it_intern.

  • EXCEPTIONS

  • INCONSISTENT_PARAMETERS = 1

  • UPLOAD_OLE = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

PERFORM move_data. " to move the data into an internal table

ENDFORM. " convert_xls_itab

___________END-OF-SELECTION________________

END-OF-SELECTION.

PERFORM upload_so. "to upload salesorder changes

&----


*& Form upload_so

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


&----


*& Form move_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM move_data .

DATA : lv_index TYPE i.

FIELD-SYMBOLS <fs>.

SORT it_intern BY row col. "Sorting Internal Table

CLEAR it_intern.

LOOP AT it_intern.

MOVE it_intern-col TO lv_index.

ASSIGN COMPONENT lv_index OF STRUCTURE it_header TO <fs>. " assigning each record to internal table row

MOVE it_intern-value TO <fs>.

AT END OF row.

APPEND it_header.

CLEAR it_header.

ENDAT.

ENDLOOP.

ENDFORM. " MOVE_DATA

" move_data

&----


*& Form upload_so

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM upload_so .

LOOP AT it_header.

  • Header

v_vbeln = it_header-VBELN.

bapi_header-purch_no_c = it_header-BSTKD.

bapi_header-pmnttrms = it_header-ZTERM.

bapi_header-incoterms1 = it_header-INCO1.

bapi_header-incoterms2 = it_header-INCO2.

APPEND BAPI_header.

bapi_header_x-updateflag = 'U'.

bapi_header_x-purch_no_c = 'X'.

bapi_header_x-pmnttrms = 'X'.

bapi_header_x-incoterms1 = 'X'.

bapi_header_x-incoterms2 = 'X'.

APPEND BAPI_header_x.

  • item

  • REFRESH BAPI_item.

bapi_item-ITM_NUMBER = it_header-POSNR.

bapi_item-material = it_header-matnr.

bapi_item-short_text = it_header-arktx.

  • bapi_item-currency = it_item-koein.

APPEND BAPI_item.

bapi_item_x-updateflag = 'U'.

bapi_item_x-ITM_NUMBER = it_header-POSNR.

bapi_item_x-MATERIAL = 'X'.

bapi_item_x-short_text = 'X'.

  • bapi_item_x-currency = 'X'.

APPEND bapi_item_x.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = V_VBELN

IMPORTING

OUTPUT = V_VBELN.

*

    • BAPI to change sales order

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = v_vbeln

ORDER_HEADER_IN = bapi_header

ORDER_HEADER_INX = bapi_header_x

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH =

  • NO_STATUS_BUF_INIT = ' '

TABLES

RETURN = it_return

ORDER_ITEM_IN = bapi_item

ORDER_ITEM_INX = bapi_item_x

  • PARTNERS =

  • PARTNERCHANGES =

  • PARTNERADDRESSES =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • SCHEDULE_LINES =

  • SCHEDULE_LINESX =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • CONDITIONS_IN =

  • CONDITIONS_INX =

  • EXTENSIONIN =

.

COMMIT WORK.

ENDLOOP.

IF IT_return-type = 'E'.

WRITE: / 'Error :', IT_return-message, / 'for VBELN:',it_HEADER-VBELN.

ELSEIF IT_return-type = 'S'.

WRITE: / 'Successfully CHANGED', it_HEADER-VBELN.

ENDIF.

ENDFORM. " upload_so

thanks

2 REPLIES 2

Former Member

Former Member
0 Kudos

hi

You can use ORDER_ITEMS_IN. For further details use the documentation of the function module.This must help you in your requirement.

regards

Aakash Banga