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: 

PO BAPI Problem

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

former_member404244
Active Contributor
0 Kudos

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

0 Kudos

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