Open Purchase Order Documents
Using the DI API, how can I query the PO documents that have neither followup "Goods Receipt" nor "A/P Invoice" documents? That is, I'm looking for the open Purchase Orders.
Thank you,
Miklos
You can use the recordset object to query for open PO's.
This can be a simple query, or it can get more complex, depending on your needs.
Something like this...
SELECT * FROM OPOR WHERE DOCSTATUS = 'O' AND CANCELED <> 'Y'
... will get you a list of all of the currently open PO headers. However, an open PO may have been partially paid, or partially received. The PO header remains open until all line items have been closed.
If you're looking for a way to find PO's that have not had any partial receipts, invoices, or rtv's against them then the solution will need to consider the LineStatus field on the POR1 table as well.
Regards,
Demetree
Similar Messages
-
Purchase order document row is not change (document stutas is OPEN)
Hi all,
I am created one purchase order that are not any base or targeted document ,not any approval procedure and purchase order document status is steel open . Then how I a cannot change the document row.
thanks
arabinda palHi Deepa,
I think if you want to restrict the further editing of a particular row, then you just need to follow the simple procedure.
1. create the purchase order with your desired items & vendor & add this document
2. Now reopen it & goto that row which you want to restrict. Right click on that row & select "Close Row".
3. Select yes to confirmation message.
4.Now update the document.
Now you an check it out, in that document you will not be able to edit that row contents.
I hope this solves your issue.
Regards.
ShriX. -
Open Purchase Order UPload Using the BAPI 's
i need to upload the open Purchase Order using the BAPI function BAPI_PO_CREATE1., below is the given fileds blod are for Header, header will Repeat for the line items,can any one help me out using the BAIP's for upload the PO, i need sample code for this ........
Thanks & Regards
Raghu
<u>Field Name Field Description Type Length</u>
<b>EBELN Purchasing Document Number CHAR 010 X
BUKRS Company Code CHAR 004 MN10 C
EKORG Purchasing Organization CHAR 004 MN00 C
EKGRP Purchasing group CHAR 003 X
BSART Order type (Purchasing) CHAR 004 X
LIFNR Account Number of Vendor or Creditor CHAR 010 X
BEDAT Purchase Order Date DATS 010 X
ZTERM Terms of payment key CHAR 004 X
WAERS Currency Key CUKY 005 X
INCO1 Incoterms (part 1) CHAR 003 X
INCO2 Incoterms (part 2) CHAR 028 X</b>
EBELP Item Number of Purchasing Document NUMC 005 X
EMATN Material number CHAR 018 X
WERKS Plant CHAR 004 X
LGORT Storage location CHAR 004 X
EPSTP Item category in purchasing document CHAR 001 X
KNTTP Account assignment category CHAR 001 X
EINDT Item delivery date DATS 010 X
MENGE "Purchase order quantity (direct input, transfer of POs)" CHAR 013 X
MEINS Order unit UNIT 003 X
NETPR "Net price: Document currency (direct input, transfer of" CHAR 011 X
PEINH "Price unit (direct input, transfer of POs)" CHAR 005 X
BPRME Order Price Unit (Purchasing) UNIT 003 X
BPUMZ Numerator: Conversion OPUn into OUn (direct input of POs CHAR 005 X
BPUMN Denominator: Conversion OPUn into OUn (direct input of P CHAR 005 X
SAKTO Cost element CHAR 010 X
KOSTL Cost Center CHAR 010 X
VBELN Sales and Distribution Document Number CHAR 010 X
VBELP Sales document item NUMC 006 X
WEMPF Goods recipient CHAR 012 X
WEBTH "Amount in local currency (direct input, transfer of POs)" CHAR 013 X
WEBTF "Amount in document currency (direct input, transfer of P" CHAR 013 X
WEREF Flag for treatment of GR/IR (direct input of POs) CHAR 001 X
SPINF Indicator: Update info record CHAR 001 X
WEPOS Goods Receipt Indicator CHAR 001 X
REPOS Invoice receipt indicator CHAR 001 Xi need to upload the open Purchase Order using the BAPI function BAPI_PO_CREATE1., below is the given fileds blod are for Header, header will Repeat for the line items,can any one help me out using the BAIP's for upload the PO, i need sample code for this ........
Thanks & Regards
Raghu
<u>Field Name Field Description Type Length</u>
<b>EBELN Purchasing Document Number CHAR 010 X
BUKRS Company Code CHAR 004 MN10 C
EKORG Purchasing Organization CHAR 004 MN00 C
EKGRP Purchasing group CHAR 003 X
BSART Order type (Purchasing) CHAR 004 X
LIFNR Account Number of Vendor or Creditor CHAR 010 X
BEDAT Purchase Order Date DATS 010 X
ZTERM Terms of payment key CHAR 004 X
WAERS Currency Key CUKY 005 X
INCO1 Incoterms (part 1) CHAR 003 X
INCO2 Incoterms (part 2) CHAR 028 X</b>
EBELP Item Number of Purchasing Document NUMC 005 X
EMATN Material number CHAR 018 X
WERKS Plant CHAR 004 X
LGORT Storage location CHAR 004 X
EPSTP Item category in purchasing document CHAR 001 X
KNTTP Account assignment category CHAR 001 X
EINDT Item delivery date DATS 010 X
MENGE "Purchase order quantity (direct input, transfer of POs)" CHAR 013 X
MEINS Order unit UNIT 003 X
NETPR "Net price: Document currency (direct input, transfer of" CHAR 011 X
PEINH "Price unit (direct input, transfer of POs)" CHAR 005 X
BPRME Order Price Unit (Purchasing) UNIT 003 X
BPUMZ Numerator: Conversion OPUn into OUn (direct input of POs CHAR 005 X
BPUMN Denominator: Conversion OPUn into OUn (direct input of P CHAR 005 X
SAKTO Cost element CHAR 010 X
KOSTL Cost Center CHAR 010 X
VBELN Sales and Distribution Document Number CHAR 010 X
VBELP Sales document item NUMC 006 X
WEMPF Goods recipient CHAR 012 X
WEBTH "Amount in local currency (direct input, transfer of POs)" CHAR 013 X
WEBTF "Amount in document currency (direct input, transfer of P" CHAR 013 X
WEREF Flag for treatment of GR/IR (direct input of POs) CHAR 001 X
SPINF Indicator: Update info record CHAR 001 X
WEPOS Goods Receipt Indicator CHAR 001 X
REPOS Invoice receipt indicator CHAR 001 X -
MEI7 - Price Updation in Open Purchase Order
Hi Friends,
I'm using transaction MEI7 for chaning condition prices in open purchase order items. I get the message log with a list of purchase order items successfully updated, but when i check the 'Item Changes' in PO i don't see any changes with MEI7 or in some cases even if i see that something got changed with MEI7 there is not sufficient information to see what exactly got changed.
I don't see any documentation in SAP .
Are there any configuration points to be checked for MEI7?
How to analyze the results of MEI7?
Thanks in advance.go SE38, enter report name, set the radio button to documentation and click display button.
This will usually give you the docu.
Further you can use google to get some good results:
http://www.se80.co.uk/sapreports/r/rmeb/rmebein2.htm
Not to forget that help.sap.com is the first place to search:
http://help.sap.com/erp2005_ehp_05/helpdata/EN/8a/7bf437e676091fe10000009b38f889/frameset.htm
Please read as well OSS notes like
Note 173587 - Settings for the pricing worklist
Edited by: Jürgen L. on Apr 25, 2011 3:17 PM -
Data Migration for Open Purchase Order
Hi, All,
Is there anyone know how to Count the volume for Open Purchase Order. What's the normal strategy for the Data Migration and Cut-over stage?
My client want to know how many Open Purchase Order in the legacy system and then determine manual or automatic data migration. If manual, how to do? If automatic, how to do? Because all materials and vendors, plants are different number. How to track? How to find out to match between new and old?
Thank you very muchJC,
Sounds a bit early to be making decisions about the realization phase. It doesn't sound like you have finished the Blueprinting phase yet, much less the testing phase.
Anyhow, in my experience I typically use LSMW (Legacy system migration workbench) to load MM master data (material masters), Inventory (WIP, RM, FG, etc) Purchasing Master data (Vendors, Purchase Info Records, Source Lists, Quota Arrangements), and Purchasing transactional documents (POs, PurReqs, Scheduling Agreements, etc). Depending on the complexity and volume of data, it may be necessary to write custom programs to load the data. You will find this out during your requirements gathering.
It is uncommon but possible to load all of these data manually. I have never run across a client that wants to pay a consultant's hourly rate to sit at a terminal to peck away loading master data, so if the client intends to have his own users enter the data manually, the project manager should make provision that there will be qualified TRAINED client employees available for this data entry. I did help with a portion of a conversion once manually; of Sales Credits, but there were only about 30 SD docs to load. I did this the evening before go-live day, while I was waiting for some of my LSMW projects to complete in the background.
A good opportunity to 'practice' your data loads is right after you have completed your development and customization, and you have gotten the approval from the client to proceed from the pilot build to the full test environment. Once you have moved your workbench and customization into the client's test environment, but before integration testing, you can mass load all, or a substantial portion of your conversion data into the qual system. You can treat it like a dry run for go-live, and fine tune your processes, as well as your LSMW projects.
Yes, it is good practice to generate comparisons between legacy and SAP even if the client doesn't ask for it. For Purchase orders on the SAP side, you could use any of the standard SAP Purchasing reports, such as ME2W, ME2M, ME2C, ME2L, ME2N. If these reports do not meet the requirements of the client, you could write a query to display the loaded data, or have an ABAPer write a custom report.
You didn't ask, but you should also do comparisons of ALL loaded data - including master data.
It sounds like you are implying that the client wants YOU to extract the legacy data. For an SAP consultant, this is not very realistic (unless the legacy system is another SAP system). Most of us do not understand the workings of the myriad legacy systems. The client is usually expected to produce one or more legacy system technical experts for you to liase with. You normally negotiate with the technical expert about every facet of of the data migration. In addition, you will liase with business users, who will help you and the implementation team to logically validate that the final solution (turnkey SAP production system, fully loaded with data) will meet the client's business needs.
Finally, you mentioned how do you track the mapping of master data between legacy and SAP. There are many ways to do this. I normally try to get the legacy person do the conversion on his end, eg, when he gives you the load file, you would like to have already translated the master data and inserted the SAP relevant values into the file. If this is not possible, I usually use MS Access databases to maintain a master map, and I perform the mapping on a PC. If your data package is small, you can probably get by using MS Excel or similar.
Good Luck,
DB49 -
Open Purchase Order (VA01)
Hi Guru's,
I am new to SD Module. My requirement is to create Sales Order .
That SO should take Open Purchase order. How to check the condition for this requirement?
Is any status or Indicatior will maintain in tables??
Thanks & Regards,
Meenakshi.Hi
SInce it is a customer PO and not created as a document in SAP, system cannot check the open quantities in a customer PO.
But, we can always check whether that customer PO has already been used for creating a Sales Order or not? In the definition of the Sales Document type, if the checkbox for the field 'Check PO Number' (not sure if it is a field or checkbox) is selected, then while creating the sales order system checks whether any sales order has been created previously with the same PO number.
Thanks,
Ravi -
Can any one provide OPen purchase order upload program using BAPI method....
Thanks & regards.
Ramesh T.
Moderator Message : Not enough re-search before posting. Thread locked
Edited by: Vinod Kumar on Apr 22, 2011 3:41 PMHi Harshad,
You can use the Service PO scenario.
Service PO is used to Procure/ Avail the Services. you can create the service PO ( having account Assignment Category 'K' and item Category 'D' for services) which has the validity period.
at item overview level, you have to specify the Material /Service info in Short text.
At Item Detail level, you will have the service tab. Depending on your indent (as and when it comes) you can enter the service item with its unit cost and qty.
Later on, once you physically received the Material/Service, then using transaction ML81N you can accept the service. which in turn post your GR Document.
Regards,
S Anand -
Open Purchase order migration between systems
Hi Folks,
I have to migrate open purchase orders from 2 legacy systems into 1 new upgraded system. I do not want to change the PO number and therefore i have decided to set an external number range for all the Open POs.
Now my problem is in legacy system, there are open POs with different document types, in legacy system. Is it ok if I convert all open POs as a new custom document type in new system. let me know what problems could i face if i do this.
if not any other solution is most welcome
thanks n advanceKartikey,
???? You are asking the wrong people. We couldn't possibly know for sure. It sounds to me like you are already designing the conversion process when you are not yet sure about the design of the solution.
During the sessions when you are interviewing the client, you must ask multiple questions about his business. For one, you need to discover the existing business requirements that caused the client to use multiple document types in legacy in the first place. This information only can come from your client.
Once you discover his reasons (or lack of reasons), you then have to determine in your 'To-be' solution if you still will need to satisfy that same business requirement. If you do, then you have to determine if the solution that you design will require multiple document types in SAP, or if you will instead utilize a different method to satisfy the requirement.
Good Luck & Best Regards,
DB49 -
Return nothing when run Open Purchase order report(by Buyer)
We implement iPro/PO in Oracle. I finished the PO setup. But now user report that they are not able to generate any output for a particular Buyer when they run the Open Purchase Orders Report(by Buyer) report in the PO module. Even I leave the parameter wide open for the request, it also does not return any information.
Does it relate to the PO setting in system? Anyone can kindly guide me how to check such problem?Hi Kyla,
PO raised by the buyer is 'STANDARD','BLANKET','PLANNED' ? What is the PO Status..? It should be "OPEN"..
Query used in this report is as below :
Query - Company
SELECT gsb.name c_company
, fsp.inventory_organization_id c_organization_id
, gsb.currency_code C_CURRENCY_BASE
, gsb.chart_of_accounts_id STRUCTURE_ACC
, mdv.structure_id STRUCTURE_CAT
, mdv.category_set_id c_category_set_id
, flo1.meaning c_yes
, flo2.meaning c_no
FROM gl_sets_of_books gsb
, financials_system_parameters fsp
, mtl_default_sets_view mdv
, fnd_lookups flo1
, fnd_lookups flo2
WHERE gsb.set_of_books_id = fsp.set_of_books_id
AND mdv.functional_area_id = 2
AND flo1.lookup_type = 'YES_NO'
AND flo1.lookup_code = 'Y'
AND flo2.lookup_type = 'YES_NO'
AND flo2.lookup_code = 'N'
Query - Buyer
SELECT distinct(pov.vendor_name||papf.full_name)
, papf.full_name Buyer
, pov.vendor_name Vendor
, pov.vendor_id
, papf. person_id employee_id
FROM PER_ALL_PEOPLE_F PAPF
, po_vendors pov
, po_headers poh
WHERE poh.agent_id = papf.person_id
AND poh.vendor_id = pov.vendor_id
AND poh.type_lookup_code in ('STANDARD','BLANKET','PLANNED')
AND nvl(poh.closed_code,'OPEN') NOT IN ('FINALLY CLOSED', 'CLOSED')
AND nvl(poh.cancel_flag,'N') = 'N'
/* AND papf.full_name = nvl(:P_buyer,papf.full_name) */
/* Bug#2453022 Commented out the above condition and replaced
it as follows as the user parameter P_Buyer will now return the id and not the name */
AND papf.person_id = nvl(:P_buyer,papf.person_id)
AND pov.vendor_name BETWEEN nvl(:P_vendor_from,pov.vendor_name)
AND nvl(:P_vendor_to,pov.vendor_name)
AND EXISTS (select 'x'
from po_lines pol
, po_line_locations pll
, po_releases por
where pol.po_header_id = poh.po_header_id
and pol.po_line_id = pll.po_line_id
and nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
and nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
and nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
and nvl(pll.cancel_flag,'N') = 'N'
and nvl(pol.cancel_flag,'N') = 'N'
and nvl(por.cancel_flag,'N') = 'N'
and pll.shipment_type in ('STANDARD','BLANKET','SCHEDULED')
and pll.po_release_id = por.po_release_id(+))
AND PAPF.EMPLOYEE_NUMBER IS NOT NULL
AND TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND
PAPF.EFFECTIVE_END_DATE
AND DECODE(HR_SECURITY.VIEW_ALL ,'Y' , 'TRUE',
HR_SECURITY.SHOW_RECORD('PER_ALL_PEOPLE_F',PAPF.PERSON_ID,
PAPF.PERSON_TYPE_ID,
PAPF.EMPLOYEE_NUMBER,PAPF.APPLICANT_NUMBER )) = 'TRUE'
AND DECODE(HR_GENERAL.GET_XBG_PROFILE,'Y', PAPF.BUSINESS_GROUP_ID ,
HR_GENERAL.GET_BUSINESS_GROUP_ID) = PAPF.BUSINESS_GROUP_ID
ORDER BY papf.full_name
, pov.vendor_name
Query - PO
SELECT distinct(pol.line_num) Line
, poh.segment1 ||decode(por.release_num,null,'','-')|| por.release_num PO_Number_Release
, poh.currency_code C_CURRENCY
, plt.line_type Line_Type
, &P_FLEX_CAT C_FLEX_CAT
, &P_FLEX_ITEM C_FLEX_ITEM
, pol.item_revision Rev
, pol.item_description Description
, pol.po_header_id
, pol.po_line_id
, poh.vendor_id
, poh.agent_id
, psp.manual_po_num_type
, poh.segment1
, por.release_num
, nvl(por.po_release_id,-1) release_id
FROM po_line_locations pll
, mtl_system_items msi
, mtl_categories mca
, po_lines pol
, po_releases por
, po_headers poh
, po_line_types plt
, po_system_parameters psp
WHERE poh.po_header_id = pol.po_header_id
AND pol.po_line_id = pll.po_line_id
AND pll.po_release_id = por.po_release_id(+)
AND pol.line_type_id = plt.line_type_id
AND pol.item_id = msi.inventory_item_id(+)
AND msi.organization_id(+) = :c_organization_id
AND pol.category_id = mca.category_id
AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(poh.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(pll.cancel_flag,'N') = 'N'
AND nvl(pol.cancel_flag,'N') = 'N'
AND nvl(poh.cancel_flag,'N') = 'N'
AND nvl(por.cancel_flag,'N') = 'N'
AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
ORDER BY decode(psp.manual_po_num_type,'NUMERIC',
--bug#3614924
decode(rtrim(poh.segment1,'0123456789'),NULL,to_number(poh.segment1))
, null)
, decode(psp.manual_po_num_type,'NUMERIC',null, poh.segment1)
, por.release_num
, pol.line_num
Query - Shipment
SELECT pll.shipment_num Shipment
, nvl(pll.promised_date,pll.need_by_date) P_Date
, pol.unit_meas_lookup_code Unit
, DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
'RATE', PLL.amount,
'FIXED PRICE', PLL.amount,
PLL.quantity) Ordered
, DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
'RATE', PLL.amount_received,
'FIXED PRICE', PLL.amount_received,
PLL.quantity_received) Received
, DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
'RATE', PLL.amount_billed,
'FIXED PRICE', PLL.amount_billed,
PLL.quantity_billed) Billed
, pll.price_override Unit_Price
, DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
'RATE', (PLL.amount - NVL(PLL.amount_received, 0))/
DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
'FIXED PRICE', (PLL.amount - NVL(PLL.amount_received, 0))/
DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
(NVL(PLL.quantity, 0) - NVL(PLL.quantity_received, 0))/
DECODE (NVL(PLL.quantity, 0), 0, 1, PLL.quantity)) * 100 Percent_Due
, plc.displayed_field Open_For
, pll.po_line_id
, nvl(pll.po_release_id,-1) join_release_id
FROM po_line_locations pll
, po_lines pol
, po_lookup_codes plc
WHERE pol.po_line_id = pll.po_line_id
AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
AND nvl(pll.cancel_flag,'N') = 'N'
AND nvl(pol.cancel_flag,'N') = 'N'
AND plc.lookup_type = 'DOCUMENT STATE'
AND plc.lookup_code = nvl(pll.closed_code, 'OPEN')
AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
ORDER BY pll.shipment_num -
Urgent :Doubt on open Purchase orders
Hi friends,
i will be more help full if anybody can help me on below issue how to find open PO and partially open PO.
Only open purchase orders will be extracted for conversion into Destination Server. An open purchase order is defined as any unshipped, non-cancelled with open quantities. In regards to, partially open purchase orders, we will only convert open units (i.e. Original ordered qty was 300; 70 have shipped, 230 remain open Target Server sales order will have an original order qty of 230).
also where to find that Sub Contracting orders and Sample orders.
Orders not considered for migration because they will have either shipped in full or deleted prior to data migration as a part of data clean-up: ALL subcontracting orders; sample orders
please help me on the above two issues.
thanks and Regards,
Gokul.Hi
First take the ALL Po's from EKKO and EKPO tables and check for the different GR's and GI's qty's from MKPF and MSEG tables and you have to compare the PO qty with the total GR/GI qty's and to find the OPEN po's
see the sample report
*& Report ZMM_PO_REPORT
REPORT ZMM_PO_REPORT message-Id yb
NO STANDARD PAGE HEADING
LINE-COUNT 60(1)
LINE-SIZE 230.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: lfa1, " Vendor Master
t161, " PO Doc Types
t024, " Purchase Groups
ekko. " PO Header
T Y P E S D E C L A R A T I O N S
Purchase Orders Main Structure
TYPES: BEGIN OF s_po,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bukrs TYPE bukrs, " Company Code
bsart TYPE bbsrt, " PO Type
lifnr TYPE lifnr, " Vendor No
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
END OF s_po.
Purchase Orders History Structure
TYPES: BEGIN OF s_account,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
gjahr TYPE mjahr, " Fiscal Year
belnr TYPE mblnr, " PO Invoice No
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Local Currency
dmbtr TYPE dmbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
shkzg TYPE shkzg, " Dr/Cr Indicator
END OF s_account.
Purchase Orders History Structure(Item Sum)
TYPES: BEGIN OF s_inv_sum,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
END OF s_inv_sum.
Purchase Orders Main Structure
TYPES: BEGIN OF s_rep,
lifnr TYPE lifnr, " Vendor No
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bsart TYPE bbsrt, " PO Type
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
name1 TYPE name1, " Plant
orewr TYPE netpr, " To be Invoiced Price
curr TYPE waers, " Inv Doc Currency
END OF s_rep.
D A T A D E C L A R A T I O N S
DATA: gv_title1 TYPE sylisel, " Report title
gv_dial. " Color flag
C O N S T A N T S D E C L A R A T I O N S
CONSTANTS: c_x VALUE 'X', " Flag X
c_h VALUE 'H', " Debit
c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
" Purchase Order
i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
" PO Invoice Values
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
" PO Invoice Values
i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
" PO Invoice Values
S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
s_bsart FOR t161-bsart,
s_ekgrp FOR t024-ekgrp,
s_bedat FOR ekko-bedat.
SELECTION-SCREEN END OF BLOCK b1.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
ULINE.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Display the Report Output data
PERFORM display_data.
At Line-Selection
AT LINE-SELECTION.
When double clicked on EBELN display the details of Purchase Doc
PERFORM line_sel.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
Validation of Vendor Number
CLEAR lfa1-lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Vendor'(002).
ENDIF.
ENDIF.
Validation of PO Number
CLEAR ekko-ebeln.
IF NOT s_ebeln[] IS INITIAL.
SELECT ebeln UP TO 1 ROWS
INTO ekko-ebeln
FROM ekko
WHERE ebeln IN s_ebeln.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Document Number'(003).
ENDIF.
ENDIF.
Validation of PO Document Type
CLEAR t161-bsart.
IF NOT s_bsart[] IS INITIAL.
SELECT bsart UP TO 1 ROWS
INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
ENDIF.
ENDIF.
Validation of Purchasing Group
CLEAR t024-ekgrp.
IF NOT s_ekgrp[] IS INITIAL.
SELECT ekgrp UP TO 1 ROWS
INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
ENDIF.
ENDIF.
ENDFORM. " validate_screen
*& Form fetch_data
Fetching the PO related data from Database Tables
FORM fetch_data .
CLEAR i_po.
REFRESH i_po.
SELECT a~ebeln " PO No.
b~ebelp " PO Item
a~bstyp " PO Category
a~bukrs " Company Code
a~bsart " PO Type
a~lifnr " Vendor No
a~ekgrp " Purchase Group
a~waers " Currency
a~bedat " PO Date
b~txz01 " Material Text
b~werks " Plant
b~lgort " Storage Location
b~matkl " Material Group
b~menge " PR Quantity
b~meins " UOM
b~bprme " Price Unit
b~netpr " Net price
b~peinh " Price Unit UOM
b~pstyp " Item Category
b~knttp " Account Assignment Category
INTO TABLE i_po
FROM ekko AS a JOIN ekpo AS b
ON a~ebeln = b~ebeln
WHERE a~ebeln IN s_ebeln AND
a~lifnr IN s_lifnr AND
a~ekgrp IN s_ekgrp AND
a~bsart IN s_bsart AND
a~bedat IN s_bedat.
SORT i_po BY ebeln ebelp.
break-point.
IF NOT i_po[] IS INITIAL.
Fetch the PO History/Invoice Details from EKBE Table
CLEAR i_ekbe.
REFRESH i_ekbe.
SELECT ebeln " PO No.
ebelp " PO Item
gjahr " Fiscal Year
belnr " PO Invoice No
menge " PR Quantity
wrbtr " Price in Local Currency
dmbtr " Price in Foreign Currency
waers " Currency
shkzg " Dr/Cr Indicator
INTO TABLE i_ekbe
FROM ekbe
FOR ALL ENTRIES IN i_po
WHERE ebeln = i_po-ebeln AND
ebelp = i_po-ebelp AND
vgabe = c_vgabe.
break-point.
IF sy-subrc = 0.
SORT i_ekbe BY ebeln ebelp.
LOOP AT i_ekbe.
IF i_ekbe-shkzg = c_h.
i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
ENDIF.
MODIFY i_ekbe.
ENDLOOP.
break-point.
Sum up the Item wise Invoice totals
LOOP AT i_ekbe.
AT END OF ebelp.
READ TABLE i_ekbe INDEX sy-tabix.
SUM.
MOVE-CORRESPONDING i_ekbe TO i_inv.
APPEND i_inv.
ENDAT.
CLEAR i_inv.
ENDLOOP.
SORT i_inv BY ebeln ebelp.
break-point.
ENDIF.
ENDIF.
Move the Vendor Name and Invoice Values to I_rep Internal Table
LOOP AT i_po.
MOVE-CORRESPONDING i_po TO i_rep.
CLEAR i_inv.
READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
ebelp = i_po-ebelp.
IF sy-subrc = 0.
i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
i_rep-curr = i_inv-waers.
ELSE.
i_rep-orewr = i_po-menge * i_po-netpr.
i_rep-curr = i_po-waers.
ENDIF.
break-point.
Get the Vendor Name
CLEAR lfa1-name1.
SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
WHERE lifnr = i_po-lifnr.
IF sy-subrc = 0.
i_rep-name1 = lfa1-name1.
ENDIF.
APPEND i_rep.
CLEAR i_rep.
break-point.
ENDLOOP.
SORT i_rep BY lifnr ebeln ebelp.
DELETE i_rep WHERE orewr LE 0.
break-point.
ENDFORM. " fetch_data
*& Form display_data
Display the Report Output data
FORM display_data .
DATA: lv_flag, " New Flag
lv_rec TYPE i. " No of Records
CLEAR lv_rec.
IF i_rep[] IS INITIAL.
MESSAGE e000 WITH 'No Data found'(022).
ELSE.
LOOP AT i_rep.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
At New Purchase Document
AT NEW ebeln.
WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
lv_flag = c_x.
lv_rec = lv_rec + 1.
ENDAT.
WRITE: 1 sy-vline,
12 sy-vline,13(4) i_rep-bsart,
17 sy-vline,18(10) i_rep-lifnr,
28 sy-vline,29(35) i_rep-name1,
64 sy-vline,65(4) i_rep-ekgrp,
69 sy-vline,70(10) i_rep-bedat,
80 sy-vline,81(5) i_rep-ebelp,
86 sy-vline,87(40) i_rep-txz01,
127 sy-vline,128(9) i_rep-matkl,
137 sy-vline,138(1) i_rep-pstyp,
139 sy-vline,140(1) i_rep-knttp,
141 sy-vline,142(4) i_rep-werks,
146 sy-vline,147(4) i_rep-lgort,
151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
165 sy-vline,166(3) i_rep-meins,
169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
185 sy-vline,186(4) i_rep-waers,
190 sy-vline,191(5) i_rep-peinh,
196 sy-vline,197(4) i_rep-bprme,
201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
217 sy-vline,218(4) i_rep-curr,
222 sy-vline,223(7) i_rep-bstyp centered,
230 sy-vline.
NEW-LINE.
hide: i_rep-ebeln.
ENDLOOP.
ULINE.
FORMAT COLOR OFF.
WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
lv_rec COLOR 3.
ENDIF.
ENDFORM. " display_data
*& Form header
Write the Report Header
FORM header .
FORMAT RESET.
header
WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
SKIP.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
12 sy-vline,13(4) 'Type'(007),
17 sy-vline,18(10) 'Vendor'(008) CENTERED,
28 sy-vline,29(35) 'Name'(009) CENTERED,
64 sy-vline,65(4) 'PGrp'(010) CENTERED,
69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
80 sy-vline,81(5) 'Item'(011),
86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
127 sy-vline,128(9) 'Mat.Group'(013),
137 sy-vline,138(1) 'I',
139 sy-vline,140(1) 'A',
141 sy-vline,142(4) 'Plnt'(014),
146 sy-vline,147(4) 'SLoc'(015),
151 sy-vline,152(13) 'Quantity'(016) CENTERED,
165 sy-vline,166(3) 'UoM'(017),
169 sy-vline,170(15) 'Net Value'(018) CENTERED,
185 sy-vline,186(4) 'Curr'(019),
190 sy-vline,191(5) 'Per'(020),
196 sy-vline,197(4) 'Unit'(021),
201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
217 sy-vline,218(4) 'Curr'(019),
222 sy-vline,223(7) 'Doc.Cat'(026),
230 sy-vline.
ULINE.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form LINE_SEL
*When double clicked on EBELN field display the details of Purchase Doc
FORM line_sel.
CASE sy-lsind.
WHEN '1'.
DATA: lv_field(20),
lv_value(10),
lv_bstyp like i_rep-bstyp.
clear: lv_bstyp,lv_value, lv_field.
GET CURSOR FIELD lv_field VALUE lv_value.
IF lv_field = 'I_REP-EBELN'.
IF NOT lv_value IS INITIAL.
READ LINE sy-index FIELD VALUE i_rep-bstyp
INTO lv_bstyp.
READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
if lv_bstyp = 'F'.
SET PARAMETER ID 'BES' FIELD lv_value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
SET PARAMETER ID 'VRT' FIELD lv_value.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
elseif lv_bstyp = 'A'.
SET PARAMETER ID 'ANF' FIELD lv_value.
CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
endif.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " line_sel
<b>Reward points for useful Answers</b>
Regards
Anji -
Dear Experts,
My client has change the release procedure, but they have not closed the open Purchase orders, now we are trying to close the open PO system is not allowing us to close the Open Po , complete delivery indicator is in grey mode , Can any body help me How i wll i close the Open Purchase orders
Thanks
HirwaniHi Hirwani,
I have seen this a few times before.
I found other customer has similar problem as the release strategy has changed
after creation of the SES please review the explanation from developer
:(whose release code is 03 )
When you try to revoke the acceptance of the service entry sheets
in ML81N or ML81, the 'Enter release code' pop up window appears, but
entering the code that is determined via the menu path Goto -> Entry
Sheet -> Release Strategy (which is the 03), the SES remains the same.
Nothing changes. The status does not vary and no error or warning
message is issued.
Checking the customizing for the release strategy, the release code
03 should have never been assigned to the SES 800024272 as the values
for the relevant characteristics were not included under that code.
I do not know how it was managed to accept the SES.
Now, when you try to revoke it, it seems that no release
strategy can be determined, not even including the values RCARESANO
and 012 between the valid values for the characteristics of the release
code 03 (RCARESANO as valid value for SUPERVISOR_SERVICIOS
(CESSR-ERNAM)and 012 as valid value for GRUPO_COMPRAS (CESSR-EKGRP)).
The only Possibility is to change now the SES so that the release
strategy can be re-determined by the system.This is the Only possible
way that the system can redetermine the Release Strategy , but it will
not be possible to do so as the SES is already accepted with the Old
strategy and it does not admit any further changes.
To be able to change it you would need to revoke the SES first,
but this Will also not be possible as the Release Strategy was changed
and the system still applies the old rules for determining the Release.
Solution to our Problem
The Only way to revoke the SES is to Restore back the Old Strategy that
was prior to 03 in the customizing.So now what will happen is that by
applying the Old Rules the System will be able to revoke the SES that#s
using the Old one. Once the necessary SES are revoked then go back to
customizing and apply the new strategy as it was did now, and
Change the SES and save , the new value of the Release Strategy will get
updated in the table ESSR and the field frgsx will now have 03.
Problems associated if the Release strategy is changed
Actually the release strategy is not supposed to be changed when there
are some documents in the System that uses it and even if you change the
Strategy the Old records will not get AUTOMATICALLY UPDATED by the
system.The Release Strategy routine has to run again to update the
values. This is Possible by changing the document SES ,
This change will happen only if the SES is not accepted and if its
accepted then you need to revoke and to revoke you need to restore the
old strategy , revoke and then change the SES , and have to go back to
customizing and Start using the New strategy from now on by doing so the
Routine will update the old record with the new strategy.
You may want to use CEKKO-BADAT(Requisition Date) or any other
structure in CEBAN or CEKKO and create a new release strategy
to differentiate the old release strategy.
Alternatively using the corresponding user exit to redermine the BAdI might help but my first suggestion would be the best.
Purchase requisition
M06E0002 - for item wise release
M06E0005 - for overall release
External purchasing document
M06E0004
Hope this is of help to you,
Kind Regards,
Matthew -
Function Module for open Purchase Order & Sales Order?
Hi, commonly I read the data from tables and calculate the open quantity for sales order and purchase order, but I want to know, are there any standard function modules for getting the list of open "purchase order" and "sales order" respectively?
Thanks and Regards.hi Ren,
u can check all these bapi's related to salesorder
BAPI_SALESORDER_CHANGE Sales order: Change Sales Order
BAPI_SALESORDER_CONFIRMDELVRY Sales Order: Confirmation of Delivery; Document Flow Update
BAPI_SALESORDER_CREATEFROMDAT1 Sales order: Create Sales Order
BAPI_SALESORDER_CREATEFROMDAT2 Sales order: Create Sales Order
BAPI_SALESORDER_CREATEFROMDATA Create Sales Order, No More Maintenance
BAPI_SALESORDER_GETLIST Sales order: List of all Orders for Customer
BAPI_SALESORDER_GETSTATUS Sales Order: Display Status
BAPI_SALESORDER_SIMULATE Sales Order: Simulate Sales Order
May be this FM can help you
MB_ADD_PURCHASE_ORDER_QUANTITY (Reading and adding open purchase order quantities)
Regards,
Naveen -
Table for open Purchase order and pending invoices for vendors
Hi,
Are there any table to know open Purchase orders and pending invoices for vendors.
Quick response will be appreciated.
Thanks & Regardshi,
Purchase Order:
S011:(PURCH: Purch. Group Statistics)
Statistics (SSOUR)
Version (VRSIO)
Month (SPMON)
Day (SPTAG)
Week (SPWOC)
Posting Period (SPBUP)
Purchasing Org (EKORG)
Purchasing Group (EKGRP)
Vendor No (LIFNR)
S012: (PURCHIS: Purchasing Statistics)
Statistics (SSOUR)
Version (VRSIO)
Month (SPMON)
Day (SPTAG)
Week (SPWOC)
Posting Period (SPBUP)
Purchasing Org (EKORG)
Purchasing Group (EKGRP)
Material No (MATNR)
Plant (WERKS)
Info Record Category (ESOKZ)
Material Group (MATKL)
Info Record (INFNR)
Country (LAND1)
EINE: (Purchasing Info Record: Purchasing
Organization Data)
Info Record (INFNR)
Purchasing Org (EKORG)
Info Record Type (ESOKZ)
Plant (WEKS)
EKET: (Delivery Schedules)
Purchasing Doc (EBELN)
Item (EBELP)
Delivery Schedule (ETENR)
EKPO: (Purchasing Document Item)
Purchasing Doc (EBELN)
Item (EBELP)
EKKN: (Account Assignment in Purchasing
Document)
Purchasing Doc (EBELN)
Item (EBELP)
Account Assignment (ZEKKN)
EKKO: (Purchasing Document Header)
Purchasing Doc (EBELN)
EORD: (Purchasing Source List)
Material No (MATNR)
Plant (WERKS)
Source List No (ZEORD)
thx,
Ganpat -
Unable to cancel - open purchase order where all items are removed
Hi all,
When We try to cancel/close open purchase order where all items are removed from item master ?
It showing error message,
"No matching records found 'Items' (OITM) "
Purcahse order was created on may-2007.
As purchase order showing in open item list.
Any solution for this problem ?
JeyakanthanSAP does allow items to be removed from the item master with open documents, but only if the documents have not created journals.
It does create headaches though, and this situation is one of them.
If there are not many items, I suggest you recreate the items, close the PO and just cancel the items rather than remove them.
The other workaround is to change the items on the PO to something different that is in the item master, then close it. -
Standard Purchase Order document printing
Hi All,
I need to modify the standard purchase order document and need to print a custom note in that based on the organization criteria.
i have downloaded the .xsl file and as i am not very familiar with that i cant understand the code.
1)could you please let me know, where to open that xsl file either in jdeveloper or some thing like notepad, textpad etc..
2)If possible please share the tags to print the custom message based on organization criteria
3) where to find the xml tags related to that to modify the xsl
Please help!!
Thanks!!We need to investigate this XSL tags and need to do R&D. I finally did it.
Maybe you are looking for
-
I purchased and downloaded Adobe Premier Elements 13 and when I try to install the program I get error code 7 that it cannot install on 64-bit system. However the system requirements for the program says it is supported on windows 8; 64-bit.
-
Details for 'Is Web service security available?'
Hi i am working on scenario rfc to webservice.Its as secued webserivce i need to do ssl configuration. In component monitoring..for the integration engine its in yellow... Details for 'Is Web service security available?' Communication error Proxy cal
-
UTF issue when moving from cf5 to cfmx7
It's been long overdue so am moving from CF5 to cfmx7 on my hosting account. The issue is that my hosting account has disabled cfcontent. I am getting gibberish outputting utf data from my database. It works fine on cf5 but on cfmx7 I read someplace
-
How to Debug ABAP/4 routine in Dynamic Selection?
Problem: I am not able to debug the ABAP/4 routine in data dynamic selection. Analysis: I typed /H on transaction command prompt. I entered to ABAP/4 debug mode. Then I am not able to debug my routine. Give me solution for this prob
-
Ni scope read vi significant figures
Hello everyone, Let me start by giving you some background. I'm trying to measure a RMS voltage (around 1.8V) using the NI-Scope Read Measurement Vi, which works fine, my problem is that I'm also trying to calculate the RMS current within the same Vi