‎2011 Mar 25 4:19 AM
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.
‎2011 Mar 25 5:07 AM
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
‎2011 Mar 25 5:23 AM
Hi, Ncvajja.
Thank you for your reply.
Do I have to set different value COND_COUNT and CONDCOINHD?
How do I code?
Regards.
Rie.
‎2011 Mar 25 5:58 AM
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
‎2011 Mar 25 6:14 AM
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.
‎2011 Mar 25 6:24 AM
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
‎2011 Apr 01 8:22 AM
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.
‎2011 Apr 03 8:40 AM
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
‎2011 Mar 25 5:42 AM
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
‎2011 Mar 25 7:23 AM
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
‎2011 Mar 31 3:02 PM
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
‎2011 Jun 17 5:45 AM
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.