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

Problem in replicating the purchase order items

Former Member
0 Likes
905

Hi,

The Requirement is to replicate the line items of Purchase Order in ME23N which is extracted from BAPI_PO_GETDETAIL1 and copy it in BAPI_PO_CHANGE .

The problem is when i am passing ACCTASSCAT(Account assignment category) it is not replicating else it is replicating.

while debugging the program the i am getting the data into internal table but it is not getting updated in database (ME23N).

I am getting messages in RETURN table as follows:

Instance 4200000020 of object type PurchaseOrder could not be changed

Purchase order item 00170 still contains faulty account assignments

Please also populate interface parameter POITEMX

Account 402201 requires an assignment to a CO object

Please find the code below.

Hi,

The Requirement is to replicate the line items of Purchase Order in ME23N which is extracted from BAPI_PO_GETDETAIL1 and copy it in BAPI_PO_CHANGE .

The problem is when i am passing ACCTASSCAT(Account assignment category) it is not replicating else it is replicating.

while debugging the program the i am getting the data into internal table but it is not getting updated in database (ME23N).

I am getting messages in RETURN table as follows:

Instance 4200000020 of object type PurchaseOrder could not be changed

Purchase order item 00170 still contains faulty account assignments

Please also populate interface parameter POITEMX

Account 402201 requires an assignment to a CO object

Please find the code below.

3 REPLIES 3
Read only

Former Member
0 Likes
709

form REPLICATE_LINE_ITEMS .

refresh :LT_RETURN, LT_ITEM1, LT_ITEMX.

loop at LT_ITEM .

move-corresponding LT_ITEM to LT_ITEM1.

append LT_ITEM1.

clear LT_ITEM1.

move LT_ITEM-PO_ITEM to LT_ITEMX-PO_ITEM.

move 'X' to LT_ITEMX-PO_ITEMX.

move 'X' to LT_ITEMX-DELETE_IND.

move 'X' to LT_ITEMX-SHORT_TEXT.

move 'X' to LT_ITEMX-MATERIAL.

move 'X' to LT_ITEMX-MATERIAL_EXTERNAL.

move 'X' to LT_ITEMX-MATERIAL_GUID.

move 'X' to LT_ITEMX-MATERIAL_VERSION.

move 'X' to LT_ITEMX-EMATERIAL.

move 'X' to LT_ITEMX-EMATERIAL_EXTERNAL.

move 'X' to LT_ITEMX-EMATERIAL_GUID.

move 'X' to LT_ITEMX-EMATERIAL_VERSION.

move 'X' to LT_ITEMX-PLANT.

move 'X' to LT_ITEMX-STGE_LOC.

move 'X' to LT_ITEMX-TRACKINGNO.

move 'X' to LT_ITEMX-MATL_GROUP.

move 'X' to LT_ITEMX-INFO_REC.

move 'X' to LT_ITEMX-INFO_REC.

move 'X' to LT_ITEMX-VEND_MAT.

move 'X' to LT_ITEMX-QUANTITY.

move 'X' to LT_ITEMX-PO_UNIT.

move 'X' to LT_ITEMX-PO_UNIT_ISO.

move 'X' to LT_ITEMX-ORDERPR_UN.

move 'X' to LT_ITEMX-ORDERPR_UN_ISO.

move 'X' to LT_ITEMX-CONV_NUM1.

move 'X' to LT_ITEMX-CONV_DEN1.

move 'X' to LT_ITEMX-NET_PRICE.

move 'X' to LT_ITEMX-PRICE_UNIT.

move 'X' to LT_ITEMX-GR_PR_TIME.

move 'X' to LT_ITEMX-TAX_CODE.

move 'X' to LT_ITEMX-BON_GRP1.

move 'X' to LT_ITEMX-QUAL_INSP.

move 'X' to LT_ITEMX-INFO_UPD.

move 'X' to LT_ITEMX-PRNT_PRICE.

move 'X' to LT_ITEMX-EST_PRICE.

move 'X' to LT_ITEMX-REMINDER1.

move 'X' to LT_ITEMX-REMINDER2.

move 'X' to LT_ITEMX-REMINDER3.

move 'X' to LT_ITEMX-OVER_DLV_TOL.

move 'X' to LT_ITEMX-UNLIMITED_DLV.

move 'X' to LT_ITEMX-UNDER_DLV_TOL.

move 'X' to LT_ITEMX-VAL_TYPE.

move 'X' to LT_ITEMX-NO_MORE_GR.

Edited by: pallavi.acharya on Jan 6, 2011 2:49 PM

Read only

0 Likes
709

move 'X' to LT_ITEMX-FINAL_INV.

move 'X' to LT_ITEMX-ITEM_CAT.

move 'X' to LT_ITEMX-ACCTASSCAT.

move 'X' to LT_ITEMX-DISTRIB.

move 'X' to LT_ITEMX-PART_INV.

move 'X' to LT_ITEMX-GR_IND.

move 'X' to LT_ITEMX-GR_NON_VAL.

move 'X' to LT_ITEMX-IR_IND.

move 'X' to LT_ITEMX-FREE_ITEM.

move 'X' to LT_ITEMX-GR_BASEDIV.

move 'X' to LT_ITEMX-ACKN_REQD.

move 'X' to LT_ITEMX-AGREEMENT.

move 'X' to LT_ITEMX-AGMT_ITEM.

move 'X' to LT_ITEMX-SHIPPING.

move 'X' to LT_ITEMX-CUSTOMER.

move 'X' to LT_ITEMX-COND_GROUP.

move 'X' to LT_ITEMX-NO_DISCT.

move 'X' to LT_ITEMX-PLAN_DEL.

move 'X' to LT_ITEMX-NET_WEIGHT.

move 'X' to LT_ITEMX-WEIGHTUNIT.

move 'X' to LT_ITEMX-WEIGHTUNIT_ISO.

move 'X' to LT_ITEMX-TAXJURCODE.

move 'X' to LT_ITEMX-CTRL_KEY.

move 'X' to LT_ITEMX-CONF_CTRL.

move 'X' to LT_ITEMX-REV_LEV.

move 'X' to LT_ITEMX-FUND.

move 'X' to LT_ITEMX-FUNDS_CTR.

move 'X' to LT_ITEMX-CMMT_ITEM.

move 'X' to LT_ITEMX-PRICEDATE.

move 'X' to LT_ITEMX-PRICE_DATE.

move 'X' to LT_ITEMX-GROSS_WT.

move 'X' to LT_ITEMX-VOLUME.

move 'X' to LT_ITEMX-VOLUMEUNIT.

move 'X' to LT_ITEMX-VOLUMEUNIT_ISO.

move 'X' to LT_ITEMX-INCOTERMS1.

move 'X' to LT_ITEMX-INCOTERMS2.

move 'X' to LT_ITEMX-PRE_VENDOR.

move 'X' to LT_ITEMX-VEND_PART.

Read only

0 Likes
709

move 'X' to LT_ITEMX-HL_ITEM.

move 'X' to LT_ITEMX-GR_TO_DATE.

move 'X' to LT_ITEMX-SUPP_VENDOR.

move 'X' to LT_ITEMX-SC_VENDOR.

move 'X' to LT_ITEMX-KANBAN_IND.

move 'X' to LT_ITEMX-ERS.

move 'X' to LT_ITEMX-R_PROMO.

move 'X' to LT_ITEMX-POINTS.

move 'X' to LT_ITEMX-POINT_UNIT.

move 'X' to LT_ITEMX-POINT_UNIT_ISO.

move 'X' to LT_ITEMX-SEASON.

move 'X' to LT_ITEMX-SEASON_YR.

move 'X' to LT_ITEMX-BON_GRP2.

move 'X' to LT_ITEMX-BON_GRP3.

move 'X' to LT_ITEMX-SETT_ITEM.

move 'X' to LT_ITEMX-MINREMLIFE.

move 'X' to LT_ITEMX-RFQ_NO.

move 'X' to LT_ITEMX-RFQ_ITEM.

move 'X' to LT_ITEMX-PREQ_NO.

move 'X' to LT_ITEMX-PREQ_ITEM.

move 'X' to LT_ITEMX-REF_DOC.

move 'X' to LT_ITEMX-REF_ITEM.

move 'X' to LT_ITEMX-SI_CAT.

move 'X' to LT_ITEMX-RET_ITEM.

move 'X' to LT_ITEMX-AT_RELEV.

move 'X' to LT_ITEMX-ORDER_REASON.

move 'X' to LT_ITEMX-BRAS_NBM.

move 'X' to LT_ITEMX-MATL_USAGE.

move 'X' to LT_ITEMX-MAT_ORIGIN.

move 'X' to LT_ITEMX-IN_HOUSE.

move 'X' to LT_ITEMX-INDUS3.

move 'X' to LT_ITEMX-INF_INDEX.

move 'X' to LT_ITEMX-UNTIL_DATE.

move 'X' to LT_ITEMX-DELIV_COMPL.

move 'X' to LT_ITEMX-PART_DELIV.

move 'X' to LT_ITEMX-SHIP_BLOCKED.

move 'X' to LT_ITEMX-PREQ_NAME.

move 'X' to LT_ITEMX-PERIOD_IND_EXPIRATION_DATE.

move 'X' to LT_ITEMX-INT_OBJ_NO.

move 'X' to LT_ITEMX-PCKG_NO.

move 'X' to LT_ITEMX-BATCH.

move 'X' to LT_ITEMX-VENDRBATCH.

move 'X' to LT_ITEMX-CALCTYPE.

move 'X' to LT_ITEMX-NO_ROUNDING.

move 'X' to LT_ITEMX-PO_PRICE.

move 'X' to LT_ITEMX-SUPPL_STLOC.

move 'X' to LT_ITEMX-SRV_BASED_IV.

move 'X' to LT_ITEMX-FUNDS_RES.

move 'X' to LT_ITEMX-RES_ITEM.

move 'X' to LT_ITEMX-GRANT_NBR.

move 'X' to LT_ITEMX-FUNC_AREA_LONG.

move 'X' to LT_ITEMX-ORIG_ACCEPT.

move 'X' to LT_ITEMX-ALLOC_TBL.

move 'X' to LT_ITEMX-ALLOC_TBL_ITEM.

move 'X' to LT_ITEMX-SRC_STOCK_TYPE.

move 'X' to LT_ITEMX-REASON_REJ.

move 'X' to LT_ITEMX-CRM_SALES_ORDER_NO.

move 'X' to LT_ITEMX-CRM_SALES_ORDER_ITEM_NO.

move 'X' to LT_ITEMX-CRM_REF_SALES_ORDER_NO.

move 'X' to LT_ITEMX-CRM_REF_SO_ITEM_NO.

move 'X' to LT_ITEMX-PRIO_URGENCY.

move 'X' to LT_ITEMX-PRIO_REQUIREMENT.

move 'X' to LT_ITEMX-REASON_CODE.

move 'X' to LT_ITEMX-LONG_ITEM_NUMBER.

move 'X' to LT_ITEMX-EXTERNAL_SORT_NUMBER.

move 'X' to LT_ITEMX-EXTERNAL_HIERARCHY_TYPE.

move 'X' to LT_ITEMX-RETENTION_PERCENTAGE.

move 'X' to LT_ITEMX-DOWNPAY_TYPE.

move 'X' to LT_ITEMX-DOWNPAY_AMOUNT.

move 'X' to LT_ITEMX-DOWNPAY_PERCENT.

move 'X' to LT_ITEMX-DOWNPAY_DUEDATE.

move 'X' to LT_ITEMX-EXT_RFX_NUMBER.

move 'X' to LT_ITEMX-EXT_RFX_ITEM.

move 'X' to LT_ITEMX-EXT_RFX_SYSTEM.

move 'X' to LT_ITEMX-SRM_CONTRACT_ID.

move 'X' to LT_ITEMX-SRM_CONTRACT_ITM.

move 'X' to LT_ITEMX-BUDGET_PERIOD.

append LT_ITEMX.

clear LT_ITEMX.

endloop.

describe table LT_ITEM1 lines LV_NO.

sort LT_ITEM1[] by PO_ITEM.

read table LT_ITEM1 index LV_NO.

append lines of LT_ITEM1 to LT_ITEM.

clear LT_ITEM.

LV_NUM = LV_NO * 10.

condense LV_NUM.

concatenate '000' LV_NUM into LV_NUM.

loop at LT_ITEM where PO_ITEM is not initial.

LV_INDEX = SY-TABIX.

read table LT_ITEM1 with key PO_ITEM = LT_ITEM-PO_ITEM.

if SY-SUBRC eq 0.

if LV_INDEX gt LV_NO.

LT_ITEM-PO_ITEM = LT_ITEM-PO_ITEM + LV_NUM.

modify LT_ITEM transporting PO_ITEM.

endif.

endif.

endloop.

*LOOP at i_item.

call function 'BAPI_PO_CHANGE'

exporting

PURCHASEORDER = LS_TAB-V_EBELN

tables

RETURN = LT_RETURN

POITEM = LT_ITEM

POITEMX = LT_ITEMX.

*ENDLOOP.

if not lt_iTEM[] is initial..

call function 'BAPI_TRANSACTION_COMMIT'

exporting

WAIT = 'X'.

  • importing

  • RETURN = LT_RETURN.

  • WRITE: I_RETURN-MESSAGE.

endif.

endform.