User Exit or BADI for the Bank validation in BP transaction

Hi All,
    My requirement goes like this, my customer wants to validate the bank keys whether the deletion flag is marked or not and if marked then throw the error message, in BP transaction. But when i was searching for the user exit or a BADI during "save" in BP transaction i was not able to get the appropriate user exit or a badi to do the validation. So can anyone help me finding the user exit or a BADI in the BP transaction
Thanks and Regards,
Praveenkumar T

Hi Praveen,
I don't think there is any Standard FM to validate the bank keys.
You need to make a custom FM for the above requirement and call the FM during the save event of the BP.
Go to Transaction Code-BUS7 and look for event-DSAVC
Under the event DSAVC, assign the custom FM and place the X flag for calling the same.
Hope it clarifies.
Thanks,
Amlan

Similar Messages

  • How to find the list of USER-EXITS or BADI for the transaction ABSO

    Hi all,
    Please help me to find the list of USER-EXITS or BADI for the transaction ABSO & find the exact user-exit which meets the requirement.
    Thanks & Regards,
    gyanaraj

    Hi,
    Copy the problem  in SE38 and  Execute it
    Enter the Tcode  u want
    this  will the  list of Userexits and badis
    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.

  • User Exit or BADI for F-43 Validations

    Hi
    I need to add some validations to F-43 tcode , the validations are over some header (company, currency..)  and detail (postink key, account,..)  data  (BKPF and BSEG) and send the user the corresponding  Z errors before save and generate the document.
    Does somebody knows some user exit or Badi wich i can use to make F-43 data validations ?
    Thanks
    Frank

    Hi Max
    FI Validations was just my first option because i need to make this same validations in several creating tcodes like F-43, FB02 and MIRO, but in my validations i have about 14 messages errors depending of data and , if i do not make a mistake, in FI Validations there is only a message for step .
    The point is in my validations i use data that i read according i'm going validating so if i use N steps , one step for each error message , i would have to repet the data read in each step.
    Am i right, in FI Validations there is only a message for step and the message is the predefinded in the step itself ?  or i can make severeal validations and send differents error messages in one same step ?
    Thanks a lot
    Frank

  • User exit or badi for the iw32 for the subnetwrk/portn

    Hi All,
    I got one requirement in PM Module, after making the changes in the PM work order using the transaction code IW 32 and clicking on u201CSAVEu201D button, then we need to fetch the u201CSettlement Receiveru201D values from Settlement Rule related to Account assignment category NTA and NTW. The fetched values from the Settlement Rule should be placed in u201CAdditional Datau201D tab in the field u201CSubnetwrk of/Oprtnu201D.
    Could you please any one let me know we can achieve this by using the USER EXIT or BADI or any other.

    Jaya Sankar,
    Have a look at IWO10009 (at save user-exit) and try entering this code to extract the settlement data:
    lv_text1 = '(SAPLKOBS)GT_COBRB_BUF[]'.
    ASSIGN (lv_text1) TO <fs_gt_cobrb_buf>.
    If you get no values, then it means that the user has not entered the settlement screens. You therefore need to select the data from the database.
    Then try using this code to update the header data:
    * NOTE: Be very careful when using this method - it is not recommended by SAP
    * get order header data (or use user-exit import data)
      call function 'CO_IH_GET_HEADER'
        importing
          caufvd_imp = lv_caufvd.
    * do your own processing here
    * set order header data
      call function 'CO_IH_SET_HEADER'
        exporting
          caufvd_imp = lv_caufvd.
      perform caufv_upd(saplcobh) using lv_caufvd.
    PeteA

  • 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 or BADI for F110 transaction

    Hello, i need a user exit or badi for the F110 transaction with the objective to shoot workflow of approval of payment proposal.

    Hi Mathias,
    Welcome to SDN.
    Please check this link for sample code to find user exits and BADIs for a given transaction code.
    User Exit
    Hope this will help.
    Regards,
    Ferry Lianto

  • 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.

  • User Exit or BADi for FB02

    Hi
    Does somebody knows some user exit or BADI for add validations to FB02 when user changes some position data.
    I need to validate some header BKPF (Company, Currency) and detail BSEG (Posting Key, Account Bank)  data when change the position.
    Does somebody knows one user exit or Badi wich i can use to do it  ?
    Thanks
    Frank

    Thanks for your answers.
    I need to make validations for send error messages and i can not use FI Validations and Sustitutions because i send several differents messages  and wuold need N steps (one step for each message).
    The enhancement points called in CHANGE_TO_MODIFY are executed when ok-code is 'CHAE' that is when the user calls FB03 and then change to modify mode for make changes like if he goes to FB02 , but these enhancements are no executed any more when the data changes are made and user press save.
    I already found some enhancement executed just before data saving (it's in FORM belegsummen_pruefen) so i make the validation and send the error message , but when error message appears the screen get protected so the user can not change any screen field for make the data corrections.
    Best Regards
    Frank

  • 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 this functionality

    hi to all experts ,
                          i need user exit or badi for implementing a customized check to ensure appropriate incoterms is being maintained in PO document . they are maintaining two different incoterms maintained for the same vendor depending on the plant.
    thanks in advance

    hi,
    please give the information about
    which transaction??
    which field??
    i think u need only validation, if check is not present u need to throw error or info mess, right..
    regards
    vijay

  • User Exit or Badi for MIRO

    Hi
    I need add some validations to data entry in MIRO for send their respective error messages and stop data saving.
    Does somebody knows some User Exit or Badi for make validations in MIRO ?
    Regards
    Frank

    Hi,
    you can use badi MRM_HEADER_CHECK. In order to put error message you can use function module
    PROT_FILL.
    * If there is any error do not allow posting
        DATA: gt_errtab    TYPE TABLE OF mrm_errprot,
              gs_errtab    TYPE mrm_errprot.
        CONSTANTS:     c_errprot(23)   TYPE c VALUE '(SAPLMRMF)TAB_ERRPROT[]'.
        FIELD-SYMBOLS: <fs_errprotj_dt> TYPE table.
        ASSIGN (c_errprot) TO <fs_errprotj_dt>.
        REFRESH gt_errtab[].
        gt_errtab[] = <fs_errprotj_dt>[].
        IF NOT gt_errtab[] IS INITIAL.
          READ TABLE gt_errtab INTO gs_errtab WITH KEY msgty = 'E'.
          IF sy-subrc = 0.
            DATA: c_okqx(17)   TYPE c VALUE '(SAPLMR1M)OK-CODE'.
            FIELD-SYMBOLS: <fs_okqx> TYPE ANY.
            ASSIGN (c_okqx) TO <fs_okqx>.
            CASE <fs_okqx>.
              WHEN 'BU'. "POST
    * This is optional: you can either search for a particular message or
    * do not allow any error message
    * Here search for the message triggered in badi INVOICE UPDATE
                READ TABLE gt_errtab INTO gs_errtab WITH KEY msgty = 'E'
                msgid = 'ZXX' msgno = '030'.
                IF sy-subrc = 0.
                  CLEAR <fs_okqx>.
                  MESSAGE s030(zxx). "While errors exist document will not be posted
                ENDIF.
            ENDCASE.
          ENDIF.
        ENDIF.
    This is used to give error message in case before posting the document.
    KR Jaideep,

  • User exit 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

    Hai,
    User Exit:  MEREQ001
    Function exit             EXIT_SAPLMEREQ_001  
                                   EXIT_SAPLMEREQ_002  
                                   EXIT_SAPLMEREQ_003  
                                   EXIT_SAPLMEREQ_004  
                                   EXIT_SAPLMEREQ_005  
                                   EXIT_SAPLMEREQ_006  
                                   EXIT_SAPLMEREQ_007  
                                   EXIT_SAPLMEREQ_008  
                                   EXIT_SAPLMEREQ_009  
                                   EXIT_SAPLMEREQ_010  
    Screen exit               SAPLMEGUI           
    Include tables           CI_EBANDB           
                                   CI_EBANMEM

  • User exit or badi for me52n transaction.

    Hi all,
           i have a requirement to write a user exit or badi for me52n transaction. the requirement is in header section, only one plant should be accepted. that is in the first row one plant will be inserted. in the second row if we are inserting another plant other the first row plant, it should not accept it and it should raise an error.
    that is from the second row onwards, every plant should match with the first row plant.
    if any part of this issue is unclear, plz let me know so that i can explain it clearly
    this is urgent requirement.
    please let me know the solution as soon as possible.
    points will be awarded.
    thanking u in advance.
    A.srinivas.

    In this version exit EXIT_SAPLMEREQ_005 should exists (look at OSS <a href="https://service.sap.com/sap/support/notes/843446">Note 843446 - MEREQ001: Cannot call up external service data in user exit</a> this note refers to the exit and is applicable in  4.70. Look also at OSS <a href="https://service.sap.com/sap/support/notes/310154">Note 310154 - ME21N/ME51N: Customer-specific check, generating error log</a>
    Regards

  • User Exit or Badi for CN22

    Hi All
    Can anyone tell me an user exit or badi for Tcode CN22 which gets triggered when i save a network.
    whenever i make changes in the WBS assignment of the network in the activity level then the i need to copy dates to other networks whenever a change in WBS element is done. Please treat this as pretty urgent
    Thanks
    Sowjanya

    Hello,
    Please check and see if the BADI
    <b>"AFABD_CHANGE"</b> suits your requirement
    it has
    <b>AFABD
    Network: Dialog table for AFA</b>
    as a changable parameter....
    and import parameter as
    <b>CAUFVD                       
    Dialog Structure for Order Headers and Items</b>
    Reward if helpful
    Regards
    Byju

Maybe you are looking for

  • SD billing document (transfer between plants) error in document splitting

    Dear Gurus. I have the following scenario. New GL activated Zero balance on Profit Center. SD billing document is created after the shipping of material (internal transfer) between 2 plants belonging to the same company code. I have several user exit

  • Backight goes off when unplug charger

    Can someone help ?please. A few days ago the backlight of my T61 started to goes off when i unplug the A/C charger. I can still see the computer running fine, it's the screen is very dark. this also happen when i use FN + end key to dim the light  bu

  • Blank records on transactional load

    Hi All, I am doing a transactional delta load into a cube.  When I look at the record counts in the cube, they are doubled what was in the PSA. The 'good' record gets loaded with all the correct fields and key figures populated.  But also, a similar

  • Quality Of Service (BE,EOIO)...FIFO

    Hi, SAP XI has the concept of Quality of Service wherein they have BE, EOIO,EO. Please can anyone tell me is this associated to a queue or a message. Also, if asociated to a Queue, where in SAO can we do this setting of making a Queue BE or EOIO. And

  • Building & deploying cubes in OWB (can we do these by using XML scripts)

    Hi Guys, Building & deploying cubes in OWB (can we do these by using XML scripts). Is it possible in OWB? Please help me ASAP..