11-02-2007 10:19 AM
Hi All,
I am creating a PO using BAPI_PO_CREATE1.
I am adding the conditions.
PO is created and conditions are appended.
But an extra condition is unnecessarily getting added and is in the inactive state.
I want to get rid of this inactive condition.
Any idea??
Thanks
11-02-2007 11:08 AM
11-02-2007 11:14 AM
Hi,
can u tell in detail where it is added ?? in transaction??kindly paste ur code..
check the below sample code...
http://www.erpgenie.com/phpBB2/viewtopic.php?t=8139&view=next&sid=d15df1ed3be15ba020271ca50239ad32
Regards,
Nagaraj
11-13-2007 11:30 AM
Here is my extract of the code.
========
FORM PREPARE_BAPI_INPUT .
N = 10.
COUNTER = 0.
LOOP AT ITAB_PODATA.
IF ITAB_PODATA-DATA+0(4) = 'EXPE'.
COUNTER = COUNTER + 1.
IF COUNTER > 1.
PERFORM EXEC_BAPI.
ENDIF.
PERFORM VAR_CLEAR.
HEADER-COMP_CODE = 'TF01'. " CONSTANT
HEADER-DOC_TYPE = 'DMPO'. " CONSTANT
VEND = ITAB_PODATA+4(3).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VEND
IMPORTING
OUTPUT = VEND.
HEADER-VENDOR = VEND.
HEADER-LANGU = 'EN'. " CONSTANT
HEADER-PURCH_ORG = '1001'. " CONSTANT
HEADER-PUR_GROUP = '110'. " CONSTANT
HEADER-DOC_DATE = ITAB_PODATA+74(8).
DEL_DATE = ITAB_PODATA+15(8).
PLANT = '1000' . " ITAB_PODATA+104(6). LOGIC FOR WMF PLANT TO SAP PLANT
HEADERX-COMP_CODE = 'X'.
HEADERX-DOC_TYPE = 'X'.
HEADERX-VENDOR = 'X'.
HEADERX-PURCH_ORG = 'X'.
HEADERX-PUR_GROUP = 'X'.
HEADERX-REF_1 = 'X'.
ENDIF.
IF ITAB_PODATA-DATA+0(4) = 'FATU'.
HEADER-CURRENCY = 'EUR'. " ITAB_PODATA+115(3).
HEADER-REF_1 = ITAB_PODATA+33(7).
FREIGHT = ITAB_PODATA+366(18).
ENDIF.
IF ITAB_PODATA-DATA+0(4) = 'DESE'.
POITEM-PO_ITEM = N.
POITEM-MATERIAL = ITAB_PODATA+64(12).
POITEM-PLANT = PLANT.
POITEM-STGE_LOC = '1010'.
POITEM-MATL_GROUP = '1'.
POITEM-QUANTITY = ITAB_PODATA+93(9).
POITEM-CONF_CTRL = '0001'. " CONSTANT
POITEM-NET_PRICE = ITAB_PODATA+139(19).
APPEND POITEM.
POITEMX-PO_ITEM = N.
POITEMX-MATERIAL = 'X'.
POITEMX-PLANT = 'X'.
POITEMX-QUANTITY = 'X'.
POITEMX-CONF_CTRL = 'X'.
POITEMX-NET_PRICE = 'X'.
APPEND POITEMX.
CLEAR POITEMX.
POSCHEDULE-PO_ITEM = N.
POSCHEDULE-DELIVERY_DATE = DEL_DATE.
APPEND POSCHEDULE.
CLEAR POSCHEDULE.
POSCHEDULEX-PO_ITEM = N.
POSCHEDULEX-PO_ITEMX = 'X'.
POSCHEDULEX-DELIVERY_DATE = 'X'.
APPEND POSCHEDULEX.
CLEAR POSCHEDULEX.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '10' .
POCOND-COND_COUNT = 0.
POCOND-COND_TYPE = 'ZPFV'.
POCOND-CHANGE_ID = 'D'.
APPEND POCOND.
CLEAR POCOND.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '1' .
POCOND-COND_COUNT = 2.
POCOND-COND_VALUE = ITAB_PODATA+139(19).
POCOND-COND_TYPE = 'P001'.
POCOND-CHANGE_ID = 'D'.
APPEND POCOND.
CLEAR POCOND.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '50' .
POCOND-COND_COUNT = 0.
POCOND-COND_TYPE = 'ZSFV'.
POCOND-CHANGE_ID = 'D'.
APPEND POCOND.
CLEAR POCOND.
PACKING = ITAB_PODATA+159(19) * POITEM-QUANTITY.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '10' .
POCOND-COND_COUNT = 0.
POCOND-COND_TYPE = 'ZPFV'.
POCOND-COND_VALUE = PACKING.
POCOND-CURRENCY = 'EUR'.
POCOND-CONDCHAMAN = 'X'.
POCOND-CHANGE_ID = 'I'.
APPEND POCOND.
CLEAR POCOND.
FREIGHT = ITAB_PODATA+199(19) * POITEM-QUANTITY.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '50' .
POCOND-COND_COUNT = 0.
POCOND-COND_TYPE = 'ZSFV'.
POCOND-COND_VALUE = FREIGHT.
POCOND-CURRENCY = 'EUR'.
POCOND-CONDCHAMAN = 'X'.
POCOND-CHANGE_ID = 'I'.
APPEND POCOND.
CLEAR POCOND.
POCOND-ITM_NUMBER = N.
POCOND-COND_ST_NO = '1' .
POCOND-COND_COUNT = 2.
POCOND-COND_TYPE = 'P001'.
POCOND-COND_VALUE = ITAB_PODATA+139(19).
POCOND-CURRENCY = 'EUR'.
POCOND-CHANGE_ID = 'I'.
APPEND POCOND.
CLEAR POCOND.
POCONDX-ITM_NUMBER = N.
POCONDX-COND_ST_NOX = 'X'.
POCONDX-ITM_NUMBERX = 'X'.
POCONDX-COND_COUNT = 'X'.
POCONDX-COND_TYPE = 'X'.
POCONDX-COND_VALUE = 'X'.
POCONDX-CONBASEVAL = 'X'.
POCONDX-CURRENCY = 'X'.
POCONDX-CHANGE_ID = 'X'.
APPEND POCONDX.
CLEAR POITEM.
CLEAR POCONDX.
N = N + 10.
ENDIF.
AT LAST.
PERFORM EXEC_BAPI .
PERFORM VAR_CLEAR .
ENDAT.
CLEAR ITAB_PODATA.
ENDLOOP.
ENDFORM. " PREPARE_BAPI_INPUT
&----
*& Form EXEC_BAPI
&----
text
----
--> p1 text
<-- p2 text
----
FORM EXEC_BAPI .
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = HEADER
POHEADERX = HEADERX
POADDRVENDOR =
TESTRUN =
MEMORY_UNCOMPLETE =
MEMORY_COMPLETE =
POEXPIMPHEADER =
POEXPIMPHEADERX =
VERSIONS =
NO_MESSAGING =
NO_MESSAGE_REQ =
NO_AUTHORITY =
NO_PRICE_FROM_PO =
IMPORTING
EXPPURCHASEORDER = PO
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
RETURN = RET
POITEM = POITEM
POITEMX = POITEMX
POADDRDELIVERY =
POSCHEDULE = POSCHEDULE
POSCHEDULEX = POSCHEDULEX
POACCOUNT =
POACCOUNTPROFITSEGMENT =
POACCOUNTX =
POCONDHEADER =
POCONDHEADERX =
POCOND = POCOND
POCONDX = POCONDX
POLIMITS =
POCONTRACTLIMITS =
POSERVICES =
POSRVACCESSVALUES =
POSERVICESTEXT =
EXTENSIONIN =
EXTENSIONOUT =
POEXPIMPITEM =
POEXPIMPITEMX =
POTEXTHEADER =
POTEXTITEM =
ALLVERSIONS =
POPARTNER =
POCOMPONENTS =
POCOMPONENTSX =
POSHIPPING =
POSHIPPINGX =
POSHIPPINGEXP =
NFMETALLITMS =
.
IF RET-TYPE NE 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = RET1.
PERFORM CREATE_INBOUND_DELIVERY.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
RETURN = RET1.
ENDIF.
LOOP AT RET WHERE TYPE = 'E' OR TYPE = 'S'.
ITAB_STATUS-VENDOR = HEADER-VENDOR.
ITAB_STATUS-ORDER = PO.
ITAB_STATUS-TYPE = RET-TYPE.
ITAB_STATUS-DESC = RET-MESSAGE.
ITAB_STATUS-INB_DEL = DEL_NO.
APPEND ITAB_STATUS.
ENDLOOP.
CLEAR ITAB_STATUS.
CLEAR FLAG .
ENDFORM. " EXEC_BAPI