2011 Jan 06 1:46 PM
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.
2011 Jan 06 1:48 PM
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
2011 Jan 06 1:51 PM
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.
2011 Jan 06 1:52 PM
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.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |