Purchasing document flow.
Hello friends,
Could anyone plz tell me the link & the document flow between RFQ, purchase requisition, outline agreement, contract, quotation, scheduling agreement, PIR, puchase order?
When Source determination is carried out, what is the priority in which the source is determined?
Thanks,
Cmehra.
Dear C Mehra,
PR >Release the PR>RFQ>Quotation>Quotation Comparison>PO>Release the PO>GR>Invoice Verification
MM Process flow:
Process Flow
The typical procurement cycle for a service or material consists of the following phases:
1. Determination of Requirements
Materials requirements are identified either in the user departments or via materials planning and control. (This can cover both MRP proper and the demand-based approach to inventory control. The regular checking of stock levels of materials defined by master records, use of the order-point method, and forecasting on the basis of past usage are important aspects of the latter.) You can enter purchase requisitions yourself, or they can be generated automatically by the materials planning and control system.
2. Source Determination
The Purchasing component helps you identify potential sources of supply based on past orders and existing longer-term purchase agreements. This speeds the process of creating requests for quotation (RFQs), which can be sent to vendors electronically via SAP EDI, if desired.
3. Vendor Selection and Comparison of Quotations
The system is capable of simulating pricing scenarios, allowing you to compare a number of different quotations. Rejection letters can be sent automatically.
4. Purchase Order Processing
The Purchasing system adopts information from the requisition and the quotation to help you create a purchase order. As with purchase requisitions, you can generate Pos yourself or have the system generate them automatically. Vendor scheduling agreements and contracts (in the SAP System, types of longer-term purchase agreement) are also supported.
5. Purchase Order Follow-Up
The system checks the reminder periods you have specified and - if necessary - automatically prints reminders or expediters at the predefined intervals. It also provides you with an up-to-date status of all purchase requisitions, quotations, and purchase orders.
6. Goods Receiving and Inventory Management
Goods Receiving personnel can confirm the receipt of goods simply by entering the Po number. By specifying permissible tolerances, buyers can limit over- and underdeliveries of ordered goods.
7. Invoice Verification
The system supports the checking and matching of invoices. The accounts payable clerk is notified of quantity and price variances because the system has access to PO and goods receipt data. This speeds the process of auditing and clearing invoices for payment.
Pur info record is nothing but a master data like thing which will be maintained for different materials to determine the prices etc.It Specifies the number that uniquely identifies a record.
For Example: an info record is based on Plant Vendor and Material
Based on these three the Material Prices will be calculated
for different combinations different values are taken into consideration.
During pricing it brings these values automatically based on this info record.
Use ME11 Tcode to create this record.
Common Tables used by SAP MM
Below are few important Common Tables used in Materials Management Modules:
EINA Purchasing Info Record- General Data
EINE Purchasing Info Record- Purchasing Organization Data
MAKT Material Descriptions
MARA General Material Data
MARC Plant Data for Material
MARD Storage Location Data for Material
MAST Material to BOM Link
MBEW Material Valuation
MKPF Header- Material Document
MSEG Document Segment- Material
MVER Material Consumption
MVKE Sales Data for materials
RKPF Document Header- Reservation
T023 Mat. groups
T024 Purchasing Groups
T156 Movement Type
T157H Help Texts for Movement Types
MOFF Lists what views have not been created
A501 Plant/Material
EBAN Purchase Requisition
EBKN Purchase Requisition Account Assignment
EKAB Release Documentation
EKBE History per Purchasing Document
EKET Scheduling Agreement Schedule Lines
EKKN Account Assignment in Purchasing Document
EKKO Purchasing Document Header
EKPO Purchasing Document Item
IKPF Header- Physical Inventory Document
ISEG Physical Inventory Document Items
LFA1 Vendor Master (General section)
LFB1 Vendor Master (Company Code)
NRIV Number range intervals
RESB Reservation/dependent requirements
T161T Texts for Purchasing Document Types
Tcodes:
InfoRecord - ME11
Source List - ME01
RFQ to Vendor - ME41
Sheduling Agreement - ME31L
Contract - ME31K
Raising Quotation - ME47
Comparison of Price - ME49
Creation of PO - ME21N
Goods Receipt - MIGO
Invoice (Bill PAssing) - MIRO
Goods Issue - MB1A
Physical Inventory - MI01( Create doc)
MI04 (Enter Count)
MI07 (Post)
Visit the following thread:
New to Materials Management / Warehouse Management?
http://www.sapgenie.com/abap/tables_mm.htm
http://www.sap-img.com/sap-download/sap-tables.zip
http://www.allsaplinks.com/material_management.html
http://www.training-classes.com/course_hierarchy/courses/2614_SAP_R_3_MM_Invoice_Verification_-_Rel_4_x.php
http://www.sapfriends.com/sapstuff.html
check this out
MM flow
MM flow
MM flow
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSMAT/PSMAT.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CAARCMM/CAARCMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MYSAP/SR_MM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/LOMDMM/LOMDMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMMM/BCBMTWFMMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMIVMVAL/MMIVMVAL.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMWMLVS/MMWMLVS.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMISVE/MMISVE.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSMAT/PSMAT.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CAARCMM/CAARCMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MYSAP/SR_MM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MYSAP/SR_MM.pdf
http://www.sap-basis-abap.com/mm/sap-mm-certification-samples.htm
http://www.sap-img.com/mm015.htm
http://sap.ittoolbox.com/documents/popular-q-and-a/sap-mm-interview-questions-3586
Regards,
Naveen.
Similar Messages
-
Hi Guys,
We have a process where we proccure few parts externally. When a sales order is created in our system based on the item category config we are able to create a purchase requition automatically. This Preq is further used to create a PO based on which the purchasing group proccures the part from the vendor.
We are trying to identify if there is a way to find out a way if we can relate the PO number created in the sales document flow? Currently we are not able to view the PO number in the sales document flow. We are trying to identify if this is possible and if yes what needs to ne configuered to enable PO number linking in sales document flow?
Any pointers?
Cheers
VJHi Bikash,
The PO field which u r referring to on the VA01 screen is the PO number against which a SO is created. This PO number is the customers PO number. My requirement is i need to store the Intercompany PO number which is the PO number created to procure the part externally from the vendor. So its the vendor PO number and not the customer PO number.
Secondly if i try to misuse any other field to store this PO number it dosent make sense as it would not show up in the document flow screen so it would be of no use to us. We want to enable it the std way and i am sure SAP has provided some way to do it.
I check the OSS notes and found some interesting tips working on that hopefully should be able to resolve it.
Cheers
VJ -
Document flow in Purchase order
Hi,
How can check the document flow in purchase order(me22n). Please help me on this issue..
Thanks..HI
There is no document flow like SD in MM
Inorder to get the doc flow for a PO you can goto ME23N or ME22n and in item details click on PURCHASE ORDER HISTORY TAB here you will get the GR , IR etc.
Alternatively you can goto table EKBE and enter the EBELN (PO number ) and execute you will get the doc flow
regards
Prashanth -
Document flow of Inbound Delivery
Dear Gurus,
We have upgraded to support pack SAPKH60018 from SAPKH60010.
Earlier the process for goods receipt was followed as described below
1. Purchase order
2. Inbound Delivery
3. GR in to Blocked stock against Inbound Delivery (mvmt type 103)
3. Release GR blocked stock (mvmt type 105)
Now after upgrading the support pack when GR blocked stock is made against the Inbound Delivery system is not updating the Document number in the document flow and PGR button is not disabled though 103 mvmt type document is made through migo.
System is also not allowing to make the Release GR block stock through MIGO and prompting to use Inbound Delivery Dialog instead.
Request for immediate assitance in regard to this issue.
Regards
Danish Alam.With the support pack in case if material is serialized for such plant you can post goods receipt only in VL32N which would happen only during 105 mvt type and you cannot post goods receipt using MIGO.
-
Regarding invoice no. displaying in non-invoice no.list in document flow
Hi All,
I have 3 radio buttons. if i select 1st one only orders with invoice list should be displayed and for 2nd only orders without invoice list should be displayed and for the 3rd both should be displayed.
but here the problem was when i select the 2nd radiobutton and see the output it was showing all the orders without invoice no. but when i see the document flow for the first order it was showing invoice no. in DOCUMENT FLOW. but it was not displaying in the output.
So any one can help me in this issue, i am sending the select statements i have used,
Get the invoice numbers and the corresponding order numbers for the
date range specified on the selection screen.
SELECT vbrkvbeln vbrpposnr vbrp~matnr
vbrpaubel vbfaposnv
INTO CORRESPONDING FIELDS OF TABLE i_invoice_items FROM vbrk
INNER JOIN vbpa ON vbrkvbeln = vbpavbeln
INNER JOIN vbrp ON vbrkvbeln = vbrpvbeln
INNER JOIN vbfa ON vbrkvbeln = vbfavbeln AND
vbrpposnr = vbfaposnn AND
vbrpaubel = vbfavbelv
WHERE vbrk~fkdat BETWEEN s_fkdat-low AND s_fkdat-high AND
vbrk~bukrs IN s_bukrs AND
vbpa~parvw = 'WE' AND
vbpa~kunnr IN s_kunnr AND
vbrk~vkorg IN s_vkorg AND
vbrp~prodh IN s_prdha AND
vbrp~werks IN s_werks AND
vbfavbelv = vbrpaubel AND
vbfa~vbtyp_n = 'M' AND
vbfa~vbtyp_v = 'C'.
get all open orders i.e. orders that have not been invoiced - Start.
Step 1 - Get all invoiced orders.
SELECT vbfavbelv vbfaposnv
INTO CORRESPONDING FIELDS OF TABLE i_inv_ord_items
FROM vbfa
INNER JOIN vbpa ON vbfavbelv = vbpavbeln
INNER JOIN vbak ON vbfavbelv = vbakvbeln
INNER JOIN vbap ON vbfavbelv = vbapvbeln AND
vbfaposnv = vbapposnr
WHERE vbtyp_n = 'M' AND
vbtyp_v = 'C' AND
vbpa~parvw = 'WE' AND
vbpa~kunnr IN s_kunnr AND
vbak~vkorg IN s_vkorg AND
vbak~bukrs_vf IN s_bukrs AND
vbap~abgru = ' ' AND
vbap~werks IN s_werks AND
vbap~prodh IN s_prdha.
STEP 2 - Get all orders that have not been invoiced.
Step 2a) Get all orders that match the filters specified on the selection screen
SELECT vbakvbeln vbapposnr matnr
INTO CORRESPONDING FIELDS OF TABLE i_ord_items FROM vbak
INNER JOIN vbap ON vbakvbeln = vbapvbeln
INNER JOIN vbpa ON vbakvbeln = vbpavbeln
WHERE vbpa~parvw = 'WE' AND
vbpa~kunnr IN s_kunnr AND
vbak~vkorg IN s_vkorg AND
vbak~bukrs_vf IN s_bukrs AND
prodh IN s_prdha AND
werks IN s_werks AND
vbap~abgru = ' '.
SORT i_ord_items BY vbeln posnr.
Step 2b) Delete orders that have been invoiced by
deleting records found in Step 1
LOOP AT i_inv_ord_items INTO wa_inv_ord_items.
READ TABLE i_ord_items
INTO wa_ord_items
WITH KEY vbeln = wa_inv_ord_items-vbelv
posnr = wa_inv_ord_items-posnv
BINARY SEARCH.
IF sy-subrc = 0.
gv_index = sy-tabix.
DELETE i_ord_items
INDEX gv_index.
ENDIF.
ENDLOOP.
Step 2c) Remove entries that exist in the invoiced orders internal table
to avoid duplicate entries
SORT i_ord_items BY vbeln posnr.
LOOP AT i_invoice_items INTO wa_invoice_items.
READ TABLE i_ord_items
INTO wa_ord_items
WITH KEY vbeln = wa_invoice_items-aubel
posnr = wa_invoice_items-posnv
BINARY SEARCH.
IF sy-subrc = 0.
gv_index = sy-tabix.
DELETE i_ord_items
INDEX gv_index.
ENDIF.
ENDLOOP.
get all open orders i.e. orders that have not been invoiced - End.
Combine the open orders and invoiced orders into one internal table
--Code added by CHHEDAM.SMS129705.Date- 03/28/2007--
Clear 'invoiced' orders if open orders are opted.
IF g_open EQ 'X'.
CLEAR: i_invoice_items[].
ENDIF.
--End of code added by CHHEDAM.SMS129705.Date- 03/28/2007--
IF g_open EQ 'X' OR g_both EQ 'X'.
LOOP AT i_ord_items INTO wa_ord_items.
CLEAR wa_invoice_items.
MOVE: wa_ord_items-vbeln TO wa_invoice_items-aubel,
wa_ord_items-posnr TO wa_invoice_items-posnv,
wa_ord_items-matnr TO wa_invoice_items-matnr.
APPEND wa_invoice_items TO i_invoice_items.
ENDLOOP.
ENDIF.
SORT i_invoice_items BY vbeln.
IF i_invoice_items[] IS NOT INITIAL.
SELECT *
FROM vbak
INTO TABLE gt_vbak_table
FOR ALL ENTRIES IN i_invoice_items
WHERE vbeln = i_invoice_items-aubel.
IF sy-subrc = 0.
DELETE gt_vbak_table
WHERE vkorg NOT IN s_vkorg OR
bukrs_vf NOT IN s_bukrs OR
auart NOT IN s_auart.
ENDIF.
SORT gt_vbak_table BY vbeln.
IF gt_vbak_table[] IS NOT INITIAL.
SELECT *
FROM vbap
INTO TABLE gt_vbap_table
FOR ALL ENTRIES IN gt_vbak_table
WHERE vbeln = gt_vbak_table-vbeln.
IF sy-subrc = 0.
DELETE gt_vbap_table
WHERE werks NOT IN s_werks OR
prodh NOT IN s_prdha.
ENDIF.
ENDIF.
ENDIF.
SORT gt_vbak_table BY vbeln.
SORT gt_vbap_table BY vbeln posnr.
LOOP AT i_invoice_items INTO wa_invoice_items.
READ TABLE gt_vbak_table
INTO gt_vbak_table_line
WITH KEY vbeln = wa_invoice_items-aubel
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-aubel = gt_vbak_table_line-vbeln.
display_table_line-vkorg = gt_vbak_table_line-vkorg.
display_table_line-auart = gt_vbak_table_line-auart.
display_table_line-bukrs_vf = gt_vbak_table_line-bukrs_vf.
display_table_line-bill_to = gt_vbak_table_line-kunnr.
display_table_line-vdatu = gt_vbak_table_line-vdatu.
display_table_line-faksk = gt_vbak_table_line-faksk.
display_table_line-lifsk = gt_vbak_table_line-lifsk.
ENDIF.
READ TABLE gt_vbap_table
INTO gt_vbap_table_line
WITH KEY vbeln = wa_invoice_items-aubel
posnr = wa_invoice_items-posnv
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-posnr = gt_vbap_table_line-posnr.
display_table_line-matnr = gt_vbap_table_line-matnr.
display_table_line-kdmat = gt_vbap_table_line-kdmat.
display_table_line-maktx = gt_vbap_table_line-arktx.
display_table_line-werks = gt_vbap_table_line-werks.
display_table_line-prodh = gt_vbap_table_line-prodh.
display_table_line-kwmeng = gt_vbap_table_line-kwmeng.
display_table_line-vrkme = gt_vbap_table_line-vrkme.
display_table_line-waerk = gt_vbap_table_line-waerk.
display_table_line-net_price = gt_vbap_table_line-netwr.
display_table_line-kzwi1 = gt_vbap_table_line-kzwi1.
display_table_line-kzwi2 = gt_vbap_table_line-kzwi2.
display_table_line-kzwi3 = gt_vbap_table_line-kzwi3.
display_table_line-kzwi4 = gt_vbap_table_line-kzwi4.
display_table_line-kzwi5 = gt_vbap_table_line-kzwi5.
display_table_line-wavwr = gt_vbap_table_line-wavwr.
display_table_line-mwsbp = gt_vbap_table_line-mwsbp.
ENDIF.
display_table_line-vbeln = wa_invoice_items-vbeln.
APPEND display_table_line TO display_table_line.
CLEAR wa_invoice_items.
CLEAR display_table_line.
ENDLOOP.
Get the Purchase Order Number, Sales District and Desc
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_vbkd_table.
CLEAR: gt_t171t_table.
SELECT *
FROM vbkd
INTO TABLE gt_vbkd_table
FOR ALL ENTRIES IN display_table_line
WHERE vbeln = display_table_line-aubel.
SORT gt_vbkd_table BY vbeln.
IF gt_vbkd_table[] IS NOT INITIAL.
SELECT *
FROM t171t
INTO TABLE gt_t171t_table
FOR ALL ENTRIES IN gt_vbkd_table
WHERE bzirk = gt_vbkd_table-bzirk.
ENDIF.
SORT gt_t171t_table BY bzirk.
ENDIF.
Get Ship To Account
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_vbpa_table.
SELECT *
INTO TABLE gt_vbpa_table
FROM vbpa
FOR ALL ENTRIES IN display_table_line
WHERE vbeln = display_table_line-aubel.
IF sy-subrc = 0.
DELETE gt_vbpa_table
WHERE parvw <> 'WE'.
ENDIF.
ENDIF.
SORT gt_vbpa_table BY vbeln parvw.
Get Ship To Name and City
IF gt_vbpa_table[] IS NOT INITIAL.
CLEAR: gt_kna1_table.
SELECT *
INTO TABLE gt_kna1_table
FROM kna1
FOR ALL ENTRIES IN gt_vbpa_table
WHERE kunnr = gt_vbpa_table-kunnr.
ENDIF.
SORT gt_kna1_table BY kunnr.
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_vbpa2_table.
SELECT *
INTO TABLE gt_vbpa2_table
FROM vbpa
FOR ALL ENTRIES IN display_table_line
WHERE vbeln = display_table_line-aubel.
IF sy-subrc = 0.
DELETE gt_vbpa2_table
WHERE parvw <> 'ZS' .
ENDIF.
ENDIF.
SORT gt_vbpa2_table BY vbeln parvw.
IF gt_vbpa2_table[] IS NOT INITIAL.
CLEAR: gt_kna12_table.
SELECT *
INTO TABLE gt_kna12_table
FROM kna1
FOR ALL ENTRIES IN gt_vbpa2_table
WHERE kunnr = gt_vbpa2_table-kunnr.
ENDIF.
SORT gt_kna12_table BY kunnr.
Get Sales Group and Desc
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_knvv_table.
SELECT *
INTO TABLE gt_knvv_table
FROM knvv
FOR ALL ENTRIES IN display_table_line
WHERE kunnr = display_table_line-bill_to AND
vkorg = display_table_line-vkorg AND
vtweg = '01'.
SORT gt_knvv_table BY kunnr vkorg vtweg.
IF gt_knvv_table[] IS NOT INITIAL.
CLEAR: gt_tvgrt_table.
SELECT *
INTO TABLE gt_tvgrt_table
FROM tvgrt
FOR ALL ENTRIES IN gt_knvv_table
WHERE vkgrp = gt_knvv_table-vkgrp AND
spras = sy-langu.
ENDIF.
SORT gt_tvgrt_table BY vkgrp spras.
ENDIF.
Get Order Status for the line items in the sales orders
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_vbup_table.
SELECT *
INTO TABLE gt_vbup_table
FROM vbup
FOR ALL ENTRIES IN display_table_line
WHERE vbeln = display_table_line-aubel AND
posnr = display_table_line-posnr.
ENDIF.
SORT gt_vbup_table BY vbeln posnr.
IF gt_vbup_table[] IS NOT INITIAL.
CLEAR: gt_tvbst_table.
SELECT *
INTO TABLE gt_tvbst_table
FROM tvbst
FOR ALL ENTRIES IN gt_vbup_table
WHERE spras = sy-langu AND
tbnam = 'VBUP' AND
fdnam = 'GBSTA' AND
statu = gt_vbup_table-gbsta.
ENDIF.
SORT gt_tvbst_table BY spras tbnam fdnam statu.
Get Blocked Reason Text for Billing and Delivery Block
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_tvfst_table.
SELECT *
INTO TABLE gt_tvfst_table
FROM tvfst
FOR ALL ENTRIES IN display_table_line
WHERE spras = sy-langu AND
faksp = display_table_line-faksk.
ENDIF.
SORT gt_tvfst_table BY spras faksp.
IF display_table_line[] IS NOT INITIAL.
CLEAR: gt_tvlst_table.
SELECT *
INTO TABLE gt_tvlst_table
FROM tvlst
FOR ALL ENTRIES IN display_table_line
WHERE spras = sy-langu AND
lifsp = display_table_line-lifsk.
ENDIF.
SORT gt_tvlst_table BY spras lifsp.
SORT display_table_line BY vbeln aubel posnr matnr.
DELETE ADJACENT DUPLICATES
FROM display_table_line
COMPARING aubel posnr matnr .
LOOP AT display_table_line INTO display_table_line.
gv_index = sy-tabix.
Get the Purchase Order Number, Sales District and Desc
READ TABLE gt_vbkd_table
INTO gt_vbkd_table_line
WITH KEY vbeln = display_table_line-aubel
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-bstkd = gt_vbkd_table_line-bstkd.
display_table_line-bzirk = gt_vbkd_table_line-bzirk.
READ TABLE gt_t171t_table
INTO gt_t171t_table_line
WITH KEY bzirk = gt_vbkd_table_line-bzirk
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-bztxt = gt_t171t_table_line-bztxt.
ENDIF.
ENDIF.
Get Ship To Account
READ TABLE gt_vbpa_table
INTO gt_vbpa_table_line
WITH KEY vbeln = display_table_line-aubel
parvw = 'WE'
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-ship_to = gt_vbpa_table_line-kunnr.
ENDIF.
Get Ship To Name and City
READ TABLE gt_kna1_table
INTO gt_kna1_table_line
WITH KEY kunnr = display_table_line-ship_to
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-ship_to_name = gt_kna1_table_line-name1.
display_table_line-ship_to_city = gt_kna1_table_line-ort01.
ENDIF.
Get Ship To Salesman Number
READ TABLE gt_vbpa2_table
INTO gt_vbpa2_table_line
WITH KEY vbeln = display_table_line-aubel
parvw = 'ZS'
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-salesrep = gt_vbpa2_table_line-kunnr.
ENDIF.
Get Ship To Salesman
READ TABLE gt_kna12_table
INTO gt_kna12_table_line
WITH KEY kunnr = display_table_line-salesrep
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-ship_to_srep = gt_kna12_table_line-name1.
ENDIF.
Get Sales Group and Desc
READ TABLE gt_knvv_table
INTO gt_knvv_table_line
WITH KEY kunnr = display_table_line-bill_to
vkorg = display_table_line-vkorg
vtweg = '01'
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-vkgrp = gt_knvv_table_line-vkgrp.
READ TABLE gt_tvgrt_table
INTO gt_tvgrt_table_line
WITH KEY vkgrp = gt_knvv_table_line-vkgrp
spras = sy-langu
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-bezei = gt_tvgrt_table_line-bezei.
ENDIF.
ENDIF.
Get Order Status for the line items in the sales orders
READ TABLE gt_vbup_table
INTO gt_vbup_table_line
WITH KEY vbeln = display_table_line-aubel
posnr = display_table_line-posnr
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-gbsta = gt_vbup_table_line-gbsta.
ENDIF.
READ TABLE gt_tvbst_table
INTO gt_tvbst_table_line
WITH KEY spras = sy-langu
tbnam = 'VBUP'
fdnam = 'GBSTA'
statu = display_table_line-gbsta
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-status = gt_tvbst_table_line-bezei.
ENDIF.
Get Blocked Reason Text for Billing and Delivery Block
READ TABLE gt_tvfst_table
INTO gt_tvfst_table_line
WITH KEY spras = sy-langu
faksp = display_table_line-faksk
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-fakskt = gt_tvfst_table_line-vtext.
ENDIF.
SELECT SINGLE vtext INTO display_table_line-lifskt
READ TABLE gt_tvlst_table
INTO gt_tvlst_table_line
WITH KEY spras = sy-langu
lifsp = display_table_line-lifsk
BINARY SEARCH.
IF sy-subrc = 0.
display_table_line-lifskt = gt_tvlst_table_line-vtext.
ENDIF.
Get Total Net and Total Gross Invoice Amount
display_table_line-brtwr = display_table_line-kzwi1 -
display_table_line-kzwi2 -
display_table_line-kzwi3 -
display_table_line-kzwi4 -
display_table_line-kzwi5.
Calculate Discount
display_table_line-disc = display_table_line-kzwi2 +
display_table_line-kzwi4.
Unit Price and cost.
IF display_table_line-kwmeng NE 0.
display_table_line-unit_price = display_table_line-brtwr /
display_table_line-kwmeng.
display_table_line-wavwr = display_table_line-wavwr /
display_table_line-kwmeng.
ELSE.
display_table_line-wavwr = 0.
ENDIF.
Calculate the GPM percentage.
IF display_table_line-unit_price NE 0.
display_table_line-gpm_perc = ( ( display_table_line-unit_price -
display_table_line-wavwr ) /
display_table_line-unit_price ) * 100.
ENDIF.
Update the internal table.
SHIFT display_table_line-matnr LEFT DELETING LEADING '0'.
SHIFT display_table_line-bill_to LEFT DELETING LEADING '0'.
SHIFT display_table_line-ship_to LEFT DELETING LEADING '0'.
SHIFT display_table_line-vbeln LEFT DELETING LEADING '0'.
SHIFT display_table_line-aubel LEFT DELETING LEADING '0'.
WRITE display_table_line-vdatu TO display_table_line-vdatu_char MM/DD/YYYY.
MODIFY display_table_line
INDEX gv_index
FROM display_table_line
TRANSPORTING vbeln aubel bzirk bztxt
bill_to ship_to ship_to_name ship_to_city
salesrep ship_to_srep vkgrp bezei
bstkd gbsta status fakskt
lifskt matnr vdatu brtwr
disc unit_price wavwr gpm_perc
vdatu_char.
CLEAR: display_table_line, tvbst_wa.
ENDLOOP.
IF s_vkgrp[] IS NOT INITIAL.
DELETE display_table_line WHERE vkgrp NOT IN s_vkgrp.
ENDIF.
IF s_bzirk[] IS NOT INITIAL.
DELETE display_table_line WHERE bzirk NOT IN s_bzirk.
ENDIF.
IF s_srep[] IS NOT INITIAL.
DELETE display_table_line WHERE salesrep NOT IN s_srep.
ENDIF.
SORT display_table_line BY vkorg vkgrp ship_to_srep bill_to.
DELETE display_table_line WHERE aubel = ' '.
ENDMETHOD. "read_main_data
METHOD display_report.
CALL METHOD alv_class->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
is_layout = gv_layout
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
it_outtab = display_table_line[]
it_fieldcatalog = gt_field_cat
IT_SORT =
IT_FILTER =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMETHOD. "display_report
Thanks in Advance,
Ramana Prasad.THi Janakiraman,
unfortunately we don't have an upload storage here in the SDN. At this point we have two options:
a) you could upload the screenshots to a website that provides storage and then you can paste the url to the screenshots here
b) we can route this through our support channel. You can send a message to our support team in the <a href="http://service.sap.com/smb/sbo/support">SAP Business One Support Center</a> in our <a href="http://service.sap.com/smb/sbo">SAP PartnerEdge Portal</a>.
Please use the method that works best for you.
Thanks,
Torsten -
Reclamations and returns DOCUMENT FLOW
Hi,
I ve to enhance the QM01/02/03 ,DOCUMENT FLOW when ever we press document flow push button,
QM02-
provide any QN number,
in the menu
extras -> document notifications->document flow->list
rifht now it is showing only 2/3 documents in tree
but it should be modified to
The standard SAP Document Flow, but it must be modified, in order to show all the subsequent documents, and the user must be able to go directly to each subsequent documents.
The flow must follow this hierarchy:
For documents type ZS/ZV
- Purchase Order
- QM Notif.
- Stock transfer or Scrapping
- Return Purchase Order
- Delivery
- Goods issue
- Goods receipt
- Invoice
For document Type: ZC.
- Reference document
- QM Notif.
- Return Sales Order or Credit memo req. or Debit memo req.
- Return invoice or Credit memo or Debit memo
This document flows should be shown for each QN in the QM11 transaction.
menu
Notification -> Display Document flow
It is a network flow that should as is but all the documents it should show.
it is internally calling Business objects
1. Goto transaction "QM02",
2. Provide some QN number
Observe: LIST
GRAPHIC
If u goto the sytem→status u ll find the program SAPLIQS0
Find the Function code responsible for DOCF
It will call a report program RIBELF20
For other GRAPHIC shown in above picture
U will find form exit FORM fcode_docf2_f00
Where we can create new program like above and we can insert our own Z Program.
But if u go to the program level and debug,
There is one FM "DISPLAY_DOCUMENT_FLOW_ALV" that is responsible for such type of display,
No issues,
But internally before that he extracted all the business Objects responsible for that.
How can I get all the business objects that are required to me to show the all the documents that I have already sent to u.
Below are my findings about the document flow at QM11 level.
When ever u press the Display document flow.
The O/P is
1. QM11 is the standard transaction using program RQMELL10.
We can not modify the standard SAP transaction, and insert our code in this program.
Alternative: we have to copy the program in Z namespace and attach the same to Z transaction code.
Confirm the same whether the users are ready to use the Z transaction.
2. Even though they accept for this:
The function Module responsible for the Network type of display is QM11_LESEN_BELEGDATEN_ALLG.
With the input parameters as (a) QN number (b) Business Object i.e. BUS2078 (Quality notification number) (c) maximum number of steps
The standard function module should be used in Z namespace program; the standard function module internally calls one more Function module
NERL_GET_NEIGHBOURHOOD that is responsible for the getting business objects of the corresponding number.
But this function module gets the only three documents data but not the else that are mentioned in the FD.
<b>Kindly provide any function module, which can meet such criteria, and the business objects of the related documents in the flow that is required.</b>Hi,
Goto the T.Code "VOV7".
Select your item category.
Details.
Maintain the Completion rule as "A(Item is completed with the first reference)".
Save.
If you do this after the follow on document is created,the item is completed and you cannot reject the item.
For your second question,
Goto the T.Code "VTLA".
Select your valid combination.
Click on item.Select your item category.Details.
There is a check box called as "Update document flow".Tick that one.
Save.
Regards,
Krishna. -
BAPI_GOODSMVT_CREATE not updating document flow
I created a function to create an inbound delivery against a PUrchase Order and then Post the goods receipt against that inbound delivery. The inbound delivery and the material document are created correctly in the DEV environment.
The issue is that in our QA environment the document are created correctly but the document flow is not updated at all!! Any idea of where should I be looking at to see difference between these environments?
I'm using BAPI BAPI_GOODSMVT_CREATE to Post the Goods Receipt.
Thanks.sort delivery by vbeln posnr.
loop at delivery.
Populate BAPI variables ready for call
goodsmvt_header-pstng_date = sy-datlo.
goodsmvt_header-doc_date = sy-datlo.
goodsmvt_header-bill_of_lading = delivery-lifex.
goodsmvt_header-ref_doc_no = delivery-lifex.
goodsmvt_header-pr_uname = sy-uname.
goodsmvt_header-header_txt = 'Auto GR of I/Bound Del'.
goodsmvt_code-gm_code = con_move_code.
goodsmvt_item-material = delivery-matnr.
goodsmvt_item-plant = delivery-werks.
goodsmvt_item-stge_loc = delivery-lgort.
goodsmvt_item-move_type = con_move_type.
goodsmvt_item-vendor = delivery-lifnr.
goodsmvt_item-entry_qnt = delivery-lfimg.
goodsmvt_item-entry_uom = delivery-meins.
goodsmvt_item-mvt_ind = con_move_item.
goodsmvt_item-deliv_numb_to_search = delivery-vbeln.
goodsmvt_item-deliv_item_to_search = delivery-posnr.
append goodsmvt_item.
clear goodsmvt_item.
endloop.
*Call BAPI
call function 'BAPI_GOODSMVT_CREATE'
exporting
goodsmvt_header = goodsmvt_header
goodsmvt_code = goodsmvt_code
TESTRUN = ' '
importing
goodsmvt_headret = goodsmvt_headret
materialdocument = materialdocument
matdocumentyear = matdocumentyear
tables
goodsmvt_item = goodsmvt_item
GOODSMVT_SERIALNUMBER =
return = return.
Check BAPI RETURN table to ensure call was successful
loop at return where type = 'E'.
exit.
endloop.
if sy-subrc eq 0.
rollback work.
message e999 with 'GR BAPI Failed, process delivery manually'.
endif. -
Hello,
On creating a service order in CRM, the purchase requisition is created automatically in R/3 for the spare parts entered.
But this PR information is not getting updated in the service order's document flow in CRM.
I analysed the flow and found that PR gets successfully created and sends back the document flow data to CRM inbound queue.
The BDoc type involved is CRM_SRV_XTN.
In it's Extended part, there is a field called ORDERADM_H_GUID which is correctly filled in the BAPIMTCS structure in R/3 which is converted to probably XML format through macro MOVE_CASTING and sent to CRM inbound queue (function module BAPI_CRM_SAVE).
However, on debugging the respective inbound queue in CRM, I noticed that the field ORDERADM_H_GUID value is not the same as filled in R/3 but some CONSTANT value like 00230023002300560023002300230023 in all the cases.
Also, FYI, the fieldu2019s value in R3 after conversion looks like as following u2013
#########################0000000000 ########䣴Ώ삷#耀諣뢮######## 48F4038FC0B70093E10080008AE3B8AE
While in CRM i.e. FM BAPI_CRM_SAVE it looks as follows u2013
#########################0000000000 ######################## 48F4038FC0B70093E10080008AE3B8AE
So there I feel that the value what is sent from R/3 is not the same as recieved in CRM, on XML conversion.
Please advise what could be the reason for this anomaly.
Thanks and regards,
Manishunfortunately document flow in PS is not like in SD
only in ECP there is a limited possibility
you can see the line item report and activate the relationship browser which will give the details of the documents related to that posting
other than that nothing -
FM to get document flow of Trading Contract
Hi,
In Trading contract display transaction WB23 we can see the document flow. For a processed Trading contract (Purchase side), in document flow we can see PO, Inbound delivery, Goods reciept, Nomination etc.
Is there any FM to get all this document flow with full hierachy in a single shot? if not please suggest a combination of FMs to get this information.
I found FM BAPI_TRADINGCONTRACT_GET_FLOW, which gives only the immediate follow-on document info like PO/SO details.
Regards,
Sudhakar.The FM MMPUR_EKBE_ARRAY_READ gives the Purchase order history only. It gives only the material document information but not the inbound delivery or nomination.
I can use the FM BAPI_PO_GETDETAIL to get the confirmations, history and schedules of Purchase Order. -
SRM purchasing document updated in enhancement only in Debug mode
Hi everybody,
I created an enhancement for a SRM include ( LBBP_SOCO_APPF0R -> Form CREATE_FOLLOW_ON_DOCUMENT) because existing BAdI are not called at necessary moment to update Shopping Cart (purchasing document) CUF items.
ABAP code i added allows to get data from follow-on document, then i get details from parent document, i update this document with values for CUF fields, i save this document and finally i run function module BAPI_TRANSACTION_COMMIT (with or without export parameter 'WAIT').
Nevertheless, those CUF fields are correctly updated but only when i am in debugging process flow with an external break-point.
When i delete this debug point, CUF fields are not updated any more !
Is anyone have an idea to solve this problem ?
Regards.
Laurent.The problem may come from the network system or something's wrong in the system Because I have run the tcode and It work properly.
Thanks,
Hung -
"Document Flow cannot be updated" warning msg in GR for STO
Hi All,
I get a warning when I try to do GR for a STO (Oub Deliver created for this STO and PGI done...and stock is in Stock in Transit).
What does this warning mean?
Thanks in advance!
Edited by: Duke Dukester on Oct 9, 2008 2:44 AMHi,
I think you are trying Goods Receipt in receiving plant w.r.t. Stock Transport Order instead of Outbound Delivery.
As per SAP recommendation, GR in receiving plant should be done w.r.t. Outbound delivery not STPO so that it will update Sales Document Flow also along with PO History.
In MIGO, try Goods Receipt --> Outbound Delivery instead of Purchase Order and then check. -
Hi All,
Can u please tell me which table is used to see PO document flow?
Thanks & Regards
SanthoshHi
There is no straight table in MM like in SD table VBFA which have all doc flow
check the tables
EBAN,EKKO,EKPO,EKET,EKBE,MKPF,MSEG,RBKP,RSEG etc
for the flow
MM Cycle:
Purchase Requisition-> Staff in an orgn places Pur requisition for want of some goods/products - ME51
Request for Quotation(RFQ)-> The Purchase dept in the orgn calls/requests for the quotation for the products against which PR was raised. - ME41
Vendor Evaluation->After receving the RFQ's, after comparison a Vendor is finalised based on the terms and conditions.
Purchase Order(PO)-> Pur order was issued to that vendor asking him to supply the goods/products -ME21N
Goods Receipt Note(GRN)->Vendor supplies the material/Products to the orgn-
MB01
Goods Issue (GI) -> People receives their respective itesm for which they have placed the Requisitions
Invoice Verification-> ALong with the Material Vendor submits a Invoice for which the Company Pays the amount - .MIRO
Data to FI -> data will be posted to FI as per the vendor invoices
you better go through all these links u will get all the info what ever u need
for mm
http://www.sapgenie.com/abap/tables_mm.htm
http://www.sap-img.com/sap-download/sap-tables.zip
http://www.allsaplinks.com/material_management.html
http://www.training-classes.com/course_hierarchy/courses/2614_SAP_R_3_MM_Invoice_Verification_-_Rel_4_x.php
http://www.sapfriends.com/sapstuff.html
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSMAT/PSMAT.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CAARCMM/CAARCMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MYSAP/SR_MM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/LOMDMM/LOMDMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMMM/BCBMTWFMMM.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMIVMVAL/MMIVMVAL.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMWMLVS/MMWMLVS.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMISVE/MMISVE.pdf
Regards
Anji
Message was edited by:
Anji Reddy Vangala -
Hi,
I have a Sales Order. For this Sales Order i Created a Puchase Order.I made a Goods Reciept and an Account Document is created. Can any one tell the table where i can see the Document flow for this Order? I tried VBFA...but i can see only Purchase Order against the Sales Order.Thanks in Advance.
Challa.VBFA is document flow for SD.
To find receipt for purchase order, look at EKBE with key purchase order Nr and event type VGABE = '1' Goods receipt
Then to find accounting document, you need to look to BKPF header table with keys AWTYP Reference procedure 'MKPF' and AWKEY Object key (Nr + year)
Regards -
SO document flow not updated with PR no created
Hi All,
A Purchase Requisitions is created from SO for a line item, i can see the PR generated in report ME5A but not in document flow. Is it a standard behavior or i'm missing something ??
Regards
AbhilashPurchase requisitions are not updated in the document flow, just use SE16 and look at document flow table VBFA. it has 2 fields for document category VBTYP_V and VBTYP_N . If you use F4 on this field then you can see that the PR is not among the possible documents.
Use the status overview button instead and you can see the PR -
Need MM flow and MM document Flow
Hi all,
can anybody tell me whats the mm fliow and also i need whats the document flow for each Order in MM,
and also i need MM Document flow .
please can any body help me,
regards,
dhanushhi..
Integration
The document flow includes notifications and orders for the application components Customer Service (CS), Plant Maintenance (PM) and Quality Management (QM).
Within the logistics supply chain, the document flow is integrated with the application components
Materials Management (MM)
for example, via purchase requisitions or goods receipt documents, and
Sales and Distribution (SD)
for example, via invoices or credit memos.
Features
You can display the following objects in the document flow:
Service contract
Maintenance plan item
Service notification
Service order
Paging object (for example, a document)
Purchase requisition
Purchase order
Sales order
Confirmation in time
Debit memo request
Debit memo
Returns
Returns delivery
Credit memo request
Invoice
Invoice cancellation
Credit memo
Credit memo cancellation
Delivery
Goods movement
Goods movement cancellation
regards......... Sri
Maybe you are looking for
-
New update? Now I have to restore my 4th Gen IPod Touch?
So i updated my ipod 4th gen today with the new update, and after it gets done. I see the charger end of a usb for the ipod with an arrow pointing to a itunes symbol, i go and plug my ipod in and it keeps asking me to restore my ipod. How do i fix th
-
I upgraded to 7.0.1 and now my library is gone. . . Please help
I am using a PC, and updated to iTunes 7.0.1. My music and iTunes are stored on an external hard drive, but I think that the upgrade was written to my regular drive. I still have all the files and library files. Is there a way to restore this with ou
-
Stored Procedure Call from Bean Error - PLS-00201
Hello all, I am using the java stored procedure code in the examples dir of weblogic51/examples/jdbc/... with one exception. I created the stored procedure as another user with more permissions than t
-
DataSource Connection Pooling in 903?
We are having difficulty getting 9iAS DataSource Pooling to work. We are using 9iAS 9.0.3 (without Infrastructure) and, as per the J2EE Services Guide, have : 1) Added... Context ic = new InitialContext(); DataSource ds (DataSource) ic.lookup("jdbc/O
-
Can anyone explain what consume() actrually does?
Can anyone explain what consume() actually does as it relates to a KeyEvent? I read about this but I just can't seem to to understand it. Thanks in advance.