Determining How a Function Module Was Called

I have an RFC-enabled function module which can be invoked from outside of SAP, via an RFC from the JCo, for example, or it can be invoked from another SAP program or function module. I want the RFC-enabled function module to process certain things differently if called from the RFC than if it were called from another program or function module within SAP. Is there an easy way to do, e.g. using something in SYST? Thanks.
Kevin

When you make an RFC connection there is a user information passed you can check the terminal that the call is made from but if it's easy or not depends on how the terminals (PC's) in your company are defined.
Check the ABAP forum for more!

Similar Messages

  • How to capture errors when a Function module is called as BACKGROUND TASK

    How to capture errors when a Function module is called as BACKGROUND TASK?.Please advise.
    FUNCTION ZRPM_DELETE_PROJECT_DATA_API.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(IV_EXTERNAL_ID) TYPE  RPM_TV_EXTID OPTIONAL
    *"     VALUE(IV_PROJECT_GUID) TYPE  RPM_TV_GUID OPTIONAL
    *"     VALUE(FLAG) TYPE  BOOLEAN OPTIONAL
    *"  EXPORTING
    *"     VALUE(EV_RC) TYPE  I
    *"     VALUE(EV_MSG) TYPE  STRING
    *"     VALUE(ET_MSG) TYPE  RPM_TT_MESSAGES
      IF flag = cl_rpm_co=>sc_true.
        Call function 'RPM_DELETE_PROJECT_DATA' IN BACKGROUND TASK
          EXPORTING
            IV_EXTERNAL_ID  = IV_EXTERNAL_ID
            IV_PROJECT_GUID = IV_PROJECT_GUID
          IMPORTING
            EV_RC           = EV_RC
            EV_MSG          = EV_RC
            ET_MSG          = ET_MSG.
        COMMIT WORK.
      ELSE.
        CALL FUNCTION 'RPM_DELETE_PROJECT_DATA'
          EXPORTING
            IV_EXTERNAL_ID  = IV_EXTERNAL_ID
            IV_PROJECT_GUID = IV_PROJECT_GUID
          IMPORTING
            EV_RC           = EV_RC
            EV_MSG          = EV_MSG
            ET_MSG          = ET_MSG.
      ENDIF.
    ENDFUNCTION.
    In above code how to capture 'EV_RC' when FM is called as background task.

    Prakash,
    CALL FUNCTION IN BACKGROUND TASK allows no IMPORTING parameters, so that your code will produce a syntax error.
    The calling program can only handle errors of remote function calls (RFC) if these are either
    - synchronous RFC  (that is CALL FUNCTION ... DESTINATION ...) or
    - asynchronous RFC (that is CALL FUNCTION STARTING NEW TASK ... DESTINATION ...).
    Both synchronous and asynchronous RFC allow the capturing of errors by means of exceptions. But that is a different topic.

  • Status : 51- Incorrect function module IDOC_INPUT_MATMAS01 called up

    Hello,
    File - IDOC
    in MONI, checkered flag is shown up and when I go the R3 server, WE05, I get error message
    Status : 51
    Incorrect function module IDOC_INPUT_MATMAS01 called up
    I am using MATMAS04 without extension and updated the same in WE57. also checked in WE42 (MATM)
    now, how do I proceed furthur related the above error message?
    Regards,
    Nikhil.

    can very much
    check your partner profiles PROPERLY. If u have the same IDoc type in 2 different partner profiles, check the 2nd one for it's process code. Isn't it the one, which is called after your Idoc is received? Processing code in partner profile is not based only on Idoc Type, but also on Message Type, Message Code and Extension. If the 2nd profile contains the process code, which is called, then check your incoming idoc for header values. May be this is causing your problem.
    Peter

  • Error while determining the form function module

    Hi everyone,
    We are experiencing problems while displaying one adobe form in ESS. It’s the Travel Expense form (PTRV_EXPENSE_FORM). When pressing the button to “Display/Print” the form we get an error message: "Error while determining the form function module", and no form I shown. The ADS server is configured correctly and there are other forms that are actually working, for example the Travel Request form. We are running WAS 7.0 with SP12.
    Anyone has an idea what can cause the problem? Any help is greatly appreciated.
    Thanks in advance!
    Regards,
    Sophie

    Viktor,
    Thank you for your answer, it solved our problem!
    Regards,
    Sophie

  • Function module was assigned to 4tmp package

    Hello all,
    I have created XML-DataSource with SOAP Connection in our BW development system.
    In this regard the system created a function module to receive data via XI. This function modul was assigned to the package $tmp and it is not possible to transport this FM into production system.
    When I try to re-assign the package to our designated develop package an error message appears, which says I have to use a package which starts with /BI0/.
    Any idea how can I transport this function module. That would be great.
    Thanks upfront and Best regards,
    Stefanos from Munich/Germany

    hi Stefanos,
    try to transport the datasource/infosource to target system and check if the function module is generated there.
    hope this helps.

  • Travel Display Form: Error while determining the form function module

    Hi,
    In Travel Reqeust (ECC6/ESS) when i click the Display Form after raising the Travel Request it shows the error
    "Error while determining the form function module"
    Can anyone have idea on this?
    Regards,
    Boobalan

    Hi,
    This error was due to Not supported platforms of ADS (Adobe Document services)
    It was not supported on itanium64 bit processors.
    Please check where the ADS is supported in service.sap.com/pam
    You can use the ADS in the Non-Supported Server by linking it to Supported Platform Server using the SM59 link. This will make the ADS files to work.
    Please refer the ADS Config Doc for details.
    Hope you also solve this problem.
    Regards,
    Boobalan

  • Agent Determination Rule using Function Module

    Hi all,
    I am trying to create a custom agent determination rule using function module. But my rule is not getting invoked when the workflow is executed.
    I created a custom rule and linked my function module (with proper signature).
    FUNCTION 'ZRULEXXX''
    ""Local Interface:
    *"  TABLES
    *"      AC_CONTAINER STRUCTURE  SWCONT
    *"      ACTOR_TAB STRUCTURE  SWHACTOR
    *"  EXCEPTIONS
    *"      NOBODY_FOUND
    And I am hard coding some values into table ACTOR_TAB
    REFRESH ACTOR_TAB.
    CLEAR ACTOR_TAB.
    IF SY-SUBRC NE 0.
        RAISE NOBODY_FOUND.
      ELSE.
        ACTOR_TAB-OTYPE = 'US'.
        ACTOR_TAB-OBJID = 'XXXX'.
        APPEND ACTOR_TAB.
        ACTOR_TAB-OTYPE = 'US'.
        ACTOR_TAB-OBJID = 'XXXXXX'.
        APPEND ACTOR_TAB.
      ENDIF.
    But a worklist item is not being created for the users appended to ACTOR_TAB.
    Is there anything am missing. Please let me know.
    Thanks in advance
    Regards
    Raju

    Hi,
    Change it to following code. It will work.
    REFRESH ACTOR_TAB.
    CLEAR ACTOR_TAB.
    *IF SY-SUBRC NE 0.
    *RAISE NOBODY_FOUND.
    *ELSE.
    ACTOR_TAB-OTYPE = 'US'.
    ACTOR_TAB-OBJID = 'XXXX'.
    APPEND ACTOR_TAB.
    ACTOR_TAB-OTYPE = 'US'.
    ACTOR_TAB-OBJID = 'XXXXXX'.
    APPEND ACTOR_TAB.
    *ENDIF.
    Regards,
    Vaishali.

  • How to take back the control from RFC function module to calling program

    Hi,
    In our system landscape, more than 200 child systems are connected to Solution manager(SMP). I have copied a RFC enabled function module into all the child systems and calling that FM from Sol Man in sychronous mode.
    Here goes my code in SolMan.
    LOOP AT it_dest INTO wa_dest.
      CALL FUNCTION 'Z_GET_LOGIN_DETAILS' DESTINATION wa_dest-rfcdest
        EXPORTING
          date_fr               = s_date-low
          date_to               = s_date-high
        TABLES
          tab_data              = it_val
        EXCEPTIONS
          communication_failure = 1
          system_failure        = 2
          OTHERS                = 3.
      IF sy-subrc EQ 0.
    *     Updates zuserlogon
          MODIFY zt_logon_det FROM TABLE it_val.
          COMMIT WORK.
          WRITE:/'RFC for Destination', wa_dest-rfcdest, 'succesfully updated.'.
      ELSE.
          WRITE:/'RFC for Destination', wa_dest-rfcdest, ' failed.'.
      ENDIF.
    ENDLOOP.
    Few child systems are very slow & takes more than 20 minutes(Many of the times system hangs) to return the result. But I should not wait for so long. Even if the child system doesn't return any values in 5 minutes I shoud continue with other system ignoring the current one.
    I tried calling the FM in asynchronous mode(STARTING NEW TASK) but no success because only 6 DIA processes possible but as I said I have more than 200 systems connected to SolMan.
    Please help me resolving this problem.
    Thanks,
    Prathap

    If there are only few child systems with bad response time, use asynchronous call using a CALL FUNCTION func STARTING NEW TASK task DESTINATION dest PERFORMING subr or CALLING meth ON END OF TASK. Count asynchronous calls still running/waiting (increment a counter when creating a task (not the one used for task id). In the form/method performed at end of a call decrement the counter. When counter is lower than a limit, 4-5 if 6 processes (*), perform an asynchronous call else perform a synchronous call or wait until the counter falls below the limit.
    Regards,
    Raymond
    (*) Use SPBT_INITIALIZE at start of program to get actual number of free/available processes.

  • How to debug a remote function module in calling system? Help!

    Hi Experts,
       I have a ABAP report (in System A) from where I am calling a remote function module which exists in a different system B.
    ABAP Program(System A)<----calls--
    RFC(System B)
    Can I debug the RFC funnction module in system A using ABAP debugger? In other words if i put a breakpoint on the "call function" statement then in debug mode I want to see that the control is going to system B and I should be able to process the FM code line by line. Is this possible?
    Is there any special transaction or settings?
    Is there any alternative?
    Please help
    Thanks
    Gopal

    hello,
    Try this method.
    first check whether RFC connection is working b/w 2 systems.
    if connection is working, then do like this.
    In System B , put endless loop in FM before some main select statement.
    like
    DATA : v_a TYPE c VALUE space
    DO  .
       IF v_a = 'X'.
         EXIT.
       ENDIF.
    ENDDO.
    the above code will be endleep loop.
    In system A, when cursor goes to CALL FUNCTION DESTINATION 'XXXXX'.
    u shud be logged in system B. the moment control comes to system B.goto tcode SM50 . check ur username . choose that particular  checkbox then in menu bar --> program/session --> Program --> Debugging.
    i hope it will help u.
    try & let us know.
    Thanks,
    Manjunath MS

  • RFC enabled function module using call transaction

    Hi,
    We have a scenario wherein we have a RFC enabled function module which inturn uses a call transaction to create a PM order & attaches the PM notification against it. Sometimes it so happens that the order does not get created for some reason or the other and there are no logs generated on the system to investigate. However we are capturing the messages produced via the BDCMSGCOLL. At present we are using the update parameter as 'L'.
    In some scenarios it states that the notification is locked by the same notification and comes out without creating the order, in this process we are losing out on the order & the notification number which if successful would have got updated in the database.
    I know this could be done via the BAPI, but there are innumerable steps within the BDC which can't be actually done using the BAPI and hence we could not use this procedure.
    Is there any other way by which we can ensure that there's always a successful order creation, I mean without losing out on the order/notification number?. Would changing the update mode to 'S' help?. Since this process is time bound, it can't actually take more time then what its taking with the current logic.
    Please let me know if you require further details on the same. Any help in this regard would be highly appreciated.
    Regards,
    Vidya

    Sorry for an unclear replay.
    In Simple terms; I have 2 scenarios;
    Launch a new tab (IW38 tcode), on click of a button in SAP screen of custom transaction in NWBC.
    Launch a new tab (IW38 tcode), on click of a button in a Non - SAP App opened (using URL) in NWBC.
    For 1st case, i have used
    CL_NWBC=>URL_CONSTRUCT
      EXPORTING
         CANVAS_WDA__CLIENT_TYPE       = 'nwbc'
         CANVAS_TRANSACTION            = 'IW38'
      RECEIVING
         URL                           = lv_URL.
    CALL METHOD CL_NWBC=>URL_LAUNCH
       EXPORTING
         URL    = lv_url
    But it gets open in NWBC HTML not in NWBC Desktop client.
    I tried all the Parameters you have mentioned in your response to this post earlier, but nothing worked. the last one is CANVAS__WINDOW which actually hides the top area and few buttons but still it is a HTML version.
    If i set the HTML_CLIENT = ABAP_FALSE, it launches a new window instead of the tab and asks for Login. If i login in can see the IW38 in NWBC desktop client. But the only problem is we have the restriction of single window/single login for users.
    I am on NWBC PL12 and also updated the GUI 7.3 to PL8.
    Simply the problem is URL_CONSTRUCT for any transaction is launching it in a new tab but in HTML Version.
    For 2nd case,
    It asks for the login details on click of a button on the 3rd party URL opened in NWBC. which means i am launching SAP from a 3rd party.
    Is there any way to achieve the launch of new tab in this case instead of the new window ?
    I hope its more clear now.
    Regards,
    Nik.

  • Function module to call an url from an ABAP program

    Hello
    I'm looking for the ABAP function module to open an internet explorer with an url as parameter. Could somebody help me ?
    Many thanks
    Jerome

    Hi,
    You can use 'CALL_BROWSER'.
    Refer this code:
    call function 'CALL_BROWSER'
    exporting
    url = 'C:Documents and SettingshemantgDesktopnew.html'
    exceptions
    frontend_not_supported = 1
    frontend_error = 2
    prog_not_found = 3
    no_batch = 4
    unspecified_error = 5
    others = 6.
    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,
    Gayathri

  • RFC function module with call transaction  and Import memory ID

    Hi,
    I am calling RFC function module from R/3 which exists in BW.
    In BW stand alone function module works fine.
    When I am Calling from R/3 it is not working,
    Can you tell me is it because of the below code, And suggest if any corrections required.
    I am calling the call transaction and using EXPORT memory iD inside the program
    and IMPORT in after that.
    And populating RFC table's table  " p_i_tcode_user" finally.
    set parameter id 'TCD' field p_tcode.
    call transaction 'Z_BW_RSUSR002' AND SKIP FIRST SCREEN.
      ENDIF.
    get the final user data from submitted program
    import gt_users_complete from memory id tcode_userid.
    LOOP AT gt_users_complete.
          lwa_tcode_user-tcode =  p_tcode.
          lwa_tcode_user-uname = gt_users_complete-Bname.
          APPEND lwa_tcode_user TO p_i_tcode_user.
    ENDLOOP.
    Thanks,
    Veerendra.

    HI,
       Can you just exaplin it clearly plz..
    Thanks
    Mahesh

  • BW/ABAP- Function module is called infinitely by Datasource Extractor.

    Hi All,
    A quick ABAP question related to Function Modules and BW data source extractors.
    I’ve written a function module to select data from a database and simply output the data as a table. I then created a text Datasource using transaction rso2 and set it to Extraction by Function Module.
    When I test this using transaction rsa6, I can manipulate the number of calls to my function module using the Display Extra Calls field.
    However, when I test this using transaction rsa1, my function module seems to be called infinite times. So, the number of records being retrieved is increasing exponentially and finally ends with a dump.
    My question: Do I need to include something in my code such that the Function Module by itself will only be called once?
    Or is there some configuration for the Datasource that will limit my function module call to once only.
    Tried so far
    • Introducing a static variable in the function module that exits as soon as the value is greater than 1.
    o Is there another way out?
    Regards,
    Preethi.

    You need to raise the EXEPTION NO_MORE_DATA afte the last record is populated in the output table. Otherwise the program goes into an infinite loop.
    * From now on records get fetched from the database or gets read from the internal table
        FETCH NEXT CURSOR v_cursor
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE <internal table>
                   PACKAGE SIZE i_s_if-maxsize.
        IF sy-subrc <> 0.
          CLOSE CURSOR v_cursor.
          RAISE no_more_data.
        ENDIF.
    * Populate the Output Data Structure into table E_T_DATA and you need to raise the EXEPTION NO_MORE_DATA and close the cursor to avoid any memory leaks

  • IDOC ABAP-PI Port Function Module not called

    HI all,
    i am using a scenario where i am sending (outbound) idocs via abap proxy to PI.
    I have assigned the function module to the abap-pi port.
    when i am trying to send a test idoc via we19, i get the message "IDoc '0000000000198029' transferred to ABAP-PSS port".
    but the function module (a copy of own_function)  doesn't get called. if i am testing the function module from se80 with the above mentioned idoc number '0000000000198029' everything is fine.
    in the partner profile i have added the corresponding idoc message type and selected to send idocs immediately. have i forgotten something in order to trigger the call of the function module ?
    br,
    martin

    Hello,
    I think it is not so easy to send IDoc to XI with ABAP-PSS-Port.
    I would try to create the IDoc and send it to XI-Port (Transactional RFC).
    This is SAP-Standard for IDoc-Scenario (SAP-R3 to XI).
    Best Regards, Dirk

  • Unable to call New Function Module when called thru Internet Service in ESS

    Hi all,
    I am using 4.6C.
    What i want to do: We are attaching a new HTML Template to an iview in which we have a direct call to a newly created Function Module.(Direct call mean to say we are calling the FM thru Flow Editor of HTML template).
    What error i am getting : After publishing all edited/created objects when we test it in portal page. It says :
    ITS System Information
       Flow Execution Failed
    Your request could not be processed by the module provider.
    The module provide returned following error message: Error retreiving parameters from context
    You may check the trace files for more information.
    Please guide to solution at your earliest.
    Regards
    Manish

    Hi Bjoem,
    Search the forum for tutorials and blogs...
    Regards,
    Anubhav

Maybe you are looking for

  • DVD studio basic questions...

    HI! I have mostly used FCP to make web videos, so making a DVD is new for me. I used iDVD in the past for family videos, but that's about it. Some basic questions... 1) Does DVD Studio work from different FCP files? Meaning, can I create all the "cha

  • Problem installing a downloaded add-on.

    I have downloaded mmsAutocorrect into Thunderbird; it appears in Extensions in Addon Manager. I have followed the directions through: tools-add-ons click add-ons type name in search field; press enter (add-on appears in Search). Select desired add-on

  • OrgModeler - Dynamic org chart root

    Hello experts, We're on OrgModeler 3.0 SP2. I'm trying to dynamically display the user's org unit as the root of the orgchart. I did the following: 1. Copied sap_userpopulation.xml file and changed org_unit to ID <field name="OBJID" source="EmpOrgInf

  • JAXP, XML without SchemaLocation against Schema

    I have problems with JAXP I have been checking samples JAXP in next URL: http://xml.apache.org/~edwingo/jaxp-ri-1.2.0-fcs/docs/samples.html I have - request.xml (on bottom) - http://www.oasis-open.org/committees/security/docs/cs-sstc-schema-protocol-

  • Crystal Reports XI R2 SP4 Dynamic Image link not shown through forward prox

    Hello, I've installed crystal reports XI R2 on a server which accesses the internet through a forward proxy.  I've created a sample report with a dynamic image link.  When I preview the report, the image shows up blank.  I am able to browse to the im