VOFM - Requirements

Hi Folks,
I am working on requirements.
I am a bit new to this process.I wud like to have some detailed info on the same.Please clarify the below mentioned.
1.I've seen Requirements in VOFM only for some areas..like output control,pricing,material determination etc. <b>what is the working mechanism</b> of this? How is it different from USER EXITS?
2.The same piece of code appears twice in the same requirement under to differnet form definitions,namely form KOMBD and KOMBV ? <b>why this is required twice</b>?
3.why do we need to run <b>RV80HGEN</b> after creating a requirement?
4.From where the number series starts for newly defined routines apart from standard requirements?
5.If we want to modify the standard exist <b>what are the precaution to take?</b> what i heard is ..once we give the access key for it...there is some icons apper on tool bar like INSERT DELETE etc..
Your help is appreciated.
Thanks
Raja

Hello Raja,
As indicated only for the following as indicated number range is allowed for rest it is 600-999.
Name                                          Number  
Subsequent functions                         900 - 999
Group key routines                            50 -  99
Data transfer routines f. texts               50 -  99
<b></b>all other group indicators                   600 - 999
<b></b>
I am attaching another note which deals with VOFM problem. Keep this with u as it will prove useful.
<b></b> SAP Note 327220<b></b>
This note is an explanation of function "Maintain: Requirements and Formulas", which is also known as "VOFM".
By using descriptions and examples, this note explains how the VOFM function works in the R/3 Standard System, which objects are related to it and which restrictions exist.
Chapter 2.7 explains possible causes of errors and solutions for problems with the VOFM function.
To provide a good overview, this note is subdivided into the following subareas:
   1.    General information
   1.1   Definition of terms
   1.2   Application areas
   1.3   A frank word on the "source code responsibility"
   2.    Technology
   2.1   Introduction
   2.2   Namespaces
   2.2.1 SSCR object registration
   2.3   Structure of a VOFM object
   2.3.1 Include file with ABAP form routine
   2.3.2 Table entries in TFRM and TFRMT
   2.4   Calling VOFM objects
   2.4.1 VOFM object carrier
   2.5   Activation, generation and RV80HGEN
   2.6   Transport
   2.7   FAQs: Possible causes of errors and problems
Technical field names are displayed in angle brackets [].
Note that this note only explains the mode of operation of the VOFM in an R/3 Standard Core System. For R/3 industry solutions or Add-Ons the VOFM function displays a different behavior in subareas, however, this is not dealt with in this note.
Additional key words
VOFM, SAPMV80H, TFRM, TFRMT, RV80HGEN, XPRA, formulas, requirements, data transport routine, copy routine, data transfer.
Cause and prerequisites
1. General information
1.1 Definition of terms
Depending on the business processes used it may be necessary to influence the standard behavior of R/3 applications. For that purpose the VOFM function provides a corresponding environment in order to be able to develop and manage customer-specific logic simply.
The system stores the objects generated via the VOFM in the Customizing of the respective application area (Pricing, message determination and so on) and its programs call the objects correspondingly.
Also SAP delivers certain functions in the form of VOFM objects.
Consequently, the VOFM is an exit technology as explained in more detail in Note 381348.
1.2 Application areas
Typical VOFM objects are requirements, formulas and data transfer routines.
These are used in processes of the purchase order, the delivery, billing, price determination, material determination, message determination, the free goods, the pricing and of others.
In the entries of the R/3 core menu of Transaction VOFM you can find a precise overview of the supported application areas.
1.3 A frank word on the "source code responsibility"
As in user exits, in VOFM objects are many fields and tables available. Thus, the use of VOFM objects is very versatile and consequently also very critical under certain circumstances. For the use of "customer-specific" VOFM objects the statements in Note 381348 regarding the responsibility for customer enhancements (Maintenance responsibility, problems during the upgrade and so on) apply. Read this note carefully before you decide on the use of customer-specific VOFM objects. Errors and data inconsistencies that are caused by improper application or implementation of VOFM objects are not processed by the SAP Support but exclusively within the framework of the Consulting that has to be purchased separately.
2. Technology
2.1 Introduction
A VOFM object is uniquely defined via characteristics "group indicator" [GRPZE] and "group number" [GRPNO].
Here the group indicator, technically represented by a character field of length 4, is the logical connection to the calling environment.
Examples:
   ABED   copying requirement in the order
   ADAT   data transfer in the order
   PBED   requirements pricing
   CASC   Data transfer for sales activities
   PBEK   requirements account determination
   CHRG   requirements batches
   REAK   archiving for orders
   VFCL   Multi-dimensional scales
You can find all defined group indicators in the allowed values of the "GRPZE" domain in the ABAP Dictionary (Transaction SE11).
The group number can have a value from 1 to 999.
Exceptions are group indicators "PSTK" (= group key routine pricing) and "TDAT" (= data transfer for texts). For these the system can only assign group numbers from 1 to 99.
2.2 Namespaces
The VOFM has separate number ranges in order to distinguish VOFM objects delivered by SAP from customer-specific VOFM objects. These number ranges are often also called "VOFM namespaces".
However, note that this is not a "real namespace" that is protected by corresponding entries in system table "TRESC" (= reserved names for Customizing tables and Customizing objects). Instead, only the VOFM logic itself does the definition and check of the number ranges.
The following list displays the customer number ranges sorted according to group indicators:
  Indicator    Name                              Number range customer
  FOFU         Subsequent functions             900 - 999
  PSTK         Group key routines               50 -  99
  TDAT         Data transfer routines f. texts  50 -  99
  all other group indicators                     600 - 999
In Note 356737 you can find more information on the available VOFM number ranges.
2.2.1 SSCR object registration
VOFM objects are subject to SSCR registration (= SAP Software Change Registration).
The reason for that is the necessity that every VOFM object is physically assigned to that SAP development class, from whose programs a corresponding jump into the VOFM object later occurs.
If you use the VOFM interface the system makes the assignment automatically. An assignment of customer-specific development classes is not possible.
2.3 Structure of a VOFM object
A VOFM object consists of the following parts:
  Include file with ABAP form routine
  TFRM table entry
  TFRMT table entry
2.3.1 Include file with ABAP form routine
In the ABAP form routine the desired function is programmed.
Example pricing value formula number 001:
  Include name  :  FV64A001
  Form routine  :  FRM_KONDI_WERT_001
  Implementation:  * * Profit margin considering rebate agreements
                     form frm_kondi_wert_001.
                        xkwert = komp-kzwi3 - komp-wavwr.
                      endform.
Dependending on the selected group indicator, the group number and the system type (SAP or customer system), the system assigns and generates the include name and form routine name automatically.
For this reason, standard routines delivered by SAP generally have a different structure of the include name than customer-specific routines.
Example:
  SAP standard value formula for the pricing
     => prefix FV64A + object number with 3 places from 'SAP namespace'
     => for example FV64A001
  Customer-specific value formula for the pricing
     => prefix RV64A + object number with 3 places from 'customer namespace'
     => for example RV64A905
2.3.2 Table entries in TFRM and TFRMT
The entries in tables TFRM and TFRMT belonging to a VOFM object are used for the status management and assignment. The system always analyzes them if the user calls Transaction VOFM or if a generation operation occurs (for details refer to section 2.5).
The system generates exactly one TFRM table entry per VOFM OBjekt. In this TFRM entry the following information is stored:
   - Group indicator             [GRPZE]
   - Group number                [GRPNO]
   - Routine 'active' indicator  [AKTIV_TFRM]
   - Application                 [KAPPL]
   - Date of the last generation [GNDAT]
   - Time of the last generation [GNZEI]
Examples:   GRPZE    GRPNE AKTIV_TFRM  KAPPL  GNDAT       GNZEI
            PBED     001   X           V      06/13/2001 09:06:39
            TDAT     001   X                  06/13/2001 09:06:39
            CHRG     003   X                  06/13/2001 09:06:39
The meaning of group indicators and group numbers has already been dealt with.
The 'active indicator' controls whether a VOFM object is 'active' or 'inactive'. Active VOFM objects have characteristic value AKTIV_TFRM = 'X', inactive objects have characteristic value AKTIV_TFRM = initial.
VOFM objects flagged as 'active' are 'known' to the calling program logic, that means they were included in the main program of the 'calling program' and can thus be addressed and processed during the runtime.
You cannot delete VOFM objects that are still 'active'. In this case you have to reset the active indicator manually before.
The content of the 'Application' field serves to filter the relevant VOFM objects in various display functions and Customizing functions.
Example: Condition value formula 010 'Relevant Price'. This formula has characteristic value 'MS' for the 'Application' field (= External Services Management purchasing). Therefore the object is not open for selection in the input help during the maintenance of pricing procedure SD (Transaction V/08), because this is a Customizing transaction assigned to application 'V' (= Sales and Distribution). Storing an application key is optional.
The generation date and the generation time record the time of the last registration of the VOFM object (the object carrier, refer to section 2.4.1).
In addition to the respective TFRM entry a VOFM object can have 'n' entries in table TFRMT. The entries are used for the storage of language-dependent object descriptions, which are structured as follows:
   - Language key           [SPRAS]
   - Group indicator        [GRPZE]
   - Group number           [GRPNO]
   - Description            [BEZEI]
Examples:     SPRAS   GRPZE   GRPNO   BEZEI
              D       PBED    001    Regulierer abweich.
               E       PBED    001    Different payer
The system supplies the language key automatically with the logon language of the user during the creation of a new VOFM object.
The length of the object description is limited to 20 characters.
Important! A VOFM object is only consistent if both the Include file with ABAP form routine and a corresponding TFRM table entry exist. Entries in table TFRMT are optional.
2.4 Calling VOFM objects
As mentioned above, VOFM objects are called directly by the application logic of R/3 standard programs. Technically this is implemented by ABAP statement 'PERFORM ... IN PROGRAM'. With the aid of this statement you can specify both the name of the subroutine and the main program dynamically (during the runtime).
Example: Call of a condition value formula from the pricing
if xkomv-kofrm ne 0.                <<< formula reference existing?
   xkwert = xkomv-kwert.             <<< act. value in work variable
   frm_kondi_wert-nr = xkomv-kofrm.  <<< set up object names
   perform (frm_kondi_wert) in program saplv61a if found.  <<<call
   xkomv-kwert = xkwert.             <<<result value assignment
endif.
In the example above the subroutine is determined by the contents of variable 'FRM_KONDI_WERT'; the main program, which is to be searched for the form routine, is SAPLV61A.
If the called routine is not known in the main program, a program termination with the title 'PERFORM_NOT_FOUND' occurs. Therefore some users of the VOFM technology call ABAP statement 'PERFORM ... IN PROGRAM' together with the addition 'IF FOUND', which has the effect that a jump into the form routine is only executed if this in fact exists in the main program. This does indeed prevent a program termination, however, the result of the overall process may deviate from the result expected by the user, because in this case the system does not execute the source code implemented in the VOFM object.
2.4.1 VOFM 'object carrier'
Object carriers are required to make a VOFM object 'known' in the main program of the calling program (refer to section 2.4). The object carrier is integrated in the main program of the calling program as an independent include (for example SAPLV61A, SAPMV45A and so on).
Example: Inclusion of object carriers for word processing in SD
         documents; Program 'SAPLV45T'
  System-defined Include-files.                                  *
     INCLUDE LV45TTOP.    "Global Data
     INCLUDE LV45TDEF.
     INCLUDE LV45TUXX.    "Function Modules
     INCLUDE LV45TNNN.     <<< 'carrier' copy requirements for texts
     INCLUDE LV45TENN.     <<< 'carrier' copy routines for texts
Every active VOFM object (for an explanation on the active indicator refer to section 2.3.2) must be registered in the 'carrier'. The system writes standard VOFM objects delivered by SAP directly into the 'carrier', VOFM objects from the number range reserved for customers (refer to section 2.2 'Namespaces') are sorted into a 'sub-include' included in the carrier.
Exactly one carrier exists per group indicator. The names of all defined object carriers are hard-coded in program MV80HF0A, form routine 'AKTIVIEREN_TRAEGER_SETZEN'. Here the names of the sub-include for customer-specific VOFM objects belonging to the main carrier are also defined.
Example: Carrier object 'FV63ANNN' for the registration of condition basis formulas in the pricing (Program SAPLV61A)
  FV63ANNN      
<<< main
carrier-include
  |-INCLUDE RV63ANNN.  "User-Routinen  <<< sub-include customer objects
  |             |- INCLUDE RV63A910.  "Customer specific
  |             |- INCLUDE RV63A911.  "Customer specific
  |             |- INCLUDE RV63A912.  "Customer specific
  |             |- ...
  |- INCLUDE FV63A001.  "Volume
  |- INCLUDE FV63A002.  "Net value
  |- INCLUDE FV63A003.  "Net Price
  |- INCLUDE FV63A004.  "Net Value Plus Tax
  |- INCLUDE FV63A005.  "KZWI1
  |- ...
Because the content of the VOFM object carriers is automatically created source code, you should avoid manual changes to them.
SAP notes, which suggest manual changes to the object carriers, are therefore also incorrect. However, if you nevertheless receive such a note to solve a problem, contact the SAP Support with a reference to this note.
2.5 Activation, generation and RV80HGEN
The 'activation' is the inclusion of an VOFM object in an object carrier. A 'deactivation' results in the removal of the VOFM object from the object carrier. The overall process for the creation of a current object carrier is often called 'generation'.
Generally the activation or generation fall into three types.
- Individual activation
- Collective activation
- Generation of object carriers via report RV80HGEN
The 'individual activation' causes the registration of an individual VOFM object in the corresponding object carrier. Which object carrier is relevant is determined with the aid of the group indicator and the group number. In addition to the entry of the VOFM object in the object carrier the system writes the date and time of the generation into table TFRM (refer also to section 2.3.2).
You can start the individual activation only manually. It is always always executed when a user selects a line within the VOFM editing interfaces and afterwards selects activity 'Activate' from the 'Edit' menu.
The 'collective activation' causes the registration of all VOFM objects that belong to a certain group indicator. Analog to the individual activation the system determines the relevant object carrier automatically and writes date and time into table TFRM. The 'collective activation' is a process which you can start also only manually. For this purpose, choose activity 'Activate all' from the 'Edit' menu.
During the generation via report RV80HGEN the system sets up the object carriers of all defined group indicators again. However, the system includes only those VOFM objects that have set the 'active' indicator in the corresponding TFRM table entry. Nonactive VOFM objects are not included in object carriers during the generation via report RV80HGEN. Due to the quantity of the data to be processed, the generation via RV80HGEN can take between 0,5 and >5 minutes (depending on the system and the constellation).
Because the RV80HGEN is defined as 'XPRA', it is executed automatically during a system upgrade.
You can also use this XPRA feature for the transport of VOFM objects in order to implement an automatic update of the object carriers after the import of VOFM objects into the target system (section 2.6 provides more details on the transport).
Both the collective activation and the activation via report RV80HGEN technically revert to the program components of the individual activation. For the separate control of the individual activation types form routine AKTIVIEREN_EINZELN (Include MV80HF0A) has a 'USING' parameter, which can have the following characteristic values:
  'E' Activate individually
  'A' Activate all (= collective activation)
  ' ' Deactivate individually
During the generation via RV80HGEN the system executes a collective activation for every group indicator sequentially, that means a call of form routine AKTIVIEREN_EINZELN with characteristic value 'A'.
2.6 Transport
If you want to transfer VOFM objects from one system (= source) into another system (= target), this is generally made with an object transport. As of Release 4.0, the VOFM function has a connection to the SAP 'Change and Transport System' (CTS) in order to simplify the transfer process for the user. By the transport connection the system automatically adds newly created or changed VOFM objects to the object list of a transport request which was selected by the user before.
All steps necessary for the execution of a VOFM transport are described in detail in Note 22808 'Transferring formulas'. Note that steps 1-4 are only needed if the VOFM maintenance environment providesno automatic connection to the transport system or if you want to combine a transport request manually. In any case you must execute step 5, regardless of how the transport request was created.
In addition to Note 22808, Note 385067 contains an overview for releases >= 4.6C regarding which sorts of tasks and object entries are required in a transport request (depending on the activity carried out (create/change/activate/deactivate/delete)) in order to transport a VOFM object successfully.
2.7 FAQs: Possible causes of errors and problems
This chapter deals with the most frequent errors and problems that occur when using the VOFM function and its objects. If problems arise for which this note provides no explanation or solution, create an OSS message on component CA-GTF-BS-VOFM and send it to the SAP Support.
(01) Question/problem:
            During the order processing, in the shipping, LIS, billing and so on a program termination with error message: PERFORM_NOT_FOUND occurs when you call a VOFM object. This symptom can occur for all users of VOFM objects.
(01) Answer:
            The used VOFMobject is not known in the main program of the calling program and thus cannot be addressed. Details on the call method of VOFMobjects are described in section 2.4 of this note. Note 28683 describes how to correct this error.
(02) Question/problem:
            Even though report RV80HGEN was executed, the VOFMobject is not registered in the object carrier. Why?
(02) Answer:
            During the setup of the object carriers via RV80HGEN the system includes only VOFMobjects which have set the 'active indicator' (refer to section 2.3.2). If the active indicator for the corresponding object is not set, the RV80HGEN does not process the VOFMobject. Solution: Set the active indicator for the respective object and start the RV80HGEN again.
(03) Question/problem:
            The syntax check in the ABAP form routine of an VOFM object displays syntax errors.
(03) Answer:
            Note the explanations on the work method of the syntax check in Note 393012. In addition, the restrictions of the SAP maintenance responsibility to customer-specific VOFM objects (described in section 1.3) apply.
(04) Question/problem:
           When you create/change VOFM objects the system requires an SSCRregistration key, even though the VOFM is within the 'customer namespace'.
(04) Answer:
           Refer to the explanations given in section 2.2. 1 'Registration'.
(05) Question/problem:
           In which namespace can I create customer-specific VOFM objects? Or: Which routine numbers are reserved for customers?
(05) Answer:
            Refer to Note 356737, in addition refer to the explanations in section 2.2 'Namespaces'.
(06) Question/problem:
            Is it possible to assign VOFM objects to own development classes?
(06) Answer:
           No. Refer also to section 2.2.1
(07) Question/problem:
            When you create a VOFM object the system displays information message TR 015 'Object can only be created in SAP development class'.
(07) Answer:
           This is no error. Refer to section 2.2.1. and the answer to question number 5.
(08) Question/problem:
            How can I transport VOFM objects via the Change and Transport System ?
(08) Answer:
            The steps necessary for a successful transport are described in detail in Note 22808.
(09) Question/problem:
            The used transport request does not contain an entry for the VOFM object carrier in the object list (for example RV61ANNN, FV45ANNN ...)
(09) Answer:
           The object carriers must not be transported. Instead, a setup of a current object carrier suitable for this system is required in the target system. For details refer to Note 22808, step 5 as well as section 2.4.1 and 2.5 of this note.
(10) Question/problem:
            How are VOFM objects deleted? And can deletions of VOFM objects also be transported?
(10) Answer:
            You should delete VOFM objects only via the editing interface of the VOFM function. Only this way it is ensured that all subobjects (ABAP form routine, TFRM and TFRMT table entries) are completely removed.
            You can also transport the deletion youmade into an additional system. For that purpose, the setup of an object list in a transport request analog to the creation (refer to Note 22808) is required.
            During the deletion of objects the system deletes the object in the source system. At the time of the export the export program (R3trans) notes that the object does not exist any more. In this case the system enters a "D" into the 'Object function' field in the corresponding entry in the object list of the transport request.
            The deletion of table entries is made analog to the deletion of objects. First delete the keys in the source system. Then specify the deleted keys in the request. At the time of the export the transport program notes that the specified keys do not exist any more and deletes them in the target system. If you combine the object list of the transport request manually, you must set the object function of the individual entries correspondingly. To do that, proceed as described in the F1 help of the 'Object function' field.
(11) Question/problem:
            During the creation of VOFMobjects the system requires a transport request which contains a task of the 'Repair' category. The system displays message TK 181 'Repair &1 may only contain repaired objects'.
(11) Answer
           This problem is caused by a program error. Implement the corrections of Note 326560 or Note 385067 depending on your release.
(12) Question/problem:
            During the creation the system displays message TK 112 'Edit objects separately since they belong to different original systems'.
(12) Answer:
           This problem is caused by a program error. Implement the corrections of Note 326560 or Note 385067 depending on your release.
(13) Question/problem:
            When you create or activate VOFM objects the system displays message: 'Report/PROGRAM statement is missing or program type is INCLUDE?'.
(13) Answer:
           This problem is caused by a program error. Implement the corrections of Note 326560 or Note 385067 depending on your release.
(14) Question/problem:
            Why does the system generate VOFM objects with source system 'SAP'?
(14) Answer:
           Design. The entire VOFM logic depends extremely on basis functions like transport, object directory entries, generation and so on. Because VOFM objects are inserted in SAP standard development classes, these receive ID 'SAP' for source system during the generation process. This cannot be avoided and does not affect the VOFM function.
(15) Question/problem
            The system does not insert report RV80HGEN automatically as XPRA into the object list of a transport request.
(15) Answer
            Whether the system inserts report RV80HGEN automatically into the object list of the transport request depends on the release you use. For Releases 4.0A to 4.6B the system generates a corresponding entry, provided that all corrections for the VOFM function exist in the system. As of Release 4.6C the basis function of the 'Change & Transport System' (CTS) does not support the automatic insertion of objects of the 'XPRA' category into an object list any more.  If you want an automatic registration of the transported routines in the target system, proceed as described in Note 22808, step 5.
(16) Question/problem:
            During the activation of VOFM objectsa termination occurs or the system requires a registration key for additional VOFM objects, even if they were not changed.
(16) Answer:
            There are inconsistent VOFM objects in the system (refer also to section 2.3.), that means table TFRMcontains entries for which no include with corresponding ABAP form routine exist.
            If the termination occurs for VOFM objectsfrom the SAP namespace, this is normally due to a delivery error as described, for example, in Notes 395600 and 0403705. Check whether already a corresponding note exists for the affected VOFMobject. If not, contact the SAP Support.
            If the problem occurs for customer-specific routines, the inconsistency is mostly due to a handling or transport error. For example the deletion of VOFMincludes via Transaction SE38has the effect that the system does delete the form routine and the corresponding include, however the system does not delete the entries in tables TFRM and TFRMT. Inconsistencies can also occur due to incomplete or incorrect object lists in transport requests. You can make a correction by newly creating the same object via the VOFM interface or be deletion analog to the method described in Note 395600.
(17) Question/problem:
            During the import of Support Packages or during the system upgrade, customer-specific VOFM objects were overwritten or are missing completely.
(17) Answer:
            First, check whether the missing VOFMobjects are really missing and if yes, whether all or only certain subobjects do not exist anymore (refer to section 2.3). if the VOFMobject is completely there, generally only a new setup of the object carriers is required. Read section 2.5 'Activation, generation and RV80HGEN' to learn which options exist for this purpose.
            If there is indeed a VOFM object but ifthe source code of the ABAP form routine does not correspond to the customer-specific, this is a delivery error. However, you can reconstruct the customer-specific source code with the version management. Proceed as follows: call the ABAP Editor for the affected objects by using Transaction SE38. Afterwards branch into menu 'UTILITIES' -> 'VERSIONS' -> 'VERSION MANAGEMENT'. Deselect the version delivered by SAP and select your original, customer-specific version instead. Choose 'RETRIEVE' to restore this version.
           Delivery errors of this type are documented by notes. If there is no corresponding note for the overwritten object in the OSS, contact the SAP Support.
(18) Question/problem:
            In the display of the Object Navigator (Transaction SE80) the system does not display newly created VOFM objects. On the other hand, it can also occur that deleted VOFM objects are still contained in the Object Navigator.
(18) Answer:
            The Object Navigator displays an obsolete status (refer also to Note 15447). Choose button 'Refresh object list' above the tree structure in order to correct this inconsistency.
(19) Question/problem:
            Is it possible to delete VOFM objects delivered by SAP in the standard?
(19) Answer:
           Yes. However, because of separate number ranges for VOFM objects SAP does not recommend a deletion of SAP standard objects.
(20) Question/problem:
            Which maintenance responsibility has SAP for customer-specific VOFM objects?
(20) Answer:
           None. Refer to the explanations in section '1. 3 A frank word on the "source code responsibility"'. According to Note 381348 this includes also VOFMobjects whose creation wasbased on notes of the 'Consulting' or 'Workaround for missing function' category.
(21) Question/problem:
            Where can I get help, if my customer-specific VOFM object does not work as expected?
(21) Answer:
            If you need support during the implementation of customer-specific VOFM objects you can contact the SAP Remote Consulting. Please understand that SAP cannot check VOFM objectswithin the framework of the normal support.

Similar Messages

  • VOFM requirement creation help

    I'm trying to create a new requirement to be used for billing document output. The requirement is, only invoices 1 day older than current date is to be outputted. Using transaction VOFM output control, I've created a new requirement for application type V3.
    I needed some guidance into coding this. My plan is to assign this new requirement to the access sequence I've created, so this requirement must always be met.
    Very simple psuedo code:
    if ( current date - document date != 1 )
        then sy-subrc = 4
    The problem I'm facing is that I don't know how to get the document date, since this program is running separately. If I could somehow get the invoice number that is currently being processed for output, then all is well.
    please advise,
    thanks in advance,
    Mo

    Hi
    You need to add (by append structure) the document date in the structure KOMKBV3
    Max
    Edited by: max bianchi on Jan 11, 2011 4:04 PM

  • VOFM-requirements, data transfer, formulas

    Hi experts,
    I am now learning how to create pricing procedure. The part that remains still unclear to me is the requirement part. I tried to find some documentation of it but failed. I want to a systematical understanding about how pricing procedure works with the requirement, which conventions the requirement (VOFM: also data transfer,formulas) has, and how can I create my own requirement, data transfer and formulas.
    Does anyone know any good documentation on subject?
    Thank you in advance.
    Best regards,
    Fan

    Hi  Prasad ,
    thank you very much for your reply.
    This is indeed what I need. However, this is only the VOFM part 1. Do you have the link to part 2, 3, 4? I think there will be four parts of this documentation. Each specifies one subject regarding VOFM:  copying requirements, data transfer,
    requirements, and formulas.
    Best regards,
    Fan
    Edited by: Fan Mou on Oct 23, 2009 5:19 PM

  • VOFM(Requirements Output Control)

    Hi all,
    We have custom output type configured which has to be displayed alone when a invoice is created for particular customer....All this part is done...but now i need to create a form routine and a requirement which wud be assigned to this output type which would display only this output type(Zxyz) say and should'nt display other standard output types like RD01 and other output types in the invoice outptut messages.....
    How to create a routine is my first question for output control.
    How to right a code in the routine which wud have only ZXYZ output type in the output message for particular Invoices.....

    Hi,
    Create a routine and assign the VOFM routine to all the other output types in the procedure except for the new one..
    You can create the routine in the transaction VOFM..
    In the VOFM routine have this logic.
    If KOMKBV3-kunag = 'my specific customer'.
      sy-subrc = 4.
    ELSE.
      sy-subrc = 0.
    ENDIF.
    Hope this helps..
    Thanks
    Naren

  • Pricing Condition: VOFM (requirements & Formulas)

    Scenario:When we go to transaction VOFM and go to Requirements--->Pricing in the Menu we see all the routine numbers. One of the routine number in that system is 621.
    I need to copy it and create a new one with the same code and add some more logic. How do I do that.

    Hi,
    you cant copy a routine just like that, what you can do is create a new routine requrest for access key becuase routine names will be in SAP namespace.
    Copy your code and rememebr to activate it otherwise the routine will not appear in the procedure.
    Regards,
    Krishnakumar

  • Pricing - VOFM requirements

    Hi,
       I have a requirement routine assigned to 10 differentcondition types in the pricing procedure. Now there is a need for adding an additional check which has to be added in the same routine for 3-4 specific condition types in that. When I put the code its getting executed for all the 10 condition types against which the routine is assgined. So here i want to find out each time the current condition type also for which the rouitne is executing.But in the run time, i couldnt find any work area of variable which provided the current condition type which is calling the routine. the itab tkomv is available, but it contains all the condition types..
    Anyone has an idea how to solve this ?
    Thanks,
    Dinu.

    Copy your requirement into a new requirement and configure the new requirement in pricing to those 4 pricing conditions where you need this additional check. Just so that you do not double maintain the code call the original requirement from the new requirement, check return code and perform only addtional validations in the new requirement. This way any modifications made to the original requirements would also apply for new requirement. Better way of doing things rather than figuring out via code when do go with validations.
    Thanks

  • Pricing requirements - VOFM tranx (standard include)

    Hi,
    I want some information about the pricing requirements in the tranx code: VOFM.. For each standard include of the parent include: LV61ANNN, there are two forms: kobed_xxx and kobev_xxx.
    1) What is the different between these two forms and what is their effect..
    2) in my requirement, it was not mentioned as to in which form do i need to write the required code. (Though it was said that i need to copy one of stnd include)..

    hi Rohith
    just go to this thread link
    Re: VOFM - Requirements
    this must answer your queries
    hope this helps
    regards
    Aakash Banga

  • How to restrict issue the form through VOFM routine

    Hi Experts,
    I have  developed form using adobe form, I need to issue the output only one time, once the output issued again the output should not issue.
    I need to control this logic through VOFM routine...how to restrict ?
    Thanks in advance.

    Srinath,
    Use the below option.
    VOFM->REQUIREMENTS->O?P Control.
    Create a new routine.
    In the routine, check the table NAST using application, object key and message type. If you find an entry, set the sy-subrc value to 4 else set the subrc value to 0.
    Let me know if this helps.
    Thanks,
    Vikram.M

  • Testing Pricing Requirements

    Hy Guys,
    how do you test the pricing requirements (ex. manual conditions, manual deposit condition, free of charge deposit cond, mixed palled surcharge etc) ??? So you create sales orders, credit memos and so on, and then..?
    Thank you !
    Cris

    You can do it yourself in transaction VOFM, Requirements>Pricing. Then highlight the requirement number and and click the "source text" button.
    Click on the first statement (probably a statement like "sy-subrc = 4"), and then click the "stop" button to set the break point. You can then process an order and it should break in that bit of code. Keep on hitting F5 and watch the sy-subrc value - if it is 0 at the last line of code, then the requirement has been met. If not zero, then it has not been met and that price will not be determined.
    Don't forget to remove your breakpoint in VOFM afterwards.
    Hope this helps.
    Jon

  • VOFM: how can i check netwr during calculation?

    Hi everybody,
    When we make a Credit Memo in reference to an Invoice, there is 2 posibilities:
    - To make a partial Credit Memo (only some items).
    - To make a complete Credit Memo (for the total Invoice amount).
    Only in the second case, we have to calculate percepcion condition J1A2.
    So, it is necesary to evaluate if i) is created as reference (solved) and ii) if the net invoice amount (VBRK-NETWR)  is equal to the net Credit Memo Order.
    How can I check that last issue? I have been debbuging the condition (in my case is kobev_983 in VOFM -> Requirement -> Pricing -> 983) but I can't find a variable with the total net amount to check it. I've tried also with XKWERT but the value is the corresponding with the first position.
    Thanks for your help!
    Edited by: Alejandro Willers on Jan 29, 2009 2:36 PM

    Thank you all to follow this up.
    I have done a Finder Find with search for visible and invisible files activated, but no results that specifies the 524MB from during the event.
    Very strange?
    I use iStat Pro already for many years, so i don't think it's a mistake from that application.
    Does anyone know that the MacOS X cron job, that is activated during night (when your computer is on), will go on the network?
    and/or
    Does anyone know if theirs a clear log with all network activity from past night?

  • Open sales order credit value (S066-OEIKW)

    Hello experts,
    I need to update the table S066 with the Open sales order credit value when an item has no confirmed quantity (VBEP-BMENG). So I have created the new rountine under
    VOFM -> Requirements -> Credit checks -> new include RVKMP901. But I don't know how to update this table.
    From the note 377165, the same is explained. But I am niot able to achieve my requirement.
    So please help me in this regard.
    Waiting for your reply.
    Any Suggestion...
    With regards,
    Vasanth M
    Edited by: Vasanth M on Feb 15, 2010 8:21 PM

    Hello Jack,
    Thanks fo your answer. But I have to update the credit amount to the table S066.
    This credit limit could be viewed in the TC FD33. So please suggest me what to do.
    Thanks in Advance
    Best Regards,
    Vasanth M

  • How to change exchange rate type for specific pricing condition type

    Hello every one,
    I have a requirement for billing ie VF01.
    currently  all the exchange rate are being calculated with exchange rate type 'M' by default.
    but now client want it should calculate exchange rate with type 'E' for two pricing condition type for all others it should calculate with type 'M'
    Please any body can help me with the exit and code which i can use.
    I have checked exits SDVFX008.
    but how to change exchange rate with type 'E' only for two conditions.
    as changing exchange rate at document header will change exchange rate for all condition type.

    You need to assign KOMK-KURST = 'E', for those two condition types. If it had been item number specific, you could have used USEREXIT_PRICING_PREPARE_TKOMK(RV60AFZZ).
    Do one thing, put a breakpoint on FM 'PRICING' and then do selective runtime analysis.
    Check whether any user exit/BADI/ explicit enhancement are available when condition types are processed in a loop. If nothing is available, try implicit enhancement.
    Link to refer for selective runtime analysis - Runtime Analysis for VOFM
    Also try with VOFM requirements ( not sure whether changing KOMK-KURST is permissable in requirement as normally  we only set sy-subrc values to suppress/allow condition types ). Don't forget to assign requirements against condition types in pricing procedure.

  • Free Goods for a Combo Deal

    <H3> Hi Experts, I hope you are fine. </H3>
    <H4>I need to create a sales promotion. When my customer buys a combo we give a free good. For example:</H4>
    Shaving kit - Material A
          1 - shaver - Material B
          2 - shaving foam - Material C
          3 - fragance - Material D - FREE GOOD
    Only when the customer buys the kit. If he wants to buy only the fragance, he must pay normally.
    <H4>I know that FREE GOODS determination will not function with BOM, i've tried this before. But I'm not sure if this is impossible to do without Abap Development.
    Can anyone help me ?
    Thanks in advance,
    Flavio</H4>

    You can develop a routine in t.code VOFM->Requirements->free goods. Here you can add the coding to check the combination of materials BCD in order for issuing free goods. You can add this routine in t.code V/N5, in the requirement column against each condition type. I never tired this, so this is only my suggestion.
    P.S: Even you can create a Z-table to keep various combinations of materials and the requirement routine can read the combinations against sales order items and can approve free goods.
    Regards,

  • Re: Setting up free goods for a particular amount in the order.

    Hello,
    I have a scenario which I am trying to setup.
    If total amount of the order exceeds $x amount, customer gets a specified free item when promotion code is entered.
    For Promotion code we have a Field setup and we are using for normal pricing.
    Can anyone suggest!
    Thank you!
    Edited by: Das516 on Feb 3, 2012 8:59 PM

    Develop a routine in t.code VOFM ->requirements->free goods to check the order value. Then assign this routine in the requirements column for each condition type in the free goods determination procedure in t.code V/N5. In V/N5, if already any other routine is assigned, then copy it, rename to new number and add additional coding coding in VOFM. Then assign the new routine number in V/N5.
    Regards,

  • Purchase requisition with reference to blocked sales order

    Hello,
    we are creating purchase requisitions (PR) manually with reference to a sales order (account assignment Z). When this sales order is blocked, we still can issue the purchase requistion.
    What can we do to avoid this? I think in 2 solutions:
    - use enhancement MEREQ001 to show error message when SO is blocked, so PR is not created. Is this possible?
    - create a release strategy for PR created in that plant (tr. OME6). The problem is that release strategy refers to an amount in the PO, and not to other factor, like SO blocked. Maybe in the former enhancement we can set the field EBAN-GSFRG to 'X'?
    Thanks for your help.

    Many thanks for your answer. It help me to solve the issue.
    So applying note 738171, with transaction OVB5 (or VOFM, requirements->subsequent functions->Purch.requisitions) we create one new requirement, ie RV07A900, and then we apply the rule that if we have delivery or billing block, that is, VBAK-LIFSK or VBAK-FAKSK not empty, then we set an error with a code similar to this:
                da_sy-msgid = 'Z1'.    (message class)
                da_sy-msgno = '001'.  (message number)
                error_exception = true.
    and then the PR is not created.
    Regards.

Maybe you are looking for

  • ValueMappingReplication in PI 7.1

    Hello - We are on PI 71 and I am trying to create the Value mapping in RWB - >Cache Monitoring  by uploading  a CSV file from the local PI server  which has the value mapping information. I have configured this scenario and when the CSV file was pick

  • Source System in an ABAP Landscape

    We are relatively new to SAP.  Back when we initially architected the landscape we had many consultants in, including several Platinum consultants from SAP.  At the time they emphasized the special nature of the "source system" in an ABAP landscape,

  • Exclamation point and folder and nothing else

    Hi... I have an older 20 g iPod. I dropped it (only 3 feet but hard surface) last week and after that it malfunctioned and then stopped functioning. I have tried the reset several times without success. My Mac does not recognize it either in the info

  • How to make a duplicate of a photo

    How do I make a duplicate of a photo that is on my mini

  • Architecture of Flex application

    Are there any tutorials for decomposition of a large flex application into smaller components that are easier to handle? Integration of the components?