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 doesn't work for header Condition

Former Member
0 Likes
4,167

Hi, All

I'm trying to create a sales order using BAPI_SALESORDER_CREATEFROMDAT2.

It doesn't work to create a heder condition.(HB00)

After BAPI, I check KONV data, HB00 data is broken.

KONV-STUNR and KONV-ZAEHK is blank.

but item condtion data is OK. no problem.

I don't know why.

my code is below.

If you have any idea, please let me know.

-


IW_LOGIC_SWITCH-PRICING = 'G'

...

CLEAR IW_CONDITIONS.

IW_CONDITIONS-ITM_NUMBER = '000000'.

IW_CONDITIONS-COND_COUNT = '01'.

IW_CONDITIONS-COND_TYPE = 'HB00'.

IW_CONDITIONS-COND_VALUE = W_VALUE.

IW_CONDITIONS-CURRENCY = W_WAERK.

IW_CONDITIONS-CONDCOINHD = '01'.

APPEND IW_CONDITIONS TO IT_CONDITIONS.

...

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

ORDER_HEADER_IN = IW_HEADER

LOGIC_SWITCH = IW_LOGIC_SWITCH

IMPORTING

SALESDOCUMENT = W_SALEDOC

TABLES

RETURN = IT_RETURN

ORDER_ITEMS_IN = IT_ITEMS

ORDER_PARTNERS = IT_PARTNERS

ORDER_SCHEDULES_IN = IT_SCHEDULES

ORDER_CONDITIONS_IN = IT_CONDITIONS

ORDER_TEXT = IT_TEXT

EXTENSIONIN = IT_EXTENSIONIN

PARTNERADDRESSES = IT_PARTNERADDRESSES.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

-


Regards,

Rie.

11 REPLIES 11
Read only

Former Member
0 Likes
1,798

Hi,

Are you sure that

IW_CONDITIONS-COND_COUNT = '01'.

and

IW_CONDITIONS-CONDCOINHD = '01'.

hold. Sometimes they have to different. Just an educated guess though.

Regards

Read only

0 Likes
1,798

Hi, Ncvajja.

Thank you for your reply.

Do I have to set different value COND_COUNT and CONDCOINHD?

How do I code?

Regards.

Rie.

Read only

0 Likes
1,798

Hi,

My belief is that CONDCOINHD is the only one that needs to be set for the Header Condition type.

But i'll have to look at the BAPI code to confirm. Will it be possible for you to try with leaving COND_COUNT blank.

Regards

Naveen Vajja

Read only

0 Likes
1,798

Thank you for your Reply, Krupaji and Ncvajja .

but It doesn't still working.

Krupaji,

I tryed your code, but I can't.

I think that It doesn't need to set on CONDX parameter for my pattern of createing a new sales order.

Ncvajja

I tryed this code:

CONDCOINHD = '01'.

  • COND_COUNT = '01' "comment

but still doesn't work...

Do you have any other idea?

Regards.

Rie.

Read only

0 Likes
1,798

check the following link


L_ORDER_PARTNERS-PARTN_ROLE = 'AG'.
L_ORDER_PARTNERS-PARTN_NUMB =
RECORD-KUNNR_1.
APPEND L_ORDER_PARTNERS TO
LI_ORDER_PARTNERS.
 
L_ORDER_PARTNERS-PARTN_ROLE = 'WE'.
L_ORDER_PARTNERS-PARTN_NUMB =
RECORD-KUNNR_2.
APPEND L_ORDER_PARTNERS TO
LI_ORDER_PARTNERS.
*------------------------------------------------------------------
* Build order header
*------------------------------------------------------------------
CLEAR: L_ORDER_HEADER_INX,
L_ORDER_HEADER_IN.
* Update flag
L_ORDER_HEADER_INX-UPDATEFLAG = 'I'.
* Sales document type
L_ORDER_HEADER_IN-DOC_TYPE =
RECORD-AUART.
L_ORDER_HEADER_INX-DOC_TYPE = 'X'.
* Sales organization
L_ORDER_HEADER_IN-SALES_ORG = RECORD-VKORG.
L_ORDER_HEADER_INX-SALES_ORG = 'X'.
* Distribution channel
L_ORDER_HEADER_IN-DISTR_CHAN = RECORD-VTWEG.
L_ORDER_HEADER_INX-DISTR_CHAN = 'X'.
* Division
L_ORDER_HEADER_IN-DIVISION = RECORD-SPART.
L_ORDER_HEADER_INX-DIVISION = 'X'.
* Sales Office
L_ORDER_HEADER_IN-SALES_OFF = RECORD-VKBUR.
L_ORDER_HEADER_INX-SALES_OFF = 'X'.
* Sales Group
L_ORDER_HEADER_IN-SALES_GRP = RECORD-VKGRP.
L_ORDER_HEADER_INX-SALES_GRP = 'X'.
* Purchase order
L_ORDER_HEADER_IN-PURCH_NO_C = RECORD-BSTNK.
L_ORDER_HEADER_INX-PURCH_NO_C = 'X'.
* Purchase order Date
L_ORDER_HEADER_IN-PURCH_DATE =
RECORD-BSTDK.
L_ORDER_HEADER_INX-PURCH_DATE = 'X'.
* Payment Terms
L_ORDER_HEADER_IN-PMNTTRMS = RECORD-ZTERM.
L_ORDER_HEADER_INX-PMNTTRMS = 'X'.
* Incoterm1
L_ORDER_HEADER_IN-INCOTERMS1 = RECORD-INCO1.
L_ORDER_HEADER_INX-INCOTERMS1 = 'X'.
* Incoterm2
L_ORDER_HEADER_IN-INCOTERMS2 = RECORD-INCO2.
L_ORDER_HEADER_INX-INCOTERMS2 = 'X'.
* Customer Group
L_ORDER_HEADER_IN-CUSGROUP = RECORD-KDGRP.
L_ORDER_HEADER_INX-CUSGROUP = 'X'.
ENDIF.
 
*------------------------------------------------------------------
* Build order item(s)
*------------------------------------------------------------------
CLEAR: L_ORDER_ITEMS_INX, L_ORDER_ITEMS_IN.
L_ORDER_ITEMS_IN-ITM_NUMBER = INO.
L_ORDER_ITEMS_INX-ITM_NUMBER = INO.
 
L_ORDER_ITEMS_IN-MATERIAL = RECORD-MABNR.
L_ORDER_ITEMS_INX-MATERIAL = 'X'.
 
L_ORDER_ITEMS_IN-PLANT = RECORD-WERKS.
L_ORDER_ITEMS_INX-PLANT = 'X'.
 
L_ORDER_ITEMS_IN-SALES_UNIT = RECORD-VRKME.
L_ORDER_ITEMS_INX-SALES_UNIT = 'X'.
 
L_ORDER_ITEMS_IN-WBS_ELEM = RECORD-PS_POSID.
L_ORDER_ITEMS_INX-WBS_ELEM = 'X'.
 
APPEND L_ORDER_ITEMS_IN TO LI_ORDER_ITEMS_IN.
 
L_ORDER_ITEMS_INX-UPDATEFLAG = 'I'.
APPEND L_ORDER_ITEMS_INX TO
LI_ORDER_ITEMS_INX.
*----------------------------------------------------------------------
* Build Schedule lines... Order Quantity
*----------------------------------------------------------------------
CLEAR: L_ORDER_SCHEDULES_IN,
L_ORDER_SCHEDULES_INX.
L_ORDER_SCHEDULES_IN-ITM_NUMBER = INO.
L_ORDER_SCHEDULES_INX-ITM_NUMBER = INO.
 
L_ORDER_SCHEDULES_IN-REQ_QTY = RECORD-KWMENG.
L_ORDER_SCHEDULES_INX-REQ_QTY = 'X'.
 
L_ORDER_SCHEDULES_INX-UPDATEFLAG = 'X'.
 
APPEND L_ORDER_SCHEDULES_IN TO
LI_ORDER_SCHEDULES_IN.
APPEND L_ORDER_SCHEDULES_INX TO
LI_ORDER_SCHEDULES_INX.
 
 
*----------------------------------------------------------------------
* Build Conditions
*----------------------------------------------------------------------
CLEAR: L_ORDER_CONDITIONS_IN,
L_ORDER_CONDITIONS_INX.
 
L_ORDER_CONDITIONS_IN-ITM_NUMBER = INO.
L_ORDER_CONDITIONS_IN-COND_COUNT = '01'.
L_ORDER_CONDITIONS_IN-COND_TYPE =
RECORD-KSCHL_1.
L_ORDER_CONDITIONS_IN-COND_VALUE =
RECORD-KBETR_1.
IF RECORD-KSCHL_1 = 'PR00'.
L_ORDER_CONDITIONS_IN-COND_VALUE =
L_ORDER_CONDITIONS_IN-COND_VALUE
/ 10.
ENDIF.
 
L_ORDER_CONDITIONS_INX-ITM_NUMBER = INO.
L_ORDER_CONDITIONS_INX-COND_COUNT = '01'.
L_ORDER_CONDITIONS_INX-COND_TYPE =
RECORD-KSCHL_1.
L_ORDER_CONDITIONS_INX-UPDATEFLAG = 'X'.
L_ORDER_CONDITIONS_INX-COND_VALUE = 'X'.
 
APPEND L_ORDER_CONDITIONS_IN TO
LI_ORDER_CONDITIONS_IN.
APPEND L_ORDER_CONDITIONS_INX TO
LI_ORDER_CONDITIONS_INX.
 
 
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
 
ORDER_HEADER_IN =L_ORDER_HEADER_IN
ORDER_HEADER_INX = L_ORDER_HEADER_INX
 
IMPORTING
SALESDOCUMENT = L_VBELN
TABLES
RETURN = LI_RETURN
ORDER_ITEMS_IN =
LI_ORDER_ITEMS_IN
ORDER_ITEMS_INX =
LI_ORDER_ITEMS_INX
ORDER_PARTNERS =
LI_ORDER_PARTNERS
ORDER_SCHEDULES_IN =
LI_ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX =
LI_ORDER_SCHEDULES_INX
ORDER_CONDITIONS_IN =
LI_ORDER_CONDITIONS_IN
ORDER_CONDITIONS_INX =
LI_ORDER_CONDITIONS_INX
 
.
 
END-OF-SELECTION


Read only

0 Likes
1,798

no possible without pass updateflag


lt_condx-UPDATEFLAG = 'I'.
lt_condx-itm_number = 'X'.
lt_condx-currency = 'X'.
lt_condx-condvalue = 'X'.
 
 lt_condx-cond_type = 'X' . 
 
append lt_condx.

Read only

0 Likes
1,798

Dear All,

I got the solution. I was not passing the parameter LOGIC_SWITCH in BAPI.

You have to pass LOGIC_SWITCH-PRICING = 'G'.

Also for BAPICONDX these values to be passed.

BAPICONDX-itm_number = '000000'.

BAPICONDX-cond_type = condition type

BAPICONDX-cond_value = 'X'

Hope this will be helpful to copy all the header conditions

Regards,

Pankaj

Read only

Former Member
0 Likes
1,798

lt_cond-itm_number = sy-tabix.
lt_cond-cond_value =  13.
lt_cond-currency = 'INR'.
lt_cond-condvalue = lt_cond-cond_value .
lt_cond-cond_type = 'HB00'.
append lt_cond.


lt_condx-UPDATEFLAG = 'I'.
lt_condx-itm_number = 'X'.
lt_condx-currency = 'X'.
lt_condx-condvalue = 'X'.

 lt_condx-cond_type = 'X' . 

append lt_condx.

Edited by: Krupaji on Mar 25, 2011 6:43 AM

Read only

Former Member
0 Likes
1,798

Hi Rie,

I also face the same issue long before. The solution I tried is as follows:

Just make use of the x-structures when you pass to bapi. You have to set the updateflag for each field that you want to update.

Hope this will help you to close the issue.

Do appreciate if found helpful.

BR,

Vinit

Read only

0 Likes
1,798

Hi all,

I am also facing same situation where Header conditions from Quotation are not getting copied to the Sale order while using this BAPI( BAPI_SALESORDER_CREATEFROMDAT2). Here I have more than one header Condition to be copied.

Kindly let me know whether it is possible to copy those Header condition using this BAPI. It will be helpful if you can specify what all are the mandatory fields that needs to be populated in ORDER_CONDITION_IN, in order to copy header conditions.

Regards,

Pankaj

Read only

Former Member
1,798

Hi, ALL

I solved my problem myself.

NG -> IW_LOGIC_SWITCH-PRICING = 'G'

OK -> IW_LOGIC_SWITCH-COND_HANDL = 'X'.

only that, I can solve it.

Thank you for many comments!

regards.

Rie.