Pass a particular value  in the function module.

Hi Gurus!
I have a function module READ_HAUPTBUCH_TEXT , here in the importing table KONTENPLAN like ska1-ktopl.
But I need to pass a value as ZNOA for KONTENPLAN while calling the function which is maintained in the db, but it is always picking up the value 'AZ'.
can you please let me know as to how i do it .thx in advance.

hi sandeep it is better to pass like this...
data: v_ktopl type  ska1-ktopl.
        clear v_ktopl.
         v_ktopl = itab-ktopl.
      CALL FUNCTION 'READ_HAUPTBUCH_TEXT'
        EXPORTING
          kontenplan           =  v_ktopl
          sachkonto            =
          sprache              =
        NO_BUFFER            =
      IMPORTING
        TEXT_WA              =
      EXCEPTIONS
        TEXT_NOT_FOUND       = 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.
regards,
venkat.

Similar Messages

  • Can we input range of values in the Function Module CONVERSION_EXIT_MATN1_I

    Hi all,
    Can we in put range of values in the FM 'CONVERSION_EXIT_MATN1_INPUT'
    Like If I am inputting s_matnr which takes range of material number based on selection screen input.
    CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
       EXPORTING
         INPUT              = s_matnr
      IMPORTING
        OUTPUT             = s_matnr
      EXCEPTIONS
        LENGTH_ERROR       = 1
        OTHERS             = 2.
    Can this work?
    Thanks,
    Debrup.

    hi do like this...
    loop at r_matnr .
    CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
    EXPORTING
    INPUT = r_matnr
    IMPORTING
    OUTPUT = v_matnr
    EXCEPTIONS
    LENGTH_ERROR = 1
    OTHERS = 2.
    itab-matnr = v_matnr .
    append itab .
    endloop .

  • Passing String values in the Function module

    Hi
    i am using a coustom made RFC, here i am usnig input parameter 'jobnature' of string type of length 720. the values is getting from the portal,
    i send a string of length of 720 charater from portal, but inside the RFC only 132 charaters are getting .why it happeded so, what is the solution .
    regards
    Renjith

    Hi renjith,
    1. don't give any length in the FM definition.
    2. just like this.
    STR     TYPE     STRING
    (Tick the checkbox for 'Pass Value')
    (Bcos its RFC Enabled)
    regards,
    amit m.

  • Getting values from a function module called in a WDA method

    Friends,
    I am trying to execute a function module from WDA.
    I have created a service call for the function module. The function module takes values from the user, looks up the corresponding values of another field and returns the values in an internal table.
    I am using the "Method Call in Used Controller" of WD Code wizard to call the function module.
    When the event handler method containing the call to the function module is executed, nothing happens.
    I am not sure how to pass values to the function module and to get the return values from the function module.
    I am new to using function modules from WDA. Please help me out.
    Thanks and Regards.

    Rashmi,
    Is the function module intended to collect input data from the UI and process it? - Yes
    If yes, then the input (importing parameter) to the Function Module is a table of values (which should be ideally from the context mapped to the Table UI Element). - The importing parameter is a single value NOT a table and is mapped to the view context.
    Now this table UI Element is bound to the view controller context , which in turn is mapped to the component controller context. And you are indeed being able to read the value of this internal table in the component controller method where the function module is being called by means of get_static_attributes_table (Is this right? - Yes, I am able to read the table of values that is passed from the component controller view to form view context by using get_static_attributes_table.
    Or are you being able to read it in the event handler method of the view controller and not being able to read it in the component controller method) -
    The function module takes a single value as import parameter and returns a table of values as return value.
    It works fine when no importing parameter is being used and returns the table of values that is getting passed from component controller context to form view context when i am able to read it using get_static_attributes_table.
    Now the question is: how to pass the import parameter value to the function module. I assumed since the importing parameter is a context node (like the return values are), i should set the value ( captured when the user enters the value in the form) to the importing parameter context attribute using set_attribute method. Since it is mapped to the component controller context, i assumed it will get passed and the method will take it as input parameter.
    Let me know if my assumptions are correct regarding passing the import parameters and what is missing here.
    Thanks and Regards.

  • How to get sysnr value in a Function Module

    Hi all,
    I need to get the sysnr(system number) value of the R/3 system. I execute a RFC function module and need to get the value of sysnr of the system it executes in as a return parameter. Can somebody tell me how to get this value in the function module and return it.
    Thanks and Regards,
    Pratik

    Hello Pratik
    The system number has to be defined in the RFC destination. Thus, select on your local system (where you call the RFC function module) the corresponding RFC destination from table <b>RFCDES</b>. In field RFCDES-RFCOPTIONS you will find a string like this:
    H=<ip address>,S=21,R=N, ...
    S=system number
    Regards
      Uwe

  • Significance of pass value checkbox in function module

    Hi all,
    Here is a confusion.....While creating a custom function module,i have checked the update module or RFC call radio button going to its attributes.But in the importing parameter if i pass a structure,it is giving a syntax error.It is only allowing table parameter.But if i check the pass value checkbox,it is not givng any syntax error if i pass any structure in the importing parameter.Can anybody please explain me the significance of pass value checkbox?
    Thanks in advance.......

    Hi,
    Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
    Function Module Interfaces
    The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
    Syntax
    ... [IMPORTING parameters]
    [EXPORTING parameters]
    [CHANGING parameters]
    [TABLES table_parameters]
    [{RAISING|EXCEPTIONS} exc1 exc2 ...]
    The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
    Interface parameters
    The interface parameters are defined on the relevant tab pages in the Function Builder.
    IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
    EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for <b>'pass by value'</b> is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
    CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
    TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
    Exceptions
    The exception of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception are defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
    The addition RAISING is used to declare class-based exceptions that can be propagated from the function module to the caller. Exceptions in the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be explicitly declared, otherwise a propagation can lead to an interface violation. A violation of the interface leads to the treatable exception CX_SY_NO_HANDLER. Exceptions of the category CX_NO_CHECK are implicitly always declared. The declaration of exceptions of the category CX_STATIC_CHECK is statically checked in the syntax check. For exceptions of the category CX_DYNAMIC_CHECK, the check is not performed until runtime. In a function module in which class-based exceptions are declared with the RAISING addition, the statement CATCH SYSTEM-EXCEPTIONS cannot be used. Instead, the relevant treatable exceptions should be handled in a TRY control structure.
    The addition EXCEPTIONS is used to define a list of non-class-based exceptions that can be triggered in the function module using the statements RAISE or MESSAGE RAISING. Exceptions defined in this way - as with formal parameters - are bound to the function module and cannot be propagated. If an exception of this type is triggered in a function module, and no return value has been assigned to it with the homonymous addition EXCEPTIONS of the CALL FUNCTION statement when the call was made, this leads to a runtime error.
    Note
    For new developments after release 6.10, SAP recommends that you work with class-based exceptions that are independent of the function module.
    RFC is a technology which is used to access a functions (Modules) from
    the remote systems.
    If a function module is set as remote enabled which can be access from
    the remote system via RFC.Eg: U can access the Remote enabled function modules in ur VB,Webdynpro,Java,Visual composer program.
    A function module can be set as remote enabled by SE37->Go to ur FM->click the option Button "remote enabled".
    But Normal function modules can not accessd from the remote system.
    Good Example for RFC enabled function module is : BAPI(Business Application Programming Interface)
    Note: All BAPIs are Remote enabled but not all remote enabled function modules are BAPI.
    CALLING A FUNCTION MODULE:
    1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
    --> Write the Corresponding FM name --> Hit Enter
    2)The appropriate import ,export Parameters will be displayed in ur editor
    3)Pass the Values Here.
    Also check these links.
    http://www.geocities.com/victorav15/sapr3/abapfun.html
    Check this link:
    http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    Check this link:
    http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    See the following links:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/content.htm
    Regards,
    Srilatha.

  • Query in passing value to a function module

    Hi All ,
    I have a small query in the below code about the way i have passed value into a function module :
    CALL FUNCTION 'AUTHORITY_CHECK'
      EXPORTING
      USER                      = SY-UNAME
        OBJECT                    = 'E_INVOICE'
        FIELD1                    = 'BEGRU'
      VALUE1                    = ' '
       FIELD2                    = 'BUKRS'
       VALUE2                    = '$BUKRS'
       FIELD3                    = 'ISU_ACTIVT'
       VALUE3                    = '1,2,5,6'
       FIELD4                    = 'VKTYP_KK'
      VALUE4                    = ' '
    EXCEPTIONS
       USER_DONT_EXIST           = 1
       USER_IS_AUTHORIZED        = 2
       USER_NOT_AUTHORIZED       = 3
       USER_IS_LOCKED            = 4
       OTHERS                    = 5
    IF SY-SUBRC <> 0.
    MESSAGE 'User doesnt have sufficient authorizations' TYPE 'E'.
    EXIT.
    The query is on the field  VALUE3                    = '1,2,5,6' , is the format correct. If this is not right could someone please suggest the correct approach.
    thanks

    Hi Balaji,
    as that is parameter you can use at a time only one value..
    if you check in that FM we have other parameters VALUE1 to VALUE10..
    why don't you use those...
    Thanks!

  • Passing the parameter in the Function module MESSAGE_SEND_AS_MAIL

    Hi all,
    I have to send the same message to five different mail ID's using the Function module MESSAGE_SEND_AS_MAIL
    How to pass this five mail ID's in the Parameter Reciever of the Function module
    Regards
    Ajay

    see if this helps
    REPORT  Z_MESSAGE.
    data receiv type standard table of SOMLRECI1 initial size 0.
    data wa type SOMLRECI1.
    wa-receiver = 'email address in caps'.
    wa-REC_TYPE = 'U'.
    append wa to receiv.
    wa-receiver = 'email address in caps'.
    wa-REC_TYPE = 'U'.
    append wa to receiv.
    do so more more three
    CALL FUNCTION 'MESSAGE_SEND_AS_MAIL'
      EXPORTING
        msgid           = 'Z_ZZZ_CA_MESSAGES'
        msgno           = '000'
       MSGV1           = 'material'
       MSGV2           = 'MAT'
       MSGV3           = 'MM'
       MSGV4           = 'MMM'
      tables
        receivers       = receiv[]
              COMMIT WORK AND WAIT.
    then u can go to SOST transaction and see that the mail has been or is yet to be sent. It worked for me. The message comes in an PDF form to the mail box.
    Edited by: Biswadeep Ghosh on Jun 25, 2008 2:28 PM
    Edited by: Biswadeep Ghosh on Jun 25, 2008 2:30 PM

  • Table to find out the function modules used in a particular program

    Hi,
    Is there any standard table to find out the function modules used in a particular program?
    Such as there is a table D010TAB to find out the tables used in a program .

    Hello
    There is no exist such table.
    But try this snippet:
    REPORT ZSEARCH.
    PARAMETERS: P_NAME LIKE D010SINF-PROG.
    DATA: PROGTXT(72) TYPE C OCCURS 0 WITH HEADER LINE.
    DATA: TMP(72) TYPE C OCCURS 0 WITH HEADER LINE.
    DATA: FUNCT TYPE RS38L_FNAM OCCURS 0 WITH HEADER LINE.
    DATA: INCL TYPE RSEUINC OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'RS_GET_ALL_INCLUDES'
         EXPORTING PROGRAM    = P_NAME
         TABLES    INCLUDETAB = INCL.
    LOOP AT INCL.
      READ REPORT INCL-MASTER INTO TMP.
      APPEND LINES OF TMP TO PROGTXT.
      REFRESH TMP.
    ENDLOOP.
    READ REPORT P_NAME INTO TMP.
    APPEND LINES OF TMP TO PROGTXT.
    LOOP AT PROGTXT.
      IF PROGTXT CS 'CALL FUNCTION'.
        SEARCH PROGTXT FOR ''''.
        IF SY-SUBRC = 0.
          DO.
            SHIFT PROGTXT LEFT BY 1 PLACES.
            IF PROGTXT(1) = ''''.
              SHIFT PROGTXT LEFT BY 1 PLACES.
              DO.
                SHIFT PROGTXT RIGHT BY 1 PLACES.
                IF PROGTXT+71(1) = ''''.
                  SHIFT PROGTXT RIGHT BY 1 PLACES.
                  CONDENSE PROGTXT.
                  FUNCT = PROGTXT. COLLECT FUNCT. EXIT.
                ENDIF.
              ENDDO.
              EXIT.
            ENDIF.
          ENDDO.
        ENDIF.
      ENDIF.
    ENDLOOP.
    SORT FUNCT.
    LOOP AT FUNCT.
      WRITE: FUNCT. NEW-LINE.
    ENDLOOP.

  • How to findout the Function module for a particular object

    Hello friends,
       Related to my thread, there was one thread in the forum,to find out the function module for a particular object.I tried the solution provided my our experts but couldn't got the results.Thats why i am putting this thread again.
      I want to find out the function modules used for the particular object, i.e. Production order.
       solution i tried is, first go to T.C SE37, then in function module field put the object name like Production order and enter, than it will show another screen, there also put object name in function module field and than press enter, it will show all the function modules available for that object.
        So could you guys help me out to find out where i am wrong in the process of finding out the function module for a particular object.
                           Plz don't bother abt the point.Helpful answers will definitely get awarded.
                                Thanking you guys for your valuable support till now and hoping to get in future too.

    Dear
    When the problem is solved please give points too. Otherwise why people will help others, give time and share their valuable knowledge. This will build up self confidence.
    If not solved and closing, then mention the difficulties what u exactly looking for. Simpy closing is not enough because who ever is providing solution will not able to know the real problem.
    How to give points I believe u already know that and need not explain.
    I had seen many times this problem with others too. Even if the problem is totally resolved they give 2 in stead of 10.
    Edited by: BNR on Sep 21, 2008 6:10 PM

  • Drop down values are missing while using the function module KCD_EXCEL_OLE_TO_INT_CONVERT

    Hi all,
    I am using the function module "KCD_EXCEL_OLE_TO_INT_CONVERT"  to upload the excel template to an internal table but i am not getting the complete excel data into the table the fields which contains the drop down list values those values are not coming in to the table.
    Is there any other function module which can read even the drop down list values? can any one please provide me the solution.
    Thanks in advance
    ** FYI...i am using the below code:
    * upload excel file to a generic table
       CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
         EXPORTING
           filename                = l_filename
           i_begin_col             = 1
           i_begin_row             = 1
           i_end_col               = 150
           i_end_row               = 65000
         TABLES
           intern                  = lt_intern
         EXCEPTIONS
           inconsistent_parameters = 1
           upload_ole              = 2
           OTHERS                  = 3.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
    Thanks,
    Koushik

    Hi all,
    I am using the function module "KCD_EXCEL_OLE_TO_INT_CONVERT"  to upload the excel template to an internal table but i am not getting the complete excel data into the table the fields which contains the drop down list values those values are not coming in to the table.
    Is there any other function module which can read even the drop down list values? can any one please provide me the solution.
    Thanks in advance
    ** FYI...i am using the below code:
    * upload excel file to a generic table
       CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
         EXPORTING
           filename                = l_filename
           i_begin_col             = 1
           i_begin_row             = 1
           i_end_col               = 150
           i_end_row               = 65000
         TABLES
           intern                  = lt_intern
         EXCEPTIONS
           inconsistent_parameters = 1
           upload_ole              = 2
           OTHERS                  = 3.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
    Thanks,
    Koushik

  • Dropdown values are missing while using the function module KCD_EXCEL_OLE_TO_INT_CONVERT

    Hi all,
    when i am trying to upload the excel template by using the function module " KCD_EXCEL_OLE_TO_INT_CONVERT" to an internal table some field values are missing.
    i am using the function module " KCD_EXCEL_OLE_TO_INT_CONVERT"  and i am uploading an excel template and downloading that excel data into an internal table but some field values are missing while uploading the excel template and i found that the field which contains the drop down list values those values are missing.
    And also when i am uploading the excel template by using the function module" KCD_EXCEL_OLE_TO_INT_CONVERT"  when i am coming out of this function module one pop up is coming. how can i avoid this popup, can any one please provide me the solution thanks in advance.
    FYI...it is showing the below popup screen ..
    Thanks,
    Koushik

    hi Feiyun,
    below is the code(highlighted in bold)and after coming out of the function module i am getting popup and also the drop down values are missing.
    DATA: ls_control         TYPE zsfi_fiupload_control,
             ls_header          TYPE zsfi_fiupload_header_v13,
             ls_item            TYPE zsfi_fiupload_item_v13,
             ls_trailer         TYPE zsfi_fiupload_control,
             l_line_count       LIKE zsfi_fiupload_control-rec_count,
             l_current_curr     TYPE kcde_cells-value,
             l_current_postdate TYPE kcde_cells-value,
             l_current_compcode TYPE kcde_cells-value,
             l_currentrow       TYPE kcde_cells-row,
             l_filename         LIKE rlgrap-filename.
       DATA: BEGIN OF lt_intern OCCURS 0.
               INCLUDE STRUCTURE  kcde_cells.
       DATA: END OF lt_intern.
       DATA: BEGIN OF lt_items OCCURS 0,
               a TYPE kcde_cells-value,
               b TYPE kcde_cells-value,
               c TYPE kcde_cells-value,
               d TYPE kcde_cells-value,
               e TYPE kcde_cells-value,
               f TYPE kcde_cells-value,
               g TYPE kcde_cells-value,
               h TYPE kcde_cells-value,
               i TYPE kcde_cells-value,
               j TYPE kcde_cells-value,
               k TYPE kcde_cells-value,
               l TYPE kcde_cells-value,
               m TYPE kcde_cells-value,
               n TYPE kcde_cells-value,
               o TYPE kcde_cells-value,
               p TYPE kcde_cells-value,
               q TYPE kcde_cells-value,
               r TYPE kcde_cells-value,
               s TYPE kcde_cells-value,
               t TYPE kcde_cells-value,
               u TYPE kcde_cells-value,
               v TYPE kcde_cells-value,
               w TYPE kcde_cells-value,
               x TYPE kcde_cells-value,
               y TYPE kcde_cells-value,
               z TYPE kcde_cells-value,
               aa TYPE kcde_cells-value,
               ab TYPE kcde_cells-value,
               ac TYPE kcde_cells-value,
               ad TYPE kcde_cells-value,
               ae TYPE kcde_cells-value,
               af TYPE kcde_cells-value,
               ag TYPE kcde_cells-value,
               ah TYPE kcde_cells-value,
               ai TYPE kcde_cells-value,
               AJ TYPE KCDE_CELLS-VALUE,
               AK TYPE KCDE_CELLS-VALUE,
               END OF lt_items.
       l_filename = p_flpath.
    * the file must be an xls file, not xlsx or comma seperated
       IF p_flpath NS '.xls' AND p_flpath NS '.XLS'.
         MESSAGE i261(zfi).
         g_error = 'X'.
         EXIT.
       ENDIF.
    * upload excel file to a generic table
       CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
         EXPORTING
           filename                = l_filename
           i_begin_col             = 1
           i_begin_row             = 1
           i_end_col               = 150
           i_end_row               = 65000
         TABLES
           intern                  = lt_intern
         EXCEPTIONS
           inconsistent_parameters = 1
           upload_ole              = 2
           OTHERS                  = 3.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
    * validate that the format is in the restatement format
    *  this is the only template to have the ledger group in cell G-2
    **  READ TABLE lt_intern WITH KEY row = '0002' col = '0007'.
    **  IF sy-subrc <> 0 OR lt_intern-value IS INITIAL.
    **    MESSAGE i260(zfi).
    **    g_error = 'X'.
    **    EXIT.
    **  ENDIF.
    * create control record values
       ls_control-rec_type = 'C'.
       ls_control-global_id = 'GLU-03000'.
       ls_control-local_id = ''.
       ls_control-rec_count = ''.
       CONCATENATE sy-datum sy-uzeit INTO ls_control-date.
       ls_control-version = '12'.
       ls_control-email = ''.
       ls_control-eor = 'X'.
       ls_trailer = ls_control.
    * open output file and add the control record
       OPEN DATASET p_unixfilename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
       TRANSFER ls_control TO p_unixfilename.
    * create header record values, will be transfered to file in the item loop
       ls_header-rec_type = 'H'.
       READ TABLE lt_intern WITH KEY row = '0017' col = '0003'.
       IF sy-subrc = 0.
         ls_header-header_txt = lt_intern-value.
       ENDIF.
       READ TABLE lt_intern WITH key row = '0020' col = '0002'.
       IF sy-subrc = 0.
         ls_header-comp_code = lt_intern-value.
       ENDIF.
    ************doc date
       READ TABLE lt_intern WITH KEY row = '0011' col = '0003'.
       IF sy-subrc = 0.
         ls_header-pstng_date = lt_intern-value.
       ENDIF.
    ************posting date
         ls_header-doc_date = sy-datum.
       READ TABLE lt_intern WITH KEY row = '0009' col = '0003'.
       IF sy-subrc = 0.
         ls_header-doc_type = lt_intern-value.
       ENDIF.
       READ TABLE lt_intern WITH KEY row = '0014' col = '0003'.
       IF sy-subrc = 0.
         ls_header-ref_doc_no = lt_intern-value.
       ENDIF.
    ************currency moved to line items
         READ TABLE lt_intern WITH KEY row = '0020' col = '0001'.
       IF sy-subrc = 0.
       ls_header-currency = lt_intern-value.
       ENDIF.
       ls_header-trans_date = ''.
       READ TABLE lt_intern WITH KEY row = '0010' col = '0003'.
       IF sy-subrc = 0.
         ls_header-period = lt_intern-value.
       ENDIF.
       READ TABLE lt_intern WITH KEY row = '0006' col = '0003'.
       IF sy-subrc = 0.
         ls_header-reason_rev = lt_intern-value.
       ENDIF.
       READ TABLE lt_intern WITH KEY row = '0007' col = '0003'.
       IF sy-subrc = 0.
         ls_header-rev_date = lt_intern-value.
       ENDIF.
    *  READ TABLE lt_intern WITH KEY row = '0002' col = '0007'.
    *  IF sy-subrc = 0.
         ls_header-ledger_grp = ''.
    *  ENDIF.
    *  READ TABLE lt_intern WITH KEY row = '0013' col = '0013'.
    *  IF sy-subrc = 0.
         ls_header-exch_rate = ''.
    *  ENDIF.
       READ TABLE lt_intern WITH KEY row = '0008' col = '0003'.
       IF sy-subrc = 0.
         ls_header-calc_tax = lt_intern-value.
       ENDIF.
       ls_header-eor = 'X'.
    * loop at the line items and append them to a table with multiple columns
       LOOP AT lt_intern WHERE row GE 20.
         IF l_currentrow <> lt_intern-row AND l_currentrow IS NOT INITIAL.
           APPEND lt_items.
           CLEAR lt_items.
         ENDIF.
         l_currentrow = lt_intern-row.
         CASE lt_intern-col.
           WHEN '0001'. lt_items-a = lt_intern-value.
           WHEN '0002'. lt_items-b = lt_intern-value.
           WHEN '0003'. lt_items-c = lt_intern-value.
           WHEN '0004'. lt_items-d = lt_intern-value.
           WHEN '0005'. lt_items-e = lt_intern-value.
           WHEN '0006'. lt_items-f = lt_intern-value.
           WHEN '0007'. lt_items-g = lt_intern-value.
           WHEN '0008'. lt_items-h = lt_intern-value.
           WHEN '0009'. lt_items-i = lt_intern-value.
           WHEN '0010'. lt_items-j = lt_intern-value.
           WHEN '0011'. lt_items-k = lt_intern-value.
           WHEN '0012'. lt_items-l = lt_intern-value.
           WHEN '0013'. lt_items-m = lt_intern-value.
           WHEN '0014'. lt_items-n = lt_intern-value.
           WHEN '0015'. lt_items-o = lt_intern-value.
           WHEN '0016'. lt_items-p = lt_intern-value.
           WHEN '0017'. lt_items-q = lt_intern-value.
           WHEN '0018'. lt_items-r = lt_intern-value.
           WHEN '0019'. lt_items-s = lt_intern-value.
           WHEN '0020'. lt_items-t = lt_intern-value.
           WHEN '0021'. lt_items-u = lt_intern-value.
           WHEN '0022'. lt_items-v = lt_intern-value.
           WHEN '0023'. lt_items-w = lt_intern-value.
           WHEN '0024'. lt_items-x = lt_intern-value.
           WHEN '0025'. lt_items-y = lt_intern-value.
           WHEN '0026'. lt_items-z = lt_intern-value.
           WHEN '0027'. lt_items-aa = lt_intern-value.
           WHEN '0028'. lt_items-ab = lt_intern-value.
           WHEN '0029'. lt_items-ac = lt_intern-value.
           WHEN '0030'. lt_items-ad = lt_intern-value.
           WHEN '0031'. lt_items-ae = lt_intern-value.
           WHEN '0032'. lt_items-af = lt_intern-value.
           WHEN '0033'. lt_items-ag = lt_intern-value.
           WHEN '0034'. lt_items-ah = lt_intern-value.
           WHEN '0035'. lt_items-ai = lt_intern-value.
           when '0036'. lt_items-aj = lt_intern-value.
           when '0037'. lt_items-ak = lt_intern-value.
         ENDCASE.
       ENDLOOP.
       APPEND lt_items.
    * sort rows by the post date, comp code, curr.
    *  SORT lt_items BY ah a ai.
    * loop at the items, creating a header record if the comp code, curr. or post date changes
       LOOP AT lt_items.
         ls_item-rec_type = 'I'.
         ls_item-post_key = lt_items-c.   "lt_items-b.
         IF lt_items-c GE '20' AND lt_items-c LE '39'.
           ls_item-vendor_no = lt_items-d.
         ELSEIF lt_items-c GE '0' AND lt_items-c LE '19'.
           ls_item-customer = lt_items-d.
         ELSEIF lt_items-c EQ '70' AND lt_items-c EQ '75'.
           ls_item-asset = lt_items-d.
         ELSE.
           ls_item-gl_account = lt_items-d.
         ENDIF.
         ls_item-asset_type = lt_items-m. "lt_items-l.
         ls_item-trans_type = lt_items-n. "lt_items-m.
         ls_item-print_flag = ''.
         ls_item-item_text = lt_items-j. "lt_items-i.
         ls_item-comp_code = lt_items-b. "lt_items-a.
         ls_item-bus_area = ''.
         ls_item-alloc_nmbr = lt_items-l. "lt_items-k.
         ls_item-tax_code = lt_items-q. "lt_items-p.
         ls_item-taxjurcode = lt_items-r. "lt_items-q.
         ls_item-profit_ctr = lt_items-g. "lt_items-f.
         ls_item-costcenter = lt_items-h. "lt_items-g.
         ls_item-orderid = lt_items-ac. "lt_items-ab.
         ls_item-wbs = lt_items-i. "lt_items-h.
         ls_item-trade_id = lt_items-o. "lt_items-n.
         ls_item-part_prctr = lt_items-p. "lt_items-o.
         ls_item-material = lt_items-t. "lt_items-s.
         ls_item-salesorg = lt_items-aa. "lt_items-z.
         ls_item-distr_chan = lt_items-ab. "lt_items-aa.
         ls_item-pmnttrms = ''.
         ls_item-pmtmthd = ''.
         ls_item-pmtmthsupl = ''.
         ls_item-alt_payee = ''.
         REPLACE ALL OCCURRENCES OF '(' IN lt_items-e WITH ''.
         REPLACE ALL OCCURRENCES OF ')' IN lt_items-e WITH ''.
         ls_item-amt_doccur = lt_items-e. "lt_items-d
         REPLACE ALL OCCURRENCES OF '(' IN lt_items-f WITH ''.
         REPLACE ALL OCCURRENCES OF ')' IN lt_items-f WITH ''.
         ls_item-loc_amt = lt_items-f. "lt_items-e
         ls_item-loc  = lt_items-k. "lt_items-j.
         ls_item-sas_revtype = lt_items-s. "lt_items-r.
         ls_item-rev_type = lt_items-u. "lt_items-t.
         ls_item-rev_chnl = lt_items-v. "lt_items-u.
         ls_item-bill_to = lt_items-x. "lt_items-w.
         ls_item-payer = lt_items-z. "lt_items-y.
         ls_item-ship_to = lt_items-y.
         ls_item-tax_amnt = lt_items-x.
         ls_item-func_area = ''.
         ls_item-expend_date = lt_items-ae. "lt_items-ad.
         ls_item-wtax_code = lt_items-af. "lt_items-ae.
         ls_item-wtax_base = lt_items-ag. "lt_items-af.
         ls_item-wtax_amount = lt_items-ah. "lt_items-ag.
         ls_item-payment_block = ''.
         ls_item-grp_amt = ''.
         ls_item-anc_amt = ''.
         ls_item-permit_payee = ''.
         ls_item-value_date = ''.
         ls_item-pernr   = ''.
         ls_item-legacy1 = ''.
         ls_item-legacy2 = ''.
         ls_item-legacy3 = ''.
         ls_item-legacy4 = ''.
         ls_item-legacy5 = ''.
         ls_item-legacy6 = ''.
         ls_item-legacy7 = ''.
         ls_item-legacy8 = ''.
         ls_item-legacy9 = ''.
         ls_item-legacy10 = ''.
         ls_item-eor = 'X'.
         TRANSLATE lt_items-ai TO UPPER CASE.
         TRANSLATE lt_items-b TO UPPER CASE.
         TRANSLATE lt_items-a TO UPPER CASE.
         TRANSLATE lt_items-aj TO UPPER CASE.
         IF l_current_curr <> lt_items-a "lt_items-ai
           OR l_current_postdate <> ls_header-pstng_date "lt_items-aj
           OR l_current_compcode <> lt_items-b.
           l_current_curr = lt_items-a.
           l_current_postdate = ls_header-pstng_date. "lt_items-aj.
           l_current_compcode = lt_items-b.
           ls_header-comp_code = l_current_compcode.
           ls_header-currency = l_current_curr.
           ls_header-pstng_date = l_current_postdate.
           ls_header-doc_date = l_current_postdate.
           TRANSFER ls_header TO p_unixfilename.
           l_line_count = l_line_count + 1.
         ENDIF.
         TRANSFER ls_item TO p_unixfilename.
         l_line_count = l_line_count + 1.
       ENDLOOP.
       ls_trailer-rec_type = 'T'.
       ls_trailer-rec_count = l_line_count.
       TRANSFER ls_trailer TO p_unixfilename.
       CLOSE DATASET p_unixfilename.
    * change the format to fixed format for the remainder of the load program
       p_fixed = 'X'.
       p_rstmnt = ''.
    Thanks,
    Koushik

  • Getting error in the function module

    Hi everybody.
    I have created one function module in se37 and i am calling that function module in the se38 report, when i am executing the report it is throwing me an error.
    here in my report i am having the select option fields ex matnr, in the function module importing i have given the parameter matnr over there and when i am running the report it is through an error that 
    "The function module interface allows you to specify only 
    fields of a particular type under "MATNR".               
    The field "S_MATNR" specified here is a different        
    field type                                                "
    IF i am giving the parameter instead of select-options in the report and executing, then the function module is getting triggered and receiving the data what ever the code is available in the source code.
    can anyone help me out in this issue so that i can get the data while using the select-option instead of parameter.
    Thanks in advance

    Hi,
    Actually, I wouldn't recommend the use of that tables parameter...
    From sap help:
    Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
    Exceptions
    So i definitely would go with either importing or changing parameter...
    Cheers,
    m.

  • Error while using the function module GUI_UPLOAD

    Hi,
    My requirement is to upload the data from .txt file into internal table.
    I have given my code like this
    PARAMETERS: p_fname LIKE rlgrap-filename.
    data: begin of gt_string occurs 0,
           record type char255,
          end of gt_string.
    AT SELECTION-SCREEN ON VALUE-REQUEST for p_fname.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
        PROGRAM_NAME        = SYST-REPID
        DYNPRO_NUMBER       = SYST-DYNNR
        FIELD_NAME          = ' '
         STATIC              = 'X'
        MASK                = ' '
        CHANGING
          file_name           = p_fname
       EXCEPTIONS
         MASK_TOO_LONG       = 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.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = p_fname
         FILETYPE                      = 'ASC'
         HAS_FIELD_SEPARATOR           = 'X'
         HEADER_LENGTH                 = 0
        READ_BY_LINE                  = 'X'
        DAT_MODE                      = ' '
        CODEPAGE                      = ' '
        IGNORE_CERR                   = ABAP_TRUE
        REPLACEMENT                   = '#'
        CHECK_BOM                     = ' '
        NO_AUTH_CHECK                 = ' '
      IMPORTING
        FILELENGTH                    =
        HEADER                        =
        tables
          data_tab                      = gt_string
       EXCEPTIONS
         FILE_OPEN_ERROR               = 1
         FILE_READ_ERROR               = 2
         NO_BATCH                      = 3
         GUI_REFUSE_FILETRANSFER       = 4
         INVALID_TYPE                  = 5
         NO_AUTHORITY                  = 6
         UNKNOWN_ERROR                 = 7
         BAD_DATA_FORMAT               = 8
         HEADER_NOT_ALLOWED            = 9
         SEPARATOR_NOT_ALLOWED         = 10
         HEADER_TOO_LONG               = 11
         UNKNOWN_DP_ERROR              = 12
         ACCESS_DENIED                 = 13
         DP_OUT_OF_MEMORY              = 14
         DISK_FULL                     = 15
         DP_TIMEOUT                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Here I am getting dump error as 'Type conflict when calling a function module.
    The function module interface allows you to specify only fields
    of a particular type under "FILENAME". The field "P_FNAME" specified here has a different field type'.
    What would be the reason for this error?
    Can anyone help me?
    Regards,
    Hema

    see this sample program for F4 help
    *& Report  ZSD_EXCEL_INT_APP
    REPORT  ZSD_EXCEL_INT_APP.
    parameter: file_nm type localfile.
    types : begin of it_tab1,
            f1(20),
            f2(40),
            f3(20),
           end of it_tab1.
    data : it_tab type table of ALSMEX_TABLINE with header line,
           file type rlgrap-filename.
    data : it_tab2 type it_tab1 occurs 1,
           wa_tab2 type it_tab1,
           w_message(100)  TYPE c.
    at selection-screen on value-request for file_nm.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
      PROGRAM_NAME        = SYST-REPID
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
       STATIC              = 'X'
      MASK                = ' '
      CHANGING
       file_name           = file_nm
    EXCEPTIONS
       MASK_TOO_LONG       = 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.
    start-of-selection.
    refresh it_tab2[].clear wa_tab2.
    file = file_nm.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        filename                      = file
        i_begin_col                   = '1'
        i_begin_row                   =  '1'
        i_end_col                     = '10'
        i_end_row                     = '35'
      tables
        intern                        = it_tab
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 2
       OTHERS                        = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop at it_tab.
      case it_tab-col.
       when '002'.
        wa_tab2-f1 = it_tab-value.
       when '004'.
        wa_tab2-f2 = it_tab-value.
      when '008'.
        wa_tab2-f3 = it_tab-value.
    endcase.
    at end of row.
      append wa_tab2 to it_tab2.
    clear wa_tab2.
      endat.
    endloop.
    data : p_file TYPE  rlgrap-filename value 'TEST3.txt'.
    OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    *--- Display error messages if any.
      IF sy-subrc NE 0.
        MESSAGE e001(zsd_mes).
        EXIT.
      ELSE.
    *---Data is downloaded to the application server file path
        LOOP AT it_tab2 INTO wa_tab2.
          TRANSFER wa_tab2 TO p_file.
        ENDLOOP.
      ENDIF.
    *--Close the Application server file (Mandatory).
      CLOSE DATASET p_file.
    loop at it_tab2 into wa_tab2.
      write : / wa_tab2-f1,wa_tab2-f2,wa_tab2-f3.
    endloop.

  • 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

Maybe you are looking for

  • Snow Leopard Time machine migration to Lion problem?

    I have a time machine backup of a mac with snow leopard that I made back in June. I want to put it on my new mac with Lion but it won't have this update - http://www.cultofmac.com/105225/if-you-want-to-migrate-from-snow-leopard-to-lion -tomorrow-you-

  • How to backup outlook 2010 email account?

    i have to format the computer and i have many accounts. thxs in advance

  • Symbol Button Listener Issues

    i guess i don't understand how to use Symbol Buttons (I think that is the proper name for them) and listeners? I am trying to add a listener to a Symbol Button and i cannot make it work at all using addEventListener or addListener. However if i drag

  • Unresponsive USB 3.0 and USB Ports

    Hello, Hp, Recently I purchased a brand new USB 3.0 adapter for my front panel of my desktop computer, but also recently I noticed that one of my 2 USB 3.0 ports is faulty as it supplies power but can not operate devices. A couple days ago I also los

  • Pdfview.js render blurry

    I am running the lastest ff build 28. When I view the pdf with pdfview.js, the font is rendered blurry. However, after I zoom in the pdf, the font will be rendered clearly. I wonder is it possible to let the pdfview.js render the fonts clearly in the