I want to restrict that vendor supplies goods before the delivery date written on PO .i.e. system should give some error if goods are supplied before the scheduled delivery date mentioned in PO.
One way is to check data at your MIGO entry, is through SAP enhancments (Tcode : cmod).
I have implemented numerous checks for my end users (posting dates, movement types vs material types, mandatory fields under specific conditions, posting date deviation from today, total consumption per order etc).
Try enhancment MBCF0002 and component EXIT_SAPMM07M_001.
Through tcode SMOD you can find the available enhancments and function modules, go through the documentation and choose one. For MM inventory management the package is MB.
My system (4.7) returns the following list:
Exit name Short text
MB_CF001 Customer Function Exit in the Case of Updating a Mat. D
MBCF0002 Customer function exit: Segment text in material doc. i
MBCF0005 Material document item for goods receipt/issue slip
MBCF0006 Customer function for WBS element
MBCF0007 Customer function exit: Updating a reservation
MBCF0009 Filling the storage location field
MBCF0010 Customer exit: Create reservation BAPI_RESERVATION_CREA
MBCF0011 Read from RESB and RKPF for print list in MB26
With tcode CMOD create a project "Zxxx" and insert the choosen enhancement. Automatically its components will be added to your project.
Press the "Compoents" button and double click the function exit that you will change.
Now you should be looking at the source code of the function (abap editor). Take a look of the available internal tables that are imported.
Double click on the include ZX....... which does not exist and it will be created by you.
Add the source code needed to cover your validations.
Save and activate your project
Execute MIGO and check your enhancement.
Note: one problem I still haven't solved. I can use only ERROR messages not WARNINGS.
MM - Accounting Entries for a Subcontract Order
You check an invoice for a subcontract order in the same way as for a standard purchase order.
Additional account postings do, however, occur if a price variance has occurred. These postings are shown in the following example :-
Postings for a Subcontract Order
In this example, a subcontract order was created for the end product "ASSEM-1". The components COMP-1 and COMP-2 were provided to the subcontractor.
Purchase Order
50 pieces of material ASSEM-1 were ordered. The subcontract price is $10/piece (total value = $500).
The following components were provided to the subcontractor:
15 kg of the component COMP-1
5 pcs of the component COMP-2
Good Receipt
The subcontractor delivers 50 pieces of material ASSEM-1.
At goods receipt a consumption posting for the components provided to the subcontractor is automatically made. It is valuated at the price from the material master record, for example:
15 kg of the component COMP-1 at $20/kg = $300
5 pcs of the component COMP-2 at $30/pc = $150
The goods receipt is valuated with $950. This is calculated as follows:
the subcontract price (50 pcs * $10/pc = $500) and
value of the components ($300 + $150).
Invoice Receipt
The vendor (subcontractor) sends you an invoice for the subcontract work. However, the price is $10.50/pc. The invoice is, therefore, 50 pieces ASSEM-1 * $10.50/pc = $525.
Posting Schema for Moving Average Price Control
In this example, the following postings are made at goods receipt and invoice receipt, if the material (end product) is valuated at moving average price:
Postings
At goods receipt
At invoice receipt
Vendor account
525 -
GR/IR clearing account
500 -
500 +
External service account
500 +
25 +
Stock account: end product
950 +
25 +
Stock change
950 -
25 -
Stock account: comp.
450 -
Consumption account
450 +
Posting Schema for Standard Price Control Without Price Differences
For materials (end products) with standard price control also note that no price differences are posted if the total of the external service value (for example, $500) plus the "material to be provided" value (for example, $450) varies from the value at standard price (for example, $1000). Posting of a price difference is not required because each posting line has its own
offsetting entry.
No posting lines are created on the stock account or on the stock change account when an invoice is received.
In the above example, the following postings are made for a material with a standard price of $20:
Postings
At goods receipt
At invoice receipt
Vendor account
525 -
GR/IR clearing account
500 -
500 +
External service account
500 +
25 +
Stock account: end product
1000 +
Stock change
1000 -
Stock account: comp.
450 -
Consumption account
450 +
Posting Schema for Standard Price Control With Price Differences.
However, if you wish to generate a price difference posting in those cases where the manufactured material is managed at standard price and the standard price varies from the receipt value (externally performed service + value of components + delivery costs), you can configure this in the Customizing system of Inventory Management.
In the above example, the following postings (including price differences) are made for a material with a standard price of $20:
Postings
At goods receipt
At invoice receipt
Vendor account
525 -
GR/IR clearing account
500 -
500 +
External service account
500 +
25 +
Stock account: end product
1000 +
Stock change
950 -
Price difference
50 +
Stock account: comp.
450 -
Consumption account
450 +
Goods Receipts/Invoice Receipts for Purchase Order
Transaction OMW1 allows you to set whether the Price Control is a mandatory "S" or "V".
V indicate that you want the system to value the stocks with the latest price.
S indicate that you want the system to value the stocks with a fixed price method.
Price Control V - Moving Average Price
Assume Material Master current price is 10
Goods Receipts for Purchase Order - Movement Type 101
- Material Document Posting created - inventory increases
- Accounting Document Posting created
- Debit 12345 Inventory 12
- Credit 67890 GR/IR 12
- New Moving Average Price = ( GR value + Total value ) / ( GR quantity + Total stock )
Invoice Recipts for Purchase Order - MR01
- Accounting Document Posting created
- Debit 67890 GR/IR 12
- Debit 12345 Inventory 3
- Credit 45678 Vendor 15
- New Moving Average Price = ( Inventory difference of 2 + Total value ) / ( Total Stock)
Price Control S - Standard Price Material and Accounting Document is the same.
The one with the lower value will be posted with a price variance entry.
Goods Receipts for Purchase Order - Movement Type 101
- Material Document Posting created - inventory increases
- Accounting Document Posting created
- Debit 12345 Inventory 10
- Debit 23456 Price Variance 2
- Credit 67890 GR/IR 12
- No change in Standard Price
Invoice Recipts for Purchase Order - MR01
- Accounting Document Posting created
- Debit 67890 GR/IR 12
- Debit 23456 Price Variance 3
- Credit 45678 Vendor 15
- No change in Standard Price
General Ledger Account ConfigurationTransaction OMWB - Automatic posting for inventoryInventory posting BSX
Goods receipt/inv.receipt clearing acct WRX
Cost (price) differences PRD
Transaction XK03 - Account Payable Vendor MasterTick Accounting info. and hit the Enter key
Field name
Reconcil.acct 45678
Vendor Returns Without PO Reference
You can used Return Purchase Order, transaction code ME21N
At the item details, look for the Return columns and tick it.
MIGO_GR - Goods Receipt for Return Purchase Order
Movement type will be 161 to deduct the stock and 162 for reversal.
During Goods Receipt for Return Purchase Order, you do not have to change the movement type from 101 to 161 as the system will automatically assign the movement type to 161 upon saving the postings. However, before saving, check if there is a tick in the Return Column to ensure that it is a return Purchase Order.
Create a new Purchase Order Number range to differentiate
OMH6 - Define Number Ranges
Create a new Purchase Order Type to differentiate e.g ZB
OMEC - Define Document Type
Changing the PO Layout sets
OMFE - Messages: Output Programs
/: IF &EKKO-BSART& = 'ZB'.
/ RETURNED PURCHASE ORDER
: ELSE.
/ PURCHASE ORDER
/: ENDIF.
Purchasing List for Open Purchase Order, Goods Receipt, Invoices
Open Purchase Order = Open Goods Receipts ( Selection parameters WE101)
This two parameters determined what information is shown:
- selection parameter
- scope-of-list parameter
The configuation transaction code is
OMEMYou can define additonal selection parameter for your users as well as untick those fields which you does not want it to be printed.
Your can have the Purchasing Documents by :-
- ME2L - Vendor
- ME2M - Material
- ML93 - Service
- ME2K - Account Assignment
- ME2C - Material Group
- ME2B - Requirement Tracking Number
- ME2N - Purchase Order Number
ME2W - Supplying Plant
Force buyers to create Purchase Order with ref. to a Pur. Req., Quotation or Pur. Ord.
Transaction
OMET - Create a new entry, give it a name and tick :-
- Ref. to PReq
- Ref. to P.O.
- Ref. to quotation
- Next, you've got to associate via SU01
- Click Parameters, insert a new parameter id EFB to the authorization code.
- Type in Parameters value you want e.g. XX
- You have to assign the control for ALL the SAP buyers via thier SAP users id.
Logoff and login again. Then try to create a Purchase Order without a reference.
Define default values for buyers
Transaction
OMFI - Double click on the default values you want to change.
- Save it.
- Next, you've got to associate via SU01
- Click Parameters, insert a new parameter id EVO to the authorization code.
- Type in Parameters value you want e.g. 01
- You have to assign the control for ALL the SAP buyers via thier SAP users id.
- Logoff and login again. Then try to create a Purchase Order and check the default values.
In the Fast Processing button :-
you can choose whether to adopt automatically all the line items fields in the Purchaes Requisitions
Puchase Order Condition
Suppose you want to calculate the GST and DISCOUNT for a Net Value of 1000.
Net value 1000
GST 10% of 1000 100
DISCOUNT 10% of 1000 100
Final Net value 900
This is what you do :-
- M/08 - Define calculation schema
- First check the conditions column Steps e.g. PB00 and PBXX belongs to step 1.
- Next check the last Steps after Actual Price
- Now, look at the column Fro To
- If you want the DISCOUNT to be calculated based on 1000, put the Steps number in the column Fro
The Fro To controls the calculation.
Information Structure
In the SAP standard info structure S012 is updated by the Purchase Order creation date, not the Goods Receipt date. e.g. a Purchase Order is created in January and good receipt is in February and March, S012 will shows the values in period January.
- Transaction MC26
- Info structure S012 Update group (stats) SAP
- Double click on Goods received qty
In the section Date field for period determination
Purchase Order Layout Sets, Message Types
Create a new message types for a different layout of Purchase Order
- M/34 - Maintain message types
- Click the Partner definition button
- Insert the new message type to the Partner
- OMQN - Fined-tuned Message Control
- Add a new Printer Operation 1 - New 2 - Change
- OMFE - Layout sets for Purchase Order
- Attach the new message type to the new layout sets
- M/36 - Maintain message detemination schema : Purchase Order
- OMQS - Assign schema to Purchase Order
- OMGF - Assign Output devices to Purchasing Groups
MN05 - Assign default Message Type to Purchasing Groups
User Defaults for Purchase Order
There are some fields which you can set as defaults for the buyer in transaction ME21.
Transaction SU01
Input the user name and click Parameters
PID Parameter value
LIF - Vendor number
BES - Purchase Order Number
BSA - Order type
EKG - Purchasing group
EKO - Purchasing organization
WRK - Plant
LAG - Storage location
MKL - Material group
WAK - Promotion
PO Release Strategy
4.6x
The release code is a two-character ID allowing a person to release (clear, or approve) a requisition or an external purchasing document. The release codes is basically controlled via a system of authorizations (authorization object M_EINK_FRG).
Use SE12, structure CEKKO to check all the fields available for controlling the Purchase Order.
e.g. If the total value for the Purchase Order exceeds 10,000, release strategy 01 is assigned to the Purchase Order. There is only one characteristic created in this example. For controlling the Purchase Order type, create characteristic for CEKKO-BSTYP and the value NB.
CT04 - Create Characteristic e.g. NETVALUE
Click Additional data Table name CEKKO Field name GNETW and press enter
(for currency dependent field, you are prompt to enter the currency which the system then converts the currency of the Purchasing document into this currency)
In the Basic data (X refers to tick),
X Mutliple values
X Interval values
In the Value data, in the Char. value column, type >10000 and press enter
Save your data
CL02 - Class
Class - Create REL_PUR
Class type - 032
Click Create
Description - Release Procedure for Purchase Order
In the Same Classification section, click Check with error
In the Char. (characteristic) tab, type NETVALUE to assign your characteristics to the class
OMGS - Define Release Procedure for Purchase Order Type
Release Group - New entries
Rel.group Rel. Object Class Description
02 REL_PUR Rel. Strategy for PO
Release codes - New entries
Grp Code
02 01
Release indicators
Release indicators Release Description
0 Blocked
1 X Release
Release Strategy
Release group 02
Rel.strategy 01
Release codes 01
Release status 0
1
Classification Choose your check values
OMGSCK - Check Release Strategies
(make sure there are no error messages)
Once the Purchase Order is not release, buyers will not be able to print the Purchase Order.
Goods Receipts will be shown with Message no. ME 390 - Purchasing document XXXXXXX not yet released.
In 4.6c, Purchase Order with Release Strategy have a tabs at the end of the Header. This allowed the buyers to check the release status of the Purchase Order.
The person with the release authorization have to use ME28 to release the Purchase Order.
Prompt the last Purchase Order Price for the Material
If you want the system to take the price from the last Purchase Order, then do not maintain the conditions in the info record because it has precedence over the last PO. This means that the netprice field in the info record should be left blank.
In the case when you have already maintained the conditions in the info record (or netprice), try to delete them or make them invalid by changing the validity date.
Even though no price was maintained, the info record will still keep track of the Order price history.
To check the Order price history, go into the material info record and click Environment -> Order price history
Adopt Purchase Order Header Text
To default the Header Text into the Purchase Order
Step 1 :- Maintain text in Vendor Master
- MK02 - Change Vendor
- Choose Extras -> Texts - Input the text in Purchasing memo
Step 2 :- Link Text types to Header text in Purchase Order
- OMFV - Define rules for copying (adoption of) text
- Choose Header Text
- Choose Goto -> Linkage: text types -> To vendor
- Filled in the field No. (e.g. 01 - Header Text), next tick whether you want the text to be adopted or for displayed only
- Choose Update to save
Create a new Purchase Order Document Type
4.6x If you have more than one company code, you might want to define a new document type and number range to differentiate between the two company.
Define a new number range not in used
OMH6 - Number Ranges for Purchasing Documents
Copy the NB - Standard PO to e.g. ZB
OMEC - Define Document types
Maintain :
Text for Document Header/Item
Text for Document Supplement
OMF6 - Messages Header Texts
Send Purchase Order via Output Determination
Read note 191470 - Purchase order as an e-mail
From release 4.5, you can send your purchase order via output determination. This note have indicate all the requirement and settings necessary to send purchase order via the output determination once your SAP have been connected to an External Mail System.
Send Purchase Order with Microsoft Outlook
This is how it work:-
- First you send the text converted Purchase Order to your SAPoffice
- Then from Microsoft Outlook, you can send it out externally to your Vendor
Install the SAP setup program on the SAP Presentation CD-ROM under
\GUI\WINDOWS\WIN32Execute the SAPsetup program and choose the Desktop Interfaces.
Then choose the SAP MAPI Service Provider (select Change Options to display the selection)
Once the SAP MAPI is installed. You can create your logon profile for SAPoffice.
Go into your Control Panel of your windows.
Select the Mail option from the Control Panel to call the MAPI profile manager.
Choose Add to call up the new logon profile setup wizard
Select Add from the Services and select the SAP MAPI Service Provider
Type in the required R/3 information (client, sap user name, password)
The supplied PST file is sapwrk.pst
Now, logon to your Microsoft Outlook and see whether you can access all your SAPoffice folders.
If you send the file using SP01 -> System -> List -> Send, the file will have the extension ALI. Use the Windows Explorer to default open with the Windows Notepad.
Sending mail directly from SAP via Microsoft Exchange
If you want to send your mail directly via Microsoft Exchange, you have to install the SAP Exchange Connector Software on your Microsoft Exchange Server.
The setup program SETUP.EXE is located on the R/3 Presentation CD in the directory :\GUI\WINDOWS\WIN32\SXC.
Then you have to setup :-
- SM59 - The RFC destination
- SCOT - SAPconnect