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

Similar Messages

  • Problem of configuration the requirement output control ?

    Hi ,
    i am now in a very urgent situation that is the system does not create the message type after executing the transaction VL31N.
    In detail :
       I have used the transaction NACE to configure the "Requirements output control" and i have created 3 message type (Z1 , Z2, Z3)  ( type V6 : handling unit) and i have coded for each of them to check the requirements for creating the messsage type ( the message type will be created if the sy=subrc = 0 after the forms are executed.
    FORM KOBEV_Z1.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
    ENDFORM KOBEV_Z1.
      FORM KOBEV_Z2.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
      ENDFORM KOBEV_Z2.
      FORM KOBEV_Z3.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
      ENDFORM KOBEV_Z3.
    But in fact , even if i have put the sy-subrc = 0 for each of them or for all , the message type was not created as i need .
    Result :
      if the message type is created automatically after executing the KOBEV or KOBEV , a printing program will be called to print the SAPscript form , but till now , i can not do that , to print the form i have to created the message type by hand ..
    Is the something wrong in the system ? How can i configure them to run well ?
    Please help me .
    PS : I will reward immediately and i am waiting
    Thank you very much

    Hi,
    If you are supposed to bring across characteristic values to your target, then you will not be able to jump from the result line. The configuration expects that the values of the characteristic marked as being used in the jump are filled with unique values. When you use the result line as a source for your jump, the values in the result line will most likely be based on the sum of multiple characteristic values.
    Hth,
    -Jacob

  • Howto Debug Requirements Output control routine?

    Hi!
    I want to do the following: I got an Invoice and I want to print an invoice form so I created a message (KSCHL) that shall be found under certain circumstances.
    It looks like that:
    FORM KOBED_663.
      BREAK-POINT id  Y_KOBE_663. "Transaction SAAB
    * infinite loop - trick for debugging
      data lv_infinite type c.
      lv_infinite = 'X'.
      while lv_infinite = 'X' .
    *      infinite loop
      endwhile.
    *Check requirement 662 first
      PERFORM kobed_662.
      IF sy-subrc = 0. "if requirement 662 is fulfilled
    * do some more checking...
        DATA lv_ktokd TYPE ktokd.
        CLEAR lv_ktokd.
        SELECT SINGLE ktokd FROM kna1 INTO lv_ktokd WHERE kunnr = komkbv3-kunrg.
        IF lv_ktokd <> '0003'.
          sy-subrc = 4. "requirement not fullfilled... dont find the message!
        ENDIF.
      ENDIF.
    ENDFORM.
    FORM KOBEV_663.
    Now I got a invoice with no messages within it and I try to debug it because I get my new Print out even in cases I should not because requirement 663 is not fullfilled.
    I made a checkpoint with transaction SAAB, I made an infinite Loop to debug with SM50 and of course I had variours and numerous breakpoints all over and everywhere. But I never stopped within KOBEV_663. Of course I got also the KOBED_663 with identical code and identical "debug"-stuff.
    When I try with my invoice and VF02 going to the messages then my message is found but I did not stop in the kobev_663.
    Question: What do I have to do to debug this? it lookes like the rule is not even checked at all. But in customizing the rule is there (and active of course).
    I also tried logging kompletely off with /NEX and I even cleared all buffers with /$sync (its not the prod. system of course).
    Please help me, I have no further idea.
    Manfred

    Hi!
    First of all: thanks for your great Help! I tried all of your hints and thats the result (maybe someone with my problem comes across this thread).
    @Naimesh Patel: My problem was that the message was found and I wanted to debug the requirement because I was sure, that the message not even should have been found because of not matching the requirement. I did not want to debug the process that creates the message like the print program... but in one point your Post was vital for me: RV80HGEN was missing.
    @Uwe Schieferstein: Unfortunately I dont have LOG-POINTS... maybe my release is too old... I have only 640 here. The Link you posted is of course very interesting! Thanks for that.
    @Rohan Leonce D'souza: Setting--> Update debugging... that was necessary! With that in combination of the RV80HGEN I think it stopped even at my Break-Point ID... to be secure I had your idea with the break USER in addition within the code.
    Now I have the pain to grant forum points... I cant split them unfortunately. Only the combination of several Posts was my solution. But Thanks to all of you!
    Edited by: ManfredScherer on Jan 22, 2010 8:54 AM - solved -

  • Output Control Routine for Order Confirmation

    Hi,
    I have a problem in sending out order confirmation when the customer have a credit block, no order confirmation is being sent.
    Checked on transaction NACE, the routine for Order Confirmation (Routine 2), returns a sy-subrc =4
    when  the credit block is set. What is the best way to correct this?
    Thanks,
    Catherine

    Create the new routine in VOFM->Requirement->Output Control. Make the required changes in routine source text and assign it to output procedure (NACE).
    Thank You,
    Ganesh

  • VOFM formula on output control based on  item category(PSTYV)

    Hi Gurus,
    I created an Output Control requirement in VOFM.
    In the requirement ABAP codes, may I know how can I access the list of item lines category (looking for vbap-pstyv in particular) while I am creating the sales order in VA01, because the sales order is not saved yet, so I cannot get from table VBAP ?
    Any way to find the variables available ?
    Thanks in advance.
    Best Regards,
    Vasumathi
    Edited by: komma vasumathi on Jun 22, 2009 3:26 PM

    Hi there,
    When the sales order is created, all data is stored in the internal tables 1st in USEREXIT_SAVE_DOCUMENT_PREPARE, MV45AV0V_VBAP-PSTYV_VALUES
    in MV45AFZZ.
    So you can refer the fields from there. Item catg is stored in XVBAP table.
    But 1 doubt. Why do you want to trigger the O/p before the order is saved? Usually any O/p is triggered after saving the doc.
    Once the document is saved, data is stored in data base tables & you can refer from them.
    Regards,
    Sivanand

  • Output control in VOFM

    Hi All,
    I have written a routine in output control of VOFM to check the sales order type before generating the invoice.
    I am not able to find the sales order number which is generated currently before creating the invoice.
    I have given the Query as below....
    select single vbelv from vbfa into w_vbelv
                        where vbeln =  komkbv3-vbeln.
    But komkbv3 is giving the invoice number which is going to genearte after requirement program.
    I have to get sales order number there.
    Could you plz anybody help me on this...
    Regards,
    Sekhar D

    You don't have to hit standard tables to find the sales order type, try to find it out from global variables in the debugger, it might be available somewhere in the program.
    Its not possible to get the document number which is being processed currently, because number will be assigned once all check and validations are over.
    Regards
    Karthik D

  • VOFM output control routine for VT01N

    I need to know what the temporary strucutre or internal table is that SAP uses for deliveries.  The values eventually get stroed in table VTTP.  But when using VT01N they are not there of course until it is actually saved to the DB.  The output control routine that was created gets invoked or called before it is saved so I have to read from the temp or internal table SAP uses to load these values for the deliveries.  Does anyone know what this table might be?  I am allowing or preventing output based on some detail concerning the delieveries but none of it is stored until it is saved so I need this temp table to get to the values.

    Look in INCLUDE VTTPDATA.
    This is where the internal tables are defined for VT01N.
    *   INCLUDE VTTPDATA                                                   *
    TABLES:  VTTP,   *VTTP,
             VTTPD,  *VTTPD,
             VTTPVB, *VTTPVB.
    DATA:    BEGIN OF COMMON PART VTTPCOM.
    *   shipment items
    * Data base contents
    DATA:    BEGIN OF DBVTTP OCCURS 0.
               INCLUDE STRUCTURE VTTP.
    DATA:    END OF DBVTTP.
    * New table contents
    DATA:    BEGIN OF XVTTP OCCURS 0.         "Sortiert nach:
               INCLUDE STRUCTURE VTTPVB.      " MANDT TKNUM TPNUM VBELN
    DATA:    END OF XVTTP.
    * Old table contents
    DATA:    BEGIN OF YVTTP OCCURS 0.         "Sortiert nach:
               INCLUDE STRUCTURE VTTPVB.      " MANDT TKNUM TPNUM
    DATA:    END OF YVTTP.
    * Temporary table contents
    DATA:    BEGIN OF LVTTP OCCURS 0.
               INCLUDE STRUCTURE VTTPVB.
    DATA:    END OF LVTTP.
    * Definition of keys
    DATA:    BEGIN OF VTTP_KEY,
               MANDT LIKE VTTP-MANDT,
               TKNUM LIKE VTTP-TKNUM,
               TPNUM LIKE VTTP-TPNUM,
             END   OF VTTP_KEY.
    * Internal table for screen processing
    DATA:    BEGIN OF IVTTP OCCURS 0,        "Sortierkriterium wechselt !
               TKNUM LIKE VTTP-TKNUM,
               TPRFO LIKE VTTP-TPRFO,
               TPNUM LIKE VTTP-TPNUM,
               VBELN LIKE VTTP-VBELN,
               VSTEL LIKE VTRLK-VSTEL,
               WERKS LIKE VTTPVB-WERKS,
               LAND1 LIKE VTRLK-LAND1,
               PSTLZ LIKE VTRLK-PSTLZ,
               KUNNR LIKE VTRLK-KUNNR,
               LIFNR LIKE VTTPVB-LIFNR,
               CONADDR LIKE V56IDLNT-CONADDR,
               TABIX LIKE SY-TABIX,
               XTRLK LIKE SY-TABIX,
               BTGWC LIKE VTRLK-BTGEW,
               GSGWC LIKE VTRLK-BRGEW,
               VOLMC LIKE VTRLK-VOLUM,
    *        fields below will be updated during tree processing
               BTGWD LIKE V56IQUA-BTGWD,
               GSGWD LIKE V56IQUA-GSGWD,
               VOLMD LIKE V56IQUA-VOLMD,
               DTMEG LIKE TVTK-DTMEG,
               DTMEV LIKE TVTK-DTMEV,
               TKNEW LIKE VTTP-TKNUM,
               SELKZ LIKE RV56A-SELTSTP,
             END   OF IVTTP.
    *   deliveries in process
    DATA: BEGIN OF XTRLK OCCURS 0.         "delivery headers
            INCLUDE STRUCTURE VTRLK.       "Sortiert nach MANDT VBELN
    DATA: END OF XTRLK.
    DATA: BEGIN OF XTRLP OCCURS 0.         "delivery items
            INCLUDE STRUCTURE VTRLP.       "Sortiert nach VBELN POSNR
    DATA: END OF XTRLP.
    DATA:    END OF COMMON PART.
    If you put a breakpoint in you VOFM routine, you should be able to examine which of these has the data that you need.
    If you need more info, such as header data etc
    Look at these others:
    *        Internal tables for shipment data base
    SET EXTENDED CHECK OFF.
    INCLUDE vttkdata.                      "shipment header
    INCLUDE vttpdata.                      "shipment item
    INCLUDE vttsdata.                      "shipment segment
    INCLUDE vbpadata.                      "partner
    INCLUDE vtfadata.                      "flow
    INCLUDE sadrdata.                      "address
    This is from the top include MV56ATOP for the program run by VT01N, SAPMV56A.
    You can access all of this through SE84, Information System.
    Good luck
    Brian

  • How to configure the requirements for output control ?

    Hi ,
    I have some problems in configuring the requirements for output control like following :
    My aim is to make a condition check when i create an inbound delivery ( VL31N)  or MIGO ...., as default in the requirement check for output , a message type will be created automatically if the it satisfies the condition in the KOBEV .....KOBEV( each sub routine was defined with a message type ( V6 )  ( if sy-subrc = 0) . And then a printing program will be triggered to print the SAPscripts form in the table "tnapr"  but even if i have put sy-subrc in ( KOBEV...KOBEV ) always = 0 the printing was not executed , and in this case i do not understand the reason why , If you please to help me this .
    Thanks ,

    Hi,
    it seems that the requirement you made is not the reason why it's not printed. If you set sy-subrc to 0, this code should have no effect.
    Cheers,
    Stefan.

  • Access sequence requirement for output control

    Hi!
    I would like to get some inputs on how access requirement for output control works. I created a new requirement for a condition table that has key combination billing type/sales org/country because I need to restrict the output for a paticular customer in one country. I think the requirement works fine such that it is not fulfilled for the customer that I want ot restrict, thus no output is created. However, I noticed that other customers in that sales org/country are affected by the requirement. The output is created (sy-subrc=0) but it is not processed (remains in yellow status). The output should be emailed immediately upon creation (medium 5/timing 4). For other sales org/countries the creation of output and sending of email work as expected.
    I hope someone have valuable inputs regarding this.
    Note: I created this discussion under ABAP development but it was rejected, for reason: This does not appear to be an ABAP question. So I hope I have selected the correct one with SD.
    Cholen

    There is Output determination log available in the output screen (see the menu). It tells everything about how the output was proposed.
    If the requirement is not fulfilled, you won't see output created with any color - yellow, red or purple with sparkles. If output has been proposed and has a yellow light it means it has not been processed yet. Output is processed only after the document has been saved, so while creating the document, you'll never see any other color. If after saving the document output is still yellow, it must have a different timing than 'process immediately' and it will be processed according to that setting.
    This is a very simple concept, well documented and discussed gazillion of times on SCN. Requirements and conditions are two different things with different purposes. You might want to read a bit more on the output determination.
    Thank you.

  • Check medium in output control requirement

    Hello,
    I have to check the medium (fax, email) in a requirement RV61BXXX (output control).
    So when the medium is fax or email and some other checks are fullfilled, the output doesn't have to be processed.
    When I debug this requirement I cann't find any field with the correct medium value. Isn't there any possibility to get the medium value with function modules or anything else?
    As I can see, SAP gets the medium after the requirements have been processed.
    Thanks,
    Christine De Jaeger

    HI,
    If you chose other options, the driver program that you configure the SPRO or NACE, will get triggered.
    In the driver program, logic must be written in order information is processed (It can be sent as Telex, Mail, Fax based on the SCOT settings and SAP Connect settings).
    If the option you chose is Special function, the driver program may or may not send any mail/fax but you can do any processing . For example, if you want to update a Z Table on issuing the output, you can have that logicn in the Z program and have that attached to the output type in NACE transaction.
    REgards,
    Ravi

  • 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

    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.

  • Output control list BBP_PPF

    Hiya.
    Can please somebody explain when our Buyers click on the the Output Control Purchase Order transaction in enterprise portal, they do not see the modern web style version but are seeing the traditionil dynpro version that is the SAP R3 stye?
    warmest regards, Pooja.

    Keren,
    sorry I misunderstood your requirement.
    The ways of controlling user screens is one of 3.
    1. Screen Variants - you say you have already tried this
    2. Use a BADI to hide fields or control user defined fields, if one is available?
    3. Modify the template - extreme solution that will create future issues during upgrade but sometimes is the only way.
    As I am a functional person you would need to contact your ABAP/technical support for the details.
    Hope this helps
    Allen.

  • BBP_PPF - Output Control Purchase Order

    Dear Experts,
    We use SRM Server 5.50
    Is anyone knows how can we control the UI of transaction 'Output Control Purchase Order' (BBP_PPF)?
    Thanks & Regards,
    Keren

    Keren,
    sorry I misunderstood your requirement.
    The ways of controlling user screens is one of 3.
    1. Screen Variants - you say you have already tried this
    2. Use a BADI to hide fields or control user defined fields, if one is available?
    3. Modify the template - extreme solution that will create future issues during upgrade but sometimes is the only way.
    As I am a functional person you would need to contact your ABAP/technical support for the details.
    Hope this helps
    Allen.

  • PO Output control

    Hello,
    I am trying to define a requirement such that a new output for a PO is through medium EDI, and any repeat (or change) output are assigned medium Fax as default.
    Request you to help me resolve it.
    Thanks
    Rajeev

    Hi,
    Please take a look at the following links,they contain the details requested related to  PO Output control.
    http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7c9f43d711d1893e0000e8323c4f/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/69/e5cb365f6511d2b458006094b9476a/content.htm
    <b>Reward if helpful.</b>
    How to reward?
    Click on the star icon next to the response for which you wish to reward points. A popup window will appear. Use the radio buttons to mark a response "Solved My Problem," "Very Helpful," or "Helpful."

Maybe you are looking for

  • Error in a jsp page...

    Hi guys, i'm a new user of Jsf and i've this error when i run my first application: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletE

  • Connection classes

    hi i wrote a conenction class some time ago that used oracle's connection cache. this worked great, creating and releasing resources as required be it for jsp or a swing application. i am now trying to write a more generic connection pool class that

  • Camera not switching ios7 Ipod Touch 5th Gen

    I have an ipod touch 5th generation and the camera won't switch around (for selfies).  Have tried to switch it with usual method as have owned it for a year and its just started doing this

  • Oracle BPEL processes per day  -DB query

    Hi all, I am trying to produce some statistics for our daily created BPEL processes in the Oracle dehydration store. In particular I am running the following query towards the cube_instance table: select to_char(creation_date, 'dd-mon-yyyy hh24:mi:ss

  • Snmp error rttMonCtrlAdminStatus

    I know this is a stretch to ask here... however, I'm using a tool called SmokePing that utilizes CiscoRTTMonEchoICMP to have a target send an ICMP echo from a different source IP address to a target IP address. I notice that an ASR1000, 10.85.85.85,