Updating Purchase Order
Hello everyone,
I have a business requirement to add a new custom field, at item level, in the Purchase Order transaction (ME21N/ME22N/ME23N). It is a char10 field.
I have already created this new field, which is correctly updating the EKPO table.
But now the business want to update this field for all Purchase Orders created in the past. I think that I will be able to update it by using a BAPI, however what I really want to know is if there is any problem in doing this since some POs were created more than 3 years ago and for which there are goods and invoice receipts.
Will this create any inconsistency in the subsequent documents (Goods receipts, invoices) generated after the PO was created?
Thanks for the help.
Best regards,
Tabrez
I agree with vikram, we don't have enough information, even not a small hint on usage of this field, so which answer do you expect (The quality of an answer depends ...) This analysis must be executed on your system...
From a technical point of view, the BAPI_PO_CHANGE has EXTENSIONIN table parameter, fill it using structure BAPI_TE_MEPOITEM[X] alreading containing CI_EKPODB (*) and CI_EKPODBX (**)
Regards,
Raymond
(*) I guess you have used this include
(**) I guess you forgot this one (same field names but data element always BAPIUPDATE)
Similar Messages
-
Update Purchase order number in Sales order item level from inbound ORDCHG iDoc
Hi Gurus,
I want to update purchase order number from the iDoc 'ORDCHG' to sales order item level (sold to party purchase order number) i.e, VBAK-BSTKD.
Which exit I need to use? where to update? Can you please help.
Thank you in advance.
Regards,
SanFinally Resolved the problem by writing 2 exits.
one exit 'EXIT_SAPLVEDB_007' for identify correct item in the sales order by updating the customer purchase order item number i.e., VBAP-POSEX. if we update the POSEX field then it wont create new item instead, it will update the item which it is referring to .
2nd exit for updating the purchase order number.
I have tried to pass the program name, screen number, field name, field value etc to bdcdata in the exit 'EXIT_SAPLVEDB_002'. but I observed that it is not going to that screen in the debugging.
when I try E1EDP02 with QUALF '044' it will update ship-to party's purchase order number. so to update ship-to party's purchase order number it is going to that screen.
so I have used that thing to update purchase order number in sold-to party's purchase order number.
so when it is going that screen iam changing the field name 'VBKD-BSTKD_E' to 'VBKD-BSTKD' in bdcdata. Then it is worked.
This is the solution I found in my time.
Any way it is solved. Hope it will be helpful for others who will get this problem. -
Updating Purchase Order data in VBKD table
Hello,
We are trying to update Purchase order data in VBKD table for Sales Order at Item level. When sales Order is created, VBKD has a default record with VBELN = 'sales order number' and Item = '00000'. We want to update BSTKD_E field with Purchase order number for VBELN= 'sales order number' and Item = '00010'.
We wrote our logic in USEREXIT_SAVE_DOCUMENT_PREPARE and USEREXIT_MOVE_FIELDS_TO_VBKD in MV50AFZZ to append new entries in XVBKD with VBELN= 'sales order number' and Item = '00010'. But in this case Sales order is not created with UPDATE TERMINATED message. We are not sure if we can append a new record in XVBKD.
wa_xvbkd = xvbkd.
wa_xvbkd-posnr = wa_xvbap-posnr. "00010
wa_xvbkd-bstkd_e = vbkd-bstkd. "PO no
wa_xvbkd-posex_e = wa_xvbap-posnr. "Purch. order item no
wa_xvbkd-updkz = C_I.
APPEND wa_xvbkd TO xvbkd.
CLEAR wa_xvbkd.
Please advice the suitable way to have a Purchase Order item level data in Sales Order.
Thanks
RohitHi,
You can try these FM to update info record.
ME_DB_UPDATE_INFORECORDS
ME_UPDATE_INFORECORD
ME_UPDATE_INFORECORD_COND
ME_UPDATE_INFORECORD_PD
Check the sample code on BAPI_PO_CHANGE
http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm
Regards,
Shiva Kumar -
Unable to update purchase order after partial delivery
bold Issue:
After upgrading from v2005 > v2007:
1) We created a PO with two different purchase items :
row 1: 10 pcs Item x
row 2: 15 pcs item Y
2) create a Goods Receipt PO based on the PO row 2 (15 pcs Item Y) so this row will be closed in the PO.
3) after saving the GRPO item Y is set as a non purchase item (deselected the tick box "Purchase Item" on the Item master), because the supplier will not be able to deliver this item again.
4) After changing item Y, we want to update the amount of Item X to for example 11 (instead of 10). This item is still a purchase item > while updating the PO the following error appears:
[Purchase Order - Rows - Item No.][line: 2] , 'The item is not a purchase item (2)' [Message 131-10]
In v2005 it was possible to follow the above procedure, however since the upgrade of v2007 the error appears.
The problem is that that it happens very often that the suppliers change the items, so they cannot be delivered anymore.
bold Below the response of SAP Support:
Line: -
Yes, I understand what you mean that the item you want to deliver is the other item PQ which is still a purchase item. However, the system does the checking based on document level, and not filtering only per Open rows. Hence, even if the item for B8 is fully closed, the system still detects that there is a non-purchase item in an open document (B8).
In order to update the other item PQ, please set the item B8 back to Purchase Item. Once the Sales Order is updated, you may update B8 again to Non Purchase.
If the possibility of using the 'Active/Inactive' button is not possible, another workaround is to use a User Define Field to flag the item. For example, you can set it as 'Y', when the supplier stopp ed selling the item. Then, in the Item Search window, you can filter the records to group those items that are set as 'Y' and the rest as 'N'. Only those 'N' items can be used when placing orders.
As an added procedure, you can generate an approval procedure that will be triggered when an item that is set as 'Y' in the User Defined field is added in the Purchase Order. When the approval is trig gered, the user can then re-verify the items added and make the necessary changes before saving the purchase document.
I hope the above workaround is suitable. I agree with the expected logic, but per Note937297, the stock status of an item is not meant to be changed after documents are added in the system. It seems a limitation in the current system.
Line: -
bold Solution:
The system should check if the open row can be delivered, since it still is a purchase item.
The provided workarounds are not an option for our customer, so we are looking forward to a positive reaction!
Kind regards,
CharlotteUnable to update purchase order after partial delivery
Issue:
After upgrading from v2005 > v2007:
1) We created a PO with two different purchase items :
row 1: 10 pcs Item x
row 2: 15 pcs item Y
2) create a Goods Receipt PO based on the PO row 2 (15 pcs Item Y) so this row will be closed in the PO.
3) after saving the GRPO item Y is set as a non purchase item (deselected the tick box "Purchase Item" on the Item master), because the supplier will not be able to deliver this item again.
4) After changing item Y, we want to update the amount of Item X to for example 11 (instead of 10). This item is still a purchase item > while updating the PO the following error appears:
[Purchase Order - Rows - Item No.][line: 2] , 'The item is not a purchase item (2)' [Message 131-10]
In v2005 it was possible to follow the above procedure, however since the upgrade of v2007 the error appears.
The problem is that that it happens very often that the suppliers change the items, so they cannot be delivered anymore.
Below the response of SAP Support:
Yes, I understand what you mean that the item you want to deliver is the other item PQ which is still a purchase item. However, the system does the checking based on document level, and not filtering only per Open rows. Hence, even if the item for B8 is fully closed, the system still detects that there is a non-purchase item in an open document (B8).
In order to update the other item PQ, please set the item B8 back to Purchase Item. Once the Sales Order is updated, you may update B8 again to Non Purchase.
If the possibility of using the 'Active/Inactive' button is not possible, another workaround is to use a User Define Field to flag the item. For example, you can set it as 'Y', when the supplier stopp ed selling the item. Then, in the Item Search window, you can filter the records to group those items that are set as 'Y' and the rest as 'N'. Only those 'N' items can be used when placing orders.
As an added procedure, you can generate an approval procedure that will be triggered when an item that is set as 'Y' in the User Defined field is added in the Purchase Order. When the approval is trig gered, the user can then re-verify the items added and make the necessary changes before saving the purchase document.
I hope the above workaround is suitable. I agree with the expected logic, but per Note937297, the stock status of an item is not meant to be changed after documents are added in the system. It seems a limitation in the current system.
Solution:
The system should check if the open row can be delivered, since it still is a purchase item.
The provided workarounds are not an option for our customer, so we are looking forward to a positive reaction!
Kind regards,
Charlotte -
Bad performance updating purchase order (ME22N)
Hello!
Recently, we face bad performance updating purchase orders using transaction ME22N. The problem occurs since we implemented change documents for a custom table T. T is used to store additional data to purchase order positions using BAdIs ME_PROCESS_PO_CUST and ME_GUI_PO_CUST.
I've created a change document C_T for T using transaction SCDO. The update module of the change document is triggered in the method POST of BAdI ME_PROCESS_PO_CUST.
Checking transaction SM13, I recognized that the update requests of ME22n have status INIT for several minutes before they are processed. I also tried to exclude the call of the update module for change document C_T (in Method POST) - the performance problem still occurs!
The problem only occurs with transaction ME22N, thus I assume that the reason is the new change document C_T.
Thanks for your help!
Greetings,
WolfgangI agree with vikram, we don't have enough information, even not a small hint on usage of this field, so which answer do you expect (The quality of an answer depends ...) This analysis must be executed on your system...
From a technical point of view, the BAPI_PO_CHANGE has EXTENSIONIN table parameter, fill it using structure BAPI_TE_MEPOITEM[X] alreading containing CI_EKPODB (*) and CI_EKPODBX (**)
Regards,
Raymond
(*) I guess you have used this include
(**) I guess you forgot this one (same field names but data element always BAPIUPDATE) -
Can anyone give me user exit name for create/update purchase order partners
Hello guys
Can anyone gives me user exit name for create/update purchase order partners?
Requirement is to insert/update partner when SC flag is checked while creating/updating purchase order (ME22N / ME21N) by using user exit.hi,
check these exits.
Transaction Code - ME21N Create Purchase Order
Enhancement/ Business Add-in Description
Enhancement
MEQUERY1 Enhancement to Document Overview ME21N/ME51N
MEVME001 WE default quantity calc. and over/ underdelivery tolerance
MM06E001 User exits for EDI inbound and outbound purchasing documents
MM06E003 Number range and document number
MM06E004 Control import data screens in purchase order
MM06E005 Customer fields in purchasing document
MM06E007 Change document for requisitions upon conversion into PO
MM06E008 Monitoring of contr. target value in case of release orders
MM06E009 Relevant texts for "Texts exist" indicator
MM06E010 Field selection for vendor address
MMAL0001 ALE source list distribution: Outbound processing
MMAL0002 ALE source list distribution: Inbound processing
MMAL0003 ALE purcasing info record distribution: Outbound processing
MMAL0004 ALE purchasing info record distribution: Inbound processing
MMDA0001 Default delivery addresses
MMFAB001 User exit for generation of release order
MRFLB001 Control Items for Contract Release Order
MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
AMPL0001 User subscreen for additional data on AMPL
LMEDR001 Enhancements to print program
LMELA002 Adopt batch no. from shipping notification when posting a GR
LMELA010 Inbound shipping notification: Transfer item data from IDOC
LMEQR001 User exit for source determination
LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt
LWSUS001 Customer-Specific Source Determination in Retail
M06B0001 Role determination for purchase requisition release
M06B0002 Changes to comm. structure for purchase requisition release
MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
MEETA001 Define schedule line type (backlog, immed. req., preview)
ME590001 Grouping of requsitions for PO split in ME59
M06E0005 Role determination for release of purchasing documents
M06E0004 Changes to communication structure for release purch. doc.
M06B0005 Changes to comm. structure for overall release of requisn.
M06B0004 Number range and document number
M06B0003 Number range and document number -
Update Purchase Order number.(Link GL to PO)
Hi all,
Currently i am using the below query for one of our report(R12). However there is a need to update Purchase Order Number .Could anyone please help on how to link GL to PO and provide the updated query.The query is as follows.
SELECT gjl.je_line_num,
gjl.code_combination_id,
SUM(NVL(GJL.accounted_dr, 0)) AS Accounted_DR,
SUM(NVL(GJL.accounted_cr, 0)) AS Accounted_CR,
( SUM(NVL(GJL.accounted_dr, 0)) - SUM(NVL(GJL.accounted_cr, 0)) ) AS Accounted_Balance,
gjb.actual_flag,
NULL AS "Check Number",
gjb.name AS "Batch Name",
TO_CHAR(gjh.currency_conversion_date, 'DD-Mon-YYYY') currency_conversion_date,
ROUND(gjh.CURRENCY_CONVERSION_RATE,4) CURRENCY_CONVERSION_RATE,
gjh.currency_conversion_type,
NULL AS Document_Number,
SUM(NVL(GJL.entered_dr, 0)) AS Entered_DR,
SUM(NVL(GJL.entered_cr, 0)) AS Entered_CR,
( SUM(NVL(GJL.entered_dr, 0)) - SUM(NVL(GJL.entered_cr, 0)) ) AS Entered_Balance,
gcc.segment1
|| '.'
|| gcc.segment2
|| '.'
|| gcc.segment3
|| '.'
|| gcc.segment4
|| '.'
||gcc.segment5
|| '.'
|| gcc.segment6
|| '.'
|| gcc.segment7
|| '.'
|| gcc.segment8 "Account Code",
gl.currency_code AS "Ledger Currency",
gjh.name AS "Header Name",
gjl.description AS "Journal Line Description",
NULL AS party_name,
NULL AS party_id,
GJH.period_name,
TO_CHAR(gjh.POSTED_DATE, 'DD-Mon-YYYY') POSTED_DATE,
NULL AS "Purchase Invoice Number",
NULL AS "AP Invoice Line Description",
NULL AS "Sales Invoice Number",
gcc.segment1 Company ,
gcc.segment2 Account,
DECODE(gcc.segment2,NULL,'',apps.gl_flexfields_pkg.get_description_sql(gcc.chart_of_accounts_id,2,gcc.segment2)) AS "Seg2 Desc",
gcc.segment3 AS "Business Model",
gcc.segment4 Region,
gcc.segment5 AS "Cost Profit Center",
gcc.segment6 AS "Product Group",
gcc.segment7 AS "Related Company",
gcc.segment8 AS "Reserve",
gjl.status AS "Journal Line Status",
GL.name AS "LEDGER NAME",
GJH.currency_code,
GJH.je_category je_cat_f,
GJCT.user_je_category_name je_category,
GJH.je_source,
NULL AS "Sales_order" ,
NULL AS "Purchase Order Number"
FROM APPS.gl_je_headers gjh,
APPS.gl_je_batches gjb,
APPS.gl_ledgers gl,
APPS.gl_je_lines gjl,
APPS.gl_code_combinations gcc,
(SELECT je_category_name,
user_je_category_name
FROM APPS.GL_JE_CATEGORIES_TL
WHERE language='E'
) GJCT
WHERE gjh.je_from_sla_flag IS NULL
--AND gjh.EXTERNAL_REFERENCE IS NULL
AND gjb.je_batch_id = gjh.je_batch_id
AND gjh.ledger_id = gl.ledger_id
AND gjh.je_header_id = gjl.je_header_id
AND gcc.code_combination_id = gjl.code_combination_id
AND GJH.JE_CATEGORY = GJCT.je_category_name(+)
AND GL.name NOT IN('NL ABX RepCorp USD (EUR)')
GROUP BY gjl.je_line_num,
gjl.code_combination_id,
gjb.actual_flag,
gjb.name,
gjh.currency_conversion_date,
ROUND(gjh.CURRENCY_CONVERSION_RATE,4),
gjh.currency_conversion_type,
gcc.segment1
|| '.'
|| gcc.segment2
|| '.'
|| gcc.segment3
|| '.'
|| gcc.segment4
|| '.'
||gcc.segment5
|| '.'
|| gcc.segment6
|| '.'
|| gcc.segment7
|| '.'
|| gcc.segment8,
gl.currency_code,
gjh.name,
gjl.description,
gjb.je_batch_id,
gjb.status,
gjb.posted_date,
gjb.description,
gl.name,
gjh.name,
GJH.period_name,
gjh.posted_date,
gcc.segment1,
gcc.segment2,
gcc.segment3,
gcc.segment4,
gcc.segment5,
gcc.segment6,
gcc.segment7,
gcc.segment8,
GL.name,
gjl.status,
GJH.je_category,
GJCT.user_je_category_name,
GJH.je_source,
GJH.currency_code,
DECODE(gcc.segment2,NULL,'',apps.gl_flexfields_pkg.get_description_sql(gcc.chart_of_accounts_id,2,gcc.segment2))Finally Resolved the problem by writing 2 exits.
one exit 'EXIT_SAPLVEDB_007' for identify correct item in the sales order by updating the customer purchase order item number i.e., VBAP-POSEX. if we update the POSEX field then it wont create new item instead, it will update the item which it is referring to .
2nd exit for updating the purchase order number.
I have tried to pass the program name, screen number, field name, field value etc to bdcdata in the exit 'EXIT_SAPLVEDB_002'. but I observed that it is not going to that screen in the debugging.
when I try E1EDP02 with QUALF '044' it will update ship-to party's purchase order number. so to update ship-to party's purchase order number it is going to that screen.
so I have used that thing to update purchase order number in sold-to party's purchase order number.
so when it is going that screen iam changing the field name 'VBKD-BSTKD_E' to 'VBKD-BSTKD' in bdcdata. Then it is worked.
This is the solution I found in my time.
Any way it is solved. Hope it will be helpful for others who will get this problem. -
Update purchase Order using offline file
Hi Experts
How to create and update purchase Order using offline file. How to execute offline API from program in batch ?Hi Experts
How to create and update purchase Order using offline file. How to execute offline API from program in batch ? -
How can I prevent any use to update Purchase order if status was "Approval"
I have some users can update any purchasing order update after "Approval"
Please I would any Purchasing oracle module expert to Assist me to get way to solve problem.
How can I prevent any use to update Purchase order if status was "Approval"?
Further Information :
Oracle Allpication Release : 11.5.9
Oracle Purchasing Module.
Oracle Data Base: 11i
Khaled,Try writing a personalization on the PO screen that adds the following condition to the where clause
"and authorization_status !='APPROVED'
However, I will be careful with a blanket restriction like this. There are situations when you need to modify an existing PO. So you should code some exceptions for this rule.
Hope this helps,
Sandeep Gandhi -
Regarding Updating Purchase order status
Hi,
Could any one tell me how we relate equipment(IE02/IE01-EQUNR) with purchase order(AUFK-AUFNR). how we will find that for a single equipment how many purchase orders are existed.
and i want to update user status in purchase order could any one tell me the function module or bapi for updating the user status in purchase order.
Thanks in advance.
Points will be rewarded for helpfull answer..Robert,
Have you tried to implement BBP_DOC_SAVE_BADI to recognize the creation of the invoice? This document should have the reference for the PO, if you have this relation then you can update status there, in the badi implementation...
As Ramki says, you should raise an OSS message to ask for an standard way.
BR,
Gerardo. -
BADI-User exit required for updating Purchase order header field -IHREZ
Hello All,
We have requirement in our business to update the purchase order header field "our reference" EKKO-IHREZ with some text field. We need a BADI/user exit that can be used for updating this field . We have checked the BADI ME_PROCESS_PO_CUST and unfortunately we are not able to use this BADI as it getting triggered in enjoy SAP transactions ME21N , ME22N etc. We are not creating the purchase order manually and we are using ME59N for creating Purchase order . Hence we are looking for some user exit/BADI that can be used in ME59N for updating the purchase order header field IHREZ.
Thanks in advance for your immediate response .
With regards,
Joseph Anand BTRY using the exist u2022 EXIT_SAPLME59_001
You can also later on add this field by BAPI_PO_CHANGE -
User exit/BADI for updating Purchase Order Item
I am would like to update the purchase order item - specifically field EKPO-REPOS in a user exit or BADI. I haven't been able to find one that allows you to update the purchase order item.
Any input would be appreciated.
DerickYou can use BADI ME_PROCESS_PO_CUST for you requirement
Method PROCESS_ITEM
* Retrieve item data.
CALL METHOD im_item->get_data
RECEIVING
re_data = v_data_item.
Do you validations and changes here
*update changes
CALL METHOD im_item->set_data( v_data_item ). -
Updating Purchase Order data - BAPI_PO_CHANGE?
Hi,
I have been searching for a SAP standard tool that can update a Purchase Order upon its execution. The closest function module I could find was BAPI_PO_CHANGE. However, it was documented as a restriction that updating of service data is not possible with this function module (I have also tested this).
Are there any other possible mechanisms which can be called/used for the purpose of updating a PO including its services? It would be most desirable if the following fields on a Purchase Order can be changed/updated via this mechanism (fields in bold are data found in a service):
Field Field name
Percentage EBKN-VPROZ
Distribution Indicator EBAN-VRTKZ
Project EBKN-PROJN
Order EBKN-AUFNR
Responsibility Cost Centre EBKN-ZZMRESP
WBS Element EBKN-PS_PSP_PNR
Cost Centre EBKN-KOSTL
Unblocking User ESLL-USERF2_TXT
User for Approval ESLL-USERF1_TXT
Currency EBAN-WAERS
Quantity EBAN-MENGE
Price EBAN-PREIS
Price unit EBAN-PEINH
Overall Limit ESUH-SUMLIMIT
Expected Value ESUH-COMMITMENT
Net Value ESLL-NETWR
Thanks in advance.
~ AndiHi,
You can try these FM to update info record.
ME_DB_UPDATE_INFORECORDS
ME_UPDATE_INFORECORD
ME_UPDATE_INFORECORD_COND
ME_UPDATE_INFORECORD_PD
Check the sample code on BAPI_PO_CHANGE
http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm
Regards,
Shiva Kumar -
Info records flagged for deletion don't update purchase orders
Hi, I would like to know how I can customize SAP-MM in order to avoid that the info records flagged for deletion update the purchase orders.
When I create a PO from a Purchase requisition (which have data with texts like "Vendor material number"), the Info record flagged for deletion update this data.
Thank youHello
I think inforecords flagged for deletion is not being considered for PO updation. Could you please check again.
It might be posible that 'Vendor material number' is spcified in Purchase requisition and when you create PO from Purchase requisition, it is copied from there to PO.
I hope it will resolve your issue.
Best regards
Avinash -
Update purchase order history after usage decision from quality
Hi guys,
I'm working with active ingredients, after entering the % of the active ingredient in quality, then making the usage the decision, I need to update the history of the purchase order for the quantity posted.
what I mean is that if I received 1000 KG of a raw material, then in the quality check I found that the % of the active ingredients is 90%, I update the purchase order quantity to 900 KG, I know that this is made by using transaction MWBQ, but what are the settings I have to make at the very beginning before using transaction MWBQ
Regards,check the below forum link related to this.
Re: use of Tcodes: MWBQ & MWBE
Maybe you are looking for
-
How can is see the files that are stored on a tape ? Do I have to mount the tape ? I dont thionk so .... Can I do a ls /dev/rmt/0u ???
-
How to download faster my os x lion?
how to install faster os x lion?
-
Queue not empty to upload support pkg
dear all, i import the support pkg SAPKH60007 - SAP_APPL IT throw error that it have conflict . So i download conflict resolution package. now i want to put that CRT pkg in queue. but the queue is occupied by SAPKH60007. how to make the queue empt
-
hi I am keep receiving this message in central administration running server in event viewer DiscoverSQL2005DBEngineDiscovery.vbs : The Query 'select * from __NAMESPACE where Name ='ComputerManagement'' returned an invalid result set. Please check t
-
Preview not rendering PDF correctly
I have an invoice sent to me that wont display in Preview. If I view in Chrome, or in Adobe reader, I can see the correct text. Anyone with any clues as to what is wrong? http://www.kdriver.plus.com/milk_chrome.jpg - shows most of the desired text, b