Call Fm dynamically

Hi all,
I am using FP_FUNCTION_MODULE_NAME    fm to get a fm name of a Interactive/PDF form.
I want to know that when i get this FM name how to call it dynamically.
Points will be sured for valuable answers.
Thanks
Sanket sethi

Data: LV_FORM_NAME TYPE FPWBFORMNAME,
         LV_FM_NAME   TYPE RS38L_FNAM,
         FP_TEST_DUMMY TYPE FPINTERFACETYPE.
Now pass the form name in LV_FORM_NAME .
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
        EXPORTING
          I_NAME           = LV_FORM_NAME
        IMPORTING
          E_FUNCNAME       = LV_FM_NAME
          E_INTERFACE_TYPE = FP_TEST_DUMMY.
U'll get the FM name in LV_FM_NAME.
Now 
  GS_DOCPARAMS-LANGU = 'E'.
GS_DOCPARAMS-COUNTRY = 'US'.
CALL FUNCTION LV_FM_NAME
    EXPORTING
      /1BCDWB/DOCPARAMS = GS_DOCPARAMS
     LFA1              = LFA1
     MBMFKTO_PDF       = GT_MFKTO_PDF
   IMPORTING
     /1BCDWB/FORMOUTPUT       = FP_RESULT
    EXCEPTIONS
      USAGE_ERROR       = 1
      SYSTEM_ERROR      = 2
      INTERNAL_ERROR    = 3
      OTHERS            = 4.
Hope this might give answer to U.
Regards
Hemendra.

Similar Messages

  • HR_INFOTYPE_OPERATION not working when called from Dynamic action

    Hi ,
           Senario  : I would like to execute a form from dynamic action which
    creates a record in 0015 (Additional payment IT) .
           I have writen the code as shown below am using FM HR_INFOTYPE_OPERATION
    . When i execute the program from se38 it is creating a record, however it is
    not created when it is called from dynamic action..when i debugged the code in
    inside the FM HR_INFOTYPE_OPERATION there is a FM HR_MAINTAIN_MASTERDATA where
    they are using call dialog (statement) and
    sy-oncom = 'N'   when called from Dynamic action and
    sy-oncom = 'S'   when called executed directly.
    I tried to change the sy-oncom to S while run from Dynamic action it created
    the record.
    So Can anyone explain me abt sy-oncom and how can i resolve the issue..
    code..
    REPORT ZHRPYENH01 .
    perFORM TERMIATION_9000.
    INCLUDE DBPNPMAC.
          FORM Termiation_9000                                          *
    FORM TERMIATION_9000.
    INFOTYPES : 0015.
    *data : i .
    *i ='c'.
    *break-point.
    *message i000(000) with i.
      TABLES : PRELP.
      DATA : P9000 TYPE PA9000." with header line.
      DATA : P0000 TYPE STANDARD TABLE OF  P0000 WITH HEADER LINE.
    DATA : P0015 TYPE STANDARD TABLE OF  P0015 WITH HEADER LINE.
      DATA : HIRE_DATE  LIKE SY-DATUM,
             TERM_DATE  LIKE SY-DATUM.
      DATA : MOLGA LIKE T500L-MOLGA VALUE '25',
             SEQNR LIKE PC261-SEQNR.
      DATA : RGDIR TYPE STANDARD TABLE OF PC261 WITH HEADER LINE.
      DATA : ACTUAL_PERIOD LIKE PA9000-RETENTION.
      DATA : PNP-SW-FOUND TYPE SY-SUBRC ,
             PNP-SY-TABIX TYPE SY-TABIX.
      DATA : TER_PERNR LIKE PA0001-PERNR.
      DATA : REF_PERNR LIKE PA0001-PERNR.
      data : key type BAPIPAKEY.
      data : payed_amount type p0015-BETRG.
    data : future_payment_amount type p0015-BETRG.
    data : p0002 like pa0002.
      types : begin of t_deduction ,
              deducation_date like p0015-begda,
              future_payment_amount type p0015-BETRG.
      types : end of t_deduction.
    data :  future_deduction type standard table of t_deduction with
    *header line.
      data :  future_deduction type  t_deduction .
    data : RETURN type  BAPIRETURN1.
    *data : deduction_p0015 like standard table of p0015 with header line.
    data : deduction_p0015 like p0015 .
    xxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxx
    ****Prepare 0015 data for deduction
    *deduction for payed amount
    clear deduction_p0015.
    *refresh deduction_p0015.
    deduction_p0015-pernr = REF_PERNR.
    *deduction_p0015-pernr = TER_PERNR.
    deduction_p0015-lgart = 'M120'.
    deduction_p0015-begda = sy-datum + 1 .
    deduction_p0015-endda = sy-datum + 1 .
    deduction_p0015-BETRG = payed_amount.
    deduction_p0015-WAERS = 'SGD'.
    deduction_p0015-ZUORD =  TER_PERNR.
    *append deduction_p0015.
    **deduction for future payment amount
    *loop at future_deduction.
    *clear deduction_p0015.
    *deduction_p0015-pernr = REF_PERNR.
    **deduction_p0015-pernr = TER_PERNR.
    *deduction_p0015-lgart = 'M120'.
    *deduction_p0015-begda = FUTURE_DEDUCTION-DEDUCATION_DATE.
    *deduction_p0015-endda = FUTURE_DEDUCTION-DEDUCATION_DATE.
    *deduction_p0015-BETRG = future_deduction-future_payment_amount.
    *deduction_p0015-WAERS = 'SGD'.
    *deduction_p0015-ZUORD =  TER_PERNR.
    *append deduction_p0015.
    *endloop.
    Create a deduction wage type in 0015 for the employee
    break-point.
    CLEAR RETURN.
    CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
      EXPORTING
        NUMBER              = REF_PERNR
        VALIDITYBEGIN       = '18000101'
    IMPORTING
       RETURN              = return
    if not return is initial.
    message E000(000) with
    'Referred Employee could not be locked for referal  payment deducation,
    please try after some time'.
    endif.
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY                  = '0015'
        NUMBER                 = REF_PERNR
       SUBTYPE                = 'M120'
      OBJECTID               =
      LOCKINDICATOR          =
       VALIDITYEND            = SY-DATUM
       VALIDITYBEGIN          = SY-DATUM
      RECORDNUMBER           =
        RECORD                 = deduction_p0015
        OPERATION              = 'COPY'
      TCLAS                  = 'A'
       DIALOG_MODE            = '2'
      NOCOMMIT               =
      VIEW_IDENTIFIER        =
      SECONDARY_RECORD       =
    IMPORTING
       RETURN                 = return
       KEY                    = key
    break-point.
    COMMIT WORK.
    if not return is initial.
    *return-TYPE
    *ID
    *NUMBER
    *MESSAGE
    message I000(000) with return-MESSAGE.
    endif.
    CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
      EXPORTING
        NUMBER              = REF_PERNR
        VALIDITYBEGIN       = '18000101'
    IMPORTING
       RETURN              = return
    xxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxx
    Thanks and regards
    -Senthil Bala
    Message was edited by: senthil bala

    Hi Senthil
    Why at all U want a subroutine to create a record in IT0015 through Dynamic action.There are some standard codes available to update infotypes.
    Let me give U an example
    14     9CON     BETRG     4     2     I     INS,0015 This will create a record in IT0015 when IT0014 is updated with Wagetype 9CON
    14     9CON     BETRG     4     3     W     P0015-LGART='5400' Set wagetype for IT0015(Here U can use a subroutine call to set the wagetype)
    14     9CON     BETRG     4     4     W     P0015-BETRG=P0014-BETRG set amount for IT0015(Here U can use a subroutine call to get the amount)
    14     9CON     BETRG     4     5     W     P0015-BEGDA=P0014-ENDDA set the dates(Here U can use a subroutine call to set the dates)
    Hope this will help U.
    Please award points if helpful

  • Problem with a Link calling a dynamic page

    Hi!
    I wanted to create a link calling to a dynamic page. This dynamic page displays a PDF depending on the parameter, the thing here is that I don't know how to set the bind variables or more likely how to say that the value of those variables is going to come from the link in which the dynamic page it's been called.
    I have my PL/SQL code where I have this bind variables
    id_dep
    id_tipo
    and I went to the Customization Form Display Options button and there i made them public.
    now on a page i created a link with the following structure, in order to call the dynamic page and send the parameters.
    http://your.portal.com/portal/pls/portal/SCHEMA.DYN_YOUR_DYN_PAGE_NAME.show?p_arg_names=YOUR_PARAMETER_NAME&p_arg_values=YOUR_PARAMETER_VALUEso my links looks like this one:
    http://desarrollo06:7778/pls/portal/TRANSPARENCIA.NOSEQUE.show?p_arg_names=idDep&p_arg_values=11&p_arg_names=idTipo&p_arg_values=25so I was told that I had to check that the parameters bindings are present or set, but I don't know how to do that... 'cause I thought I already did...
    can youi help me?
    thanks In Advance
    aTTe
    Blume

    Hi AMN,
    well what I meant was that, see in the manage page for the Dyn Page there are some options bellow, in the one that sais Customize you can test the page, and I put there the values for id_dep and id_tipo as *11* and *25* then run the page and it opens the PDF but when I click on the link you suggested
    http://desarrollo06:7778/portal/pls/portal/TRANSPARENCIA.NOSEQUE.show?p_arg_names=idDep&p_arg_values=*11*&p_arg_names=idTipo&p_arg_values=*25*
    u_u but it doesn't open the PDF.
    ...The code I put in my last post is the code for my dyn page, and there's an if where if it doesn't find a file to deploy it show a message that sais "No hay Datos o No Aplica", so when I clic on the link it takes me to the dyn page but shows the message for no data found...
    so I don't know what's going on.... if supposedly the dyn page is receiving the same values in different way, why it doesn't work with the link? -_-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • CRM5.2 UI-Call a dynamic URL on button click

    Hi all, 
               My requirement is to call a dynamic url on the click of a button in the overview page. I have added a custom button in  the method  IF_BSP_WD_TOOLBAR_CALLBACK~GET_BUTTONS , and the related code in do_handle_event.I have created a custom method for the button event. I have enhanced a custom controller and created an attribute.In the custom method created for the button event, I have written the code for retrieving the parameters to be passed to the url.
    In the layout of the view associated with the display view , I have written the following code for calling the URL in a new window.
    <%
    DATA: lr_cuco_EMA TYPE REF TO ZL_BP_CONT_BPCONT_IMPL,
          lv_url TYPE string,
          lv_url1 type string,
          lv_count type i.
      lr_cuco_EMA ?= controller->get_custom_controller( 'ZBP_CONT/BPCONT' ).
      check lr_cuco_EMA is bound.
      if lr_cuco_EMA->gv_VALUE is not initial.
      if lr_cuco_EMA->gv_COUNT IS NOT INITIAL.
      clear lr_cuco_EMA->gv_COUNT.
      endif.
      LV_URL = lr_cuco_EMA->gv_VALUE.
      Concatenate 'http:/' LV_URL  into LV_URL1.
      Concatenate '"http:/' LV_URL '"' into LV_URL.
        lv_count = lr_cuco_EMA->gv_COUNT mod '2'.
        if lv_count Ne 0.
      lv_url = lv_url1.
    endif.
      %>
         <scrpt language="Javascript">
            window.open(<%= lv_url%>).focus();
          </script>
       <%
             lr_cuco_EMA->gv_COUNT = lr_cuco_EMA->gv_COUNT + 1.
             clear lr_cuco_EMA->gv_value.
             clear lv_count.
             clear lv_url.
             clear lv_url1.
             ENDIF.
    %>
    But here my URl is getting called alternate times.If I do not write the code  by using the variable GV_COUNT the url is getting called only the first time of the button click  and to call the URL again you need to navigate back to the search page and again back to the overview page and click on the button.
    Can anyone help me regarding this? I want the URL to be called in a new page on every button click.
    Thanks in Advance,
    Chandana

    Hi Nisha,
    The crux of your issue here is that you want to call the event triggered with onClick before calling the event triggered on onClientClick. This can be achieved by the following code in the function called on the onClientClick.
    function fn_button()
               htmlbSL(this,2,'b_row_selection:onInputProcessing()');
               window.open("new_page",target="BLANK");
    Here, fn_button is the javascript function called on button click, and b_row_selection is the event triggered on the onClick event of row selection.
    Try this out and let us know if it works for you.
    Regards,
    Saurabh

  • Call Type node not setting Call Type Dynamically By name.

    I'm attempting to use the Call Type node to set a Call Type dynamically by name using the following logic:
    concatenate("somestring_",userParseFromVXML("CT"),"_Q")
    The userParseFromVXML is a custom function that works correctly and pulls my data out of FromExtVXML correctly.  If I use a peripheral variable and use the same logic then set the Call Type node to set the call type dynamically by name using the peripheral variable it sets the call type correctly without any problems.  I'm using UCCE 9.0.3 and I'm wondering if anyone else has run across this issue.

    I wish I'd known about the table function before myself.
    This is what my experience is now after having tested these scenarios.
    Scenario
    Example
    PASS/FAIL
    String literal
    concatenate("somestring_", "test", "_Q")
    PASS
    Peripheral Variable
    concatenate("somestring_", Call.PeripheralVariable1, "_Q")
    PASS
    Custom Function
    concatenate("somestring_", userParseFromVXML("CT"), "_Q")
    Passing now (not sure what i must have been missing)
    The custom function I'm using returns a string and when I created a new custom function returning a String literal it worked just fine.  After doing my testing and swapping back to my original custom function I started seeing the call tagged with the correct Call Type, so I can only assume that I was missing something in the original concatenate string.  The custom function I am using is as follows:
    if((find(%1%,Call.user.microapp.FromExtVXML[0]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[0])),if((find(%1%,Call.user.microapp.FromExtVXML[1]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[1])),if((find(%1%,Call.user.microapp.FromExtVXML[2]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[2])),if((find(%1%,Call.user.microapp.FromExtVXML[3]))>0,before(";",after(concatenate(%1%,"="),Call.user.microapp.FromExtVXML[3])),"Not Found"))))

  • HR_INFOTYPE_OPERATION called inside Dynamic action

    I am writing a subroutine called by dynamic action.
    Where using FM 'HR_INFOTYPE_OPERATION' i have to delimit or delete the records of infotype 0167.
    Although, HR_INFOTYPE_OPERATION, is executing with return is 0. but there is no change in the infotype reocrd.
    The same code written independent without called from Dynamic action, infotype record is been updated.
    Any help would be highly appriciated.
    Regards
    Manvir

    Also look at thread !!
    Re: Strange behavior of  FM u0093HR_MAINTAIN_MASTERDATA u0093
    and
    Re: Why does the NOCOMMIT parameter not work in HR_INFOTYPE_OPERATION?
    I’d recommend you to write BDC program . This FM is behaving in a weird way!!!
    <b>I used it only for 'INS' ...</b>
    Hope this’ll give you idea!!
    <b>P.S award the points.</b>
    Good luck
    Thanks
    Saquib Khan
    "Some are wise and some are otherwise"

  • Call a dynamic action automatically on a regular basis

    Hi,
    We have a classic report on a page which we would like to refresh automaticallly every X minutes. We have done this using setInterval and $a_report however as I understand, this is unsupported functionality... So I would like to go down the dynamic action route.
    But my question is this... how can I call the dynamic action automatically say every 3 minutes, without any user interaction?

    Hi John,
    maybe it's easier for you to get the approval because it's a plug-in we (Oracle) provide.
    You mentioned that you already had a setInterval with $a_report solution in place. Instead of the unsupported $a_report you can use the supported
    jQuery( "#static_id_of_your_report_region" ).trigger ( "apexrefresh" );to trigger a refresh of your report region. That will be identical to the "Refresh" dynamic action. But I would still suggest to go with the "Timer" dynamic action plug-in, because this will be more transparent for other developers when looking at your page.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • OSB Dynamic service call or dynamic route and transactions

    Hello,
    I've got the following problem in my OSB architecture for asynchronous incomming services.
    OSB version is 10.3.1
    ConnectionFactory is XA
    Problem domain:
    Dynamic service call or dynamic route within transaction boundary
    Elements within transaction:
    1.     JMS Queue ->
    2.     Upper Proxy Service (De-queue) ->
    3.     Lower Proxy Service (Canonical Service) ->
    4.     Business Service (Data Service) ->
    5.     Database Adapter->
    6.     Database
    Dynamic element
    Upper Proxy Service (De-Queue) must be able to determine which Lower Proxy Service (Canonical Service) has to be called on the basis of the message taken from the JMS Queue without losing the transaction (this doesn’t work yet).
    Already tried possible solutions:
    •     Make a service call dynamic by setting the $inbound name attribute. This results in a this property is read-only error.
    •     Use a Dynamic route instead of a service-call. This results in a loss of transaction. The message is deleted from the Queue without taking failure or success into account.
    •     Use a Dynamic route with a quality of service set to exactly once in the header. This seems to be ignored, results in a loss of transaction.
    •     Use a Dynamic route with an explicit reply with failure for errors. Results in a loss of transaction.
    •     Use a Dynamic Publish. This doesn’t fit the required flow because it has no response.
    I hope someone can shed some light on this because I'm at a total loss. I found some references in the forum to what seems to be the same problem but without definite answers. A work-around is also a viable answer.
    Regards,
    Bas Mul

    Hi,
    I'll try to clarify.
    Upper proxy dequeues a message.
    Depending on a value of a specific tag within the message a canonical proxy service (out of 5 at the moment but this numer could increase) has to be called (and be dynamic transform transformed to the format of the specific canonical).
    The canonical service must then pass the message to a database adaper's business service which is responsible for the database insert/update/read.
    If something in the chain from dequeue to database action goes wrong the message may not dissapear from the queue.
    Somehow a dynamic route in the message flow between dequeue proxy and canonical proxy breaks the transaction.
    Bas

  • How to call a dynamic URL on 'button press' event, in MVC-based BSP

    Hi,
    My requirement is as below:
    On selecting a row in table view, and pressing a button, I need to open a browser.
    The Browser URL depends on the row selected.
    The key field from table view, is added at the end of the URL string.
    Shortly, I can say that, I am getting a value on row selection & want to pass it to button event.
    In Views Section, there are 2 tags- (1)table view & (2)button.
    Right now, I have put the code for getting the key field, in DO_HANDLE_DATA method.
    In Button's OnClientClick method, I have called the Javascript to open the browser.
    If I now write the code to concatenate the key field value to form the dynamic URL in 'OnClick' method,
    it will be called only after the browser is opened.
    (as OnClick event is executed only after OnClientClick event is executed)
    Could anyone please tell me what event (and in which tag) can be used to solve this.
    Is there any event which is triggered, as soon as the row is selected, &  before the button press event is triggered ?
    Would really appreciate responses made to this query.
    Thanks,
    Nisha Vengal.

    Hi Nisha,
    The crux of your issue here is that you want to call the event triggered with onClick before calling the event triggered on onClientClick. This can be achieved by the following code in the function called on the onClientClick.
    function fn_button()
               htmlbSL(this,2,'b_row_selection:onInputProcessing()');
               window.open("new_page",target="BLANK");
    Here, fn_button is the javascript function called on button click, and b_row_selection is the event triggered on the onClick event of row selection.
    Try this out and let us know if it works for you.
    Regards,
    Saurabh

  • Call RFC dynamically

    Hi,
    I require calling 2 different RFC in the same receiver dynamically based on one of the content in my Message. How can I do this.
    Basically, assume i have a message with Create='Y', need to call a one RFC and if Create='N', need to call another RFC.
    This is just an example not the actual scenario.
    Regards
    Unni

    Hey,
       we can have two solution for this.
    Solution 1:
                  Use a BPM . in that use a switch case.
       based on your condition provided in the switch case(for eg create=y or create=N) choose the interface mapping(using transformation step of BPM). two different RFC's will be having two different interface mappings.
    Solution 2:
               In your configuration you need to create two different services for the same R3. and have two diffent communication channels.
    In your reciever determination give your condition(eg create = y or create=N). Give both the services in the service field.
    Now give the interface mappings(different for the two RFCs) in the interface determination for each reciever.
    I would suggest you to go with solution 1.
    Reward points if helpful.

  • Can I call a dynamically loaded subvi from a subvi inside a library?

    I have an application that uses a .lvlib, this library has many subvi's.  From my executable, I can dynamically load subvi's within the library using the "open reference.vi" and passing in just the name as long as the subvi's being called are listed in the "always included" list of my build specification.  What I want to do now is load an external subvi (external to the library) using the same method.  But when I try to do this, LabVIEW cannot find the external subvi even when it is included as part of the executable.  It seems the Paths are getting messed up.  Here is what is happening:
    Lets say I have Mylibrary.lvlib as my library in the following path C:\MyProject\Mylibrary.lvlib,
    and internal.vi as my subvi within the library in the following path C:\MyProject\MySubVis\internal.vi,
    and external.vi as my subvi outside of my library in the following path C:\MyProject\external.vi
    This is all in the same project.
    I'm using the "Open VI Reference.vi" from internal.vi to call external.vi, and I'm including both internal.vi and external.vi in my executable (MyEXE.exe for illustration purposes).  When I run this part of my code I get an error and LabVIEW reports the path of my external subvi as: C:\MyProject\MyEXE.exe\MySubVis\external.vi which is really the path for my library subvi.  Why?
    Either way, when I hard code what is supposed to be the correct path to my external subvi:  C:\MyProject\MyEXE.exe\external.vi, LabVIEW can't seem to find the file, its' almost like an access scope problem because I'm trying to access something outside of the library.  Is there such thing?  If the file is part of my exe why can't LabVIEW find it???  How can I call my external.vi BY NAME from my internal.vi??
    Any help is appreciated.

    Your hardcoded path is incorrect. How do you have the build configured? Are you using the new executable structure or the pre-8.2 structure.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Calling procedure dynamically, from different schema, permissions issue

    Hi,
    I have a 'master_user' schema that needs to run DDL on a 'secondary_user' schema.
    There appears to be some kind of permissions subtlety that I'm missing. Here are the simplified steps to create, test and troubleshoot:
    Secondary schema has a procedure defined:
    -- Run as SYSTEM (at build time)
    CREATE OR REPLACE PROCEDURE secondary_user.execute_immediate(p_sql_statement IN VARCHAR2)
    IS
    BEGIN
        EXECUTE IMMEDIATE p_sql_statement;
    END;
    GRANT EXECUTE ON secondary_user.execute_immediate TO master_user;
    I then want to call this procedure from master_user to execute DDL dynamically in secondary_user.
    - Run as master_user
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    ERROR at line 1:
    ORA-00942: table or view does not exist
    ORA-06512: at SECONDARY_USER.EXECUTE_IMMEDIATE", line 5
    ORA-06512: at line 1
    ORA-06512: at line 2
    TROUBLESHOOTING SO FAR:
    Now I can call this procedure directly:
    -- As master_user
    EXEC secondary_user.execute_immediate('drop table test1')
    PL/SQL procedure successfully completed.
    I can call the wrapped procedure as different users:
    -- As secondary_user
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    PL/SQL procedure successfully completed.
    -- As SYSTEM
    BEGIN
        EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
    END;
    PL/SQL procedure successfully completed.
    Can you shed any light on this behaviour? The master_user clearly has permission to run the procedure, but it cannot see it from within an anonymous block. However SYSTEM can so what permission does SYSTEM have that master_user does not?
    Much appreciated,
    Si

    Something doesn't add up:
    SCOTT@orcl > create user secondary_user
      2  identified by secondary_user
      3  default tablespace users
      4  quota unlimited on users
      5  /
    User created.
    SCOTT@orcl > grant create session to secondary_user
      2  /
    Grant succeeded.
    SCOTT@orcl > create user master_user
      2  identified by master_user
      3  default tablespace users
      4  quota unlimited on users
      5  /
    User created.
    SCOTT@orcl > grant create session to master_user
      2  /
    Grant succeeded.
    SCOTT@orcl > CREATE OR REPLACE PROCEDURE secondary_user.execute_immediate(p_sql_statement IN VARCHAR2)
      2
      3  IS
      4
      5  BEGIN
      6
      7      EXECUTE IMMEDIATE p_sql_statement;
      8
      9  END;
    10
    11  /
    Procedure created.
    SCOTT@orcl > GRANT EXECUTE ON secondary_user.execute_immediate TO master_user;
    Grant succeeded.
    SCOTT@orcl >
    SCOTT@orcl > create table secondary_user.test1(n number)
      2  /
    Table created.
    SCOTT@orcl > connect master_user@orcl
    Enter password:
    Connected.
    MASTER_USER@orcl > BEGIN
      2
      3      EXECUTE IMMEDIATE ' BEGIN secondary_user.execute_immediate(''DROP TABLE test1''); END;';
      4
      5  END;
      6
      7  /
    PL/SQL procedure successfully completed.
    MASTER_USER@orcl >
    Make sure table secondary_user.test1 exists when you run SP. And, as you can see, neither secondary_user nor master_user have any privs besides create session.
    SY.

  • Calling a Dynamic URL in a BSP

    Hi all,
    We are calling a BW Web Report from a BSP application . Presently we have hardcoded the BW Web Report but when we move from Devlopement to Quality and subsequently to Production we would need to pass the respective URL’s.
    One way of achieving the above, is to write Case statements specific to Development, Quality and Production System -IDs, Is there any other way in which we pass the  URL’s dynamically to the BSP.
    Thanx in advance.

    to dynamically construct BW web report url you can do the following
    call the following FM
    CALL FUNCTION 'TH_GET_VIRT_HOST_DATA'
       EXPORTING
         protocol             = 1 " 1 for http 2 for https
         virt_idx             = 0
      LOCAL                = 1
      IMPORTING
        hostname             = server
        port                 = port
      EXCEPTIONS
        not_found            = 1
        internal_error       = 2
        OTHERS               = 3 .
    now you can use something like below.
    concatenate `http://` server `:` port
    `/sap/bw/BEx?sap-language=EN&bsplanguage=EN&CMD=LDOC&INFOCUBE=<cubename>&QUERY=<queryname>` into bwurl.
    Hope this is clear. If not do get back.
    please note that if you are using webdispatcher then you may have to follow a different approach.
    Regards
    Raja

  • RFC-Call using dynamic Parameters

    Dear Forum!
    I'd like to call a RFC function module using a dynamic parameter list.
    I can either call
    CALL FUNCTION bapiname DESTINATION fsystem.
    or
    CALL FUNCTION bapiname
            PARAMETER-TABLE lt_param
            EXCEPTION-TABLE lt_excep.
    but not both combined!
    The ABAP docu says, both should work together. If using DESTINATION the same options as for standard FM calls are allowed... (seen at: Transaction ABAPHELP, search for CALL FUNCTION, choose topic 4 for RFC)
    Who is wrong? The docu or me? How can I combine both?
    Cheers
    Torsten

    Hi Abir,
    thanks for your helpful answer.
    But I don't understand this:
    For calling a remote enabled FM, it needs to be released which means the parameters would be fixed and thus the RFC layer does not allow using parameter table in such cases.
    The FM resides on a remote system. It does not matter me, whether the FM is released, fixed or done with something other. As long it is reachable, I'm fine.
    I am wondering about the fact, that I can call a local FM dynamically, but cannot do so for a remote call.
    In the online documentation you can read, that a remote call function (with parameter destination ) has the same options like a standard call function. Actually this statement seems to be wrong. Right?
    Best regards
    Torsten

  • Call MESSAGE dynamically

    Hi all,
    How can I call a message dynamically?
    For e.g.: MESSAGE E011(00)
    Where
    00 --> Message ID (class) - get at runtime
    011 --> Message number -  get at runtime
    Thanks,
    Khanh
    Edited by: Khanh Nguyen on Mar 26, 2010 6:43 PM

    You always see this in the SY-SUBRC NE 0 statement of a function module but never thought about it
    DATA: v_id  TYPE sy-msgid VALUE 'Z_MSG',
          v_mtype TYPE sy-msgty VALUE 'I',
          v_num  TYPE sy-msgno VALUE '014'.
    MESSAGE ID v_id TYPE v_mtype NUMBER v_num.

Maybe you are looking for