Creating VOFM Custom Routine
Creating VOFM Custom Routine
Functional description:
In case of sale order with the SD document category K or L or H related to
an invoice, we need to fill the fixed value date (VBKD_VALDT) with the billing
reference date (VBRK_FKDAT).
For example:
Invoice 90001111, the billing date is 22.07.2013
If we create a sale order related to this invoice, we want the fixed value date
equal to the billing reference date.
As per the requirement:
Sap standard routine 103 triggers whenever sales order is being created with
reference. Sap standard routine is configured in VOFM transaction as:
Sap standard routine 103 has the functionality of copying the billing
document header data and billing document line item data into the sales order
header data, whenever sales order is being created using reference document.
Note: To achieve this requirement we can also enhance the SAP standard
routine 103 but here they need the custom routine because it will be
configured on demand basis by client whenever they need it.
VOFM routines are organized using the Group Indicator Code. The VOFM
program uses
the group indicator to determine the program include and subroutine names
when it
dynamically creates these objects. The assignment of these names is hard
coded in the program.
The valid group indicator codes are defined in data base domain GRPZE using a
value range.
Go to transaction VOFN place the cursor on class input and press F1 key.
Now double click on data element and see the domain values as:
All the fixed values are Group Indicator Code.
Now provide the custom routine name and press enter, it will ask for access
key:
Once the access key provided a include program get generated with transport
request as:
All include program generated from Routine has an entry in table TFRM (Form
Routines for Requirements/Formulas/Data Transports) and TFRMT (FORM
Routines for Reqs./Formulae/Data Transports: Texts).
1) Double click on the custom routine 901
Then mentioned icon in the above screen shot needs to be used for
modification of the custom routine.
Now place the cursor at the end of the ENDFORM and click on the insert button
to write our own code as shown below:
On clicking insert button we have the area for writing our code with *(INSERT,,
*) INSERT as:
Now as per requirement above we have written following code:
Along with code for standard routine 103, the code marked in red is the
additional for this specific scenario has been used.
The billing date has been copied also in VBRK value date which also gets
copied into VBKD.
The standard SAP program for creating the sales order using reference
document checks for all values and if found any difference between CVBRK and
VBKD, it creates an additional entry for VBKD. For that reason in this scenario
fixed value date is also copied into CVBRK.
Once the coding is over we need to activate the custom routine 901 and
include program generated.
For confirming the same we need to check the entries in TFRM table as:
Even if any error occurs then we need to run the SAP standard program
RV80HGEN to regenerate all VOFM routines.
Testing:
The Billing Document 90000112 has been used to create the Sales order :
It has the fixed value date : 22.07.2013
Now following steps has been taken to create the sales order using billing
document as follows:
In VA01 transaction for a given order type(ZRD) when sales order has been
created with Reference
Reference document has been taken as billing document(9000112) as
mentioned above.
After clicking on the copy option, a screen will open having the information of
the sales order.
Transpor
ting the custom routine to different system:
Program RV80HGEN can be used to re-generate all VOFM routines. Whenever
VOFM
routines are transported this program should be executed in all target systems.
It is
possible to include an automatic execution of the program in the transport
request by
applying OSS note 598475.
It can be added to the transport request of the custom routine include as:
Double click on the transport request
Even if it does not work then we need to run SAP standard program
RV80HGEN manually in the target system.
Depending upon the action the TRFM or TRFMT entries gets updated
automatically as:
Activar funciones de la VOFM
Desde la transaccin VOFM se actualizan las funciones de precios de SD, as como otras
funciones ms referidas a este mdulo. A travs de estas funciones se pueden realizar
clculos no contemplados por el estndar de SAP.
Mediante estas rutinas podemos agregar cdigo de cliente en el esquema de precios, lo que
las hace muy tiles. Sin embargo, al usarlas hay que tener en cuenta que estas rutinas
poseen una forma especial de transportarse y activarse: no alcanza con transportar la orden
al ambiente deseado, hay que ejecutar el reporte estndar RV80HGEN luego de
transportarlas.