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: 

BAPI_SALESORDER_CHANGE not changing billing block

Former Member
0 Kudos

Hi Friends,

I have req to change billing block if invoice date is blank

and change invoice date as fullfillment date in sales order.

I am using BAPI_SALESORDER_CHANGE for that.

It changes Invoice Date but not billing block.

Please tell me how it is possible????????

Edited by: Julius Bussche on Sep 15, 2008 11:14 AM

4 REPLIES 4

valter_oliveira
Active Contributor
0 Kudos

Can you post your code? I use that BAPI for that too! Are you filling structures order_header_in and order_header_inx correctly?


order_header_in-BILL_BLOCK = space. "new value
order_header_inx-BILL_BLOCK = 'X'. "variable will change
order_header_inx-updateflag = 'U'.

Regards.

Valter Oliveira.

Former Member
0 Kudos

Hi,

I am providing my Code here.

I have used order_item_in to chages line item.

I want to change billing bolck and invoice date for specific line item.

wa_order_header_inx-updateflag = 'U'.

wa_order_item_in-itm_number = sales_doc_item. // line item

IF wa_billingblock-faksp IS NOT INITIAL.

  • If Billing block has value

IF wa_lineitemvalues-perfk IS INITIAL.

  • If Invoice Date is blank

wa_order_item_in-bill_date = f_date. // fullfillment date

wa_order_item_in-bill_block = space.

ELSE.

wa_order_item_in-bill_date = wa_lineitemvalues-fkdat. //dont change date

wa_order_item_in-bill_block = space.

ENDIF.

ENDIF.

APPEND wa_order_item_in TO it_order_item_in.

CLEAR wa_order_item_inx.

CLEAR it_order_item_inx.

wa_order_item_inx-itm_number = 'X'.

wa_order_item_inx-updateflag = 'U'.

wa_order_item_inx-bill_date = 'X'.

wa_order_item_inx-bill_block = 'X'.

APPEND wa_order_item_inx TO it_order_item_inx.

************************************************************************

  • BAPI CALL *

************************************************************************

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

salesdocument = sales_document

  • ORDER_HEADER_IN = wa_header_in

order_header_inx = wa_order_header_inx

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH =

  • NO_STATUS_BUF_INIT = ' '

TABLES

return = it_return1

order_item_in = it_order_item_in

order_item_inx = it_order_item_inx

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

.

LOOP AT it_return1.

MOVE-CORRESPONDING it_return1 TO it_return2.

APPEND it_return2.

CLEAR it_return2.

ENDLOOP.

************************************************************************

  • BAPI CALL *

************************************************************************

IF sy-subrc = 0 .

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'

IMPORTING

return = it_return1.

ENDIF.

0 Kudos

Hi again.

There is one thing wrong in your code. (structure "inx" item number should not should be 'X'. If you are changing item bill block, wa_order_item_inx-itm_number should be equual to sales_doc_item.


wa_order_item_inx-itm_number = 'X'.

Regards,

Valter Oliveira.

Former Member
0 Kudos

order_header_inx-doc_type = c_x.

order_header_inx-sales_org = c_x.

order_header_inx-distr_chan = c_x.

order_header_inx-division = c_x.

wa_order_conditions_inx-cond_type = c_x.

wa_order_conditions_inx-cond_value = c_x.

APPEND wa_order_conditions_inx TO order_conditions_inx.

LOOP AT i_sorder INTO wa_sorder.

order_header_in-doc_type = wa_sorder-doc_type.

order_header_in-sales_org = wa_sorder-sales_org.

order_header_in-distr_chan = wa_sorder-distr_chan.

order_header_in-division = wa_sorder-division.

WA_ORDER_ITEMS_IN-ITM_NUMBER = WA_SORDER-ITM_NUMBER. "'000010'.

wa_order_items_in-material = wa_sorder-material.

wa_order_items_in-plant = wa_sorder-plant.

wa_order_items_in-target_qty = wa_sorder-target_qty.

wa_order_items_in-target_qu = wa_sorder-target_qu.

APPEND wa_order_items_in TO order_items_in.

wa_order_items_inx-ITM_NUMBER = WA_SORDER-ITM_NUMBER.

wa_order_items_inx-material = c_x.

wa_order_items_inx-plant = c_x.

wa_order_items_inx-target_qty = c_x.

wa_order_items_inx-target_qu = c_x.

wa_order_items_inx-updateflag = c_x.

APPEND wa_order_items_inx TO order_items_inx.

WA_ORDER_SCHEDULES_IN-ITM_NUMBER = WA_SORDER-ITM_NUMBER.

WA_ORDER_SCHEDULES_IN-REQ_QTY = wa_sorder-target_qty.

APPEND WA_ORDER_SCHEDULES_IN TO ORDER_SCHEDULES_IN.

WA_ORDER_SCHEDULES_INX-ITM_NUMBER = WA_SORDER-ITM_NUMBER.

WA_ORDER_SCHEDULES_INX-REQ_QTY = C_X.

APPEND WA_ORDER_SCHEDULES_INX TO ORDER_SCHEDULES_INX.

wa_order_partners-partn_role = wa_sorder-partn_role.

wa_order_partners-partn_numb = wa_sorder-partn_numb.

APPEND wa_order_partners TO order_partners.

*WA_ORDER_CONDITIONS_IN-COND_TYPE = WA_SORDER-COND_TYPE.

*WA_ORDER_CONDITIONS_IN-COND_VALUE = WA_SORDER-COND_VALUE.

*APPEND WA_ORDER_CONDITIONS_IN TO ORDER_CONDITIONS_IN.

i_data = wa_sorder.

append i_data.

AT END OF ref.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

order_header_in = order_header_in

order_header_inx = order_header_inx

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

  • IMPORTING

  • SALESDOCUMENT =

TABLES

return = return

order_items_in = order_items_in

order_items_inx = order_items_inx

order_partners = order_partners

ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN

ORDER_SCHEDULES_INX = ORDER_SCHEDULES_INX

order_conditions_in = order_conditions_in

order_conditions_inx = 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 =

.

READ TABLE return INTO wa_return WITH KEY type = 'S'

number = '311'.

IF sy-subrc <> 0.

READ TABLE return INTO wa_return WITH KEY type = 'E'.

IF sy-subrc = 0.

i_result-ref = wa_sorder-ref.

i_result-message = wa_return-message.

APPEND i_result.

insert lines of i_data into table i_error.

ENDIF.

ELSE.

i_result-ref = wa_sorder-ref.

i_result-message = wa_return-message.

APPEND i_result.

insert lines of i_data into table i_success.

ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT = 'X'

IMPORTING

return = return1.