User exit ZXPADU02 - evaluating SY-UCOMM

Hello everyone,
I am trying to display an error message whenever someone tries to create a new work schedule rule (P0007-SCHKZ) in infotype 7. However, the error message should just come up when the user is trying to save his data.
I am using user exit ZXPADU02 for this purpose. My problem is that SY-UCOMM does not seem to hold reliable data in this user exit, and SSCRFIELDS does not seem to be supported at all.
My code looks like this (only the relevant code snippet in ZXPADU02):
CASE INNNN-INFTY.
        WHEN '0007'.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING PRELP = INNNN
        IMPORTING PNNNN = P0007.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING PRELP = PSAVE
        IMPORTING PNNNN = P0007_ALT.
      IF P0007_ALT-SCHKZ <> P0007-SCHKZ
      AND IPSYST-MASSN IS INITIAL " do not warn within an info group of a personnel action
      AND SY-UCOMM = 'UPD'. " only warn when saving the data -> problem here <-
        MESSAGE 'Do not change IT7 directly or else.' TYPE 'I' DISPLAY LIKE 'E'.
        SHOW_DATA_AGAIN = 'X'.
      ENDIF.
At first glance, the above works nicely.  But this is what happens when I test more thoroughly:
I create a new period in IT 7, enter a P0007-SCHKZ other than the one that was previously valid, press F11. Some warnings appear (for different reasons), which I dismiss using the Enter key. Afterwards, the above code fires, the error message is being displayed, and I am thrown back into the data screen. So far, so good.
Now I simply alter the value in the field "Weekly hours" (P0007-WOSTD) and press Enter (!). Again a series of warnings appear, including one that a dataset is going to be deleted (seeing that an IT 7-period with just the same date range already exists). I confirm that with Enter, and the data is being saved. The above code does not fire because I have only pressed Enter - but the data is being saved anyway!
Looks like a pretty erroneous behavior on the side of the SAP system. The question is whether I have a chance to do something about it in the code.

Mihir Nagar wrote:
Dear Petersen,
Your IF condition seems ok. I doubt on the message statement. Can you replace your message statement with type E.
MESSAGE 'Do not change IT7 directly or else.' TYPE 'E'.
      ENDIF.
Hope this works.
Regards,
Mihir.
I did not expect this to work, because normally you use type 'E'-messages only in certain PAI-environments, but it does the job, thank you!
make use of  field IOPER of the structure  PSYST to check on the infotype actions INS, MOD, COP, DEL...
In this particular case I did not care, so I did not check that. IT 7 should only be maintained through personnel actions in our case.
Next you can check with sy-ucomm field the different between "enter" and "save". With "save" sy-ucomm will be 'UPD'.
That is what I did, but as I described, there was a situation when SY-UCOMM is SPACE, but the system saved anyway due to a prior save attempt.

Similar Messages

  • Update infotype 0032 in user exit ZXPADU02

    Hi All,
    I have the following requirement.
    Telephone extension number is stored in IT0105 and IT0032. When the extension number is updated through ESS, this is stored in IT0105 but it does not update IT0032 which is displayed in MSS.
    I need to update infotype 0032 based on the data in 0105.
    I thought I could update infotype 0032 in userexit ZXPADU02 whenever infotype 0105 was saved using the function module HR_INFOTYPE_OPERATION but it is not working for me.
    Any help would be appreciated.
    Elaine

    You have to make the function call a separate unit of work.One other option is to put the function call in a report & SUBMIT it from the User exit.
    ~Suresh

  • HR_INFOTYPE_OPERATION is not working in user exit ZXPADU02

    Hi frndz,
      i want to delimit/modify record in infotype 0014 after checking some condition when user clicks on SAVE in infotype 0008.
    For this i'm using the code like below.
    In Include ZXPADU02.
    when '0008'.
    IF sy-ucomm = 'UPD'.
    chek <condition>
    if sysubrc = 0.
    Lock employee.
    Delimti(LIS9) record in IT0014 using HR_READ_INFOTYPE_OPERATION.
    Unlock employee.
    endif.
    Here every thing working fine but record is not getting delimitted.
    Could anybody please help me any other possibilities to solve it.
    Thanks and Regards,
    Venkat

    Hi,
    I tried to use the FM HR_INFOTYPE_OPERATION in ZXPADU02 but I found that it will
    not update data in the real DB table(PAXXXX).I found that in FM 'HR_MAINTAIN_MASTERDATA' from FM 'HR_INFOTYPE_OPERATION' will set the field 'PSPAR-PBPFL' as 'X'.
    In standard program, it looks like if this field is set it will not do the logic to update the DB table. So I put the code in other report and then call in the ZXPADU02. I think it's about LUW.
    Code as follows to understand.
    data:
          lw_p0008      LIKE p0008,
          lw_pskey      LIKE pskey,
          lv_option,
              EXPORT lw_p0008 lw_pskey lv_option
                to memory id 'ZXPADU02_0008'.
              submit ZHRR_PA_ZXPADU02_0008
                     and return.
    Inside program ZHRR_PA_ZXPADU02_0008
    IMPORT w_p0008 lw_pskey lv_option
        FROM MEMORY ID 'ZXPADU02_0008'.
      CALL FUNCTION 'ENQUEUE_EPPRELE'
            EXPORTING
              pernr          = lw_p0008-pernr
            EXCEPTIONS
              foreign_lock   = 1
              system_failure = 2
              OTHERS         = 3.
      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty                  = '0008'
          number                 = lw_p0008-pernr
          subtype                = lw_pskey-subty
          objectid               = lw_pskey-objps
          lockindicator          = lw_pskey-sprps
          validityend            = lw_pskey-endda
          validitybegin          = lw_pskey-begda
          recordnumber           = lw_pskey-seqnr
          record                 = lw_p0008
          operation              = lv_opera
    *      TCLAS                  = 'A'
    *      DIALOG_MODE            = '1'
    *      nocommit               = 'X'
    *     VIEW_IDENTIFIER        =
    *     SECONDARY_RECORD       =
        IMPORTING
          return                 = lw_return
    *      KEY                    =
      IF NOT lw_return IS INITIAL AND
         lw_return-type EQ 'E'.
        MESSAGE e000(38) WITH lw_return-message.
      ENDIF.
      CALL FUNCTION 'DEQUEUE_EPPRELE'
        EXPORTING
          pernr = lw_p0008-pernr.
    If this not works, then go for dynamic action from V_T588Z as suggested by Suresh.
    Regards
    Eswar

  • Issue with user exit ZXPADU01 and ZXPADU02

    Hi,
    I am trying to change the existing record for the info type 0015 for an employee in Pa30 transaction.
    my requirement is i need old value and new value when i am changing the existing record in info type 0015.
    When i kept break point in user exit ZXPADU01 it is not triggering it is triggering only when we creating the record.
    i tried with user exit ZXPADU02 it is not working as per my requirement.
    My requirement is :whenever i am changing the existing record(modifying record) i need old value and new value.
    Anybody can suggest me how to fix this issue.
    Thanks,
    Maheedhar

    Dear Maheedhar,
    The best way to achieve this requirement is to use the PAI user exit ZXPADU02 import parameter PSAVE. The PSAVE parameter contains the PBO original / initial record, before any changes take place.
    The INNNN parameter contains the current PAI record as usual, in order to be used for customer check and new values. Thus, you've got both the old and the new record in place, and you can make your comparison according to the business requirements:

  • Infotype 0008 - User Exit Validation

    Hi Gurus,
    I have to validate infotype 0008 amount fields  in PAI user exit ZXPADU02 .
    For a scenario, if the amounts are not equal  ( BET01 <> BET02) then  I have to geneate error message.
    Then the user is supposed to correct / re-enter  the amounts .
    The problem is , when I generate error message , the amount fields are grayed out.
    I think this is happeneing cause of standard SAP code (  in flow logic for program MP000800  ) .
    Is there any way to generate error message in the user exit and
    Give the users an option to update the amount correctly ??
    Core mod is the last option.
    Appreciate your inputs .
    Thanks

    I solved this problem with:
    if BET01 <> BET02.
            message 'tekst' type 'S'.
            LEAVE SCREEN.
    endif.

  • HR_INFOTYPE_OPERATION does not activate Exit ZXPADU02

    Hi Guys,
    We have a Portal with the option to delete a dependent in infotype 0021. This is done, and goes to approval. At the time the manager aproves, the dependent is deleted. But it is not passing though user exit ZXPADU02 and I'm not able to capture this. I know there is PCL4, and it is getting logged there, but, as They use the exit to capture the information I would not like to change the process. Please any help!
    Hhanks!

    Hi,
       Check how the dependent is deleted , if you are using FM HR_INFOTYPE_OPERATION or any other FM , it doesn't go thru
       ZXPADU02. Only PA30 or PA40 goes thru the user exit.
    Regards,
    Srini.

  • Calling a screen in a user exit!

    friends,
         Is it possible to call a screen (Normal or modal dialog box) to display an error message or some 2 or 3 lines in a user exit? thanks all

    You can also try the following logic.. it worked for me inside a HR User Exit ( ZXPADU02)..
    report  zpinc                                   .
    data t_errors       type table of rpbenerr with header line.
    t_errors-pernr = '0001'.
    t_errors-class = 'RP'.
    t_errors-msgno = '016'.
    t_errors-msgv1 = 'TEST1'.
    t_errors-msgv2 = 'TEST2'.
    t_errors-msgv3 = 'TEST3'.
    t_errors-msgv4 = 'TEST4'.
    append t_errors.
    clear t_errors.
    t_errors-pernr = '0002'.
    t_errors-class = 'RP'.
    t_errors-msgno = '016'.
    t_errors-msgv1 = 'TEST1'.
    t_errors-msgv2 = 'TEST2'.
    t_errors-msgv3 = 'TEST3'.
    t_errors-msgv4 = 'TEST4'.
    append t_errors.
    clear t_errors.
    call function 'HR_BEN_SHOW_ERROR_POPUP'
      exporting
        title       = 'Error List'
      tables
        error_table = t_errors.
    ~Suresh

  • How to write user exit for 0008

    Dear Freinds
               i have tried using the badi HRPAD00INFTY (before input)..however i am not able to get the values, so i have switched to user exit zxpadu02 ....
    but, iam still failed as the iam not getting the value for bet01 for the specific wage type since this is tabel contol,
    my requirement is as follows , when the user enters for the ansal then it should automatically filled in bet01 for the wagetype( i.e , Q0008-lgart = MFPY)
    and the amount field bet01 should be graded out so that it cannot be entered manually.
    please any body can you give me coding .
    regards
    shanti.

    Dear Pranesh, 
    thank you for answering my question,
    i have done the coding as follows now i.e field bet01 is not mandatory now.
    i hae done in ZXPADU02.  
    data : wa_p0008 like p0008,
           l_v_ANSAL type ANSAL_15,
           l_v_amount type PAD_AMT7S.
    CASE innnn-infty.
    when '0008'.
    CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
    EXPORTING
    prelp = innnn
    IMPORTING
    pnnnn = wa_p0008.
    if wa_p0008-lga01 = 'MFPY'.
    l_v_ansal =  wa_p0008-ansal.
    l_v_amount = l_v_ansal / 100.
    move l_v_amount to wa_p0008-bet01.
    CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
    EXPORTING
    pnnnn = wa_p0008
    IMPORTING
    prelp = innnn. -
    > iam getting the data for bet01 i can see in debugging
    endif.
    when others.
    endcase.
    as i mentioned above i can see the calculated data in bet01  in debuggin and
    it is there in INNNN ............but iam not able to see the data now in pa30
    i.e the amount field Q0008-bet01 is not being filled.
    please let me know what i have to do.......
    note i have done only in ZXPADU02( PAI) , i have not written any coidng in zxpadu01.
    regards
    shanti

  • PA30 : IT2010 & IT 0015. User exit / BADI required to retrieve BETRG value

    good day to everyone,
    My objective its to retrieve Amount ( BETRG) value in PA30 --> IT2010 and PA30 --> IT0015 screen.
    I have tried using the User exits and Badi below. However, there are no structure to retrieve BETRG value when i am i at the IT2010 and IT0015 screen.
    -EXIT_SAPFP50M_001 in enhancement PBAS0001
    -badi HRPAD00INFTY
    Could anyone let me know is there any way to retrieve the BETRG value or any user exit/badi available?
    hope to hear from you soon.
    Thank you.
    Regards,
    SW

    In PAI of user exit ( ZXPADU02 ) you can get it easily
    data i0015 like p0015.
        if INNNN-INFTY = '0015'.
             call method CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
              exporting
                PRELP = INNNN
              importing
                PNNNN = I0015.  "here you have record of IT0015 so BETRG is also available
          "cast back values to screen fields
            call method CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
              exporting
                PNNNN = I0015
              importing
                PRELP = INNNN.
         endif.
    Similar code can be done for IT2010
    Regards
    Marcin

  • ME28 user exit - sy-ucomm not available

    Hi experts,
    I have a requirement to check sy-ucomm in the user exit EXIT_SAPLEBND_002 which is triggered by transaction ME28 - convert a planned order to purchase requisition. Immediately after pressing the release button for the purchase document the SY-UCOMM value is '%_GC 102 2'.
    When the program control reaches the user-exit, SY-UCOMM is already cleared. Analysing the flow shows it is cleared by the method,
    CL_GUI_CFW=>DISPATCH. This is totally the ALV way of handling things. The ALV control passes on to call the function module BAPI_PO_RELEASE which inturn calls the user exit.
    The question is?? How to get the SY_UCOMM in the user exit. Has any one has ever experienced this before. Your answers are much appreciated.

    Ok Guys
    Sorry for my ignorance.But i think that i don't udesrtand correctly .sorry.
    1-you go to ME28 and do your process (click)
    2-this process pass by exit .
    3-I dont understand the ALV  in this case.
    Can you send images of screens with process ?
    I think maybe you could use assign but i need know more about it.
    thanks and sorry again.

  • User Exit for ERS (Evaluated Receipt Settlement ) while Creating PO

    Hi All ,
    i have a Specific Requirement ,
    When ever an PO is created for ERS Vendors , The ERS check box at Invoice tab would be  Ticked by default for specific document types ,
    But for all other document type this ERS tick from  PO item detail (invoice Tab) should get unticked automatically.
    Is there a User Exit for ERS at PO level
    Thx ,

    Hi
    <b>Please verify that the user running the report as well as the RFC User in the SRM system must have proper authorization to execute the report. For time being, provide SAP_ALL profile, and then try out the same.
    Also, check whether for the R/3 back-end Vendor, the ERS is set or not.</b>
    Please confirm this -
    You want to set the ERS indicator for the documents sent from SRM into R/3 system. Is this your requirement ?
    Hope this will help.
    Please reward suitable points.
    Regards
    - Atul

  • User-exits - Infotype 2001

    Hi,
    Can anyone tell me which user-exits exist when creating an infotype 2001?
    I need to make a validation when saving one infotype 2001, so I need to know which user-exits can I use.
    Thanks in advance for your help.
    Best regards,
    Sónia Gonçalves

    Hi,
    You must implements the function EXIT_SAPFP50M_002 (the include ZXPADU02) for After Input. In this Include you can check if the infotype is going to be saved (ex. sy-ucomm = UPD and somethings like this).
    There is another possibility with an object of the interface method IF_EX_HRPAD00INFTY~IN_UPDATE. This method is called when you are going to save.
    We make normaly these checks in 2001, 2002 and 2003 and all works properly.
    Kind Regards
    Jaime

  • User exit on infotype.

    Hi all the Experts,
          i was doing dynamic action for 19 itype .but sone date is  already defaulted there .i think there is some user exit for inftype .i dont know how to find it .can u suggest some ideas so i can find that exit and comment it?
    thanks.

    To check a user exit on a personnel administration infotype (like infotype 0019 monitoring of tasks), you can go to transaction code SMOD and enter the enhancement PBAS0001 and check the two components.
    Function Module EXIT_SAPFP50M_001 is for defaulting values and EXIT_SAPFP50M_002 is for custom checks of data entered.
    A quicker way could be to check in SE38 the abap include ZXPADU01 (For EXIT_SAPFP50M_001) and ZXPADU02 (For EXIT_SAPFP50M_002).
    In the configuration of a task type you also specify a lead-in / follow up time which automatically populates the reminder date field when you enter a task type and task date. The IMG path to this is Personnel Administration - Evaluation Bases - Monitoring of Tasks - Determine Task Type or as previously stated table view V_T531

  • Send email from PA30 user exit

    When I try to send an email from user exit in ZXPADU02 it never makes it to SOST.  WIll always go to SBWP outbox if I set the flag but never gets sent to receiver address.
    If I paste the following code into a report it works fine.  Is there some other parameter for this FM or some additional process needed to send email from a user exit?
        DATA: maildata TYPE sodocchgi1.
        DATA: mailtxt  TYPE TABLE OF solisti1 WITH HEADER LINE.
        DATA: mailrec  TYPE TABLE OF somlrec90 WITH HEADER LINE.
          CLEAR maildata.
          REFRESH: mailtxt, mailrec.
          maildata-obj_name = 'SRVC_EMAIL'.
          maildata-obj_descr = 'Email test'.
          maildata-obj_langu = sy-langu.
          mailtxt-line = 'Test line from user exit'.
          APPEND mailtxt.
          mailrec-receiver = '[email protected]'.
          mailrec-rec_type  = 'U'.
          APPEND mailrec.
          CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
            EXPORTING
              document_data              = maildata
              document_type              = 'RAW'
              put_in_outbox                = 'X'
              commit_work                  = 'X'
            TABLES
              object_header                = mailtxt
              object_content               = mailtxt
              receivers                       = mailrec
            EXCEPTIONS
              too_many_receivers            = 1
              document_not_sent            = 2
              document_type_not_exist    = 3
              operation_no_authorization  = 4
              parameter_error                  = 5
              x_error                              = 6
              enqueue_error                    = 7
              others                           = 8.

    Put the function call 'SO_NEW_DOCUMENT_SEND_API1'
    in a report Program & SUBMIT that report from ZXPADU02.
    Arya

  • How to implement F4IF_INT_TABLE_VALUE_REQUEST in search help User Exit?

    Hi,
    I need to enhanse search help and add F4 functionality to display list of company codes when cursor is in PBUKR field. I put F4IF_INT_TABLE_VALUE_REQUEST
    into the user exit but nothing works.
    I get error that PROCESS is not defined. If I remove that line there is no error but nothing works.
    Can someone tell me what is wrong in the code below.
    Thank you.
    FUNCTION z_hr_shlp_wbs_element.
    ""Local interface:
    *"  TABLES
    *"      SHLP_TAB TYPE  SHLP_DESCR_TAB_T
    *"      RECORD_TAB STRUCTURE  SEAHLPRES
    *"  CHANGING
    *"     VALUE(SHLP) TYPE  SHLP_DESCR_T
    *"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL
      TABLES: prps.
      DATA: it_prps LIKE prps OCCURS 0 WITH HEADER LINE.
      DATA: status_tab LIKE jstat OCCURS 0 WITH HEADER LINE.
      DATA: l_posid LIKE prps-posid.
      DATA: l_subrc LIKE sy-subrc.
      DATA: l_pbukr LIKE prps-pbukr,   " Added by vr
            value TYPE DDSHIFACE-VALUE.
    EXIT immediately, if you do not want to handle this step
      IF callcontrol-step <> 'SELONE' AND
         callcontrol-step <> 'SELECT' AND
                                           " AND SO ON
         callcontrol-step <> 'DISP'.
        EXIT.
      ENDIF.
    ------------------------------------------------------ added by vr
    PROCESS ON VALUE-REQUEST.
    FIELD PRPS-PBUKR MODULE PBUKR.
      DATA: BEGIN OF VALUE_TAB OCCURS 0,
      LPBUKR LIKE PRPS-PBUKR,
      LPOSID LIKE PRPS-POSID,
      END OF VALUE_TAB.
    DATA: BEGIN OF RETURN_TAB OCCURS 0.
    INCLUDE STRUCTURE DDSHRETVAL.
    DATA END OF RETURN_TAB.
    SELECT PBUKR POSID FROM PRPS UP TO 20 ROWS
    INTO TABLE VALUE_TAB WHERE SLWID = 'QLT UDF'.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    RETFIELD = 'PBUKR'
    WINDOW_TITLE = 'Statusselektion'
    VALUE_ORG = 'S' "hierdurch kann die Struktur genommen werden
    TABLES
    VALUE_TAB = VALUE_TAB
    RETURN_TAB = RETURN_TAB
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3.
    end of additions
    STEP SELONE  (Select one of the elementary searchhelps)
    This step is only called for collective searchhelps. It may be used
    to reduce the amount of elementary searchhelps given in SHLP_TAB.
    The compound searchhelp is given in SHLP.
    If you do not change CALLCONTROL-STEP, the next step is the
    dialog, to select one of the elementary searchhelps.
    If you want to skip this dialog, you have to return the selected
    elementary searchhelp in SHLP and to change CALLCONTROL-STEP to
    either to 'PRESEL' or to 'SELECT'.
      IF callcontrol-step = 'SELONE'.
      PERFORM SELONE .........
        EXIT.
      ENDIF.
    STEP PRESEL  (Enter selection conditions)
    This step allows you, to influence the selection conditions either
    before they are displayed or in order to skip the dialog completely.
    If you want to skip the dialog, you should change CALLCONTROL-STEP
    to 'SELECT'.
    Normaly only SHLP-SELOPT should be changed in this step.
      IF callcontrol-step = 'PRESEL'.
      PERFORM PRESEL ..........
        EXIT.
      ENDIF.
    STEP SELECT    (Select values)
    This step may be used to overtake the data selection completely.
    To skip the standard seletion, you should return 'DISP' as following
    step in CALLCONTROL-STEP.
    Normally RECORD_TAB should be filled after this step.
    Standard function module F4UT_RESULTS_MAP may be very helpfull in this
    step.
      IF callcontrol-step = 'SELECT'.
    Maximum records are set to 0 because the counter for Max records keeps
    running, even if you filter out certain records. This is a similar
    problem as described in OSS Note 148525.
    Feb 3, 2004 LS: devk907353
                    (maxrecords = 0 defaults to maxrecords 500)
                    As of release 4.7, it appears that maxrecords is
                    being considered on the read of the view, rather
                    than prior to presenting the selection list.
                    When only 500 records are passed into this exit,
                    the subsequent evaluation yields very few records
                    in the selection list.  By setting maxrecords to
                    8000, the entire contents of the view are passed
                    to this user exit, and therefor the search help
                    yields a reasonable selection list to the user
                    (as was the case in release 4.6b).
      callcontrol-maxrecords = 0.        " devk907353
        callcontrol-maxrecords = 8000.     " devk907353
      PERFORM STEP_SELECT TABLES RECORD_TAB SHLP_TAB
                          CHANGING SHLP CALLCONTROL RC.
      IF RC = 0.
        CALLCONTROL-STEP = 'DISP'.
      ELSE.
        CALLCONTROL-STEP = 'EXIT'.
      ENDIF.
        EXIT. "Don't process STEP DISP additionally in this call.
      ENDIF.
    Added by vr, Nov. 2007 ---------------------------
      CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
      EXPORTING
        PARAMETER               = 'PBUKR' " Reference to search help parameter
      IMPORTING
        VALUE                   = value
      TABLES
        SHLP_TAB                = shlp_tab
        RECORD_TAB              = record_tab
      CHANGING
        SHLP                    = shlp
        CALLCONTROL             = callcontrol.
      l_pbukr = value.
    End of additions by vr ---------------------------
    STEP DISP     (Display values)
    This step is called, before the selected data is displayed.
    You can e.g. modify or reduce the data in RECORD_TAB
    according to the users authority.
    If you want to get the standard display dialog afterwards, you
    should not change CALLCONTROL-STEP.
    If you want to overtake the dialog on you own, you must return
    the following values in CALLCONTROL-STEP:
    - "RETURN" if one line was selected. The selected line must be
      the only record left in RECORD_TAB. The corresponding fields of
      this line are entered into the screen.
    - "EXIT" if the values request should be aborted
    - "PRESEL" if you want to return to the selection dialog
    Standard function modules F4UT_PARAMETER_VALUE_GET and
    F4UT_PARAMETER_RESULTS_PUT may be very helpfull in this step.
      IF callcontrol-step = 'DISP'.
    DEVK909420 Begin
      SELECT * FROM prps INTO TABLE it_prps
         WHERE belkz = 'X'.
    Changed by vr, Nov. 2007
      IF l_pbukr <> ''.
        SELECT * FROM prps INTO TABLE it_prps
           WHERE belkz =  'X'
             AND fkstl <> ''
             AND pbukr = l_pbukr.
        ELSE.
        SELECT * FROM prps INTO TABLE it_prps
           WHERE belkz =  'X'
             AND fkstl <> ''.
        ENDIF.
    End of changes
    DEVK909420 End
        SORT it_prps BY posid.
        LOOP AT record_tab.
          l_posid = record_tab+96(24).
          READ TABLE it_prps WITH KEY posid = l_posid.
          IF sy-subrc = 0.
            CALL FUNCTION 'STATUS_READ'
                 EXPORTING
                      objnr       = it_prps-objnr
                      only_active = 'X'
                 TABLES
                      status      = status_tab.
    DEVK909329 Begin
            read table status_tab with key inact = ''
                                           stat  = 'E0001'.
            if sy-subrc is initial.
              read table status_tab with key inact = ''         "DEVK909345
                                             stat  = 'I0002'.   "DEVK909345
            endif.
    DEVK909329 End
          ENDIF.
          IF sy-subrc NE 0.
            DELETE record_tab.
          ELSE.
           IF record_tab+114(1) EQ '.' AND
              record_tab+115(1) EQ '9'.
             DELETE record_tab.
           ELSE.
    DEVK909420 Begin
            IF record_tab+102(1) EQ '9'.
              DELETE record_tab.
            ELSEIF record_tab+104(1) EQ '9'.
              DELETE record_tab.
            ENDIF.
    DEVK909420 End
           ENDIF.
          ENDIF.
        ENDLOOP.
        EXIT.
      ENDIF.
    ENDFUNCTION.

    Hi Vitaly,
    Process on Value Request and search help exit is entirely two idea to display the f4 values.please remove the PROCESS ON VALUE REQUEST from the function module.write the required select statements after   CHECK callcontrol-step EQ 'SELECT' . and pass the value to the function module
    CALL FUNCTION 'F4UT_RESULTS_MAP'
          TABLES
            shlp_tab          = shlp_tab
            record_tab        = record_tab
            source_tab        = l_record
          CHANGING
            shlp              = shlp
            callcontrol       = callcontrol
          EXCEPTIONS
            illegal_structure = 1
            OTHERS            = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        IF ( sy-subrc = 0 AND l_record IS INITIAL ).
          MESSAGE 'No values found' TYPE 'S'.
        ENDIF.
        callcontrol-step = 'DISP'.
    Find the documentaion for this function module for further help
    message edited by
    shibu

Maybe you are looking for

  • Help needed in regrouping data in bi publisher

    Hi All, I have the XML Data like below: I want to re-group the data by G_PROJ and then by EXPENDITURE_CATEGORY. (So that for a pair of values of C_PROJECT_ID and EXPENDITURE_CATEGORY, it returns one row. How can do this? - <XXVPDR> <P_PROJECT_ID>1714

  • Handoff not working on mac mini late 2012

    This is really annoying me and was wondering if anyone else with a mac mini late 2012 was experiencing the same problems as I am having. Here is the problem. I have a mac mini late 2012 and it does not show to my other devices, iPhone 5s, iPad air or

  • Unable to delete PO line item if GR qty is different from IV qty

    Dear all, Please help me to check this issue. The PO line item purchased with 10pcs (quantity), and the goods receipt (GR) is 10pcs as well as the invoice verification for 10pcs. However, weeks later, they performed a movement type of 102 to cancel 2

  • How can i uninstall foxfire 4 to the previous version? many things are naot compatible with foxfire 4 = help??

    after installing firefox 4, several things stopped working, i.e. colorful tabs 4.6.5 is disabled and incompatible with firefox 4; HP Smart Web Printing is incompatible with firefox 4; Oberon Gamebar is incompatible with firefox 4; and webstots tolbar

  • Sparc storage Array woring under solaris 10.

    I need to get a Sparc Storage Array to run under solaris 10. The soc driver that is needed is not supportted under solairs 10. I took the packages needed off of solaris 9 cds and installed them but no luck. I tried to to do a modload and modinfo but