Something interesting found in this non valuated material. I’ve GR non val material 1700000015 for 15 EA. But in my customized report ZMMF001, the total stock is not updated. But in SAP standard report MB52, the quantity is updated. In report ZMMF001 I use account MBEW-LBKUM as a reference. While on MB52 it use MARD-LABST as reference. This show that non valuated material is not using this field.
![]()
![]()
MM03 > Accounting1, field Total Stock (MBEW-LBKUM)
![]()
MM03 > Plant stock, field Unsres.use stock (MARD-LABST)
One of procurement audit finding is, PO release has to be reset whether PO value increase or decrease. Old fashion way, PO release only reset if total value is increase only. Testing and googling shows that there is no way PO release reset if total value is decrease. So we choose freeze PO on its fully release state.
SPRO > IMG > Materials Mangement > Purchasing > Purchase Order > Release Procedure for Purchase Orders > Define Release Procedure for Purchase Orders > Release Indicator
![]()
But then problem occur. If user want to edit the PO, it has to be un-released first. And still PO cant be un-released if PO has been issued (error is ‘Document has already been outputted… ’). We still waiting the solution from SAP. Or we need to create new different procurement procedure for this. Or, another solution is using user-exit.
Freeze PO on Fully Release state do trouble. Urgent PO need to be revised and time to make direct edit to table. To edit PO net price, we need to edit Net price (and total price) (EKPO) and edit Condition (KONV). Link between EKKO and KONV is field KNUMV.
![]()
Go to SE16N, type &sap_edit to activate direct edit mode on table. Key in parameter, and input desired value.
SE16N
![]()
&SAP_EDIT
![]()
Do direct edit
One of procurement audit finding is, PO release has to be reset whether PO value increase or decrease. Old fashion way, PO release only reset if total value is increase only. Testing and googling shows that there is no way PO release reset if total value is decrease. So we choose freeze PO on its fully release state.
SPRO > IMG > Materials Mangement > Purchasing > Purchase Order > Release Procedure for Purchase Orders > Define Release Procedure for Purchase Orders > Release Indicator
![]()
But then problem occur. If user want to edit the PO, it has to be un-released first. And still PO cant be un-released if PO has been issued (error is ‘Document has already been outputted… ’). We still waiting the solution from SAP. Or we need to create new different procurement procedure for this. Or, another solution is using user-exit.
Something interesting found in this non valuated material. I’ve GR non val material 1700000015 for 15 EA. But in my customized report ZMMF001, the total stock is not updated. But in SAP standard report MB52, the quantity is updated. In report ZMMF001 I use account MBEW-LBKUM as a reference. While on MB52 it use MARD-LABST as reference.
ZMMF001
![]()
MB52
![]()
MM03 > Accounting1, field Total Stock (MBEW-LBKUM)
![]()
MM03 > Plant stock, field Unsres.use stock (MARD-LABST)
One of store audit finding result that we need to maintain ex-project material which has no value. This will be ‘non valuated material’. We need to define non valuated material type, material group, and valuation class.
1. Define material type OMS2
![]()
Create NVAL material type reference to UNBW Nonvaluated materials
![]()
Select View. Set Internal/External Purchase Order to 0 since it will not go to procurement process. Set quantity updating in all valuation areas, and value updating in no val areas.
![]()
2. Define Number Range MMNR
Create new number range group and interval. Then assign the interval to the groups.
![]()
![]()
![]()
Experiment shows that on number range transport, current number is also transported to target system. We’ll set the number range for this non valuated material type manually.
![]()
3. Set valuation class OMSK
Create NVAL Account Category ref
![]()
![]()
Create NonValuated valuation class
![]()
Assign val class to Account Category Ref
Create New Valuation Class and Automatic Posting Setting
Posted by Aries Wandari
User asking for material can be used to create ‘health insurance’ purchase requisition. To choose the material, first I need to know this ‘health insurance’ things go to what cost element. Finance dept tell that this goes to account 775431 - Hospitalization Claim. TCode OBYC show that we dont have material with valuation class and the account pair. It mean we need to create new material with valuation class which is go to correct cost element. Create new valuation class, configure automatic posting, and do trial.
1. Create new Valuation Class 3051
![]()
2. Configure automatic posting at OBYC.
- Account 775431 for Offsetting entry for inventory posting (P/L).
- Account 300116 for GR/IR clearing account (Balance).
![]()
![]()
3. Set tax for account 775431.
![]()
4. Trial
4.1. Create material with val class 3051 (1600000520).
4.2. Create PR 1600001450
4.3. Create PO 4200000014
4.4. GR process 5000004580
4.5. Invoicing process 5100002900
5. Confirmation from finance that the posting of above trial is correct.
Note:
1. GBB: Offsetting entry for inventory posting
- AUA : for order settlement
- AUF: for goods receipts for orders (without account assignment) and for order settlement if AUA (mentioned above) is not maintained
- AUI: Subsequent adjustment of actual price from cost center directly to material (with account assignment)
- BSA: for initial entry of stock balances
- INV: for expenditure/income from inventory differences
- VAX: for goods issues for sales orders without account assignment object (the account is not a cost element)
- VAY: for goods issues for sales orders with account assignment object (account is a cost element)
- VBO: for consumption from stock of material provided to vendor
- VBR: for internal goods issues (for example, for cost center)
- VKA: for sales order account assignment (for example, for individual purchase order)
- VKP: for project account assignment (for example, for individual PO)
- VNG: for scrapping/destruction
- VQP: for sample withdrawals without account assignment
- VQY: for sample withdrawals with account assignment
2. BSX: Inventory posting
3. PRD: price differences
4. UMB: Gain/loss from revaluation
5. WRX: GR/IR clearing account
SAP > Error Print PO, “Purchase Order has not Fully Released”
Posted by Aries Wandari
An error comes up when trying to print PO on quality environment. As screenshot below, PO display “Purchase Order has not Fully Released” even it has been fully released. Suspect the smartforms and the smartforms’ program caused the error.
![]()
Go to NACE to find the program.
![]()
The program code is in ZSAPFM06P.
---
CASE x_ekko-BSART.
WHEN 'ZRFQ'.
IF ( x_ekko-BSART = 'ZRFQ' ).
ENDIF.
WHEN 'ZNPU'.
IF ( x_ekko-BSART = 'ZNPU' ) AND
( x_ekko-FRGGR = '01' OR x_ekko-FRGGR = '02' ) and
( x_ekko-frgsx = 'Z1' OR x_ekko-frgsx = 'Z2' OR x_ekko-frgsx = 'Z3' ) and
x_ekko-frgke = '2'.
ELSE.
message e016(rp) WITH 'Purchasing Order has not fully released'.
ENDIF.
ENDCASE.
Change to
CASE x_ekko-BSART.
WHEN 'ZRFQ'.
IF ( x_ekko-BSART = 'ZRFQ' ).
ENDIF.
WHEN 'ZNPU'.
IF ( x_ekko-BSART = 'ZNPU' ) AND
( x_ekko-FRGGR = '01' OR
x_ekko-FRGGR = '02' OR
x_ekko-FRGGR = '05' OR
x_ekko-FRGGR = '06' ) and
( x_ekko-frgsx = 'Z1' OR
x_ekko-frgsx = 'Z2' OR
x_ekko-frgsx = 'Z3' ) and
x_ekko-frgke = '2'.
ELSE.
message e016(rp) WITH
'Purchasing Order has not fully released'.
ENDIF.
ENDCASE.
---
Problem solved.
Current fax number on RFQ print is problem, have to change it to another available number. Based on the smartforms, the number is get from plant address data. Go to SPRO > IMG > Enterprise Structure > Definition > Logistics – General > Define copy delete check plant. Define plant, choose desired plant, click envelope button, there show plant address.
![]()
![]()
![]()
Today customization I have to show buyer name on print RFQ.
Find the Purchasing group and field name at the RFQ form. Purchasing group paramater is found in EKKO-EKGRP.
Find the table and field name at Purchasing group configuration (SPRO > SAP Ref IMG > Materials Management > Purchasing > Create Purchasing group)
It shows that purchasing group at spro is using database view V_024. Go to SE11 to see which table the view use. The view is using T024 table.
At SE11 table T024, field that show buyer name is EKNAM.
Code below do the change.
SELECT SINGLE EKNAM INTO V_NAME_FIRST
FROM T024 WHERE EKGRP = if_ekko-ekgrp.
Result
Dear IT
Mohon bantuannya untuk create new term of payment. Di term of payment utk LC yang terakhir ada Z032 : LC 180 days, create baru, Z033 : LC 365 days.
Go to OBB8.
![]()
We can create new payment term by copying existing. Click copy.
![]()
Insert new desired Payment Term code, Sales Text, Own Explanation, and No. of Days.
![]()
Last step is trying new payment term in transaction to make sure that the configuration is o.k.