User-Exit in ME21 for Valuation Type

Dear Sir,
We are split valuation for the purpose to distinguish between Import Purchase vs Indigenous Purchases . Accordingly we have defined Valuation Types also .
In ME21n we use differnt document type for Import & Domestic Purchases . We are looking for a User-Exit to have a functionality so that incase an Item in PO is classified as Split Valuation (as per Material Master) then Valuation Type must be automatically populated as per the criterion (say incase Document type is ZDOM then Valuation Class is "IND" and if Document Type is ZIMP then Valuation Class is "IMP") .
Please guide me , how to address the above problem .
Regards
B Mittal

Dear Mittal,
You can use exit EXIT_SAPMM06E_012 --> ZXM06U43 , than add all needed logic there. u can take a little help from abbaper.
Regards,
w1n

Similar Messages

  • Batch Number for Valuation Type in BOM item detail

    Dear PP Expert.
    Is it possible to maintain batch number for valuation type in BOM item detail ? My requirement is for example in bom item 10, component A is maintained with batch number for valuation type so that in production order batch number field automatically filled.
    Fyi i have tried user exit :  Enhancement for BOM item: PCSD0002. Here we can maintain valuation type for component in item detail in customer tab. But unfortunately valuation type here is not link with batch number for valuation type in Production order.
    Regards,
    Arman

    Hi JH thanks for your quick reply,
    Let me describe it more specific, I have two material FG and SFG. Material FG is maintained with valuation type so when we do goods receipt for SFG it's asked to input valuation type in batch field. In stock SFG material qty is separated for each valuation type like batch.
    Now i want to maintain in BOM for FG, where component SFG has fix the valuation type / batch so that in production order we don't have to choose manually. Do you have any idea ?
    Regards,
    Arman

  • User exit or BADI for ME22N

    Hi,
    I need a user exit or Badi for defaulting Plant at line item level.
    The scenario goes like this: when ever user tries to change an existing Purchase order and tries to add a new line item in it, I need to trigger USEREXIT or BADI , so that it reads the previous line Plant and updates the current line with the same plant.
    I tried with user exit MM06E005 but it didnt seem to work.
    Can any one please help me?
    I am new to BADI, so I am not sure how to find the BADI and use it. It would be great if anyone can help me i this.
    Thanks
    Ramya

    Hello
    The BAdI ME_PROCESS_PO_CUST is the right one. The method PROCESS_ITEM should be triggered whenever the user changes something in the purchase order at item level and executes any kind of function (e.g. ENTER, CHECK or SAVE).
    However, instead of overwriting the user input via the BAdI you should implement method CHECK ( Closing Check ) where you can validate the user input. If any of your validation fails you can send an error message and set CHANGING parameter CH_FAILED = 'X'. This approach is much more transparent for the user.
    NOTE: In order to "send" an error message you need to add the include mm_messages_mac to your implementing class. For an example see class CL_EXM_IM_ME_PROCESS_PO_CUST (should be available on ERP 6.0):
    METHOD if_ex_me_process_po_cust~process_item .
      DATA: ls_mepoitem TYPE mepoitem,
            ls_customer TYPE mepo_badi_exampl,
            ls_tbsg     TYPE tbsg.
      INCLUDE mm_messages_mac. "useful macros for message handling
    * here we check customers data
      ls_mepoitem = im_item->get_data( ).
      IF ls_mepoitem-loekz EQ 'D'.
    * check field badi_afnam
        IF ls_customer-badi_afnam IS INITIAL.
          mmpur_metafield mmmfd_cust_02.
          mmpur_message_forced 'W' 'ME' '083' text-003 '' '' ''.
        ENDIF.
      ENDIF.
    ENDMETHOD.                    "IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM
    Regards
      Uwe

  • User exit or BADI for recruitment

    Hi,
    I am new to HCM, can you give me user exit or badi for recruitment.
    Requirement - i have developed an infotype which i am updating through BSP, while the custom infotype is updated it should simultaneously update some of my Z tables. Hoping for positve replies earliest.
    Thanks in advance:-
    Santosh

    Hi,
    <b>Infotype</b>The data fields of HR master data, time management and recruitment are grouped logically into information types or infotypes for short.
    Examples of infotypes are "Family/Related Person", "Organizational Assignment, "Basic Pay".
    The following naming conventions apply to infotypes:
    Infotypes 0000 to 0999 are used for HR master data
    and sometimes for applicant data
    Infotypes 1000 - 1999 for organizational management
    Infotypes 2000 - 2999 for time data
    Infotypes 4000 - 4999 for applicant data
    Infotypes 9000 - 9999 for customers
    <b>Function character of step</b>
    This controls for which types of processing (create, change and/or delete a data record) a dynamic action should be carried out.
    The processing type is indicated by a two-digit numeric value. These values can be added up; in other words, you can enter several processing types for each infotype, subtype or field. A dynamic action can also be carried out independent of the current processing type.
    00 for Independent of the current function carried out
    02 for Change
    04 for Create
    06 for Change and create
    08 for Delete
    10 for Change and delete
    12 for Create and delete
    Examples
    If you enter 06, an action is carried out if the specified infotype was created or changed.
    If you enter 00, an action is carried out irrespective of whether the specified infotype was created, changed or deleted.
    <b>Variable function part</b>
    The variable function part, which depends on the indicator for step, can have the following meaning:
    <b>P - Plausibility checks</b>
    You can enter values for specific infotype fields. Field names must be entered in full. Literals and constants can serve as comparison values. These must be enclosed by inverted commas. Variables can also be used.
    The old value of a field can be used for comparison; the field name must be preceded by PSAVE-.
    If fields of other infotypes are used for comparison, these must be stored in the module pool of the current infotype.
    The following comparison operators are supported:
    = equal to,
    < less than,
    <= less than or equal to,
    > greater than
    >= greater than or equal to and
    <> not equal to.
    Consecutive checks must be linked by a logical AND. Logical OR links must also be indicated by a /X.
    Note:
    Note that all checks with OR links must have a /X.
    If the result of the comparison operation is not "true", then the following commands (I, F, W etc.) are skipped over until a field is reached or a new comparison operation takes place.
    Examples
    Infotype  Field ..... Ind.   Variable function part
    0007      STAT3       P      P0007-STAT3='0'
    0007      STAT3       P      PSAVE-STAT3='1'
    The step is taken if the value in the P0007-STAT3 field changes from 1 to 0.
    0007                     P      P0013-KLKZ1<>'0'/X
    0007                     P      P0013-ALVKZ<>'0'/X
    0007                     P      P0013-RVKZ1<>'0'/X
    0007                    P      P0013-RVNUM=SPACE
    The first three conditions are linked by an OR; at least one of these conditions must be met. Condition 4 must always be met.
    The step is taken if the following holds true:
    P0013-KVKZ1 not equal to 0 or P0013-ALVKZ not equal to 0 or P0013-RVKZ1 not equal to 0, and P0013-RVNUM empty.
    <b>I - Maintain infotype record</b>
    Enter the step, infotype, subtype, object ID, start and end dates of the record and an indicator which defines whether the step is to be run in the background. The possible actions are INS, COP, MOD, and DEL.
    Use commas to separate selection criteria just like the separator in the matchcode. If an entry is missing, the system inserts a comma.
    Separate the indicator for suppressing dialog from other entries by a slash D (/D).
    Constants, such as those for subtypes, are not enclosed in inverted commas.
    Variable entries are also permitted. Fields containing such values must be put in brackets.
    Examples:
    Infotype  Field ....  Ind.  Variable function part
          ....             I    INS,19,01/D
    Step: Create a Dates record, subtype 01, run in the background
          ....             I    DEL,14,M559
    Step: Delete Rec. Payments/Deds. record with subtype (wage type) M559.
    0007 ....                I    INS,8,,,(P0007-BEGDA),(P0007-ENDDA)
    Step: Create a Basic Pay record (0008) without subtype and object ID. The start and end dates are the same as those in the current Planned Working Time record (0007); specify these two fields only if they are filled because the dynamic action was triggered by this infotype.
    <b>W - Default values for new record</b>
    Literals or variables are used as default values.
    Set the defaults for the infotype, subtype, object ID, start and end dates using an I step and not a W step.
    Do not set defaults for Q fields of an infotype because the values for these fields are derived from the corresponding P fields.
    Examples
    Infotype  Subtype  ..... FC  Ind.  Variable function part
    0021       2              04  I     INS,0015,M430
    0021        2              04  W     P0015-BETRG='10000'
    When a Family/Related Person record (0021) record with subtype 2 (child) is created, an Additional Payments record (0015) with a default amount of 100.00 is created.
    <b>V - Cross-reference to another step</b>
    Here, you can combine fields to groups. The variable function part contains the value in the field which follows the "field" column. Steps which are specified only for the following field are also triggered for each of the other fields.
    Examples
    Infotype  Field  ..... FC  Ind.  Variable function part
    0016       PRBZH        06  V     PRBZT
    0016       PRBZT        06  I     DEL,0019,01/D
    Infotype 0019, subtype 01 is deleted in the background when the field PRBZT or PRBZH in infotype 0016 is changed or created (function code 06).
    The following entries are equivalent:
    0016       PRBZH        06  I     DEL,0019,01/D
    0016       PRBZT        06  I     DEL,0019,01/D
    <b>F - Call a routine</b>
    You can call internal (module pool) as well as external routines.
    If you call external routines, type the program name in brackets after the routine name. Do not specify 'using' parameters. When calling an external routine, all data must be declared in a common part. You can use the fields of structure RP50D to return values from the routine. These are not used in the standard system and can only be populated via the routine and then can be used for defaults (W-Commands).
    This allows customer-specific routines to be formulated with all the above steps.
    Example 1:
    Infotype  Field  .....  Ind.   Var.function part
    0016      PRBZT         F      PROBATION
    0016      PRBZT         I      INS,19,01
    0016      PRBZT         W      P0019-VTRMN=PRBEND
    Module pool MP001600 contains the PROBATION routine. This routine uses the entries in the fields P0016-PRBZT and P0016-PRBEH to determine the end of the probation period which it stores in the field PRBEND.
    The system creates a new 'Dates' record with the reminder date = PRBEND.
    Example 2:
    Infotyp ..... Ind. Var. function part
    0001           F      GET_DATE(ZPUDYN01)
    0001          I      INS,19,01
    0001           W      P0019-VTRMN=RP50D-DATE1
    The GET_DATE routine in program ZPUDYN01 calculates a date and enters this date in the RP50D-DATE1 field via "TABLES RP50D" in ZPUDYN01. This date can be user-defined in GET_DATE: if necessary, user-defined infotypes can be read afterwards.
    <b>M - Send a mail</b>
    Enter the name of the feature which defines the characteristics of the mail.
    Example
    Infotype  Field  .....  Ind.    Var.function part
    0001     SACHP         M       M0001
    A mail is sent when the field SACHP is changed. The characteristics of the mail are defined in feature M0001.
    In the standard system, feature M0001 is provided as a model. The documentation on feature M0001 explains how to define the characteristics of a mail.
    <b>ADDITIONAL HINTS</b>
    If you use a date as a constant, enter it as YYYYMMDD (YYYY=year, MM=month, DD=day).
    The table strings T001P, T503 and PSPAR are filled with the values which are valid on the record start date.
    The old values of the infotype are stored in the field string PSAVE. The structure of this string is the same as the Pnnnn structure (nnnn=infotype). The structure is filled with (valid) values only when the delete, change and create functions are used.
    Please read Create dynamic actions in the Implementation Guide.
    Regards
    Bernd

  • User Exit or BADI for COR1/COR2

    Dear Experts,
    Can you please tell me if we have any user-exit or BADI for chaning the value of the technical completion date field
    i.e. AUFK-IDAT2 while saving the Process Order in COR1 or COR2?
    Thanks,
    Praveen

    Hi Praveen,
    Implement the customer exit EXIT_SAPLCOKO_006 in enhancement
    PPCO0020  Process order: Display/change order header data
    This is only importing one field I_AUFNR.
    but try the logic below.
    data: lv_fnam type char16 value '(SAPLCOKO)caufvd'.
    field-symbols : <fs_caufvd> type caufvd.
    your checks for changing the field IDAT2 (Technical completion date).
    Try to change <fs_caufvd>-IDAT2 field value.
    Regards,
    Dwarakanath.S

  • User Exit / Badi / BTE for Asset creation A ?

    Hi Experts,
    I need User Exit  / BADI / BTE for asset Creation.
    After saving newly created Asset from As01 we need to send a mail to the person for whom the Asset is assigned.
    i have tried all this.But no one is triggering after saving the As01 transaction.
    Exit Name           Description                                                                               
    AAPM0001            Integration of asset accounting and plant maintenance                    
    AFAR0003            External changeover method                                               
    AFAR0004            Determination of proportional values for retirement                      
    AINT0004            Change amount posted for certain areas                                   
    AINT0005            Dummy for extended syntax check. Do not use.                             
    AISA0001            Assign Inventory Number                                                  
    AIST0001            Exchange number range in master data maintenance                         
    AIST0002            Customer fields in asset master                                          
    AMSP0002            Determine relationship type for two company codes                        
    TRAN0001            User exit for asset transfer           
    Please suggest if anybody worked on this.
    regards,
    Imran

    Hi,
    Check out the following posts pertaining to similar topic.
    Change Asset Workflow
    Asset Management WORKFLOW
    Regards
    Sreekanth

  • User Exits or BADI for Tcode ME51N

    Hi All,
    My requirement is i need to check available quantity at the time of Purchase req creation. If PR quantity is available in stock then it should not allow to create new PR.
    Is there any user exit or Badi for this requirement. Kindly send me.
    Regards,
    Paras

    Hi Paras,
    Copy this program and execute. Will get all list of existin g Exits and Badis.
    very useful program
    Below code will give a list of BADIs for particular transaction.
    *& Report ZNEGI16 *
    REPORT ZNEGI16 .
    TABLES : TSTC,
    TADIR,
    MODSAPT,
    MODACT,
    TRDIR,
    TFDIR,
    ENLFDIR,
    SXS_ATTRT ,
    TSTCT.
    DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA : FIELD1(30).
    DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
    P_PGMNA LIKE TSTC-PGMNA .
    DATA wa_tadir type tadir.
    START-OF-SELECTION.
    IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
    ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
    ENDIF.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
    SELECT SINGLE * FROM TFDIR
    WHERE PNAME = TSTC-PGMNA.
    SELECT SINGLE * FROM ENLFDIR
    WHERE FUNCNAME = TFDIR-FUNCNAME.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'FUGR'
    AND OBJ_NAME EQ ENLFDIR-AREA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
    ENDIF.
    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.
    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.
    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    Sorting the internal Table
    sort jtab by OBJECT.
    data : wf_txt(60) type c,
    wf_smod type i ,
    wf_badi type i ,
    wf_object2(30) type C.
    clear : wf_smod, wf_badi , wf_object2.
    Get the total SMOD.
    LOOP AT JTAB into wa_tadir.
    at first.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 'Enhancement/ Business Add-in',
    41 SY-VLINE ,
    42 'Description',
    105 SY-VLINE.
    WRITE:/(105) SY-ULINE.
    endat.
    clear wf_txt.
    at new object.
    if wa_tadir-object = 'SMOD'.
    wf_object2 = 'Enhancement' .
    elseif wa_tadir-object = 'SXSD'.
    wf_object2 = ' Business Add-in'.
    endif.
    FORMAT COLOR COL_GROUP INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 wf_object2,
    105 SY-VLINE.
    endat.
    case wa_tadir-object.
    when 'SMOD'.
    wf_smod = wf_smod + 1.
    SELECT SINGLE MODTEXT into wf_txt
    FROM MODSAPT
    WHERE SPRSL = SY-LANGU
    AND NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    when 'SXSD'.
    For BADis
    wf_badi = wf_badi + 1 .
    select single TEXT into wf_txt
    from SXS_ATTRT
    where sprsl = sy-langu
    and EXIT_NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    endcase.
    WRITE:/1 SY-VLINE,
    2 wa_tadir-OBJ_NAME hotspot on,
    41 SY-VLINE ,
    42 wf_txt,
    105 SY-VLINE.
    AT END OF object.
    write : /(105) sy-ULINE.
    ENDAT.
    ENDLOOP.
    WRITE:/(105) SY-ULINE.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
    ENDIF.
    AT LINE-SELECTION.
    data : wf_object type tadir-object.
    clear wf_object.
    GET CURSOR FIELD FIELD1.
    CHECK FIELD1(8) EQ 'WA_TADIR'.
    read table jtab with key obj_name = sy-lisel+1(20).
    move jtab-object to wf_object.
    case wf_object.
    when 'SMOD'.
    SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
    SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
    CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    endcase.
    Reward points if this helps.
    hema.

  • User Exits or BAdis' for the Service Order create Transaction

    Hi all,
              I need to Replace a field, "Product" in the "Item Details" area  of the create Service Order Transaction(CRMD_BUS2000116) with some custom field.
    Are there any Exits/BAdi which will help me in doing this..
    Thanks in advance
    Sethu

    Hi Sethu,
    The user exits / BADI's for the Transaction(CRMD_BUS2000116 are not avaliable:
    The following info from one forum to search user exits / BADI's  that you can use: There are multiple ways of searching for BADI.
    • <b>Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    • Finding BADI Using SQL Trace (TCODE-ST05).
    • Finding BADI Using Repository Information System (TCODE- SE84).</b>
    1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
    Make sure the radio button “In main program” is checked. A list of all the programs with call to the BADI’s will be listed.
    The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter ‘INSTANCE’ will have the interface assigned to it. Double click on the method to enter the source code.
    Definition of Instance would give you the Interface name.
    2. Start transaction ST05 (Performance Analysis).
    Set flag field "Buffer trace"
    Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
    Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
    Push the button "Deactivate Trace".
    Push the button "Display Trace".
    The popup screen "Set Restrictions for Displaying Trace" appears.
    Now, filter the trace on Objects:
    • V_EXT_IMP
    • V_EXT_ACT
    Push button "Multiple selections" button behind field Objects
    Fill: V_EXT_IMP and V_EXT_ACT
    All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
    So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
    3. Go to “Maintain Transaction” (TCODE- SE93).
    Enter the Transaction VD02 for which you want to find BADI.
    Click on the Display push buttons.
    Get the Package Name. (Package VS in this case)
    <b>Go to TCode: SE84->Enhancements->Business Add-inns->Definition</b>
    Enter the Package Name and Execute.
    Here you get a list of all the Enhancement BADI’s for the given package MB.
    Also have a look at below report which will list BADIs.
    REPORT  Z_FIND_USER_EXITS.
    TABLES : TSTC,TADIR,MODSAPT,MODACT,TRDIR,TFDIR,ENLFDIR,SXS_ATTRT ,TSTCT.
    DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA : FIELD1(30).
    DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
                 P_PGMNA LIKE TSTC-PGMNA .
    DATA wa_tadir type tadir.
    START-OF-SELECTION.
      IF NOT P_TCODE IS INITIAL.
        SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
      ELSEIF NOT P_PGMNA IS INITIAL.
        TSTC-PGMNA = P_PGMNA.
      ENDIF.
      IF SY-SUBRC EQ 0.
        SELECT SINGLE * FROM TADIR
        WHERE PGMID = 'R3TR'
        AND OBJECT = 'PROG'
        AND OBJ_NAME = TSTC-PGMNA.
        MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
        IF SY-SUBRC NE 0.
          SELECT SINGLE * FROM TRDIR
          WHERE NAME = TSTC-PGMNA.
          IF TRDIR-SUBC EQ 'F'.
            SELECT SINGLE * FROM TFDIR
            WHERE PNAME = TSTC-PGMNA.
            SELECT SINGLE * FROM ENLFDIR
            WHERE FUNCNAME = TFDIR-FUNCNAME.
            SELECT SINGLE * FROM TADIR
            WHERE PGMID = 'R3TR'
            AND OBJECT = 'FUGR'
            AND OBJ_NAME EQ ENLFDIR-AREA.
            MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
          ENDIF.
        ENDIF.
        SELECT * FROM TADIR INTO TABLE JTAB
        WHERE PGMID = 'R3TR'
        AND OBJECT in ('SMOD', 'SXSD')
        AND DEVCLASS = V_DEVCLASS.
        SELECT SINGLE * FROM TSTCT
        WHERE SPRSL EQ SY-LANGU
        AND TCODE EQ P_TCODE.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
        20(20) P_TCODE,
        45(50) TSTCT-TTEXT.
        SKIP.
        IF NOT JTAB[] IS INITIAL.
          WRITE:/(105) SY-ULINE.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
    Sorting the internal Table
          sort jtab by OBJECT.
          data : wf_txt(60) type c,
          wf_smod type i ,
          wf_badi type i ,
          wf_object2(30) type C.
          clear : wf_smod, wf_badi , wf_object2.
    Get the total SMOD.
          LOOP AT JTAB into wa_tadir.
            at first.
              FORMAT COLOR COL_HEADING INTENSIFIED ON.
              WRITE:/1 SY-VLINE,
              2 'Enhancement/ Business Add-in',
              41 SY-VLINE ,
              42 'Description',
              105 SY-VLINE.
              WRITE:/(105) SY-ULINE.
            endat.
            clear wf_txt.
            at new object.
              if wa_tadir-object = 'SMOD'.
                wf_object2 = 'Enhancement' .
              elseif wa_tadir-object = 'SXSD'.
                wf_object2 = ' Business Add-in'.
              endif.
              FORMAT COLOR COL_GROUP INTENSIFIED ON.
              WRITE:/1 SY-VLINE,
              2 wf_object2,
              105 SY-VLINE.
            endat.
            case wa_tadir-object.
              when 'SMOD'.
                wf_smod = wf_smod + 1.
                SELECT SINGLE MODTEXT into wf_txt
                FROM MODSAPT
                WHERE SPRSL = SY-LANGU
                AND NAME = wa_tadir-OBJ_NAME.
                FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
              when 'SXSD'.
    For BADis
                wf_badi = wf_badi + 1 .
                select single TEXT into wf_txt
                from SXS_ATTRT
                where sprsl = sy-langu
                and EXIT_NAME = wa_tadir-OBJ_NAME.
                FORMAT COLOR COL_NORMAL INTENSIFIED ON.
            endcase.
            WRITE:/1 SY-VLINE,
            2 wa_tadir-OBJ_NAME hotspot on,
            41 SY-VLINE ,
            42 wf_txt,
            105 SY-VLINE.
            AT END OF object.
              write : /(105) sy-ULINE.
            ENDAT.
          ENDLOOP.
          WRITE:/(105) SY-ULINE.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No.of Exits:' , wf_smod.
          WRITE:/ 'No.of BADis:' , wf_badi.
        ELSE.
          FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
          WRITE:/(105) 'No userexits or BADis exist'.
        ENDIF.
      ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(105) 'Transaction does not exist'.
      ENDIF.
    AT LINE-SELECTION.
      data : wf_object type tadir-object.
      clear wf_object.
      GET CURSOR FIELD FIELD1.
      CHECK FIELD1(8) EQ 'WA_TADIR'.
      read table jtab with key obj_name = sy-lisel+1(20).
      move jtab-object to wf_object.
      case wf_object.
        when 'SMOD'.
          SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
          CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
        when 'SXSD'.
          SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
          CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
      endcase.
    Hope it will help you.
    Regards,
    Arjun
    <b>Reward points if it helps</b>

  • User-Exit at Save for KL01

    Hi,
    Is there any user-exit at save for transaction KL01.
    Here is my requirement.
    Where ever am employee is hired in HR ( transaction PA40; Action = Hire) i have to automatically create an Activity Type ( t.code : KL01 ). I am doing this in user-exit PBAS0001, component EXIT_SAPFP50M_002 on HR side.
    The next this is, once activity type is created using transaction KL01, i have to automatically trigger a activity type planning, transaction KP26.
    So, i need a user exit at Save in transaction KL01, so that i can trigger KP26 from there. I found one exit COOMKS02, but i its not triggeting from KL01.
    Does any one know any user-exit in KL01 which trigger at save. Please let me know
    Thanks,
    Pratik

    Hi Sharad,
    Thanks for your reply.
    I always have an option for executing both KL01 and KP26 fron PBAS0001, but what i was thinking that if there is any exit available at save in KL01, i can trigger KP26 from there.
    If i could not find any exit, i will call both KL01 and KP26 from PBAS0001 itself.
    Thanks,
    Pratik

  • User Exits or BADI for RMWB

    Hello Experts,
                        I want to put a check on material code while forming the composition for recipe in transaction RMWB. I am entering the material uner the input and output tab. Can anyone please tell the available user exits or BADI for this. I checked few, however, the material no. is not getting captured.
    Thanks in advance.
    Regards,
    Sonal

    Hello Sonal,
    You can make use of field symbol to read the value of a variable in BADI.Press F1 on field and read the program name and screen field name of a variable and the use below things in the BADI code.
    Field-symbol <fs> type any.
    ASSIGN ('(program name)variable name') TO <fs>.
    IF sy-subrc EQ 0 AND <fs> IS ASSIGNED.
        ..you will get the variable value here in <fs>
    ENDIF.
    Thanks,
    Pawan

  • User exit or badi for transaction IW32

    Hi all,
    I am searching for user exit or badi for Transaction IW32 but not finding as per my requirement.here in transaction IW32 if field system status(STTXT) key value is 'Released', all line item components should get displayed in display mode.it should not allow to edit or change line item components.can anyone give user exit or BADI to achieve this.
    Thanks in advance.
    Regards,
    Harshada

    Hi,
    Try to use this exit:
    Enhancement     EXIT_SAPLBSVA_001     STATTEXT     Modification exit for formatting status text lines     
    Sample code:
    IF ( sy-tcode = 'IW32') .
      DATA: lv_str1   TYPE string.
      FIELD-SYMBOLS : <fs_qmart> TYPE ANY.
      lv_str1 = '(SAPLIQS0)VIQMEL-objnr'.
      ASSIGN (lv_str1) TO <fs_objnr>.
      SELECT SINGLE inact INTO lv_inact FROM jest WHERE  objnr = viqmel-objnr
                                                     AND   stat = c_stat
                                                     AND  inact = space.
        IF sy-subrc = 0.
          LOOP AT SCREEN.
              screen-input = 0.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
    ENDIF.
    Alternativ badi:
    BADI     SAPLIQS0          IQS0_STATUS_MAINTAIN     Control of Changeability of User Status     
    I hope this may helpfull.
    Thanks,
    AMS

  • User Exit KKAG0001, KKAG0002 for Result Analysis - reg

    Hi All,
    Has any body used user exit KKAG0001, KKAG0002 for Result Analysis for PS. Need your help as the documentation is not available.
    Pls help in this regard.
    Regards,
    Prakash

    Hi,
    KKAG0001 is the user exit for RA for ps you can see it smod/cmod transaction whether it calling to functional module as below
    EXIT_SAPLKKAG_001 ; Customer-Specific Postprocessing of Auto. Calculated Results
    EXIT_SAPLKKAG_002 : Customer-Specific Determination of Planned Values/Valuation
    EXIT_SAPLKKAG_005 : Customer-Specific Postprocessing of Plan Assignment of Depen
    Regards,
    Sanjeev

  • User Exit in VF01 for Tax Conditions

    Hello,
    Please inform if any user exit is available for processing Conditions (Tax) in a Sales Order.
    I'm facing a problem that while Invoicing, a certain Tax condition is not being executed.
    Thanks,
    Shalabh Jain

    HI Colleague,
    I will list the available user-exit to be used for Billing Document:
    User Exits For Billing
    USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)
    The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.
    USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).
    USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).
    USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy). USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.
    USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)
    This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.
    USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)
    Printing the item line of a billing document can be supplemented or changed.
    USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Printing the header line of a billing document can be supplemented or changed.
    User exits in program RV60AFZD
    Short descriptions of the user exits are contained in the program:
    USEREXIT_RELI_XVBPAK_AVBPAK
    USEREXIT_NEWROLE_XVBPAK_AVBPAK
    USEREXIT_NEWROLE_XVBPAP_AVBPAK
    The following user exits are available in report SAPLV60B for transfer to accounting (function group V60B):
    EXIT_SAPLV60B_001: Change the header data in the structure acchd
    You can use this exit to influence the header information of the accounting document. For example, you can change the business transaction, "created on" date and time, the name of the person who created it or the transaction with which the document was created.
    EXIT_SAPLV60B_002: Change the customer line ACCIT
    You can use this exit to change the customer line in the accounting document. This exit is processed once the ACCIT structure is filled in with data from document header VBRK.
    EXIT_SAPLV60B_003: Change the customer line in costing
    The customer line is filled in differently for costing. You can use exit 003 to influence the ACCIT structure.
    EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add information to a GL account item (such as quantity specifications) with this exit.
    EXIT_SAPLV60B_005: User exit for accruals
    Once all relevant data for accruals was entered in the GL account item, you can add to this data with this exit.
    EXIT_SAPLV60B_006: Change the control line ACCIT
    You can use exit 006 to add information to the control line.
    EXIT_SAPLV60B_007: Change the installment plan
    You can use exit 007 to add information to the installment plan
    parameters in the GL account item.
    EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and ACCHD
    After the accounting document is filled in with data, you can use exit 008 to change the document once again.
    EXIT_SAPLV60B_010: Item table for customer lines
    You can use exit 10 to influence the contents of customer lines before they are created.
    EXIT_SAPLV60B_0011: Change the parameter for cash account determination or reconciliation account determination
    You can use this exit to change inbound parameters in order to influence account determination.
    I hope that one of them could be helpful.
    Regards
    Ruy Castro

  • User Exit or BADI For Customer Hierarchy Maintainence- VDH1N

    Hi All,
    I need User Exit or BADI for the Customer Hierarchy Maintainence VDH1N Tansaction.
    I need to Capture all the Changes done to the Customer Hierarchy by the User in ECC.
    Thanxs.
    Swathi

    Hi,
    Follow these steps to find BADI...
    1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
    2. In 'Display' mode, go to 'Methods' tab.
    3. Double click the method 'Get Instance' to display it source code.
    4. Set a breakpoint on 'CALL METHOD cl_exithandler => get_class_name_by_interface'.
    5. Then run your transaction.
    6. The screen will stop at this method.
    7. Check the value of parameter 'EXIT_NAME'. It will show you the BADI for that transaction.

  • How can we identify what are all user exits are there for sales orders,deli

    Dear All,
    How can we identify what are all user exits are there for sales orders,deliverys and invoices
    thanks
    nitchel v

    Hi Nitchel
    There are many ways to find out the user exits..
    For example for VA01.
    Goto Transaction ie VA01:
    goto System-- Status
    doubleclick on the program name ie SAPMV45A
    SE38 -> Enter the program name and in the program( SAPMV45A) goto -- attributes
    get the package name from here ie VA
    note the package(VA) and get back to main screen
    goto SMOD tcode  and click on find button in the package spec giv the package name ie VA and execute it
    you will find list of exits available
    check out the exit that suits ur requirement
    goto cmod and create a new project and implement in that user exit.
    You will get the following exits in SMOD..
    SDTRM001  Reschedule schedule lines without a new ATP check
    V45A0001  Determine alternative materials for product selection
    V45A0002  Predefine sold-to party in sales document
    V45A0003  Collector for customer function modulpool MV45A
    V45A0004  Copy packing proposal
    V45E0001  Update the purchase order from the sales order
    V45E0002  Data transfer in procurement elements (PRreq., assembly
    V45L0001  SD component supplier processing (customer enhancements
    V45P0001  SD customer function for cross-company code sales
    V45S0001  Update sales document from configuration
    V45S0003  MRP-relevance for incomplete configuration
    V45S0004  Effectivity type in sales order
    V45W0001  SD Service Management: Forward Contract Data to Item
    V46H0001  SD Customer functions for resource-related billing
    V60F0001  SD Billing plan (customer enhancement) diff. to billing
    For Delivery you will get .. here the package name will be VL.
    V02V0001  Sales area determination for stock transport order
    V02V0002  User exit for storage location determination
    V02V0003  User exit for gate + matl staging area determination (h
    V02V0004  User Exit for Staging Area Determination (Item)
    V50PSTAT  Delivery: Item Status Calculation
    V50Q0001  Delivery Monitor: User Exits for Filling Display Fields
    V50R0001  Collective processing for delivery creation
    V50R0002  Collective processing for delivery creation
    V50R0004  Calculation of Stock for POs for Shipping Due Date List
    V50S0001  User Exits for Delivery Processing
    V53C0001  Rough workload calculation in time per item
    V53C0002  W&S: RWE enhancement - shipping material type/time slot
    V53W0001  User exits for creating picking waves
    VMDE0001  Shipping Interface: Error Handling - Inbound IDoc
    VMDE0002  Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0003  Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0004  Shipping Interface: Message SDPACK (Packing, Inbound)
    For Billing VF01..Package is VF..
    SDVFX007  User exit: Billing plan during transfer to Accounting
    SDVFX008  User exit: Processing of transfer structures SD-FI
    SDVFX009  Billing doc. processing KIDONO (payment reference numbe
    SDVFX010  User exit item table for the customer lines
    SDVFX011  Userexit for the komkcv- and kompcv-structures
    V05I0001  User exits for billing index
    V05N0001  User Exits for Printing Billing Docs. using POR Procedu
    V60A0001  Customer functions in the billing document
    V60P0001  Data provision for additional fields for display in lis
    V61A0001  Customer enhancement: Pricing
    Or another way is ..
    - Get the program name for that T-Code
    - Go to that program
    - In that program, search for word 'EXIT' or 'CUSTOMER-FUNCTION' by using where-used list which will give u the list of user exits for that program
    And also you can check in the tables in SE16 for user exits..
    MODSAP - Stores SAP Enhancements
    MODSAPT - Stores SAP Enhancements - Short Texts
    MODACT - Stores Modifications
    And there are other ways as well , pls check the forum for this ,
    Regards,
    Vvieks
    Note : If you have any specific requirement then pls let us know , we will guide you

Maybe you are looking for

  • Major performance problem in weblogic jdbc

    I ran a test which selected ~1000 rows from an oracle database table. The code ran in 4 seconds when I used the Oracle driver directly: Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection = DriverManager.getConnection(URL, "XXX",

  • Count of words in a string

    i have a string "hai oracle tech team" i want to calculate the number of words in it i.e. it should return 4 how to do it

  • What is the use of Oracle Wallet Manager

    Hello All, I have notives that there is a tool called "Oracle Wallet Manager" that is loaded on to my machine. After reading the on-line help I figure that It can keep some certificates for me.My question ; What is this tool used for? Why do we have

  • FF 4.01 dont show all pages right

    My Firefox 4.01 stopped to show some pages right. For example it don`t show css styles in wikipedia-pages. It don`t open GMAIL exept in simple html-mode. SHOW/STYLES/DEFAULT STYLE is set up, so thats not the answer. I don`t know if it has something t

  • PDF and multi-media database suggestions?

    i need to organize some pdfs and other file types such as image files in a database. i would like to do this in something that may let me /edit/ metadata but also in a way that lets me /export/ the pdf or other files so that the file that gets export