How to update purchase order
hi all,
i have a requirement like purchase order having 3 line items. using BAPI_PO_GETDETAIL1 I retreive 3 records in internal table. after that i want to update 3 records with 40 50 60 line items in same purchase order. how to do using bapi po change...
regards
sanjeev
Moderator Message: Basic and easily searchable question.
Edited by: kishan P on Nov 23, 2010 1:37 PM
Hi,
check this sample code:
http://www.sap-img.com/abap/sample-abap-code-on-bapi-po-change.htm
also there is a lot of stuff in SDN forum,
Daniel.
Similar Messages
-
How to update purchase order when creating a new condition records
Hi,
We have the system configured so that whenever we update a condition record, a change pointer is generated. Then we the use of standard reports RMEBEIN4 and RMEBEIN, all open purchase order having that condition type is updated. However this only works when we update existing condition record. When we create a new condition record, this does not work even though the change pointer is created. Do the reports mentionned above works for the this case or another standard report that should be trigger.
Thank you for your helphi,
May be this is working for the conditions already existing in the info record for the PO's. so when you have new condition record it updates only after you amend the PO with that condition and save it.
Kiran -
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 -
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 to trace purchase order number with respect to Purchase requestion numb
Hi friends,
Can u please help me how to Trace purchase order number with respect to purchase Requetuion number. Is there any standard report available in R/3Hi Vamsi,
Thats what!!!
Goto SE16 - EBAN - Give PR number in the iput screen.
In the output screen you will have to do field selection from Menu - Settings - formatlist - choose fields.
There you choose Purchase Order.
So the output will display for you POs for the PR that you entered.
Regards,
Vishal -
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. -
How to change purchase order's cost center in batch
Dear all :
how to change purchase order's cost center in batch?Dear Manish :
thanks so much for you reply.
the filed which i wanted to change it's content is cost center (KOSTL) in table EKKN.
i couldn't find it in this t-code when i select fields. -
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 -
How to Display 'purchase order text' in MM03 using report program
Hi Friends,
Can anybody suggest me how to display 'purchase order text' in MM03 using report program.
'Purchase order text' tab displays purchase long text of particular material .
I coded as:
SET PARAMETER ID 'MXX' FIELD 'E'.
SET PARAMETER ID 'MAT' FIELD k_final-matnr.
SET PARAMETER ID 'WRK' FIELD k_final-werks.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
It displays Purchasing tab other than Purchase Order Text tab of MM03.
Please suggest me how can i solve this.
Is there any parameter id to set values for Purchase Order text tab>
Madhu Mano Chitra wrote:
> I want how to navigate to MM03 'Purchase Order text' tab/ view using ABAP code.
> could any suggest me
You can call a transaction and pass it a BDC table that tells it where you want it to go. You have to work out for yourself what to put into the BDC table. The code below works for tcode CATSSHOW.
DATA: bdcdata_wa TYPE bdcdata,
bdcdata_tab TYPE TABLE OF bdcdata.
DATA opt TYPE ctu_params.
CLEAR bdcdata_wa.
bdcdata_wa-program = 'CATSSHOW'.
bdcdata_wa-dynpro = '1000'.
bdcdata_wa-dynbegin = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'SO_STATU-LOW'.
bdcdata_wa-fval = '20'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'ANDZEIT'.
bdcdata_wa-fval = SPACE.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'PAST'.
bdcdata_wa-fval = 'X'.
APPEND bdcdata_wa TO bdcdata_tab.
IF p_selscr = SPACE.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_OKCODE'.
bdcdata_wa-fval = '=ONLI'.
APPEND bdcdata_wa TO bdcdata_tab.
ENDIF.
opt-dismode = 'E'.
opt-defsize = 'X'.
CALL TRANSACTION 'CAPP' USING bdcdata_tab OPTIONS FROM opt. -
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 -
How to get purchase order number from delivery number?
hi all,
how to get purchase order number and item if i have only delivery.
and in same way how to get po number and item if i know only batch number.
kindly give me some solution i need this urgently.
thanks in advance.Check the logic below:
* Selecting the Sales Documents from VBFA for corresponding Invoice
SELECT vbelv
posnv
FROM vbfa
INTO TABLE gt_itab3
WHERE vbeln EQ gt_itab5-vbeln
AND posnn EQ gt_itab5-posnr
AND vbtyp_n EQ 'J'.
IF sy-subrc EQ zero.
SORT gt_itab3 BY vbelv posnv.
ENDIF.
ENDIF.
IF NOT gt_itab3 IS INITIAL.
* Selecting the Purchase Orders from VBFA for corresponding Sales Documents
SELECT vbeln
posnn
FROM vbfa
INTO TABLE gt_itab4
FOR ALL ENTRIES IN gt_itab3
WHERE vbelv EQ gt_itab3-vbelv
AND posnv EQ gt_itab3-posnv
AND vbtyp_n EQ 'V'.
IF sy-subrc EQ 0.
SORT gt_itab4 BY vbeln posnn.
ENDIF.
ENDIF.
Batch number will be there in delivery item.
Regards
Kannaiah -
How to find purchase order bapi
can any one help how to find purchase order bapi.
This isn't a Web Dynpro Specific question - moving to ABAP general.
However have you considered going to SE80 and searching for function modules that begin with the name BAPI and have purc in the name? Or maybe going to the BAPI Browser transaction (T-Code BAPI) and searching either in the Hiearchy or Alphabetical list. Probably not too difficult to find the purchase order object.
Maybe you are looking for
-
Dear Members, I have an issue over the following scenario. PO - 10 Units * 100/- per unit + 1000/- MiGO - 10*100 = 1000/- Excise Invoive capturing on 1000/- i.e 800.801.60+4 (vat) total = 86.40/- MIRO - 10*100= 1000 Now 2 Units have been found as to
-
NSCollectionView / index of NSImageView
Hello everybody, I am going to try to describe simply my problem. Context : I manage a list of images (NSImage in correlation with a NSArrayController). These images are drawn in a NSCollectionView (-> NSBox - > NSImageView). OK. The images are added
-
1434891 - Consolidation fails in BOFC 7.5 (new installation)
Hello, maybe someone can help me. There's a error in the consolidation of my Business Objects Financial Consolidation application: Failed to run database query:".. The SAP recommended solution (1434891 - Consolidation fails in BOFC 7.5 (new installat
-
Hi all- We recently installed JRE 1.6.0_12 after being on an old version of JRE 1.4.2 for years. When we did this, we noticed two applications that would normally pop up a child window in front of the parent window suddenly pop up the window behind t
-
Hi, I'm new to Java coming from C++ background, I can't seem to find a method to retrieve the currently selected tree item. The closest method I can see is getLastSelectedPathComponent() Object tmp = treeMenu.getLastSelectedPathComponent(); try {