BADI for filed level restriction

Hello All,
Is there any BADI available to restrict general employee to not to change the defaulted account assignment and to let Analyst/Approver to change. If it is there how can I go further into this.
Also how to let and control the users to go for Cross company code purchasing.
System: SRM Server 5.0
Thank you,
Manyam
Message was edited by: manyam gt
Message was edited by: manyam gt

Hi,
  The foll thread will provide a solution you are looking for :
G/L account field to be disabled for SC screen
Regards,
Disha.
Pls reward points for helpful answers

Similar Messages

  • WRITE_BACK BADI for Parent Level Data Save

    Hi Experts,
    I am using write back badi for Parent level data saving in BPC 10, but my requirement is to save data at parent level for time period 2007.Q1 without segregating at corresponding base members level.
    Is it possible so? if yes , please suggest.
    I will highly appreciate for your quick response.
    Regards,
    Dipesh Mudras

    Hi Dipesh,
    BPC NetWeaver related questions should be posted in the corresponding forum, cf.
    SAP Planning and Consolidation, version for SAP NetWeaver
    Regards,
    Gregor

  • BADI for storage location restriction in IW32

    Dear All,
    I am working on one scenario in this user has to get the error message :-
    1. Whenever he doesn't enter the Storage Location in Component Tab (in IW32) and also he should not be able to save the Maintenance Order.
    2. There is ZTABLE (ZTPM058) , if there is no entry of the Storage location in the ZTABLE then also he should get the error.
    I have used the BADI BADI_DI_PCS2_1 to do this but the problem is when the user enter the component manually then it works fine , but when he selects the component from List button (it is in the bottom of the component tab screen) , then this BADI doesn't work correctly.
    Basically when the user selects component from List  then it should first put data into the component tab and then give the error . but this is not happening.
    Please suggest what can be done.
    Below is the code that I have  written :-
    l_ucomm = sy-ucomm.
    if diad_resbd-MENGE is not INITIAL.
      SELECT SINGLE ingpr         "Plant Section
                    lgort         "Storage Location
              INTO  (l_ingpr,
                    l_lgort)
              FROM  ztpm058
             WHERE  lgort = diad_resbd-lgort
               AND  ingpr = diad_caufvd-ingpr.
      IF sy-subrc <> 0.
    if l_ucomm <> 'IMKL'. 
       CONCATENATE 'FOR ITEM NO'        diad_resbd-posnr
                   ', COMPONENT'                   diad_resbd-matnr
                  'AND PLANNER GROUP'       diad_caufvd-ingpr
                 'THERE IS NO STORAGE LOCATION'  diad_resbd-lgort INTO txtmgs SEPARATED BY space.
        clear l_ucomm.
        clear sy-ucomm.
        MESSAGE txtmgs TYPE 'E' .
        elseif l_ucomm = 'IMKL'. (OK CODE when user press List button)
             CONCATENATE 'FOR ITEM NO'       diad_resbd-posnr
                        ', COMPONENT'                   diad_resbd-matnr
                        'AND PLANNER GROUP'      diad_caufvd-ingpr
             'THERE IS NO STORAGE LOCATION'  diad_resbd-lgort
    INTO txtmgs SEPARATED BY space.
        clear l_ucomm.
        clear sy-ucomm.
        MESSAGE txtmgs TYPE 'W' .
        endif.
        endif.
        ELSE.
        message 'Please enter the Quantity' type 'W'.
        clear l_ucomm.
        clear sy-ucomm.
        endif.
    Thanks and Regards,
    Rachit Khanna

    Dear Rajesh Kumar Raju
    Go to IMG-->Logistics Execution >Shipping> Picking -->Determine Picking Location -->Define Rules for Picking Location Determination.  There you have to assign the MALA rule to your delivery type
    Also maintain in OMJ8 and in material master under MRP2 view the default storage location in the field "Prod. stor. location"
    thanks
    G. Lakshmipathi

  • Userexit/badi for tolerance levels in production order

    Hi ,
      I have a requirment where I have to set the under/over delivery tolerance limits to a fixed value based on the order quantity.I am not able to get any user exit or Badi to do the same.I am aware that this tolerance flows in from the work schedulling view in Material Master,But i need to change this in CO01/Co02.
      Can any one please help me out.
    Thank you,
    Suvarna.

    *" IMPORTING
    *" VALUE(IS_HEADER_NEW) LIKE CAUFVD STRUCTURE CAUFVD
    *" VALUE(IS_HEADER_OLD) LIKE CAUFVD STRUCTURE CAUFVD
    *" VALUE(IS_ITEM_NEW) LIKE AFPOD STRUCTURE AFPOD
    *" VALUE(IS_ITEM_OLD) LIKE AFPOD STRUCTURE AFPOD
    *" EXCEPTIONS
    *" NO_CHANGES_ALLOWED
    As shown we have AFPOD as the importing parameter and i cannot change the fields in structure.(I need to change UEBTO and UNTTO in AFPOD)
    Please let me know if Iam missing out anything.

  • BADI for restrict creation of business transaction independently

    Hello Experts,
    I have a requirement where I need to check if the Business activity (say any 'Z' transaction) has a opportunity follow-up document then only that business transaction need to be executed else should give the error that "Z transaction need to be created through opportunity only and can not be created individually".
    I found one BADI CRM_ORDERADM_H_BADI where I can check for the condition but the issue is that as soon as I entered to CRMD_ORDER this BADI gets triggered where I need to trigger this BADI only when the user is trying to create the 'Z' business transaction individually.
    Any Suggestion will be highly appreciated.
    Thanks in Advance & Best Regards,
    Deepak Gupta

    Deepak, there is a parameter called CRM_MODE and this has the following values depending upon the transaction context:
    A - Create
    B - Change
    C - Display and
    D - Delete
    Now, in the same BAdI, since you are restricting the creation of the activity, check the CRM_MODE for the Activity, if it is A, then, call the function module CRM_ORDER_READ with the GUID of the activity and extract only the document flow ET_DOC_FLOW. Check this export table and see if the parent is an opportunity (BUS2000111). If your condition is not met, add an Error message in the transaction.

  • Org Level, fund center/cost center level restriction for tcodes????

    I am looking to see whether org level restriction and cost center/fund center level restriction is possible for certain set of transactions.
    I am using USOBX table for this analysis. This table has a check flag field ( same as in SU24) which says whether the Tcode (program) does the authority check for certain auth objects. Example- X (checked but not maintained in USOBT). This table pulls up several authorization objects under the 'X' category. However, when I do the System trace for the same tcode, all the objects (marked as X) are not captured. Instead only a few are captured.
    Can we rely on the USOBX data or should we do system Trace for every tcode. I am just pulling a report and not creating roles at this point. So trace is time consuming. But data reliability is equally important.
    My objective is to verify whether org level and cost center/fund center level restriction is possible or not for some tcodes.
    Do you have any suggestion to achieve this faster (through USOBX or any other means)?
    Thanks in advance
    Kee

    I would suggest you to check USOBX_C and USOBT_C instead of USOBX and USOBT as it will have your customization as well and not just the standard ones given by SAP.
    Also when check field is X ...it means the object is checked but not maintained for the t-code as you already said but I am not sure how much it will help you as the they will not be pulled by PFCG when you are creating the role until you change the object to Check / maintain . When you do that the check field will be Y and not X. So basically it is the Y one which you need to see.
    Going for trace is time consuming for every t-code and I am not sure if it really needed. When your roles are in testing phase and are tested by the functional team or the team which needs it and if they are missing some object, you can run a trace and find the missing object....
    I am not sure on what basis you want to change some field to Org level ...but typically it is done if you want to do segregation of roles based on these org level. There could be various other reasons and it is better to talk to your functional counterparts before changing a field to Org level.
    for ex : If you want to segregate on company code, you will create co. code as Org level and create roles for different company code.

  • Exit or badi for me21n- for adding new field in delivery tab(Item level)

    HI,
    My Requirement is to add the New Field(Inspection Lot) in delivery tab in item level of me21n .
    I want to know this can be done by any Exit or Badi or modifying the standard sap is the only way to do this... 
    Kindly help me to solve the issue..it's quite urgent , i unable to find one,i used the exit mequery1 but did not work ......
    Thanks in Advance.

    Hi Nagaraju,
    Actually,for every T-code,SAP has provided a lot of BADIs where the customer can write their own codes depending
    upon the functionality required.
    In order to find the BAD for a particular T-code,go to the T-code SE24 and type in cl_exithandler and click on
    Display.
    You will get a list of methods in that class,double click on the Get_Instance method from the list.
    you will get the code for that method.Scroll down and you will find one of the parameters "Exit Name" there.Put a
    breakpoint on that function module and press F8.
    In the debugging mode,double click on the Exit Name to get the value contained in it.You will see the first BADI
    provided in that T-code.
    Note down this and then keep on pressng the F8 and noting down the BADIs being displayed.
    Now ,you will have to find out the BADI which fits your requirement.
    Now,it is not required to opy that BADI into ZBADI.Instead it is better to create a new implementation for this
    BADI.
    Go to the T-code SE18 and see its definition.
    Now,go to the T-code SE19 and create a new implementation and write the code there.
    Once done,activate that implementation and the BADI also.
    Now run the T-code and debug the code that you have written.You can modify the code accordng to your requirements.
    In case you have any further clarifications,do let me know.
    Regards,
    Puneet Jhari.

  • Use of BADI for SNP capacity levelling

    I am using APO V5.1.
    I'm interested in using the Business Add in (BADI) for SNP capacity levelling.
    Can anyone tell me which BADI this is, and the possible functionality it can provide?
    Thanks for any information on this...

    To give you a couple of examples of what we use the BADi for:
    1) Based on a product characteristic, the levelling will only level certain products. E.g. you could set a characteristic to mark products for internal use versus export use and then level the internal requirements first.
    2) The levelling will only level planned production for highlighted orders in the data view.
    Hope that helps for ideas
    Regards
    Ian

  • BADI for MIGO for restricting User to entered other MVT types?

    Hi All,
    BADI for MIGO for restricting User to entered other MVT types?
    I want to restrict some of user not to use 501 Movement type ..I already created a Ztable for checking User for 501 type.
    Please let me know any Enhancement to be used to restrict user ?
    Thanks and Regards
    Steve

    Hi Steave,
    You can use this enhancement exit MB_CF001, this exit will be called every time before posting, you can use your logic in this exit. see its documentation first before implementing.
    Regards
    Ahsan

  • In ME21N,User Exit/BADI for  Defaulting  Vendor number at item level.

    Hi Experts.
    In ME21N, for every purchase order, we have condtion tab for each line item.
    Many condition typesot taxes  are listed based on the config for the materials.
    My requirements is, When we go inside by selecting a condition type we find vendor number displayed.
    I need a user exit/BADI for defaulting the Vendor number.
    Regards
    Balaji R

    Hi,
    check with below link,
    fo this one you will find both user exit and badis
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/find%252bapplication%252bclass%252bwith%252bexits%252band%252bbadis%252bfor%252ba%252btransaction
    Regards,
    Madhu

  • Exit or Badi for FB01 to update KMNAM filed value to BKPF free field

    Hi Experts,
    Please provide me the correct Exits or Badi for to update KMKPF-KMNAM value to BKPF reference field while posting FB01.
    I tired with substitution but it was not solved my requirement.
    I have to update the KMNAM value into BKPF-XREF2 field as the user selects account assignment model while posting FB01.
    Please advise and share me, is there any other solution you have.
    Thanks & Regards
    Sankar.

    Hi ,
    These is not exits or badis or BTE are not available eith import paremeters KMKPF.
    So you need to get this value using  Assign statement in any user exit  which contains export parmeter as BKPF .
    ASSIGN ('(SAPLSPO4)KMKPF-KMNAM) TO <fs_KMNAM>.
    I hope this may helpfull..
    Thank you,
    Thanks,
    AMS

  • BADI  for  Classic  and Extended Classic Scenario

    Hi,
       Please   provide  list  of  Reports and BADI's  for 
           Classic  and Extended Classic Scenario.
    Thanks,
    Srini

    Hi,
    In SRM there will be a number of BADI's are Available, We can utilize them according to the requirements
    As per the request few important BAID are provided below..
    Workflows
    1). BBP_CHNG_AGNT_ALLOW:          Allow / Allow Change/Add Approver
    This BADI is implemented not to allow users to change the approvers in the workflow.
    2). BBP_WFL_SECUR_BADI:          Overwrites the authorization level of the approver
    This BADI controls the restart of the workflow
    Purchasing Related
    1). BBP_PGRP_FIND:               Shopping Cart: Determine Responsible Purchasing Group(s)
    This determines the responsible purchasing group for the shopping carts.
    Shopping Cart Related
    1). BBP_SC_MODIFY_UI:          BADI to Change Shopping Cart Layout
    2). BBP_GROUP_LOC_PO:          Exit Grouping of Items for Local Purchase Orders
    This splits local PO if more than one contract in a PO.
    3). BBP_TARGET_OBJECTS:          Exit while determining target objects in backend
    4). BBP_WF_LIST:               Change Worklists and Search Results Lists
    This is used to restrict the search results for the user.
    5). BBP_CTR_BE_CREATE:          Exit when Creating a Contract in the Backend System
    6). BBP_CREATE_PO_BACK:          Exit while creating a purchase order in the backend system
    This BADI is used to add the shopping carts attachments to the PO and also to make adjustments in payment terms, currency etcu2026
    7). BBP_DOC_CHECK_BADI:     General BAdI in Cross-Check for Message Returns
    8). BBP_DOC_CHANGE_BADI:     BAdI for Changing EBP Purchasing Documents
    9). BBP_ECS_PO_OUT_BADI:     ECS: PO Transfer to Logistics Backend
    Thanks
    prasad .s

  • Exit/badi for me51n

    Hi Folks,
    My PO ordered quantity is greated than my PR quantity and that's because PR is not set to closed. Is there any way how to close the PR using exit/badi?
    Thanks!

    Dear Friend,
    U r creating PO with Reference to PR.
    if u r  doing like this u can check that at the PO Level itself.
    For this u can use the EXIT or BADI.
    Then Function group for the PO is XMO6 . in this there is one include . Include ZXM06U43
    Please Implement this Exit. this will trigger at the Check function of the PO.
    So u can restrict ur PO at the time of Creation..
    2 BADI for this is ME_PROCESS_PO_CUST.
    This BADI contains some many methods.
    For ur Requirement just implement Process_item method .
    Hope this will Help u.
    With Regards,
    Sumodh.P

  • EXIT NAME OR BADI FOR FIELD IN MIGO TRANSACTION (full poins will be given)

    Hai all,
    VERY URGENT REQ.
    In MIGO transaction, I want to know the BADI or EXIT NAME in which the following fields are avilable .
    Fields name: exgrp, EXCISE_ACTION
    exact screen field name is : J_1IEXHEAD-EXGRP
    J_1IEXHEAD-EXCISE_ACTION
    Full Points will be given for correct answer.
    Thanks in advance.
    s.senthil kumar

    Hi,
    Try this code .We can get the User exits and Badis for the Tcode.
    Code:
    & Report ZPJA_PM002 (Ver4) &
    & PJA Consultancy Services (www.pjas.com) &
    & This report attmpts to find Enhancements, Program-Exits, BADIs &
    & and Business Transaction Events in a particular program/tcode. &
    & Other search options: &
    & Program: RPR_ABAP_SOURCE_SCAN &
    & FModule: &
    & Text Elements: &
    & P_DEVC Show user-exits from development class &
    & P_LIMIT Limit submit program selection &
    & P_FUNC Show function modules &
    & P_SUBM Show submit programs &
    & S01 Selection data (TCode takes precedence over program name) &
    report zpja_pm002
    no standard page heading
    line-size 221.
    data: tabix like sy-tabix,
    w_linnum type i,
    w_off type i,
    w_index like sy-tabix,
    w_include like trdir-name,
    w_prog like trdir-name,
    w_incl like trdir-name,
    w_area like rs38l-area,
    w_level,
    w_fsel like sy-ucomm, " Determination of screen field
    w_str(50) type c,
    w_funcname like tfdir-funcname.
    constants: c_fmod(40) type c value 'Function modules selected: ',
    c_subm(40) type c value 'Submit programs selected: ',
    c_col1(12) type c value 'Enhanmt Type',
    c_col2(40) type c value 'Enhancement',
    c_col3(30) type c value 'Program/Include',
    c_col4(20) type c value 'Enhancement Name',
    c_col5(40) type c value 'Enhancement Description',
    c_col6(8) type c value 'Project',
    c_col7(1) type c value 'S',
    c_col8(12) type c value 'ChangeName',
    c_col9(10) type c value 'ChangeDate'.
    Work Areas: ABAP Workbench
    data: begin of wa_d010inc.
    data: master type d010inc-master.
    data: end of wa_d010inc.
    data: begin of wa_tfdir.
    data: funcname type tfdir-funcname,
    pname type tfdir-pname,
    include type tfdir-include.
    data: end of wa_tfdir.
    data: begin of wa_tadir.
    data: devclass type tadir-devclass.
    data: end of wa_tadir.
    data: begin of wa_tstc.
    data: pgmna type tstc-pgmna.
    data: end of wa_tstc.
    data: begin of wa_tstcp.
    data: param type tstcp-param.
    data: end of wa_tstcp.
    data: begin of wa_enlfdir.
    data: area type enlfdir-area.
    data: end of wa_enlfdir.
    Work Areas: BADIs
    data: begin of wa_sxs_attr.
    data: exit_name type sxs_attr-exit_name.
    data: end of wa_sxs_attr.
    data: begin of wa_sxs_attrt.
    data: text type sxs_attrt-text.
    data: end of wa_sxs_attrt.
    Work Areas: Enhancements
    data: begin of wa_modsap.
    data: member type modsap-member.
    data: end of wa_modsap.
    data: begin of wa_modsapa.
    data: name type modsapa-name.
    data: end of wa_modsapa.
    data: begin of wa_modsapt.
    data: modtext type modsapt-modtext.
    data: end of wa_modsapt.
    Work Areas: Business Transaction Events
    data: begin of wa_tbe01t.
    data: text1 type tbe01t-text1.
    data: end of wa_tbe01t.
    data: begin of wa_tps01t.
    data: text1 type tps01t-text1.
    data: end of wa_tps01t.
    user-exits
    types: begin of ty_mod,
    member like modact-member,
    name like modact-name,
    status like modattr-status,
    anam like modattr-anam,
    adat like modattr-adat,
    end of ty_mod.
    data: w_mod type ty_mod.
    types: begin of t_userexit,
    type(12) type c,
    pname like trdir-name,
    txt(300),
    level type c,
    modname(30) type c,
    modtext(60) type c,
    modattr type ty_mod,
    end of t_userexit.
    data: i_userexit type standard table of t_userexit with header line.
    Function module developmnet classes
    types: begin of t_devclass,
    clas like trdir-clas,
    end of t_devclass.
    data: i_devclass type standard table of t_devclass with header line.
    types: begin of t_enlfdir,
    area type enlfdir-area,
    end of t_enlfdir.
    data: i_enlfdir type standard table of t_enlfdir with header line.
    Submit programs
    types: begin of t_submit,
    pname like trdir-name,
    level,
    done,
    end of t_submit.
    data: i_submit type standard table of t_submit with header line.
    Source code
    types: begin of t_sourcetab, "#EC * (SLIN lügt!)
    line(200), "#EC * (SLIN lügt!)
    end of t_sourcetab. "#EC * (SLIN lügt!)
    data: sourcetab type standard table of t_sourcetab with header line.
    data c_overflow(30000) type c.
    Description of an ABAP/4 source analysis token
    data: i_stoken type standard table of stokex with header line.
    data wa_stoken like i_stoken.
    Description of an ABAP/4 source analysis statement
    data: i_sstmnt type standard table of sstmnt with header line."#EC NEEDED
    keywords for searching ABAP code
    types: begin of t_keywords,
    word(30),
    end of t_keywords.
    data: keywords type standard table of t_keywords with header line.
    function modules within program
    types: begin of t_fmodule,
    name like rs38l-name,
    pname like trdir-name,
    pname2 like trdir-name,
    level,
    bapi,
    done,
    end of t_fmodule.
    data: i_fmodule type standard table of t_fmodule with header line.
    & Selection Options &
    selection-screen begin of block selscr1 with frame title text-s01.
    parameter: p_pname like trdir-name memory id rid,
    p_tcode like syst-tcode,
    p_limit(4) type n default 100,
    p_devc like rihea-dy_ofn default ' ',
    p_func like rihea-dy_ofn default ' ',
    p_subm like rihea-dy_ofn default ' '.
    selection-screen end of block selscr1.
    & START-OF-SELECTION &
    start-of-selection.
    if p_pname is initial and p_tcode is initial.
    message e008(hrfpm). "Make entry on the selection screen
    stop.
    endif.
    ensure P_LIMIT is not zero.
    if p_limit = 0.
    p_limit = 1.
    endif.
    perform data_select.
    perform get_submit_data.
    perform get_fm_data.
    perform get_additional_data.
    perform data_display.
    & Form DATA_SELECT &
    form data_select.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get programs/includes' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    determine search words
    keywords-word = 'CALL'.
    append keywords.
    keywords-word = 'FORM'.
    append keywords.
    keywords-word = 'PERFORM'.
    append keywords.
    keywords-word = 'SUBMIT'.
    append keywords.
    keywords-word = 'INCLUDE'.
    append keywords.
    if not p_tcode is initial.
    get program name from TCode
    select single pgmna from tstc into wa_tstc-pgmna
    where tcode eq p_tcode.
    if not wa_tstc-pgmna is initial.
    p_pname = wa_tstc-pgmna.
    TCode does not include program name, but does have refereve TCode
    else.
    select single param from tstcp into wa_tstcp-param
    where tcode eq p_tcode.
    if sy-subrc = 0.
    check wa_tstcp-param(1) = '/'.
    check wa_tstcp-param+1(1) = '*'.
    if wa_tstcp-param ca ' '.
    endif.
    w_off = sy-fdpos + 1.
    subtract 2 from sy-fdpos.
    if sy-fdpos gt 0.
    p_tcode = wa_tstcp-param+2(sy-fdpos).
    endif.
    select single pgmna from tstc into wa_tstc-pgmna
    where tcode eq p_tcode.
    p_pname = wa_tstc-pgmna.
    if sy-subrc 0.
    message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
    endif.
    else.
    message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
    endif.
    endif.
    endif.
    Call customer-function aus Program coding
    read report p_pname into sourcetab.
    if sy-subrc > 0.
    message e017(enhancement) with p_pname raising no_program."#EC *
    endif.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    overflow into c_overflow
    with includes.
    if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
    message e130(enhancement) raising syntax_error. "#EC *
    endif.
    check I_STOKEN for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_level = '0'.
    w_prog = ''.
    w_incl = ''.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endform. "DATA_SELECT
    & Form GET_FM_DATA &
    form get_fm_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get function module data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure. "#EC *
    Function module data
    sort i_fmodule by name.
    delete adjacent duplicates from i_fmodule comparing name.
    loop at i_fmodule where done ne 'X'.
    clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
    refresh: i_stoken, i_sstmnt, sourcetab.
    store function groups
    select single area from enlfdir into wa_enlfdir-area
    where funcname = i_fmodule-name.
    i_enlfdir-area = wa_enlfdir-area.
    append i_enlfdir.
    Store development classes
    if not wa_enlfdir-area is initial.
    select single devclass into wa_tadir-devclass
    from tadir where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = wa_enlfdir-area.
    check not wa_tadir-devclass is initial.
    move wa_tadir-devclass to i_devclass-clas.
    append i_devclass.
    endif.
    clear wa_tfdir.
    select single funcname pname include from tfdir into wa_tfdir
    where funcname = i_fmodule-name.
    check sy-subrc = 0.
    call function 'FUNCTION_INCLUDE_SPLIT'
    exporting
    program = wa_tfdir-pname
    importing
    group = w_area.
    concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
    i_fmodule-pname = w_include.
    i_fmodule-pname2 = wa_tfdir-pname.
    modify i_fmodule.
    read report i_fmodule-pname into sourcetab.
    if sy-subrc = 0.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    with includes.
    if sy-subrc > 0.
    message e130(enhancement) raising syntax_error.
    endif.
    check i_stoken for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_level = '1'.
    w_prog = i_fmodule-pname2.
    w_incl = i_fmodule-pname.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endif.
    endloop.
    sort funtion groups
    sort i_devclass.
    delete adjacent duplicates from i_devclass.
    sort i_enlfdir.
    delete adjacent duplicates from i_enlfdir.
    endform. "GET_FM_DATA
    & Form GET_SUBMIT_DATA &
    form get_submit_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get submit data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    sort i_submit.
    delete adjacent duplicates from i_submit comparing pname.
    w_level = '0'.
    loop at i_submit where done ne 'X'.
    check i_submit-pname ne p_pname. " ensure not the same as origianl program
    clear: i_stoken, i_sstmnt, sourcetab.
    refresh: i_stoken, i_sstmnt, sourcetab.
    read report i_submit-pname into sourcetab.
    if sy-subrc 0.
    delete i_submit.
    continue.
    else.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    with includes.
    if sy-subrc > 0.
    continue.
    endif.
    check i_stoken for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_prog = i_submit-pname.
    w_incl = ''.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endif.
    restrict number of submit program selected for processing
    describe table i_submit lines w_linnum.
    if w_linnum ge p_limit.
    w_level = '1'.
    endif.
    i_submit-done = 'X'.
    modify i_submit.
    endloop.
    sort i_submit.
    delete adjacent duplicates from i_submit comparing pname.
    endform. "GET_SUBMIT_DATA
    & Form DATA_SEARCH &
    form data_search tables p_stoken structure stoken
    using p_level p_prog p_incl.
    loop at p_stoken.
    clear i_userexit.
    tabix = sy-tabix + 1.
    i_userexit-level = p_level.
    if i_userexit-level = '0'.
    if p_incl is initial.
    i_userexit-pname = p_pname.
    else.
    concatenate p_pname '/' p_incl into i_userexit-pname.
    endif.
    else.
    if p_incl is initial.
    i_userexit-pname = p_prog.
    else.
    concatenate p_prog '/' p_incl into i_userexit-pname.
    endif.
    endif.
    Include
    if p_stoken-str eq 'INCLUDE'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    check not wa_stoken-str cs 'STRUCTURE'.
    check not wa_stoken-str cs 'SYMBOL'.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    i_submit-level = p_level.
    append i_submit.
    endif.
    endif.
    Enhancements
    if p_stoken-str eq 'CUSTOMER-FUNCTION'.
    clear w_funcname.
    read table p_stoken index tabix.
    translate p_stoken-str using ''' '.
    condense p_stoken-str.
    if p_prog is initial.
    concatenate 'EXIT' p_pname p_stoken-str into w_funcname
    separated by '_'.
    else.
    concatenate 'EXIT' p_prog p_stoken-str into w_funcname
    separated by '_'.
    endif.
    select single member from modsap into wa_modsap-member
    where member = w_funcname.
    if sy-subrc = 0. " check for valid enhancement
    i_userexit-type = 'Enhancement'.
    i_userexit-txt = w_funcname.
    append i_userexit.
    else.
    clear wa_d010inc.
    select single master into wa_d010inc-master
    from d010inc
    where include = p_prog.
    concatenate 'EXIT' wa_d010inc-master p_stoken-str into w_funcname
    separated by '_'.
    i_userexit-type = 'Enhancement'.
    i_userexit-txt = w_funcname.
    endif.
    endif.
    BADIs
    if p_stoken-str cs 'cl_exithandler='.
    w_index = sy-tabix + 4.
    read table p_stoken index w_index into wa_stoken.
    i_userexit-txt = wa_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    i_userexit-type = 'BADI'.
    append i_userexit.
    endif.
    Business transaction events
    if p_stoken-str cs 'OPEN_FI_PERFORM'.
    i_userexit-type = 'BusTrEvent'.
    i_userexit-txt = p_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    i_userexit-modname = i_userexit-txt+16(8).
    case i_userexit-txt+25(1).
    when 'E'.
    clear wa_tbe01t.
    select single text1 into wa_tbe01t-text1 from tbe01t
    where event = i_userexit-txt+16(8)
    and spras = sy-langu.
    if wa_tbe01t-text1 is initial.
    i_userexit-modtext = ''. "#EC NOTEXT
    else.
    i_userexit-modtext = wa_tbe01t-text1.
    endif.
    i_userexit-modname+8 = '/P&S'. "#EC NOTEXT
    when 'P'.
    clear wa_tps01t.
    select single text1 into wa_tps01t-text1 from tps01t
    where procs = i_userexit-txt+16(8)
    and spras = sy-langu.
    i_userexit-modtext = wa_tps01t-text1.
    i_userexit-modname+8 = '/Process'.
    endcase.
    append i_userexit.
    endif.
    Program exits
    if p_stoken-str cs 'USEREXIT_'.
    i_userexit-type = 'Program Exit'.
    i_userexit-txt = p_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    append i_userexit.
    endif.
    Submit programs
    if p_stoken-str cs 'SUBMIT'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    check not p_stoken-str cs '_'. " ensure not SUBMIT_XXX
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    check not wa_stoken-str cs '_'. " ensure not SUBMIT_XXX
    replace all occurrences of '''' in wa_stoken-str with space.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    i_submit-level = p_level.
    append i_submit.
    endif.
    endif.
    Perform routines (which reference external programs)
    if p_stoken-str cs 'PERFORM'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    if not wa_stoken-ovfl is initial.
    w_off = wa_stoken-off1 + 10.
    w_str = c_overflow+w_off(30).
    find ')' in w_str match offset w_off.
    w_off = w_off + 1.
    wa_stoken-str = w_str(w_off).
    endif.
    check wa_stoken-str cs '('.
    w_off = 0.
    while sy-subrc = 0.
    if wa_stoken-str+w_off(1) eq '('.
    replace section offset w_off length 1 of wa_stoken-str with ''.
    replace all occurrences of ')' in wa_stoken-str with space.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    append i_submit.
    endif.
    exit.
    else.
    replace section offset w_off length 1 of wa_stoken-str with ''.
    shift wa_stoken-str left deleting leading space.
    endif.
    endwhile.
    endif.
    Function modules
    if p_stoken-str cs 'FUNCTION'.
    clear i_fmodule.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    if wa_stoken-str cs 'WF_'.
    if wa_stoken-str cs 'IDOC'.
    break-point.
    endif.
    if wa_stoken-str cs 'BAPI'.
    i_fmodule-bapi = 'X'.
    endif.
    replace first occurrence of '''' in wa_stoken-str with space.
    replace first occurrence of '''' in wa_stoken-str with space.
    if sy-subrc = 4. " didn't find 2nd quote (ie name truncated)
    clear wa_tfdir.
    concatenate wa_stoken-str '%' into wa_stoken-str.
    select single funcname into wa_tfdir-funcname from tfdir
    where funcname like wa_stoken-str.
    if sy-subrc = 0.
    i_fmodule-name = wa_tfdir-funcname.
    else.
    continue.
    endif.
    else.
    i_fmodule-name = wa_stoken-str.
    endif.
    read table i_fmodule with key name = i_fmodule-name.
    if sy-subrc 0.
    i_fmodule-level = p_level.
    append i_fmodule.
    endif.
    endif.
    endloop.
    endform. "DATA_SEARCH
    & Form GET_ADDITIONAL_DATA &
    form get_additional_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get additional data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    loop at i_userexit.
    Enhancement data
    if i_userexit-type cs 'Enh'.
    clear: wa_modsapa.
    select single name into wa_modsapa-name from modsap
    where member = i_userexit-txt.
    check sy-subrc = 0.
    i_userexit-modname = wa_modsapa-name.
    clear wa_modsapt.
    select single modtext into wa_modsapt-modtext from modsapt
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    i_userexit-modtext = wa_modsapt-modtext.
    MOH - enhancement to get the project name
    clear w_mod.
    select single modactmember modactname modattr~status
    modattranam modattradat
    into w_mod
    from modact
    inner join modattr
    on modattrname = modactname
    where modact~member = wa_modsapa-name
    and modact~typ = space.
    i_userexit-modattr = w_mod.
    MOH - eoe
    endif.
    BADI data
    if i_userexit-type eq 'BADI'.
    clear wa_sxs_attr.
    select single exit_name into wa_sxs_attr-exit_name from sxs_attr
    where exit_name = i_userexit-txt.
    if sy-subrc = 0.
    i_userexit-modname = i_userexit-txt.
    else.
    i_userexit-modname = 'Dynamic call'. "#EC NOTEXT
    endif.
    clear wa_sxs_attrt.
    select single text into wa_sxs_attrt-text from sxs_attrt
    where exit_name = wa_sxs_attr-exit_name
    and sprsl = sy-langu.
    i_userexit-modtext = wa_sxs_attrt-text.
    endif.
    modify i_userexit.
    endloop.
    get enhancements via program package
    clear wa_tadir.
    select single devclass into wa_tadir-devclass from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = p_pname.
    if sy-subrc = 0.
    clear: wa_modsapa, wa_modsapt.
    select name from modsapa into wa_modsapa-name
    where devclass = wa_tadir-devclass.
    select single modtext from modsapt into wa_modsapt-modtext
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    read table i_userexit with key modname = wa_modsapa-name.
    if sy-subrc 0.
    i_userexit-modtext = wa_modsapt-modtext.
    i_userexit-type = 'Enhancement'. "#EC NOTEXT
    i_userexit-modname = wa_modsapa-name.
    i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
    i_userexit-pname = 'Unknown'. "#EC NOTEXT
    append i_userexit.
    endif.
    endselect.
    endif.
    Get IDOCs
    loop at i_devclass.
    endloop.
    endform. "GET_ADDITIONAL_DATA
    & Form DATA_DISPLAY &
    form data_display.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Prepare screen for display' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    sort i_userexit by type txt modname.
    delete adjacent duplicates from i_userexit comparing txt modname.
    format headings
    write: 'Enhancements from main program'. "#EC NOTEXT
    write: /.
    uline.
    format color col_heading.
    write: / sy-vline,
    (12) c_col1, "Enhanmt Type
    sy-vline,
    (40) c_col2, "Enhancement
    sy-vline,
    (30) c_col3, "Program/Include
    sy-vline,
    (20) c_col4, "Enhancement name
    sy-vline,
    (60) c_col5, "Enhancement description
    sy-vline,
    (8) c_col6, "Project
    sy-vline,
    (1) c_col7, "S
    sy-vline,
    (12) c_col8, "ChangeName
    sy-vline,
    (10) c_col9, "ChangeDate
    sy-vline.
    format reset.
    uline.
    format lines
    loop at i_userexit.
    set line colour
    case i_userexit-type.
    when 'Enhancement'.
    format color 3 intensified off.
    when 'BADI'.
    format color 4 intensified off.
    when 'BusTrEvent'.
    format color 5 intensified off.
    when 'Program Exit'.
    format color 6 intensified off.
    when others.
    format reset.
    endcase.
    write: / sy-vline,
    i_userexit-type,
    sy-vline,
    i_userexit-txt(40),
    sy-vline,
    i_userexit-pname(30),
    sy-vline,
    i_userexit-modname(20),
    sy-vline,
    i_userexit-modtext(60),
    sy-vline,
    i_userexit-modattr-name,
    sy-vline,
    i_userexit-modattr-status,
    sy-vline,
    i_userexit-modattr-anam,
    sy-vline,
    i_userexit-modattr-adat no-zero,
    sy-vline.
    hide: i_userexit-type,
    i_userexit-txt,
    i_userexit-pname,
    i_userexit-modname,
    i_userexit-modtext.
    endloop.
    format reset.
    uline.
    user-exits from development class of function modules
    if p_devc = 'X'.
    write: /.
    write: / 'User-exits from function module development class'."#EC NOTEXT
    write: 157''.
    uline (90).
    write: 157''.
    loop at i_devclass.
    clear wa_modsapa.
    select name from modsapa into wa_modsapa
    where devclass = i_devclass-clas.
    select single name modtext into corresponding fields of wa_modsapt
    from modsapt
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    format color 3 intensified off.
    write: / sy-vline,
    (12) 'Enhancement',
    sy-vline,
    wa_modsapa-name,
    sy-vline,
    wa_modsapt-modtext,
    sy-vline.
    endselect.
    endloop.
    uline (90).
    format reset.
    endif.
    describe table i_fmodule lines w_linnum.
    write: / c_fmod , at 35 w_linnum. "#EC NOTEXT
    write: 157''.
    if p_func = 'X'.
    display fuction modules used in program
    uline (38).
    write: 157''.
    loop at i_fmodule.
    write: sy-vline,
    i_fmodule-name,
    sy-vline,
    i_fmodule-bapi,
    sy-vline.
    write: 157''.
    endloop.
    uline (38).
    write: 157''.
    endif.
    describe table i_submit lines w_linnum.
    write: / c_subm , at 35 w_linnum. "#EC NOTEXT
    write: 157''.
    if p_subm = 'X'.
    display submit programs used in program
    uline (44).
    write: 157''.
    loop at i_submit.
    write: sy-vline,
    i_submit-pname,
    sy-vline.
    write: 157''.
    endloop.
    uline (44).
    endif.
    issue message with number of user-exits displayed
    describe table i_userexit lines w_linnum.
    message s697(56) with w_linnum.
    endform. "DATA_DISPLAY
    & User Selection Processing &
    at line-selection.
    get cursor field w_fsel.
    case w_fsel.
    when 'I_USEREXIT-MODNAME'.
    case i_userexit-type.
    when 'Enhancement'.
    set parameter id 'MON' field i_userexit-modname.
    call transaction 'SMOD' and skip first screen.
    when 'BADI'.
    check i_userexit-modname ne 'Dynamic call'.
    set parameter id 'EXN' field i_userexit-modname.
    call transaction 'SE18' and skip first screen.
    when 'BusTrEvent'.
    submit rfopfi00 with attr_typey_selm = 'A'
    with event = i_userexit-modname(8)
    via selection-screen
    and return.
    when others.
    endcase.
    when 'I_USEREXIT-PNAME'.
    check i_userexit-modname ne 'Unknown'.
    w_off = 0.
    find '/' in i_userexit-pname match offset w_off.
    if w_off = 0.
    set parameter id 'RID' field i_userexit-pname.
    call transaction 'SE38' and skip first screen.
    else.
    w_off = w_off + 1.
    w_prog = i_userexit-pname+w_off.
    set parameter id 'RID' field w_prog.
    call transaction 'SE38' and skip first screen.
    endif.
    when others.
    endcase.
    Thank You,
    Saritha

  • Row Level Restrictions on DeskI Report not working under InfoView

    When running/refreshing DesktopIntelligence XI r3 (Full Client) reports under InfoView, the row-level restrictions applied in the universe are not being included in the SQL (additional filtering is NOT happening). However, if a user creates a report using the same universe in WebIntelligence or if the user runs the same report in DesktopIntelligence, the row-level restrictions are working.
    It strikes me that the problem has to do with security rights granted (or not granted), but I can't figure out which settings would allow the proper running of a DeskI report under InfoView.
    Thanks for any assistance rendered!

    Mike,
    Do people connect to Infoview and Deski using the same authentication method and the same username?
    How does this compare to how your data restrictions are configured?
    Are you using @Variable('BOUSER') restrictions? Have you taken domain into account e.g. "Domain\UserName" vs "UserName"?

Maybe you are looking for

  • Authentication : SSO &  WWV_CUSTOM-F_ security-group _ app_id

    Hi, In my application express application a user is authenticated by measn of single sign on. So when a user goes to 'http://myhost/pls/apex/f?p=101:1' he is redirected to the SSO server and when validated is redirected to 'http://myhost/pls/apex/f?p

  • Batch Determination at SO Level

    Dear All, I have configured batch determination at SO level. The batch number auto appears. But, I have a problem where the system choose batch number which is already allocated to the shipping area deliveries. I am not sure whether it is the setting

  • Mobile--XI--R/3

    Hi All, Can you please guide me how to go ahead and implement the schenario. A user will send SMS to a predefined number. XI receives the details and finally gets the data from R/3 and finally send as a sms to the user. I have searched forum and foun

  • How to use COMMIT and ROLLBACK in BAPIs

    Hi experts,     Can we use COMMIT or ROLLBACK in the BAPI just like how we implement it in the ABAP programming ?? If it is yes,     Where can we exactly use normal COMMIT and where we use BAPI_TRANSACTION_COMMIT when we are implementing BAPIs ? Plea

  • Commit to SQL statement

    Hello N. Gasparotto, I have written and tried the code. I got the desired result. Actually I have a form. That form has "slope" as label with the list of values: 0-2% 2-6% 10-15% 6-8% and so on. the code for that form is written in jsp which includes