Problem with user defined selection-screens

Hi,
in my case, i have a default selection screen and a user defined selection screen. Now, after selecting a radio button in default selection screen, the user defined selection screen is called. after executing it report output is displayed. now if i press f3 (back) it is going to default selection screen. here my requirement is, when i press f3 it should go to the user defined selection.
Can u plz help me solve this.
bye n regards
sree

Any modifications to screen 1000 will be lost the next time the program is generated.
When the user hits the back key from the report output, your ABAP is restarted just like when you originally started it.  That is why you are getting the default selection screen again.
Use the AT USER-COMMAND event.  When BACK is hit from the report, use the SUBMIT command to re-execute the program, passing it the selections from the default selection screen.  Leave out the RETURN option.
For help on filling the selection screen during SUBMIT, help is available at
http://help.sap.com/saphelp_470/helpdata/en/9f/dba51a35c111d1829f0000e829fbfe/frameset.htm

Similar Messages

  • Problem with ALV and user defined selection screen. please help!

    Hi Experts,
           I have program which has a user defined selection screen 9001. On executing the selection screen i call a ALV using resuse_alv_grid function module.
    What problem I am facing is that when I press back button from ALV page it goes to the se38 editor instead of selection screen.
    How to resolve this?
    Thanks
    Gopal

    Hi,
    This might be due to LEAVE TO TRANSACTION statement. You might be running the program from SE38. Try to run the program using Z-TCode assigned to it.
    Thanks and Regards,
    Bharat Kumar Reddy.V
    Message was edited by: Bharat Reddy V

  • User defined selection screen

    Hi, In my program i used a default seelction screen and 5 user defined selection screen. Based on the selections made in default selection screen, it should go to the corresponding user defined screen.
    and the problem iam getting if i press enter jey insted of F8.
    ""Selection screen ZP2I_MASSCHANGE_TEMP1 1000 was
    not called using CALL SELECTION-SCREEN"""
    the code is as follows.
          A T   S E L E C T I O N-S C R E E N
    *AT SELECTION-SCREEN.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP rgp1.
    CHECK SY-UCOMM EQ 'ONLI' OR SY-UCOMM EQ 'CRET' .
    Download
      IF r_dwnld = c_check.
    Material Screen Call
        IF r_matplt = c_check.
          CLEAR p_werks7.
          sree = 'A'.
          CALL SELECTION-SCREEN 170.
          ENDIF.
    Material Storage Screen Call
        IF r_matstr = c_check.
          CLEAR p_werks1.
          sree = 'B'.
          CALL SELECTION-SCREEN 110.
        ENDIF.
    Material Handling Screen Call
        IF r_mathan = c_check.
          CLEAR p_werks2.
          sree = 'C'.
          CALL SELECTION-SCREEN 120.
        ENDIF.
    Material Pick/Up Delivery Screen Call
        IF r_pcdt = c_check.
          CLEAR p_werks3.
          sree = 'D'.
          CALL SELECTION-SCREEN 130.
        ENDIF.
    Material Inboundlogistics Screen Call
        IF r_inlogs = c_check.
          CLEAR p_werks4.
          sree = 'E'.
          CALL SELECTION-SCREEN 140.
        ENDIF.
    Material Packaging Screen Call
        IF r_pkng = c_check.
          CLEAR p_werks5.
          sree = 'F'.
          CALL SELECTION-SCREEN 150.
        ENDIF.
      ENDIF.
    Upload Screen Call
      IF r_upld = c_check.
        IF ( r_matplt = c_check OR
           r_matstr = c_check OR
           r_mathan = c_check OR
           r_pcdt   = c_check OR
           r_inlogs = c_check OR
           r_pkng   = c_check  ).
          CLEAR p_uload.
          sree = 'G'.
          CALL SELECTION-SCREEN 160.
        ENDIF.
      ENDIF.
         s T A R T - O F - S E L E C T I O N
    START-OF-SELECTION.
    DOWNLOAD
      CASE sree.
        WHEN 'A'.
    Select Material Details
          PERFORM get_material_data.
          IF NOT tbl_matplt[] IS INITIAL.
            IF p_dalv7 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Storage data into local file
              PERFORM download_file USING  p_matdet.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 170.
    Select Material storage data
        WHEN 'B'.
          PERFORM get_storage_data.
          IF NOT tbl_matstr[] IS INITIAL.
            IF p_dalv1 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Storage data into local file
              PERFORM download_file USING  p_matstr.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 110.
    Select Material Handling data
        WHEN 'C'.
          PERFORM get_materialhandling.
          IF NOT tbl_mathand[] IS INITIAL.
            IF p_dalv2 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Material Handling data into local file
              PERFORM download_file USING  p_mathan.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 120.
    Select Pick/Up DayTime data
        WHEN 'D'.
          PERFORM get_pickup_delivery.
          IF NOT tbl_pcdel[] IS INITIAL.
            IF p_dalv3 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Pick/Up DayTime data into local file
              PERFORM download_file USING  p_pcdt.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 130.
    Select Inbound Logistics data
        WHEN 'E'.
          PERFORM get_inboundlogistics.
          IF NOT tbl_inlog[] IS INITIAL.
            IF p_dalv4 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Inbound Logistics data into local file
              PERFORM download_file USING  p_inlogs.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 140.
    Select Packaging data
        WHEN 'F'.
          PERFORM get_packaging.
          IF NOT tbl_pkng[] IS INITIAL.
            IF p_dalv5 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Packaging data into local file
              PERFORM download_file USING  p_pkng.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 150.
        WHEN 'G'.
    Material Details data upload
          IF r_matplt = c_check.
    Free memory IDs corresponding to upload tables
            PERFORM free_memory.
    Upload Material details from local file
            PERFORM load_file USING p_uload.
    Prepare data
            PERFORM prepare_mat_data.
    Get actual Material Details from ZP2_MATPLT
            PERFORM get_old_material_data.
    Validate new data against database entries
            PERFORM validate_material_data.
    Check Plant authorization
    Move plants to itab.
            REFRESH tbl_plts.
            LOOP AT tbl_matplt.
              tbl_plts-werks = tbl_matplt-werks.
              APPEND tbl_plts.
              CLEAR  tbl_plts.
            ENDLOOP.
            DELETE ADJACENT DUPLICATES FROM tbl_plts
            COMPARING werks.
    Check authoriztions
            PERFORM check_plant_authorization1 TABLES tbl_plts.
            REFRESH tbl_plts.
            IF p_trun IS INITIAL.
    Modify material data
              PERFORM modify_zp2_matplt.
            ENDIF.
    Material Storage data upload
            IF r_matstr = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload material storage data from local file
       PERFORM load_matstr_data USING p_uload.
              PERFORM load_file USING p_uload.
    Get the material storage data from database
              PERFORM get_old_storage_data.
    Get material plant data for the corresponding
    Storage data.
              PERFORM get_matplt_data_storage.
    Get data from table fields
              PERFORM get_tblfld_values.
    Validate data against database entries
              PERFORM validate_storage_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_matstr.
                tbl_plts-werks = tbl_matstr-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify material storage data
                PERFORM modify_zp2matstr_table.
              ENDIF.
            ENDIF.
    Material Handling data upload
            IF r_mathan = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload material Handling data from local file
              PERFORM load_file USING p_uload.
    Get the material Handling data from database
              PERFORM get_old_materialhandling.
    Get material plant data for the corresponding
    handling data.
              PERFORM get_matplt_data_handling.
    Validate data against database entries
              PERFORM validate_handling_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_mathand.
                tbl_plts-werks = tbl_mathand-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify material handling data
                PERFORM modify_zp2mathand_table.
              ENDIF.
       ELSEIF sy-ucomm = c_s.
         LEAVE SCREEN.
            ENDIF.
    Material Pick/Up DayTime data upload
            IF r_pcdt = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Pick/Up DayTime file data from local file
              PERFORM load_file USING p_uload.
    Get the Pick/Up DayTime data from database
              PERFORM get_old_pickup_delivery.
    Get Inbound logistics data corresponding to handling
              PERFORM get_inlogs_pcdel.
    Validate data against database entries
              PERFORM validate_pcdel_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_pcdel.
                tbl_plts-werks = tbl_pcdel-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Pick/Up DayTime table
                PERFORM modify_zp2pcdt_table.
              ENDIF.
       ELSEIF sy-ucomm = c_s.
         LEAVE SCREEN.
            ENDIF.
    Material Inbound Logistics data upload
            IF r_inlogs = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Inbound Logistics file data from local file
              PERFORM load_file USING p_uload.
    Get the Inbound Logistics data from database
              PERFORM get_old_inboundlogistics.
    Get data from table fields
              PERFORM get_tblfld_values.
    Get Vendor data
              PERFORM get_vendor_inlog.
    Get material plant data for the corresponding
    Inboundlogistics data.
              PERFORM get_matplt_data_inlog.
    Validate data against database entries
              PERFORM validate_inlog_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_inlog.
                tbl_plts-werks = tbl_inlog-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Inbound Logistics table
                PERFORM modify_zp2inlog_table.
              ENDIF.
            ENDIF.
    Packaging data upload
            IF r_pkng = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Packaging file data from local file
              PERFORM load_file USING p_uload.
    Get the Packaging data from database
              PERFORM get_old_packaging.
    Get material plant data for the corresponding
    Packaging data.
              PERFORM get_matplt_data_pkng.
    Get Vendor data
              PERFORM get_vendor_pkng.
    Get data from table fields
              PERFORM get_tblfld_values.
    Load Primary container reference data
              PERFORM primary_container_data.
    Validate data against database entries
              PERFORM validate_packaging_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_pkng.
                tbl_plts-werks = tbl_pkng-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Packaging data
                PERFORM modify_zp2pckg_table.
              ENDIF.
            ENDIF.
          ENDIF.
       IF p_trun = c_check.
    Display the Error list
        PERFORM display_result.
          CALL SELECTION-SCREEN 160.
      ENDIF.
      ENDCASE.
    Another problem is If i press BACK on the report output, it is coming to the default selection screen. and my requirement is, it should come to the corressponding user defined selection screen and not the default selection screen.
    PLz help me in this regard.. Iam breaking my heading, but could not able to solve it.
    Thanks in advance
    sree

    Hello,
    You must have defined user command for the radio button. This is not required. Just try putting it in at selection screen. AT SELECTION-SCREEN ON RADIOBUTTON GROUP rgp1.
    the moment the user clicks the radio button it will go to this event and call the screen. Just use AT SELECTION-SCREEN.
    Regards,
    Shekhar Kulkarni

  • User defined Selection screen for Logical database

    hi all,
           can we display a user defined selection screen instead of the default selection screen in LDB . eg pnp
    cheers
    senthil

    Hi,
    to my knowledge, the selection screen of a logical database can only be changed (versions!) in the logical database itself.
    What you can do is, write a program with your own selection screen an then either call another program that uses the LDB or -  much better - you call the LDB from your program with function module LDB_PROCESS!
    Example taken from the example library (TA ABAPDOCU):
    <b>REPORT demo_logical_database.
    DATA wa_spfli TYPE spfli.
    SELECT-OPTIONS s_carr FOR wa_spfli-carrid.
    DATA: callback TYPE TABLE OF ldbcb,
          callback_wa LIKE LINE OF callback.
    DATA: seltab TYPE TABLE OF rsparams,
          seltab_wa LIKE LINE OF seltab.
    callback_wa-ldbnode     = 'SPFLI'.
    callback_wa-get         = 'X'.
    callback_wa-get_late    = 'X'.
    callback_wa-cb_prog     = sy-repid.
    callback_wa-cb_form     = 'CALLBACK_SPFLI'.
    APPEND callback_wa TO callback.
    CLEAR callback_wa.
    callback_wa-ldbnode     = 'SFLIGHT'.
    callback_wa-get         = 'X'.
    callback_wa-cb_prog     = sy-repid.
    callback_wa-cb_form     = 'CALLBACK_SFLIGHT'.
    APPEND callback_wa TO callback.
    seltab_wa-kind = 'S'.
    seltab_wa-selname = 'CARRID'.
    LOOP AT s_carr.
      MOVE-CORRESPONDING s_carr TO seltab_wa.
      APPEND seltab_wa TO seltab.
    ENDLOOP.
    CALL FUNCTION 'LDB_PROCESS'
         EXPORTING
              ldbname                     = 'F1S'
              variant                     = ' '
         TABLES
              callback                    = callback
              selections                  = seltab
         EXCEPTIONS
              ldb_not_reentrant           = 1
              ldb_incorrect               = 2
              ldb_already_running         = 3
              ldb_error                   = 4
              ldb_selections_error        = 5
              ldb_selections_not_accepted = 6
              variant_not_existent        = 7
              variant_obsolete            = 8
              variant_error               = 9
              free_selections_error       = 10
              callback_no_event           = 11
              callback_node_duplicate     = 12
              OTHERS                      = 13.
    IF sy-subrc <> 0.
      WRITE: 'Exception with SY-SUBRC', sy-subrc.
    ENDIF.
    FORM callback_spfli USING name  TYPE ldbn-ldbnode
                              wa    TYPE spfli
                              evt   TYPE c
                              check TYPE c.
      CASE evt.
        WHEN 'G'.
          WRITE: / wa-carrid, wa-connid, wa-cityfrom, wa-cityto.
          ULINE.
        WHEN 'L'.
          ULINE.
      ENDCASE.
    ENDFORM.
    FORM callback_sflight USING name  TYPE ldbn-ldbnode
                                wa    TYPE sflight
                                evt   TYPE c
                                check TYPE c.
      WRITE: / wa-fldate, wa-seatsocc, wa-seatsmax.
    ENDFORM.</b>

  • Problem with user-defined functions in XQuery String

    hello
    i've a problem with user-defined functions in XQuery String
    details are here (the code is not Human-readable via forum's embedded editor ?? strange)
    http://docs.google.com/Doc?id=ddqwddsr_21c96d9x
    thanks !!

    See
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        return {$inputtype}
                     local:test_function("1","2")' returning content) o from dual
    Error at line 5
    ORA-19114: error during parsing the XQuery expression:
    LPX-00801: XQuery syntax error at '{'
    3                       return {$inputtype}
    -                              ^
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        $inputtype
                     local:test_function("1","2")' returning content) o from dual
    O   
    2   
    1 row selected.

  • Transporting user defined selection screen from one server to another

    How to transport a user defined selection screen (0100) from one server to another.
    PBO and PAI modules written in PBO and PAI events for the selection screen are
    not transported.
    How to transport the modules in the events for the selection screen.

    Hi,
    Krishna, <b>All</b> the Objects(prms,classes,tables,stru...) will be transported thru Transport Objects only..
    Check Utilities->version->Version Mgt -> Here u will have the Transport number(if it's created under trnasportable obj).If you do not find TP no,then u would hav saved that as a Local Object.
    Then Relase the TP no from SE10 Trnx.
    Rgds,
    Jothi.P

  • Problem with User Defined Second Selection Screen

    Hi Gurus,
                       I have a problem with the selection  screen selections. My requirement is that , User when he selects a check box on the main selection screen ( which is 1000) then at the at-selection event, another screen (whose number is 2000) will be called and it has some parameters to enter values. My problem is that how to get the values from this second screen and use them in the in my program. There is an execute button on the second selection screen and when i click that, nothing is happening.
                       Can anybody suggest me how to get the values from this screen which we called, and entered values in that screen. How to use these values and is there any way that we can do this.
    Thanks in advance for helping me out.
    Regards,
    Srinivas.

    Use <b>DYNP_VALUES_READ</b> FM to read the values from your dynpro screen...
    Like this...
    DATA: ls_dyname     TYPE d020s-prog,
            ls_dynumb     TYPE d020s-dnum.
    gt_dynpfields TYPE STANDARD TABLE OF dynpread WITH HEADER LINE.
        ls_dynumb = '0112'.
        gt_dynpfields-fieldname = 'RF05A-NEWKO'.
        APPEND gt_dynpfields.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname               = ls_dyname
          dynumb               = ls_dynumb
        TABLES
          dynpfields           = gt_dynpfields
        EXCEPTIONS
          invalid_abapworkarea = 1
          invalid_dynprofield  = 2
          invalid_dynproname   = 3
          invalid_dynpronummer = 4
          invalid_request      = 5
          no_fielddescription  = 6
          invalid_parameter    = 7
          undefind_error       = 8
          double_conversion    = 9
          stepl_not_found      = 10
          OTHERS               = 11.
    Greetings,
    Blag.

  • Problems with User Defines Mapping Objects - Dynamic Configuration

    We have a mapping object that takes data passed in from R3 and does an HTTP Post to another system using a URL and file name that is passed from the header record. We had a consultant set this up for us last year and in creating the new one we just pretty much copied what he did. The problem is, it is not working for us. We have the url and file name, we pass it to the user defined code that is supposed to pass it to the url and file name in the configuration. The java code looks like this:
    public String getPcurlOut(String pcurl,Container container){
    String ourSourceFileName = "START";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    if (conf != null) {
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory");
    conf.put(key, pcurl + ".xml");
    ourSourceFileName = conf.get(key);
    } else {
    ourSourceFileName = "conf == null";
    Basically we want to pass a url and file name to our communication channel based on values that come from our file in R3
    It is almost exactly like the one that works. Can anyone help with this?
    Thanks
    Mike
    Message was edited by:
            Michael Curtis

    Hi Michael
    <i>Basically we want to pass a url and file name to our communication channel based on values that come <b>from our file in R3</b></i>
    --> This means you have file as a sender adapter.
    Check adapter specific message properties in sender adapter.
    Please refer this blog , it is really worth.
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Also
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory")
    Try writing this as
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","<b>FileName</b>")
    Regards

  • Problem with the default selection screen condition

    hi guys,
    I have got some problem with the default screen given by the PNP logical database, P0000 infotype automatically populated according to the condition given in default screen.
    Reg,
    Hariharan

    Don know what u r trying to acheive.
    1) when u have specified PNP in the logical databse field of attributes of program, the SAP wil proivde u default PNP screen and here u can also add ur paramters if u want.
    2) in the program u have to declare like
    INFOTYPES: 0000,0001. "Etc
    for all the infotypes u want to use in the program.
    3) it is the GET PERNR event which wil fil all the p0000 and p0001 (internal tables for al the infotypes declared via INFOTYPES syntax as shown above)
    4) after tht get pernr, u now have data in P tables and u can use it for further reporting.
    5) refer below dummy code -
    REPORT  ZPPL_PREVEMPLOYERS   message-id rp
                                 line-size 250
                                 line-count 65.
    *Program logic :- This Report is used to Download all the Previous
    * Employer (IT0023) records of the employees
    *eject
    *& Tables and Infotypes                                                *
    tables: pernr.
    infotypes: 0000,
               0001,
               0002,
               0023.
    *eject
    *& Constants                                                           *
    constants: c_1(1)       type c               value '1'   ,
               c_3(1)       type c               value '3'   ,
               c_i(1)       type c               value 'I'   ,
               c_x(1)       type c               value 'X'   ,
               c_eq(2)      type c               value 'EQ'  ,
               c_pl03       like p0001-werks     value 'PL03'.
    *eject
    *& Selection-Screen                                                    *
    parameters: p_file  like rlgrap-filename default 'C:TempABC.xls',
                p_test  as checkbox default c_x               .
    *eject
    *& Internal tables                                                     *
    * Internal Table for Output
    data: begin of t_output occurs 0    ,
           pernr like pernr-pernr       ,
           nachn like p0002-nachn       ,
           vorna like p0002-vorna       ,
           orgeh_stext like p1000-stext ,
           plans_stext like p1000-stext ,
           begda like p0023-begda       ,
           endda like p0023-endda       ,
           land1 like p0023-land1       ,
           arbgb like p0023-arbgb       ,
           ort01 like p0023-ort01   .
    data: end of t_output           .
    *eject
    *& Variables                                                           *
    data: o_stext like p1000-stext,
          p_stext like p1000-stext.
    *eject
    *& Initialization                                                      *
    Initialization.
    * Initialize Selection-Screen values
      perform init_selction_screen.
    *eject
    *& AT Selection-screen                                                 *
    at selection-screen .
    * Check if Test run selected, download file name should be entered
      if p_test is initial.  "
        if p_file is initial.
          message e016 with 'Please enter file name'
                            'specifying complete path'.
        endif.
      endif.
    *eject
    *& Start-of Selection                                                  *
    Start-of-selection.
    get pernr.
      clear t_output.
    * Read Infotype 0
      rp-provide-from-last p0000 space pn-begda pn-endda.
      check pnp-sw-found eq c_1.
    * Check if employee is active
      check p0000-stat2 in pnpstat2.      "pernr Active
    * Read Infotype 1
      rp-provide-from-last p0001 space pn-begda pn-endda.
      check pnp-sw-found eq c_1.
    * check if employee belongs to PL03
      check p0001-werks in pnpwerks.  "belongs to PL03
    * Check if emp belongs to Active Group
      check p0001-persg in pnppersg.
    * Read Infotype 2
      rp-provide-from-last p0002 space pn-begda pn-endda.
      check pnp-sw-found eq c_1.
    * Read Org Unit Text.
    CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
         EXPORTING
              OTYPE                   = 'O'
              objid                   = p0001-orgeh
              begda                   = p0001-begda
              endda                   = p0001-endda
              reference_date          = p0001-begda
         IMPORTING
              object_text             = o_stext
          EXCEPTIONS
              nothing_found           = 1
              wrong_objecttype        = 2
              missing_costcenter_data = 3
              missing_object_id       = 4
              OTHERS                  = 5.
    *Read Position Text.
    CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
         EXPORTING
              OTYPE                   = 'S'
              objid                   = p0001-plans
              begda                   = p0001-begda
              endda                   = p0001-endda
              reference_date          = p0001-begda
         IMPORTING
              object_text             = p_stext
         EXCEPTIONS
              nothing_found           = 1
              wrong_objecttype        = 2
              missing_costcenter_data = 3
              missing_object_id       = 4
              OTHERS                  = 5.
    * Gather all the required information related to the emp
      move: pernr-pernr to t_output-pernr,
            o_stext to t_output-orgeh_stext,
            p_stext to t_output-plans_stext,
            p0002-nachn to t_output-nachn,
            p0002-vorna to t_output-vorna.
    * Gather previous Employee details
      loop at p0023.
        move-corresponding p0023 to t_output.
        append t_output.
      endloop.
    *eject
    *& End-of Selection                                                    *
    end-of-selection.
      perform print_report.
    * Downlaod the file
      if not t_output[] is initial.
        if p_test eq space.
          perform download_file.
        endif.
      else.
        write: 'No records selected' color col_negative.
      endif.
    *eject
    *& Top-of-page                                                         *
    Top-of-page.
    * Print Header
      perform print_header.
    *eject
    *&      Form  download_file
    * Description :
    FORM download_file .
      DATA: full_file_name    TYPE string,
            z_akt_filesize    TYPE i     .
      full_file_name = p_file.
    *  download table into file on presentation server
      CALL METHOD cl_gui_frontend_services=>gui_download
        EXPORTING
          filename                = full_file_name
          filetype                = 'DAT'
          NO_AUTH_CHECK           = c_x
          codepage                = '1160'
        IMPORTING
          FILELENGTH              = z_akt_filesize
        CHANGING
          data_tab                = t_output[]
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          not_supported_by_gui    = 22
          error_no_gui            = 23
          OTHERS                  = 24.
      IF  sy-subrc               NE        0.
        MESSAGE e016 WITH 'Download-Error; RC:' sy-subrc.
      ENDIF.
    ENDFORM.                    " download_file
    *eject
    *&      Form  print_report
    *Description:
    FORM print_report .
      data: i       type i,
            w_count type i.
      sort t_output.
    * Print the report
      loop at t_output.
        i = sy-tabix mod 2.
        if i eq 0.
          format color col_normal intensified on.
        else.
          format color col_normal intensified off.
        endif.
        write:/1     t_output-pernr          ,
               10     t_output-vorna(25)     ,
               35    t_output-nachn(25)      ,
               61   t_output-orgeh_stext     ,
               102  t_output-plans_stext     ,
               143  t_output-begda           ,
               154   t_output-endda          ,
               168   t_output-land1          ,
               178   t_output-arbgb(40)      ,
               219   t_output-ort01          ,
               249   space              .
      endloop.
      uline.
      Describe table t_output lines w_count.
      Skip 2.
      Write:/ 'Total No of Records Downloaded: ' color col_total,
              w_count.
    ENDFORM.                    " print_report
    *eject
    *&      Form  print_header
    *Description:
    FORM print_header .
      skip 1.
      Uline.
      format Intensified on color col_heading.
      write:/1   'Pers. #'        ,
             10   'Last Name'     ,
             35   'First Name'    ,
             61   'Org Unit'      ,
             102  'Position'      ,
             143  'Beg Date'      ,
            154   'End Date'      ,
            168   'Cntry Key'     ,
            178   'Prev Employer' ,
            219  'City'           ,
            249   space          .
      format intensified off color off.
      uline.
    ENDFORM.                    " print_header
    *eject
    *&      Form  init_selction_screen
    *Description:
    FORM init_selction_screen .
      refresh: pnpwerks,
               pnppersg,
               pnpstat2.
      clear:   pnpwerks,
               pnppersg,
               pnpstat2.
      pnpwerks-sign   = c_i.
      pnpwerks-option = c_EQ.
      pnpwerks-low    = c_pl03.
      append pnpwerks.
      pnppersg-sign   = c_i.
      pnppersg-option = c_EQ.
      pnppersg-low    = c_1.
      append pnppersg.
      pnpstat2-sign   = c_i.
      pnpstat2-option = c_EQ.
      pnpstat2-low    = c_3.
      append pnpstat2.
    ENDFORM.                    " init_selction_screen

  • Problems with user-defined update-process

    Hi.
    I have a small problem in the right syntax in an user-defined updated process.
    The process is called by a button on the page and should update a record in a table.
    BEGIN
    UPDATE wam_mod_allocation SET
    alloc_assessment = V('P2120_ASSESSMENT'),
    last_update_date = LOCALTIMESTAMP,
    last_update_staff = V('APP_USER')
    WHERE username = V('P2120_USERNAME')
    AND module_id = V('P2120_MODULE_ID')
    END;
    This is the code of the process. The line with the problem is marked bold. P2120_USERNAME is a text field in the page and contains the username to be updated.
    The problem is, that the comparison doesn't work. the value "smith" is available in the table and is the same as in the text field. (both in lower case).
    If I replace the part V('P2120_USERNAME') with 'smith' (with single quotes), the update statement works properly.
    How do I have to compare the username with the item value that it works properly?

    1. Stephan
    2 + 3 Well. I enclosed both tags in the TRIM-Operator and it works. First, I thought, a whitespace caused the problems. To determine which value contains the whitespaces I removed the trim-tags on both sides. It works.
    It is quite funny, because,if I remove both tags, it works too? Well. Yesterday it didnt.
    To be on the safe side, I will include the trim-tags.
    Thanks very much.
    Stephan

  • ALV view : Problem with user defined views

    Dear Experts,
    We are facing a problem pertaining to user defined views for a ALV table that we have in SAP eRecruiting application in webdynpro ABAP. The problem is as follows.
    There is a candidate application ABC & only ONE person can edit this at a time.In this application ABC there is a ALV table.
    If the user clicks on this application & navigates to the ALV,this ABC application is in normal/edit mode(no one else has opened this ). So, the user can make changes in ABC. In the ALV, he can click on the 'settings 'button and save the STANDARD view as his own user defined view(by adding or removing columns).
    If the user opens the application ABC in display mode(implying that someone else has alraedy opened ABC for editing), when i navigate to the same ALV,the user CANNOT see the views which were saved in the edit mode.Only the standard view is displayed. The user however has the option to again freshly save a view.
    The views created by a user for this ALV should be seen irrespective of the application being opened in normal or display mode.
    To add to the confusion, this problem is occuring only in some systems & not in others. There is atleast one system where the views are displayed correctly to the user.
    On debugging, the table wdy_conf_user has config ids as different where the user views are stored separately for display & edit mode.
    In systems where the user views are displayed correctly, the config id is one & the same ensuring that the user can see all his views irrespective of the mode of the application.
    Any thoughts on how we can rectify this?
    sorry for the long & tedious explanation
    Thanks in advance,
    Sowmya

    See
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        return {$inputtype}
                     local:test_function("1","2")' returning content) o from dual
    Error at line 5
    ORA-19114: error during parsing the XQuery expression:
    LPX-00801: XQuery syntax error at '{'
    3                       return {$inputtype}
    -                              ^
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        $inputtype
                     local:test_function("1","2")' returning content) o from dual
    O   
    2   
    1 row selected.

  • Problem with user defined methods

    Hello,
    I have created a user-defined method using the constructer and a number of sub-methods. The toString method is supposed to return the maximum, minimum, average, and median for an input data set. This program compiles with no problem, but doesn't seem to calculate the statistics. The max, min, med, and mean are all 0. Any help would be appreciated. Thanks a lot.
    import java.util.*;
    public class SO{
    private String id;
    private int N;
    private double[] data;
    private double average;
    private double minimum;
    private double maximum;
    private double med;
         public SO(){
         public void readData(){
              Scanner keyBoard = new Scanner(System.in);
              System.out.println("Enter the id: ");
              id = keyBoard.nextLine();
              System.out.println("Enter the amount of data values in the id: ");
              N = keyBoard.nextInt();
              data = new double[N];
              System.out.println("Enter the values one line at a time: ");
              int j = 0;
              for(int h=0; h<=N-1; h++){
                   data[h] = keyBoard.nextDouble();
              Arrays.sort(data);
         public void setDataValue(int k, double v){
              data[k] = v;
              System.out.printf("Changing data[%d] to %f", k, v);     
         public double getDataValue(int k){
              double get = data[k];
              return get;
         private double mean(){
              double sum = 0;
              for(int k = 0; k<=N-1; k++){
                   sum = sum + data[k];
              average = sum/N;
              return average;
         private double min(){
              minimum = data[0];
              return minimum;
         private double max(){
              maximum = data[N-1];
              return maximum;
         private double median(){
              if(N%2 != 0){
                   med = data[N/2];
              else if(N%2 == 0){
                   med = (data[N/2] + data[N/2-1])/2.;
              return med;
         public void displayData(){
              System.out.printf("[");
              for(int k = 0; k<=N-1; k++){
                   System.out.printf("%.2f", data[k]);
                   if(k != N-1){
                        System.out.printf(", ");
              System.out.printf("]");
         public void sortData(){
              Arrays.sort(data);
              System.out.printf("[");
              for(int k = 0; k<=N-1; k++){
                   System.out.printf("%.2f", data[k]);
                   if(k != N-1){
                        System.out.printf(", ");
              System.out.printf("]");
         public void analyzeData(){
              System.out.println(this);     
         public String toString(){
              return id +"\n" + "minimum = " + minimum + "\n" + "maximum = " + maximum + "\n" + "median = " + med + "\n" + "mean = " + average;
         public static void main(String[] args){
              SO v = new SO();
              System.out.println("Read Data");
              v.readData();
              System.out.println("Display Data");
              v.displayData();
              System.out.println("Analyze Data");
              v.analyzeData();
              System.out.println("Set Data\n");
              v.setDataValue(0,98.75);
              v.displayData();
              System.out.println("Sort Data");
              v.sortData();
              System.out.println("Access Data\n");
              System.out.println("data[0] = " + v.getDataValue(0));
              System.out.println("\nDisplay v");
              System.out.println(v);
    }

    Sorry
    import java.util.*;
    public class SO{
       private String id;      
       private int N;          
       private double[] data;
       private double average;
       private double minimum;
       private double maximum;
       private double med;
         public SO(){
            public void readData(){
                 Scanner keyBoard = new Scanner(System.in);
              System.out.println("Enter the id: ");
              id = keyBoard.nextLine();
              System.out.println("Enter the amount of data values in the id: ");
              N = keyBoard.nextInt();
              data = new double[N];
              System.out.println("Enter the values one line at a time: ");
              int j = 0;
              for(int h=0; h<=N-1; h++){
                   data[h] = keyBoard.nextDouble();
              Arrays.sort(data);
            public void setDataValue(int k, double v){
                 data[k] = v;
              System.out.printf("Changing data[%d] to %f", k, v);     
            public double getDataValue(int k){
                 double get = data[k];
              return get;
            private double mean(){
                 double sum = 0;
              for(int k = 0; k<=N-1; k++){
                   sum = sum + data[k];
              average = sum/N;
              return average;
            private double min(){
                 minimum = data[0];
              return minimum;
            private double max(){
                 maximum = data[N-1];
              return maximum;
            private double median(){
                 if(N%2 != 0){
                   med = data[N/2];
              else if(N%2 == 0){
                   med = (data[N/2] + data[N/2-1])/2.;
              return med;
            public void displayData(){
                 System.out.printf("[");
              for(int k = 0; k<=N-1; k++){
                   System.out.printf("%.2f", data[k]);
                   if(k != N-1){
                        System.out.printf(", ");
              System.out.printf("]");
            public void sortData(){
                 Arrays.sort(data);
              System.out.printf("[");
              for(int k = 0; k<=N-1; k++){
                   System.out.printf("%.2f", data[k]);
                   if(k != N-1){
                        System.out.printf(", ");
              System.out.printf("]");
            public void analyzeData(){
                 System.out.println(this);       
            public String toString(){
                 return id +"\n" + "minimum = " + minimum + "\n" + "maximum = " + maximum + "\n" + "median = " + med + "\n" + "mean = " + average;
         public static void main(String[] args){
              SO v = new SO();
              System.out.println("Read Data");
                     v.readData();
                     System.out.println("Display Data");
                     v.displayData();
                     System.out.println("Analyze Data");
                     v.analyzeData();
                     System.out.println("Set Data\n");
                     v.setDataValue(0,98.75);
                     v.displayData();
                     System.out.println("Sort Data");
                     v.sortData();
                     System.out.println("Access Data\n");
                     System.out.println("data[0] = " + v.getDataValue(0));
                     System.out.println("\nDisplay v");
                     System.out.println(v);
    }

  • Logical database : user defined selection screen

    Hi Experts,
                 I am working with HR-ABAP. The logical databases provide a selection screen......but i want to use a selection screen of my own and not that of the LDB.
    Plz help...............

    hi do like this....
    go to attributes-->hr report catagory-->master data...here use the value _____000(5underscores and 000 )..
    you wii get that..
    regards,
    venkat

  • User defined selection screen sequence

    Hello Everyone,
    I have a kind of an issue with selection screens. Story goes like this. I have a main sel.screen (no 1000) where I have some selection list. Now based on this selection i display another sel.screen (with my given number, let's say 9000). Then i fill selection criterion on screen 9000 press F8 and I get results. So far so good. Now when i 'back' button system displays the first, initial sel.screen (1000) instead of the last displayed (9000). I've tried to modify this behaviour and I am able to display the last sel.screen (9000) after pressing 'back' button but then when i press 'F8' instead of results I get initial sel.screen (1000) again. Is there anything I could do to make it work in the way I want to ?
    Regards
    Pawel

    Ok so let me present the code (or at least the most important parts) as Selva asked because using 'set screen 0' did not help. it is possible that I used it in wrong place so even more presenting code should help:
    * some global data definition
    *definition of mail sel.screen:
    SELECTION-SCREEN BEGIN OF BLOCK selscr1
                     WITH FRAME TITLE text-001.
    PARAMETERS: "select interface
         p_i001(4) as listbox visible length 20 OBLIGATORY DEFAULT 'XXX'.
    SELECTION-SCREEN END   OF BLOCK selscr1.
    *definiotion of following sel.screens;
    SELECTION-SCREEN BEGIN OF SCREEN 1002.
      SELECTION-SCREEN BEGIN OF BLOCK selscr2 WITH FRAME TITLE text-001.
        PARAMETER: p_ws02(4) as listbox visible length 20 OBLIGATORY DEFAULT 'XXX'.
    *    PARAMETER: p_t02 like GV_TABNAME DEFAULT 'zint_v_infin002'.
      SELECTION-SCREEN END   OF BLOCK selscr2.
    SELECTION-SCREEN end OF SCREEN 1002.
    SELECTION-SCREEN BEGIN OF SCREEN 1004.
      SELECTION-SCREEN BEGIN OF BLOCK selscr3 WITH FRAME TITLE text-001.
        PARAMETER: p_ws04(4) as listbox visible length 20 OBLIGATORY DEFAULT 'XXX'.
      SELECTION-SCREEN END   OF BLOCK selscr3.
    SELECTION-SCREEN end OF SCREEN 1004.
    *******************   END OF SCREENS ***********************************************************
    AT SELECTION-SCREEN ON p_i001. "parameter from screen 1000
      CASE p_i001.
        WHEN '002'.
          call SELECTION-SCREEN 1002.
        WHEN '004'.
          call SELECTION-SCREEN 1004.
        WHEN OTHERS.
          CALL SELECTION-SCREEN 1000.
       ENDCASE.
    *** some settings made basing on selections from following screens
    AT selection-SCREEN on p_ws02.
      gv_werks = p_ws02.
    AT selection-SCREEN on p_ws04.
      gv_werks = p_ws04.
    INITIALIZATION
    * filling listbox
    START-OF-SELECTION.
      CASE p_i001.
        WHEN '002'.
         "select 002 relevant data
         "alv display
        WHEN '004'.
         "select 004 relevant data
         "alv display
      ENDCASE.
      END-OF-SELECTION.
    so as i mentioned before when i press 'back' on alv list I end up with screen 1000 instead 1004 (it's 1004 in real life not 9000). when i tried to change i was able to display 1004 selection when i pressed 'back' on alv but then instead of getting new list system takes ma back to 1000 scr again
    regards
    Pawel

  • TO HAVE USER DEFINED SELECTION SCREEN USING LOGICAL DATABASE AFI

    AFI is the logical database i need to use, but if i include the AFI is the program attributes, i get the selection screen which is already there for AFI, but i need to get the selection screen, that i have defined

    Hi ,
    you can exclude sel. from ldb with
    loop at screen - statement
    and you can include your own sel-option and parameters
    regards Andreas

Maybe you are looking for

  • Missing operator in query expression

    Greetings, I'm attempting to access a MS Acess database, but getting the following error. Syntax error (missing operator) in query expression 'Org Name'. The error occurs between the following two lines. String SQL = "SELECT Org Name FROM Organizatio

  • DAQmx 8.7 + VISA 4.20 no TCP/IP-Devs in MAX

    Hi Group, i have installed DAQmx8.7 + VISA 4.20 on an Client Workstation. I can't create an VISA-TCP/IP Dev in Max there is only PXI like on my developer maschine, unfortunately my scope is connected by ethernet. What else do I have to install to hav

  • [Macromedia][Oracle JDBC Driver]Numeric overflow

    I am moving from CF 6.1 to CF 9 using Oracle 9i.  I get the following error when I use cfstoredproc to call a procedure in a package: [Macromedia][Oracle JDBC Driver]Numeric overflow.  In spite of throwing the error, the stored procedure seems to exe

  • Creating inbound Sales Orders IDOC within SAP

    Hi, I receive a flat file containing sales order information. I would like to create inbound Sales Order IDOCs from this flat file. I know I can use BAPI_SALESORDER_CREATEFROMDAT2 to create sales orders however I would like to retain the benefits of

  • BB 8900 cosmetic problem on my phone

    recently i have bought a BB 8900 Curve. To my surprise in less than 5 months the outer jacket of the phone (steel like plated jacket) is peeling of from various places spoling the entire look of the phone. What is more surprising that I am clueless o