SELECT OPTIONS IN A FUNCTION

Hello,
I need to use a select options in a Function module and then i have to send the values to a Report program.
How can I do it?
Thanks.

This is how I have done in past...
In a type-group define types like this
TYPES : zmb52_tr_matnr TYPE RANGE OF mara-matnr ,
        zmb52_tr_werks TYPE RANGE OF marc-werks ,
        zmb52_tr_lgort TYPE RANGE OF mard-lgort ,
        zmb52_tr_charg TYPE RANGE OF mchb-charg ,
        zmb52_tr_mtart TYPE RANGE OF mara-mtart ,
        zmb52_tr_matkl TYPE RANGE OF mara-matkl ,
        zmb52_tr_ekgrp TYPE RANGE OF marc-ekgrp ,
        zmb52_tr_sobkz TYPE RANGE OF mkol-sobkz ,
and use it in FM like this
FUNCTION zgetstock.
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_SPMON) TYPE  SPMON
*"     VALUE(I_MATNR) TYPE  ZMB52_TR_MATNR OPTIONAL
*"     VALUE(I_WERKS) TYPE  ZMB52_TR_WERKS OPTIONAL
*"     VALUE(I_LGORT) TYPE  ZMB52_TR_LGORT OPTIONAL
*"     VALUE(I_CHARG) TYPE  ZMB52_TR_CHARG OPTIONAL
*"     VALUE(I_MTART) TYPE  ZMB52_TR_MTART OPTIONAL
*"     VALUE(I_MATKL) TYPE  ZMB52_TR_MATKL OPTIONAL
*"     VALUE(I_EKGRP) TYPE  ZMB52_TR_CHARG OPTIONAL

Similar Messages

  • Select options passed to function module

    Hey
    I would like to know how r the select-options of a program passed to the function module that is called internally in that program? I want to use this select-options in the function module to fetch frm the database tables?
    Shakr

    Hi,
    Use ranges in function modules. You can declare in import/export/ changing or tables parameters
    Example of ranges:
    ERDAT_RAN
    ERDAT_RAN
    SHP_R_ERZET
    RVBELN
    ERNAM_RAN
    Please see them in se11.
    Pass the select options in the report to these ranges or use below coding:
    DATA: wa_cmfre     LIKE     erdat_ran,
          wa_erdat     LIKE     erdat_ran,
          wa_erzet     LIKE     shp_r_erzet,
          wa_vbeln     LIKE     rvbeln,
          wa_ernam     LIKE     ernam_ran.
    SELECT-OPTIONS: s_erdat FOR vbak-erdat,                  s_erzet FOR vbak-erzet NO-EXTENSION,  
    s_cmfre FOR vbak-cmfre OBLIGATORY ,
    s_vbeln FOR vbak-vbeln NO-EXTENSION,         
    s_auart FOR vbak-auart OBLIGATORY,                           s_bsark FOR vbak-bsark.
      wa_cmfre-sign    = s_cmfre-sign.
      wa_cmfre-option  = s_cmfre-option.
      wa_cmfre-low     = s_cmfre-low.
      wa_cmfre-high    = s_cmfre-high.
      IF NOT s_erdat[] IS INITIAL.
        wa_erdat-sign   =  s_erdat-sign.
        wa_erdat-option =  s_erdat-option.
        wa_erdat-low    =  s_erdat-low.
        wa_erdat-high   =  s_erdat-high.
      ENDIF.
      IF NOT s_erzet[] IS INITIAL.
        wa_erzet-sign   =  s_erzet-sign.
        wa_erzet-option =  s_erzet-option.
        wa_erzet-low    =  s_erzet-low.
        wa_erzet-high   =  s_erzet-high.
      ENDIF.
      IF NOT s_vbeln[] IS INITIAL.
        wa_vbeln-sign   =  s_vbeln-sign.
        wa_vbeln-option =  s_vbeln-option.
        wa_vbeln-low    =  s_vbeln-low.
        wa_vbeln-high   =  s_vbeln-high.
      ENDIF.
      IF NOT s_ernam[] IS INITIAL.
        wa_ernam-sign   =  s_ernam-sign.
        wa_ernam-option =  s_ernam-option.
        wa_ernam-low    =  s_ernam-low.
        wa_ernam-high   =  s_ernam-high.
      ENDIF.
    you can pass these work areas to function module.
    Thanks,
    Shravan G.

  • How to pass select-option filed to Function Module Exporting Parameter

    Hi,
        How to pass select-option filed to Function Module Exporting Parameter.
    Thanks

    Hi,
    DATA: BEGIN OF ITAB5_WRK OCCURS 0,
            KUNNR     TYPE KNKK-KUNNR,  "CUSTOMER #
            SBGRP     TYPE KNKK-SBGRP,  "CREDIT REP
            KLIMK     TYPE KNKK-KLIMK,  "CREDIT LIMIT
            NAME1     TYPE KNA1-NAME1,  "CUSTOMER NAME
            SKFOR     TYPE KNKK-SKFOR,  "TOTAL A/R
            AMT1      TYPE KNKK-SKFOR,  "CURRENT
            AMT2      TYPE KNKK-SKFOR,                          "01-30
            AMT3      TYPE KNKK-SKFOR,                          "31-60
            AMT4      TYPE KNKK-SKFOR,                          "61-90
            AMT5      TYPE KNKK-SKFOR,                          "91-120
            AMT6      TYPE KNKK-SKFOR,                          "OVR 120
            BZIRK     TYPE KNVV-BZIRK,
          END OF ITAB5_WRK.
    SELECT-OPTIONS P_COMP     FOR  T001-BUKRS
      SELECT KUNNR SBGRP  FROM KNKK
             INTO TABLE ITAB5_WRK
             WHERE SBGRP IN P_REP
               AND KUNNR GE '0001000000'
               AND SKFOR NE 0.
      LOOP AT ITAB5_WRK.
        DELETE ADJACENT DUPLICATES FROM ITAB5_WRK COMPARING KUNNR.
      ENDLOOP.
      PERFORM GET_CREDIT_LIMITS.
    *=======================================================================
      IF P_DIST NE SPACE.
        LOOP AT ITAB5_WRK.
          SELECT SINGLE * FROM KNVV WHERE KUNNR EQ ITAB5_WRK-KUNNR
                                      AND VKORG EQ P_COMP
                                      AND VTWEG EQ '20'
                                      AND SPART EQ '10'
                                      AND BZIRK IN P_DIST.
          IF SY-SUBRC EQ 0.
            MOVE KNVV-BZIRK TO ITAB5_WRK-BZIRK.
            MODIFY ITAB5_WRK.
          ELSE.
            DELETE ITAB5_WRK.
          ENDIF.
        ENDLOOP.
      ENDIF.
    *==============================================================
      LOOP AT ITAB5_WRK.
        MOVE: 'F/S'            TO WRK-KKBER,
               ITAB5_WRK-KUNNR TO WRK-KUNNR.
        PERFORM AGING.
        ADD: W_SNFAE  TO ITAB5_WRK-AMT1,
             W_SFAE1  TO ITAB5_WRK-AMT2,
             W_SFAE2  TO ITAB5_WRK-AMT3,
             W_SFAE3  TO ITAB5_WRK-AMT4,
             W_SFAE4  TO ITAB5_WRK-AMT5,
             W_SFAE5  TO ITAB5_WRK-AMT6,
             W_SFAEL  TO ITAB5_WRK-SKFOR,
             W_SNFAE  TO ITAB5_WRK-SKFOR.
        MOVE: 'SPEC'            TO WRK-KKBER,
               ITAB5_WRK-KUNNR TO WRK-KUNNR.
        *PERFORM AGING.*
        ADD: W_SNFAE  TO ITAB5_WRK-AMT1,
             W_SFAE1  TO ITAB5_WRK-AMT2,
             W_SFAE2  TO ITAB5_WRK-AMT3,
             W_SFAE3  TO ITAB5_WRK-AMT4,
             W_SFAE4  TO ITAB5_WRK-AMT5,
             W_SFAE5  TO ITAB5_WRK-AMT6,
             W_SFAEL  TO ITAB5_WRK-SKFOR,
             W_SNFAE  TO ITAB5_WRK-SKFOR.
        MODIFY ITAB5_WRK.
      ENDLOOP.
    FORM AGING.
      *CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'* 
      EXPORTING
          BUKRS             = P_COMP           
          KKBER             = WRK-KKBER
          KUNNR             = WRK-KUNNR
          RASID             = 'FEND'
          KLIMP             = 'X'
        IMPORTING
          SFAE1             = W_SFAE1
          SFAE2             = W_SFAE2
          SFAE3             = W_SFAE3
          SFAE4             = W_SFAE4
          SFAE5             = W_SFAE5
          SFAE6             = W_SFAE6
          SFAEL             = W_SFAEL
          SNFA1             = W_SNFA1
          SNFA2             = W_SNFA2
          SNFA3             = W_SNFA3
          SNFA4             = W_SNFA4
          SNFA5             = W_SNFA5
          SNFA6             = W_SNFA6
          SNFAE             = W_SNFAE
        EXCEPTIONS
          NO-AGING_SCHEDULE = 1
          NO_TABLE_INPUT    = 2.
      CASE SY-SUBRC.
        WHEN 1.
          MESSAGE E999 WITH 'PLEASE ENTER AGING SCHEDULE'.
        WHEN 2.
          MESSAGE E999 WITH 'DO NOTHING ??'.
      ENDCASE.
    ENDFORM.                    "AGING
    Thanks

  • How to pass select-option variable in function

    hi ,
    select-option : s_akont for KNB1-akont OBLIGATORY.
    i have to pass s_akont in function without using
    s_akont-low & s_akont-high.
    rightnow i am passing like s_akont but it is giving me a error :
    s_akont is followed by niether by an internal table nor by a value list.
    what should i write.
    regards
    raj

    Hello Raj
    I assume that you want to import your select-options into your function module(s). Since select-options are, by default, itabs with header lines you have to pass your select-options as following:
    CALL FUNCTION 'Z_...'
      TABLES
        it_selopt = s_akont[].
    The TABLES parameter it_selopt could be of type ANY or better of type <b>TABLE</b>.
    If you want to use generic select-option structure you can use <b>RSDSSELOPT</b> and the table type <b>TT_RSDSSELOPT</b>. In this case you would need to copy your select-options from s_akont to a generic type s_generic (of type RSDSSELOPT).
    Regards
      Uwe

  • How to use select-options in the function module of import parameter ?

    Hi ...
       I have created a BAPI and tested in SWO1 tcode , by giving the single value for an company code ( BUKRS ) , it executed properly .
    Same thing is working after implementing in a program .
    so now it is working for fetching a single company code details .
    My requirement is : I want to use select-options in program as well as in function module IN IMPORT PARAMETER.
    Program :
    REPORT  ZTEST.
    TABLES : T001 , ZBAPI_STR .
    TYPES : BEGIN OF TY_ITEM  .
              INCLUDE STRUCTURE ZBAPI_STR .
    TYPES : END OF TY_ITEM .
    DATA :WA_ITEM TYPE TY_ITEM ,
          ITEM LIKE STANDARD TABLE OF WA_ITEM INITIAL SIZE 0 .
    PARAMETER : BUKRS TYPE ZBAPI_STR-BUKRS.
    call function 'ZBAPI_FMT001'
      exporting
        bukrs         =  BUKRS
    IMPORTING
      RETURN        =
      tables
        itemtab       = ITEM
    IF ITEM IS NOT INITIAL .
      LOOP AT ITEM INTO WA_ITEM .
        WRITE : / WA_ITEM-BUKRS , WA_ITEM-BUTXT , WA_ITEM-ORT01 , WA_ITEM-LAND1 .
      ENDLOOP.
    ENDIF.
    FUNCTION MODULE :
    FUNCTION ZBAPI_FMT001.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(BUKRS) TYPE  EFG_TAB_RANGES
    *"  EXPORTING
    *"     VALUE(RETURN) TYPE  BAPIRET2
    *"  TABLES
    *"      ITEMTAB STRUCTURE  ZBAPI_STR
    SELECT BUKRS BUTXT ORT01 LAND1 FROM T001 INTO TABLE ITEMTAB WHERE BUKRS = BUKRS .
    ENDFUNCTION.
    Regards
    Deepa.

    I have given a similiar example which i did
    Declare a
    Table type:Z_TT_PONUM             
    Short text  :  Select options  PO Number
    in SE11 tcode with row type eg: Z_ST_PONUM
    create a structure (this will be the row type)
    Structure          Z_ST_PONUM            
    Short text         Select Options Field PO number
    Compenent  Compent type
    SIGN       BAPISIGN      Inclusion/exclusion criterion SIGN for range tables
    OPTION       BAPIOPTION      Selection operator OPTION for range tables
    LOW       EBELN                      Purchasing Document Number
    HIGH       EBELN                      Purchasing Document Number
    In the function module import
    give as
    I_PO_NUM     TYPE     Z_TT_PONUM     opt  pass value Select options  PO Number
    Hope this is exactly what you want to know.
    So you create a structure simliar to mine but the low an high whould be your component
    then a table type  and then include that in the BAPI.
    Then pass your select-option value to this BAPI when you call this BAPI in the program

  • How to pass a SELECT-OPTION to a FUNCTION-MODULE

    Hi forum:
              How can i pass a selection-option like an input parameter of a function-module?. Put one example in the answer, please.
              After pass this value i want to put this into an IN select condition.
       But for i only need know how to pass this value
    thnks
    Josué
    Thnks
    Josue Cruz

    Hi Rich.
       this is a little example of my code.
       DATA: wa_bukrs TYPE bkpf-bukrs,
                  wa_budat TYPE bkpf-budat,
                  wa_gjahr TYPE bkpf-gjahr.
       SELECT-OPTIONS: se_bukrs FOR wa_bukrs OBLIGATORY,
                    se_gjahr FOR wa_gjahr OBLIGATORY,
                    se_budat FOR wa_budat OBLIGATORY.
      HERE i can to put the call to the function.
    Thnks

  • Passing SELECT-OPTIONS value to Function Module

    Hi,
    I need to pass select-options value to a function module.
    Code is like the following:
    SELECT-OPTIONS seltab FOR object-type.
    CALL FUNCTION 'Z_MY_FM'
          EXPORTING
            sel_tab         = seltab
         IMPORTING
            result_tab     = it_result
    I have found a similar problem in the SDN forum: How to pass select-options parameter to FM?
    However, that could not help me much in solving my problem.
    So far I have tried to created a structure in DDIC with the following components for the select-options:
    SIGN - BAPISIGN
    OPTION - BAPIOPTION
    LOW - ZBWOBJECTTYPE (my type)
    HIGH - ZBWOBJECTTYPE (my type)
    and subsequently a table type for this structure which is specified in the "Import" tab of my function module.
    Unfortunately, when I ran the program a runtime exception occured (CALL_FUNCTION_CONFLICT_TYPE).
    Could anyone please help me on this issue?
    Thanks in advance.
    Regards,
    Joon Meng

    Hello Joon,
    CALL FUNCTION 'Z_MY_FM'
          EXPORTING
            sel_tab         = seltab
         IMPORTING
            result_tab     = it_result
    You have defined SELTAB as a SELECT-OPTION.
    So when you pass only SELTAB, the header line is transferred to the FM. When you pass SELTAB[] the whole table(range) is passed.
    It is similar to the concept of an internal table with header line.
    Hope i am clear.
    Anyways how have you defined result_tab and sel_tab ?
    BR,
    Suhas

  • Select Options to RFC function modules

    Hi all
    When we use a PERFORM in main program, we can simply use the select-options
    as for ex.,
    in so_matnr
    in so_bsart
    like that
    without passing any parameters.
    This way it will take all values given in 'Single values' in the multiple selection option of selection screen.
    We need not bother about so_matnr-low and so_matnr-high.
    When we use a function module to be executed in another R/3 server ,
    we have to pass values. In these values we can pass so_matnr-low and so_matnr-high only. If the user selects Single Vals instead of these,
    how to pass them?
    Regards
    Vijaya Chamundi

    Hi,
    so_matnr is stored as a table, with fields sign, option, low and high.
    Each time you add a single value, a line is added to the table.
    If you add 'single value'  1 in the selection screen, then a line is added to table so_matnr[] with fields sign='I', option='EQ' and low='00000..1' and high is empty.
    So, if you want to pass it as a parameter, you can pass it as a table:
    so_matnr[]
    In this way you are sure you have all the information you need.
    regards,
    Rolf

  • How to pass select option value to function module while using service call

    Hi,
    I have select-option in my WD application. To collect data based on user input im using service call. How to pass this select option values to my RFC.
    rgds
    sudhanshu

    Hi,
    Thank s for your reply. In fact im doing similar with following variation:
    i) collected range values using get_range* method.
    ii) separate low and high values as: 
    read table <field2> index 1 into wa_range.
    vert2_low = wa_range-low.
    vert2_high = wa_range-high.
    (Please note that in RFC I have taken two importing parameter as s_vert_lo and s_vert_hi)
    iii) Now setting these RFC attribute as:
    lo_el_importing->set_attribute(
        EXPORTING
          name =  `S_VERT_LO`
          value = vert2_low ).
    and
    lo_el_importing->set_attribute(
        EXPORTING
          name =  `S_VERT_HI`
          value = vert2_high ).
    iv) In RFC im having my query as :
    select <fld list> from BUT000 into table itab where vertical in r_vert.
    Here, r_vert is a range defined as:
    ranges r_vert for <fld refrence>
    r_vert-sign = 'I'.
    r_vert-option = 'BT'.
    r_vert-low = S_VERT_LO.
    r_vert-high = S_VERT_HI.
    append r_vert.
    Issue here is with ranges. if im passing both low and high values it is fine but if only low value being passed it is not giving me any record.
    Please suggest.
    Rgds
    Sudhanshu

  • How to define select option in function module

    Hi expert,
                           Actually in my program i am using two select options plant and project definition. i have to pass those two select options to my function module. What i did is i declared that two select options in tables tab using RSDSSELOPT structure. My function module is working correctly when i am testing in se37 but if i am calling my function module from my program its showing dump error 'TYPE CONFLICT WHEN CALLING A FUNCTION MODULE(field length)'. please tell me how to solve this problem.
    Regards,
    Rathish

    Problem solved

  • Using selection options in functions..

    Hi,
    I have written abap program in which there are 3 selection options.. I want to pass these selection options to a function.  so I want to know how to define or refer selection options in functions which is called by some other abap program ?
    Regards,
    Santosh

    The select options are basically just tables with a specific structure. One option would be to specify them as TABLES parameters, e.g. check out function module BAPI_MATERIAL_GETLIST and you can see for example a call via function IAC_SHMA_MATERIALS_SELECT (or check dictionary table type SHP_MATNR_RANGE_T in SE11).
    Cheers, harald

  • Passing Select-options as parameter to function module

    I need to pass a select-option as a parameter to a function module. Is this possible?
    There is an option of passing all the values of the select-option to an internal table, passing that internal table as parameter to the function module, and then adding it manually again to a select-option in the function module.
    But is there any direct way to do this?

    Hi,
    I have a similar problem: I have RFC function module to which I want to pass select options. Therefore I defined table parameters as follows:
    IT_RUNID     TYPE     EFG_TAB_RANGES
    IT_PERNR      TYPE     EFG_TAB_RANGES
    IT_REINR     TYPE     EFG_TAB_RANGES
    I can successfully pass my values to the module, but if I try to check these parameters
    using
    CHECK IT_TRIPS-RUNID IN IT_RUNID.
        CHECK IT_TRIPS-PERNR IN IT_PERNR.
        CHECK IT_TRIPS-REINR IN IT_REINR.
    the check always fails, I guess because there are leading zeros in the ranges. Is there a way to solve this problem?
    Thanks and regards,
    Martin

  • Select options values pass to function module

    Hi all,
            I want to pass the values entered in the select options to the function module. How should my function module interface be declared for passing the select options
    I tried declaring like
    t_range type data in the tables tab.  But this throws error. 
    Please let me know how to pass select option values back to function modules.
    Thanks,

    Hi,
    Check this code.
    data: node_flights type ref to if_wd_context_node.
    data: rt_carrid type ref to data.
    data: rt_connid type ref to data.
    data: isflight type table of sflight.
    data: wsflight type sflight.
    field-symbols: <fs_carrid> type table,
    <fs_connid> type table.
    Retrieve the data from the select option
    rt_carrid = wd_this->m_handler->get_range_table_of_sel_field(
    i_id = 'S_CARR_ID' ).
    if rs_carrid is not initial.   Here you can check that if rs_carrid is no initial then assign value of field symbol
    Assign it to a field symbol
    assign rt_carrid->* to <fs_carrid>.
    endif.
    Retrieve the data from the select option
    rt_connid = wd_this->m_handler->get_range_table_of_sel_field(
    i_id = 'S_CONN_ID' ).
    if rt_connid is not initial. Here you can check that if  rt_connid is no initial then assign value of field symbol
    Assign it to a field symbol
    assign rt_connid->* to <fs_connid>.
    endif.
    if  <fs_connid> is not initial and <fs_carrid> is not initial.
    Retrieve that data from the database. Normally it is suggested to
    encapsulate the data retrieval in a separate class.
    For simplicity, the SELECT statement has been implemented here.
    clear isflight. refresh isflight.
    select * into corresponding fields of table isflight from sflight
    where carrid in <fs_carrid>
    and connid in <fs_connid>.
    endif.
    Bind the data to the context
    node_flights = wd_context->get_child_node( name = `FLIGHTS` ).
    node_flights->bind_elements( isflight ).
    Hopes this will helps you.
    Regard
    Manoj Kumar
    Edited by: Manoj Kumar on Mar 16, 2009 10:41 AM

  • Enabling Select-options in an RFC function module

    Hi Abaper's,
    I am using BAdi definition NOTIF_EVENT_SAVE for sending mail notification to user.
    Under CHANGE_DATA_AT_SAVE method I have called an RFC enabled function module and written code here for mail notification.I used cl_bcs class for sending file.On executing this I am getting a mail box wherein we can enter user id and send mail.But I don't want to use cl_bcs for sending mail now.So I modified the code by including SO_NEW_DOCUMENT_SEND_API1 function.
    My requirement is I want to enable select-options in this function module so that user can get a popup wherein he can select user name from master.On activating I am getting following error:
    Local SELECT-OPTIONS are not allowed (FORM routine or GET event is active).
    Can any one help me how to resolve this error?
    I am using this customized function module for mail notification.If I hardcode mail id,notification is working properly.
    Regards,
    Sam

    sam24 wrote:>
    > My requirement is I want to enable select-options in this function module so that user can get a popup wherein he can select user name from master
    Hi Sam,
    in the function groups TOP include, you can define a selection-screen:
    SELECTION-SCREEN BEGIN OF SCREEN 9786 [TITLE title].
    select-options: s_uname for ...
    SELECTION-SCREEN END OF SCREEN 9786.
    and in the function use
    CALL SELECTION-SCREEN dynnr
                          [STARTING AT col1 lin1
                          [ENDING   AT col2 lin2]]
    Everything declared in the function body source code is local.
    But you must make sure that CHANGE_DATA_AT_SAVE is not processed in update task.
    Regards,
    Clemens
    Edited by: Clemens Li on Jan 16, 2011 7:36 PM

  • Select option how to pass in Function Module

    Hi  Friends
    how to pass direct select-option values in a Function Module and  later how to retrive the values from FM as well ?
    Regards
    Meeta

    Hello Meeta
    You may use a generic table type like RSELOPTION or RSDSSELOPT_T. However, this requires that you shuffle the data from twice from your specific select-options to this generic select-option and vice versa.
    A much simpler way is to import the name of the report from which you want to retrieve its select-options into the function module and within the fm just call fm RS_REFRESH_FROM_SELECTOPTIONS.
    Regards
      Uwe

Maybe you are looking for