Modify import parameter of FM

I have a FM called during an SAP event. here, under a certain condition, i need to replace the old value of an import parameter.
Can any one suggest some means to change the import parameter values of the FM.

Hi Arindam,
If you are using classes method in function module, yes u can do this. But you must use the field symbols.
this is a sample..
it_condition is import param.
method set_new_values.
   data : ls_diffcond  type ztrm_s_vtbfinko_type,
          ls_condition type vtbefinko.
   data : lv_text type string.
   field-symbols : <fs_text> type any,
                   <fs_text2> type any,
                   <fs_condition> type vtbefinko.
   loop at gt_diffcond into ls_diffcond.
     if ls_diffcond-cond_type eq '+'.
       move-corresponding ls_diffcond to ls_condition.
       append ls_condition to it_condition.
     elseif ls_diffcond-cond_type eq '-'.
       move-corresponding ls_diffcond to ls_condition.
       delete it_condition from ls_condition.
     elseif ls_diffcond-cond_type eq 'C'.
       move-corresponding ls_diffcond to ls_condition.
       loop at it_condition assigning <fs_condition>
         where rkond    eq ls_condition-rkond and
               dguel_kp eq ls_condition-dguel_kp..
         concatenate '<fs_condition>-' ls_diffcond-field_name into lv_text.
         assign (lv_text) to <fs_text>.
         concatenate 'ls_condition-' ls_diffcond-field_name into lv_text.
         assign (lv_text) to <fs_text2>.
         if <fs_text> is assigned.
           <fs_text> = <fs_text2>.
         endif.
         exit.
       endloop.
     endif.
   endloop.
endmethod.

Similar Messages

  • New import parameter ATPCHECK to be added in func module - IMPACT?

    Hi !
    We are in the Realization phase of implementing SAP CRM, and also undercone a ECC 6.0 migration 3 months back. We are faced with the foll problem....
    Whenever a reservation is to be created from the CRM system a functional module u2018'CRM_SRV_LOG_PROCESS_RSRV' is called in the ERP system. Within this functional module, another functional module u2018MB_RESERVATION_CREATE_INTERNALu2019 is called. It is this functional module which actually creates a reservation and performs ATP check.
    In the ECC system a new import parameter ATPCHECK has been added in u2018MB_RESERVATION_CREATE_INTERNALu2019 functional module and this is not filled whereas in R/3 this parameter does not exist at all.
    This parameter needs to hold a value X for ATP to happen in THE ECC system.
    It is proposed to fix this problem by adding the parameter ATPCHECK with value X in the functional module 'CRM_SRV_LOG_PROCESS_RSRV' when 'MB_RESERVATION_CREATE_INTERNALu2019 is called.
    We have not modified any function modules so far, hence would like to know...
    1. Whether the proposed solution is correct?
    2. What would be the imact (things to watch out for) while carrying out changes in the function module?
    Would be grateful to get a reply.
    Thanks & Regards,
    Ajeetha.

    Hello
    I have referred to the systems ECC 6.0 and SAP 4.7. In SAP 4.7, function module MB_RESERVATION_CREATE_INTERNAL never had ATP check inbuilt. See below:
    ***************Start if Snap from 4.7*********************
    FUNCTION mb_reservation_create_internal.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     REFERENCE(I_RKPF) LIKE  RKPF STRUCTURE  RKPF
    *"     REFERENCE(TESTRUN) TYPE  BAPI2093_TEST OPTIONAL
    *"  EXPORTING
    *"     REFERENCE(RESERVATION) TYPE  BAPI2093_RES_KEY-RESERV_NO
    *"  TABLES
    *"      IT_RESB STRUCTURE  RESB
    *"      PROFITABILITYSEGMENT STRUCTURE  BAPI_PROFITABILITY_SEGMENT
    *"      RETURN STRUCTURE  BAPIRET2
    comments:
    - no availibility check*
    - no field selection*
    - no calender check*
    ***************End of Snap from 4.7*********************
    This is additional functionality provided in ECC 6.0 by giving additional parameters:
    ***************Start if Snap from ECC6*********************
    FUNCTION MB_RESERVATION_CREATE_INTERNAL.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     REFERENCE(I_RKPF) LIKE  RKPF STRUCTURE  RKPF
    *"     REFERENCE(TESTRUN) TYPE  BAPI2093_TEST OPTIONAL
    *"     REFERENCE(ATPCHECK) TYPE  BAPI2093_ATPCHECK OPTIONAL
    *"     REFERENCE(CALCHECK) TYPE  BAPI2093_CALCHECK OPTIONAL
    *"     REFERENCE(RESERVATION_EXTERNAL) TYPE  BAPI2093_RES_KEY-RESERV_NO
    *"       OPTIONAL
    *"  EXPORTING
    *"     REFERENCE(RESERVATION) TYPE  BAPI2093_RES_KEY-RESERV_NO
    *"  TABLES
    *"      IT_RESB STRUCTURE  RESB
    *"      PROFITABILITYSEGMENT STRUCTURE  BAPI_PROFITABILITY_SEGMENT
    *"      RETURN STRUCTURE  BAPIRET2
    ***************End of Snap from ECC6*********************
    So, I think there should not be any change which need to be made to these function modules.
    Thanks
    Amol Lohade

  • Problem in passing import parameter to SAP Widget

    Dear experts,
    I have a widget which shows me important information by passing date as a parameter
    on eclipse plugin.
    I am able to see data only if i give date as YYYYMMDD as standard SAP format.
    I want to pass sysdate in this way ,what should i write.
    Controller.showMain_View({"INPUT_DATE":               });
    If input_Date is import parameter then how should i pass the value. ?
    Thanx in advance.

    hi,
    First check whether you have any predefined functions in the widget library..else create a java script and call it in your widget...
    you can use this  Java script code and modify the output according to your usage using string functions:
    use date function to get the system date...
    also include the js file in your .kon file...
    thanks
    jaideep srinivasan

  • Using Field-Symbols in a user exit to change the importing parameter

    Please don't ask why but I need to use a user exit, changing the importing parameter.  I decided that I could do this using field-symbols.
    Please excuse my ignorance but I have never used field symbols for something such as this.
    Here is my goal:  Loop through an internal table (im_document-item).  When I find what I need I want to make a change to this line (not so hard if I am looping into a field symbol) and also append a line to the end of the table im_document-item.
    I have the following so far:
      DATA: wa_item TYPE accit,
            wa_item_out type ACCIT_SUB.
    FIELD-SYMBOLS: <document> type acc_document,
                   <accit> TYPE ACCIT.
    LOOP AT im_document-item ASSIGNING <accit> where saknr = '0000211000'.
    * Modify the curent line
    wa_item = <accit>
    * Append a new line into table im_document-item.
    ENDLOOP.
    How can I use field-symbols to append a line to this table?  Please note that the table in question (im_document-item) is an importing only parameter.
    Regards,
    Davis

    that will allow me to append an initial line with <accit> pointing to the line. Therefore I just have to modify <accit> and the new line will then have my changes?
    Yep, that is exactly it.    So after the APPEND statement, simply fill the fields of the <accit>.
    append initial line to im_document-item ASSIGNING <accit>.
    <accit>-field1 = 'Blah'.
    <accit>-field2 = 'Blah'.
    Regards,
    Rich Heilman

  • Modification to import parameter

    Hi All ,
    Can anyone tell me ,is it possible to modify and thus alter the record coming in the exit as import parameter in a function module exit.The modification is thus written under source code in the same function module exit.The records in the import parameter is coming as values not optional.
    Warm regards,
    Thank you,
    Sudipta

    Hi Sudipta,
    No it is not possible. That value will not passed back to calling program.
    Regards,
    Atish

  • How to use import parameter to be instead of SQL where sub-sentence ?

    I wrote a RFC to read data from SAP table. To fetch data flexibility, I want to use import parameter xx instead of where sub-sentence in SQL sentence.
       For example, "SELECT * FROM T WHERE XXX",  and "XXX" is a importing parameter.
       How can I use it.
       Thanks a lot.
       Frank.

    FUNCTION ZRFC_04.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(TARGETTABLE) LIKE  MAKT-MAKTX
    *"     VALUE(TWHERE) LIKE  MAKT-MAKTX
    *"  EXPORTING
    *"     VALUE(ZRETURN) LIKE  MAKT-MAKTX
    *"  TABLES
    *"      TMP_TEST1 STRUCTURE  ZTEST1
      DATA:
      TRANSACTION_ID LIKE ARFCTID,
      V_VAILD(1) TYPE C,
      scond(80) TYPE c.
      V_VAILD = 'X'.
    GET PARAMETER twhere fields scond.
    The error " 'LATE FIELDS' expected, not 'TWHERE FIELDS' " generated.

  • How to put data into a RFC import parameter structure from portal

    Hi, All,
    I have a RFC in which an import parameter is a structure (not a table). I want to put data into that structure. I know how to put data into a table or a string. I tried to use
    IRecordSet MyTABStr = (IRecordSet)structureFactory.getStructure(function.getParameter("MYTABSTR").getStructure());
    MyTABStr.setString("FIELD1", value1);
    MyTABStr.setString("FIELD2", value2);
    importParams.put("MYTABSTR",MyTABStr);
    But it works for table not structure.  Is there anybody know how to do that?
    Thanks in advance!
    Meiying

    Hi,
    You can try the following code -
    IRecord structure = (IRecord)structureFactory.getStructure(function.getParameter("MYTABSTR").getStructure());
    structure.setString("FIELD1", value1);
    structure.setString("FIELD2", value2);
    importParams.put("MYTABSTR",structure);
    Regards,
    Sudip

  • Assigning a timestamp to an Import Parameter in eCATT

    I am trying to assign a value to an Import parameter that will be unique every time the eCATT script runs.  I have inserted a piece of Inline ABAP code that looks like this:
    ABAP.
       DATA: BEGIN of wa,
          time_stamp TYPE P,
       END OF wa.
       GET TIME STAMP FIELD wa-time_stamp.
       I_DATETIME = wa-time_stamp.
    END ABAP.
    This only assigns a time stamp to I_DATETIME is the parameter is type V.  Unfortunately, the script produces an error unless I_DATETIME is type I, however the Inline ABAP produces a syntax error when I_DATETIME is type I. 
    For example, when I_DATETIME is type V I see in my
    LOG I_DATETIME statement that the value 20050518200719 or something similar has been assigned to that parameter.  However, in the SAPGUI command interface where I deleted the original number value and replaced it with parameter I_DATETIME it reads: Value = I_DATETIME = '
    Why can't I use parameters of type I and V interchangeably in the script and Inline ABAP?  Is there an easier way to go about getting a time stamp or unique value for an Import Parameter?
    Message was edited by: Ben Weisberg

    Ben,
    there are two issues here:
    <b>Parameter visibility in inline ABAP</b>
    In inline ABAP, <b>only</b> local variables (visibilty V) can be used. The reason for this was to minimize the amount of data that has to be transferred to the target system of the script when the inline ABAP is generated.
    <b>Avoiding inline ABAP where possible</b>
    You said yourself that you suspect your approach is inefficient. I always tell people that inline ABAP can be fun, using the eCATT script language is better
    You can generate yourself a timestamp in eCATT like this:
    First, declare a parameter with type C. Since you are going to fill it in the script, there is no need for it to be an importing parameter - local variable (V) will do - let's call it V_TIMESTAMP.
    Fill the field using <b>either</b>
    V_TIMESTAMP = &DATE & &TIME
    <b>or</b>
    V_TIMESTAMP = sy-datum & sy-uzeit
    <i>What's the difference?</i>
    If you use the eCATT variables &DATE and &TIME, you will always get the date and time of the <b>current target system</b>. If you use the ABAP system fields sy-datum and sy-uzeit, you will always get the date and time of the <b>local eCATT system</b>. Obviously, if you are working locally in a system, these two sets of values will be the same. However, if you start working remotely - possibly against app servers in different time zones - you will have to decide which you want to use.

  • Import Parameter as Select Option for a FM in ECC 6.0

    Hi All,
    Can someone help me get the import parameter of a function module to be of the type select-options( the way it is used in reports) in ECC 6.0.
    Thanks for all your help in advance.
    Divya

    What I do is as following....
    I create two parameters...One for <b>START</b> and the other for <b>END</b>....Then, inside my FM I create a RANGE...
      DATA: BEGIN OF r_datum OCCURS 1,
            sign(1),
            option(2),
            low  TYPE vekp-vhilm,
            high TYPE vekp-vhilm,
            END OF r_datum.
    Passing the START to low and END to high....
    P.S: Don't forget to assign points to useful answers.
    Greetings,
    Blag.
    Message was edited by:
            Alvaro Tejada Galindo

  • JCA: how to find out that import parameter is structure?

    Hello,
    I'm using JCA to obtain import parameter of some function (com.sapportals.connector.metadata.functions.IParameter). Now, I'd like to switch program flow depend on kind of this import parameter (scalar, structure, table). Especially, I'm interested in finding out that import parameter is structure. In API I was only locate getStructure() method in IParameter. I tried to compare with null value, but it didn't solve my problem.
    Best Regards,
    Josef Motl

    I have come along this post so many times that now that I have solved it myself I will have to reply to it, even after 5 years.
    MappedRecord output = (MappedRecord) ix.execute(ixspec, input);
    //Now we want to read the output.
    //If we deal with a structure, we get an IRecord Object
    IRecord addressStructure = (IRecord) output.get("ADDRESS");
    //Otherwise we would get an IRecordSet Object (Field)
    I hope it will help all those searching as well.
    BR
    Sigi

  • What are the import parameter for FM SWE_EVENT_CREATE

    Hello all,
    I want to use the function module SWE_EVENT_CREATE in order to create an event in order to execute a process chain which is triggered by this event.
    Beside the EVENT I have also OBJTYPE and OBJKEY as import parameter, but I do not know what should I enter there.
    In the TA sm64 where I have created the event, I could not find any other information than the event name.
    Any ideas would be great.
    Best regards,
    Stefan from Munich/Germany

    Hello Stefan,
    for OBJTYPE and EVENT see table SWETYPECOU
    OBJKEY usually is an idoc-number (edidc-docnum)
    hope it will help
    Regards Thomas

  • 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

  • Field symbol as import parameter in class method ???

    Hi everyone,
    is it possible to pass a field symbol as an import parameter to a method in a class? If yes, how do I define the data type of the import parameter? I'm trying to work with field symbols as the program doesn't know what kind of structure the program parameter p_srcdso has. Coding example would be something like this:
    PARAMETERS: p_srcdso TYPE rsdodsobject DEFAULT '/BIC/AKVI0001'.
    DATA: lr_srcpkg TYPE REF TO data.
    FIELD-SYMBOLS: <fs_table> TYPE ANY TABLE.
    CREATE DATA lr_srcpkg TYPE TABLE OF (p_srcdso).
    ASSIGN lr_srcpkg->* TO <fs_table>.
    SELECT *
    FROM (p_srcdso)
    INTO TABLE <fs_table>.
    CALL METHOD cl_ref->create_somethign
    EXPORTING
        i_source_package = <fs_table>.
    Thanks,
    Alex

    Halo Alexander,
    You can use TYPE REF TO DATA( say the parameter name is i_data) as the importing parameter of the method create_somethign and inside the method you need to dereference it using data reference variable again.
    data: dref type ref to data.
    field-symbols: <fs_table> type table.
    create data dref like i_data.
    assign dref->* to <fs_table>.
    Regards
    Arshad

  • Import parameter is empty after an RFC call from BW to JCo

    I am calling a Java function (implemented using JCO and deployed on J2EE stack of the Portal box) from within a user-exit in BW (on a separate box) using RFC. The code in BW looks like:
    CALL FUNCTION 'Z_BW_VALIDATE_PROXY' DESTINATION 'ACF2PROXY'
        EXPORTING
            IREQUESTOR = 'AE012345'
            IREQUESTED = '012345'
        IMPORTING
            ERESULT = lv_result
        EXCEPTIONS
            SYSTEM_FAILURE = 1 message lv_rfc_mess
            COMMUNICATION_FAILURE = 2 message lv_rfc_mess.
    The following are working/setup correctly:
    1. RFC destination ACF2PROXY, in BW using transaction SM59;
    2. Java function 'Z_BW_VALIDATE_PROXY' , as the server log on the Portal(J2EE) shows the correct IMPORT and EXPORT parameters after processing a call from BW;
    The data types of the parameters in the function call above matches with those of the formal parameters in Java function where they are defined using JCO data types (export parameter is defined at CHAR 1 at both places).
    The problem is that I am not getting any value back in the IMPORT parameter 'lv_result'. I am expecting either '0' or '1' which is populated correctly in the Java function.
    Any insight is appreciated.

    The following is the code of the method in the class that inherits from JCO.Server. In this method the export parameter ERESULT is set with the value of variable 'result'. I thought it may be helpful to reporduce it here.
    protected void handleRequest(JCO.Function function) throws MMException
              if (function == null) {
                  LOGGER.logInfo("handleRequest - JCO.Function object is null.");
                   return;
              LOGGER.logDebug("handleRequest(" + function.getName() + ")");
              //process this function only, although I don't know what else would fall to this
              //server request method...
              if (function.getName().equalsIgnoreCase(ACF2Listener.ABAP_RFC_PROXY_FUNCTION)) {
                   //get input & output definitions from RFC. These are defined in the repository interface definition
                   JCO.ParameterList input = function.getImportParameterList();
                  JCO.ParameterList output = function.getExportParameterList();
                  LOGGER.logDebug("Received the following from ABAP: " + input.toString());
                  String requestor = input.getString("IREQUESTOR");
                  String requested = input.getString("IREQUESTED");
                  //call DAO to read ACF2 for these values
                  String result = null;
                  try {
                       ACF2DAO acf2 = ACF2DAO.getInstance();
                       if (acf2 != null) {
                            result = acf2.getACF2Delegation(requestor,requested);
                  catch (MMException e) {
                      LOGGER.logError("Exception occured during ACF2 DAO lookup: " + e.getMessage());
                      throw e;
                 output.setValue(result, "ERESULT");
                 LOGGER.logDebug("ACF2 Service Call returning: " + output.toString());
              else {
                   throw new JCO.AbapException("NOT_SUPPORTED","This service is not implemented by the ACF2 Proxy external server.");
    Thanks
    Sanjeev

  • How to pass import parameter it_header_guid to FM CRM_ORDER_READ

    Hi,
    I have an internal table with only one field GUID of type CRMT_OBJECT_GUID.
    Now I need to pass this into the import parameter of the FM CRM_ORDER_READ.
    I tried in many ways but getting a type conflict error.
    <removed_by_moderator>
    Thanks,
    Madhurima
    Edited by: Julius Bussche on Sep 15, 2008 12:49 PM

    Hi Madhurima,
    Post CRM Technical or Functional related queries in "Customer Relationship Management (CRM) - General & Framework" available under SAP Solutions in Expert Forums.
    And regarding your question,
    Your guid should be of  "CRMT_OBJECT_GUID_TAB" type and not CRMT_OBJECT_GUID.
    Eg,
    DATA : IT_GUID TYPE CRMT_OBJECT_GUID_TAB.
    APPEND '488628CFB8C600B0E1008000C0090137' TO IT_GUID.
    CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          IT_HEADER_GUID       = IT_GUID
    Hope this helps.
    Thanks.
    Best Regards,
    Arun Sankar.

Maybe you are looking for