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

Configuration values in BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
768

Using BAPI_SALESORDER_CREATEFROMDAT2 to create sale order for configurable material. Using table order_cfgs_value to enter configuration details i.e. characterstics. The material is having 5-6 characterstics out of which 2 are default.

The sale order is getting created with incomplete status. The default characterstic values are getting filled while rest of the characterstics are blank.

the coding is like

  • External Configuration ID (Temporary)

it_cuval-config_id = '000001'.

it_cuval-inst_id = '00000001'.

  • Characteristic name

it_cuval-charc = 'STYLE1'.

  • Characteristic Value

it_cuval-value = '2'.

append it_cuval.

it_cuval-config_id = '000001'.

it_cuval-inst_id = '00000001'.

it_cuval-charc = 'PT'.

it_cuval-value = 'STANDARD'.

append it_cuval.

First characterstic which is default is getting populated while second is coming as blank. what could be the reason.

Kindly resolve.

thanks

anya

2 REPLIES 2
Read only

Former Member
0 Likes
591

Hi,

anya

REPORT zcl120_sales_n_delivery.

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

  • SALES DOCUMENT CREATION

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

DATA: p_auart TYPE auart .

DATA: p_vkorg TYPE vkorg .

DATA: p_vtweg TYPE vtweg .

DATA: p_spart TYPE vtweg .

DATA: p_sold TYPE kunnr .

DATA: p_ship TYPE kunnr .

*ITEM

data:

begin of it_item occurs 0,

p_matnr TYPE matnr,

p_menge TYPE kwmeng,

p_plant TYPE werks_d,

p_itcat TYPE pstyv,

end of it_item.

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

W_COUNTER TYPE I,

IT_NUM(6) TYPE C value '000010',

IT_LINE(4) TYPE C value '0001'.

CALL SCREEN 100.

  • HEADER DATA

header-doc_type = p_auart.

headerx-doc_type = 'X'.

header-sales_org = p_vkorg.

headerx-sales_org = 'X'.

header-distr_chan = p_vtweg.

headerx-distr_chan = 'X'.

header-division = p_spart.

headerx-division = 'X'.

headerx-updateflag = 'I'.

partner-partn_role = 'AG'.

partner-partn_numb = p_sold.

APPEND partner.

partner-partn_role = 'WE'.

partner-partn_numb = p_ship.

APPEND partner.

loop at it_item.

CLEAR ITEM.

item-material = it_item-p_matnr.

item-plant = it_item-p_plant.

item-target_qty = it_item-p_menge.

item-target_qu = 'ST'.

item-item_categ = it_item-p_itcat.

APPEND item.

W_COUNTER = W_COUNTER + 1.

endloop.

DO W_COUNTER TIMES.

itemx-updateflag = 'I'.

itemx-material = 'X'.

itemx-plant = 'X'.

itemx-target_qty = 'X'.

itemx-target_qu = 'X'.

itemx-item_categ = 'X'.

APPEND itemx.

ENDDO.

  • Fill schedule lines

LOOP AT IT_ITEM.

CLEAR lt_schedules_in.

lt_schedules_in-itm_number = IT_NUM.

lt_schedules_in-sched_line = IT_LINE.

lt_schedules_in-req_qty = IT_ITEM-p_menge.

APPEND lt_schedules_in.

IT_NUM = IT_NUM + 10.

IT_LINE = IT_LINE + 1.

ENDLOOP.

IT_NUM = '000010'.

IT_LINE = '0001'.

  • Fill schedule line flags

LOOP AT IT_ITEM.

CLEAR lt_schedules_inx.

lt_schedules_inx-itm_number = IT_NUM.

lt_schedules_inx-sched_line = IT_LINE.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

IT_NUM = IT_NUM + 10.

IT_LINE = IT_LINE + 1.

ENDLOOP.

  • Call the BAPI

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.

LOOP AT return WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE / return-message.

WRITE: / 'Error in creating document'.

ELSE.

COMMIT WORK AND WAIT.

WRITE: / 'Document ', v_vbeln, ' created'.

ENDIF.

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

  • DELIVERY ORDER CREATION

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

*

*PARAMETERS: p_vbeln LIKE vbak-vbeln.

DATA: BEGIN OF t_vbap OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

kwmeng LIKE vbap-kwmeng,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks,

END OF t_vbap.

DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest

WITH HEADER LINE.

DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems

WITH HEADER LINE.

DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.

SELECT vbeln posnr kwmeng matnr werks

INTO TABLE t_vbap

FROM vbap

WHERE vbeln = v_vbeln

.

LOOP AT t_vbap.

t_request-document_numb = t_vbap-vbeln.

t_request-document_item = t_vbap-posnr.

t_request-quantity_sales_uom = t_vbap-kwmeng.

t_request-id = 1.

t_request-document_type = 'A'.

t_request-delivery_date = sy-datum.

t_request-material = t_vbap-matnr.

t_request-plant = t_vbap-werks.

t_request-date = sy-datum.

t_request-goods_issue_date = sy-datum.

t_request-goods_issue_time = sy-uzeit.

APPEND t_request.

ENDLOOP.

CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'

TABLES

request = t_request

createditems = t_created

return = t_return.

READ TABLE t_return WITH KEY type = 'E'.

IF sy-subrc = 0.

MESSAGE e208(00) WITH 'Delivery creation error'.

ENDIF.

COMMIT WORK.

READ TABLE t_created INDEX 1.

WRITE: / 'Delivery Number : ',

t_created-document_numb.

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

  • CREATE TRANSFER ORDER

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

DATA: w_tanum TYPE ltak-tanum.

CALL FUNCTION 'L_TO_CREATE_DN'

EXPORTING

i_lgnum = '010'

i_vbeln = t_created-document_numb

IMPORTING

e_tanum = w_tanum

EXCEPTIONS

foreign_lock = 1

dn_completed = 2

partial_delivery_forbidden = 3

xfeld_wrong = 4

ldest_wrong = 5

drukz_wrong = 6

dn_wrong = 7

squit_forbidden = 8

no_to_created = 9

teilk_wrong = 10

update_without_commit = 11

no_authority = 12

no_picking_allowed = 13

dn_hu_not_choosable = 14

input_error = 15

OTHERS = 16

.

IF sy-subrc <> 0.

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

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

ENDIF.

COMMIT WORK AND WAIT.

WRITE: / 'Transfer order number',

w_tanum.

*&SPWIZARD: DECLARATION OF TABLECONTROL 'TAB_CON1' ITSELF

CONTROLS: TAB_CON1 TYPE TABLEVIEW USING SCREEN 0100.

*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB_CON1'. DO NOT CHANGE THIS LINE!

*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR

MODULE TAB_CON1_CHANGE_TC_ATTR OUTPUT.

DESCRIBE TABLE IT_ITEM LINES TAB_CON1-lines.

ENDMODULE.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


module STATUS_0100 output.

SET PF-STATUS 'MENU'.

  • SET TITLEBAR 'xxx'.

endmodule. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


module USER_COMMAND_0100 input.

IF SY-UCOMM EQ 'START'.

LEAVE to screen 0 .

ENDIF.

endmodule. " USER_COMMAND_0100 INPUT

&----


*& Module APPEND_IT_ITEM INPUT

&----


  • text

----


module APPEND_IT_ITEM input.

APPEND IT_ITEM.

CLEAR IT_ITEM.

endmodule. " APPEND_IT_ITEM INPUT

try this code to create salesoder, delivery number and to create transfer order

Reward if usefull.

Read only

Former Member
0 Likes
591

Dear sunil,

Kindly refer to my question the sale order creation is to be created for Configurable material.

Your code is for normal material.

thanks