Call subscreen dynamically

Hi all
I need to call subscreen from user exit screen depend on user data.
i can't write "if ... endif" on proccess.
how should i do it?

Hi
Use the below statment
CALL SUBSCREEN <SUBAREA>  INCLUDING <PROGRAMNAME> V_DYNPRO.
This v_dynpro need to be fill with the screen number you wanna call before you use the above statment .
Include a Module find_screen before a call and in that use if condition .If you face any issue with this  then assign the value v_dynpro(Screen number) before PBO start ,such as PAI of other screen from which this screen is called or if it is called from report such as call screen number . Then fill the v_dynpro before the call screen .
Hope this answer helps.
Cheers
J.

Similar Messages

  • Calling subscreen on click of radio button

    Hi,
    I am creating a module pool program , in which on click of a radio butto to 'YES' a subscreen should appear ( on the main screen) with few fields so that the user can input values of it.
    But I am having proble in calling the subscreen in PAI event.Actually I think it should be something like this
    Module user_command.
      case sy-ucomm.
       when rb_yes = 'X'
        { CALL SUBSCRREN CODE
    ENDIF.
    Can this be done? I f yes how? I only know how to call subscreen in PBO, but the syntax for calling subscrren is different in PAI i think.

    Hi,
    Try doing this.
    This is your flow logic in the main screen  to call the Subscreen's PBO
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0110.
    CALL SUBSCREEN TAB1_REF1 INCLUDING 'ZTRIAL' '0111'.
    In the PAI of the main screen,
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0110.
    CALL SUBSCREEN TAB1_REF1.
    Assign a function code to your radio button.
    Layout -> Attributes -> Function Code
    In the TOP include,
    DATA: v_dynnr type sy-dynnr.
    In module USER_COMMAND_0110.
    if p_rad = 'X'.
       v_dynnr = '0111'.
    else.
      v_dynnr =  ' '
    endif.
    You can check this for your reference
    [http://help.sap.com/saphelp_nw04/Helpdata/EN/9f/dbabfe35c111d1829f0000e829fbfe/content.htm]

  • Calling subscreen in module pool

    Hi friends,
                    I am trying to call sub-screen in module pool.
    but it is giving me an error as  "." or "ID ... FIELD ..." expected after "SUBSCREEN".
    i am using followning statement
    CALL SUBSCREEN SUB  INCLUDING SY-REPID '0101'.
    OR
    CALL SUBSCREEN SUB. (SUB is screen i have created in layout).
    I tried it a lot, but not able to solve it.
    Kindly help me.

    Hi Kiran,
    <li>Subscreen concept is like this. You have one main screen. You want another screen which has to be displayed on main screen when you run main screen.
    <li>First we need to create subscreen area on main screen. Goto layout and click subscreen element and place on main screen and name to that subscreen area as SUB.
    <li>Now create another screen type subscreen. place fields on that and write logic.
    <li> Check REPORT demo_dynpro_subscreens.
    Thanks
    venkat.O

  • 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 subscreen

    Hi
    CALL SUBSCREEN is used only in  the flow logic but not in the actual program. I want to know the reason why it is not used in the  actual program. please help me.
    POINTS WILL BE GIVEN.
    thanks,
    S.Gangi Reddy.

    hi,
    Subscreens allow you to embed one screen within another at runtime. The term subscreen applies both to the screen that you embed, and the area on the main screen in which you place it. This section is about subscreen areas. The actual screens that you embed are called subscreen screens. When you use a subscreen, the flow logic of the embedded screen is also embedded in the flow logic of the main screen. Using subscreens on screens is like using includes in ABAP programs.
    Subscreens are screens which can be embeded into another screen. These can be used and created with both selection screen as well as screen painter.
      They differ from normal screens in the way that that they don't have OK_CODE field of ther own and there PBO and PAI transfer data to the ABAP program in which these screens were created and the cannot have module calls which change status or leave screen and module call AT EXIT-COMMAND AND E type function codes.
    Subscreens allow you to embed one screen within another at runtime. The term subscreen applies both to the screen that you embed, and the area on the main screen in which you place it. This section is about subscreen areas. The actual screens that you embed are called subscreen screens. When you use a subscreen, the flow logic of the embedded screen is also embedded in the flow logic of the main screen. Using subscreens on screens is like using includes in ABAP programs.
    In screen painter(SE51) choose the subscreen tool button and draw a subscreen area on the screen,this subscreen area will be used to hold the subscreen at run time.To make a subscreen select the attribute screen type as subscreen and specify the size of the subscreen according to the size of the subscreen area in which it will be placed.
    We use ABAP statement to embed and start the flow logic of the subscreen area in the PBO of a screen. A subscreen can contain another subscreen.
    Hope this answers you, Do reward.
    Edited by: Runal Singh on Feb 8, 2008 5:36 PM

  • To call subscreen in another screen

    hi
    How to call a subscreen if i check certain checkbox.please help

    Hi,
    In screen painter(SE51) choose the subscreen tool button and draw a subscreen area on the screen,this subscreen area will be used to hold the subscreen at run time.To make a subscreen select the attribute screen type as subscreen and specify the size of the subscreen according to the size of the subscreen area in which it will be placed.
    We use ABAP statement to embed and start the flow logic of the subscreen area in the PBO of a screen. A subscreen can contain another subscreen.
    CALL SUBSCREEN subscreen_area INCLUDING program screen_number.
    A similar call should also exist in PAI of screen.It will also call the PAI modules of the subscreen and will transfer data from subscreen to ABAP program.
    CALL SUBSCREEN subscreen_area.
    open T.code : ABAPDOCU
    path:BC ABAP Prg ->ABAP User dialog ->Screen ->Complex screen element - >Subscreen.
    You will get sample prg, Run it.You can get lot of sample prg in T.Code ABAPDOCU.
    Regards,
    Raj.

  • 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"))))

  • Facing problem with call subscreen area in standard infotype

    Dear SAP Guru's,
    I have enhanced standard infotype 0185 from PM01, in assign enhancement tab it create multiple screens ,
    my program name ZP018500, screen number 0200 generated,
    on  0200 screen i need to display two subscreens tfor that
    i have created subscreen area  on srcreen 0200 which is already a subscreen.
    and i am calling two subscreen 0201 and 0202 on that  subscreen area.
    while creating entries for 0185 infotype  my screen keep going in continious loop for call subscreen statement on 0200 screen number.
    roll in fail, session terminated error coming because of this.
    is it correct to create subscreen area on subscreen and calling subscreen on that.
    Guide me to solve the issue.
    Thanks and Regards,
    Syed

    Dear Gopal,
    Thanks for the reply,
    But i can't make 0200 screen as normal screen because it is automatically generated by system while enhancing the standard infotype,
    Please let me know any other solution.
    Regards,
    Syed Taj

  • How to call subscreen and provide selection screen in subscreen

    Hi experts,
    please anybody suggest me how to call subscreen in module pool screen and provide selection screen in that sub screen.
    please tell me how to design this subscreen in module pool screen.
    adevanced
    thank you
    regards
    vijay krishna

    Hi,
    If you need to have select-options in module pool then follow these steps:-
    To implement select-options in module pool, first design two input/output fields (textboxes) for the low and high value of the field and name it as <field_name>-low and <field_name>-high.
    Create a button next the high value textbox and keep its sutaible function code.
    Now, to call the pop-up on this button click, we have to call the same pop-up as in standard      select-options. For this we have to use the function module COMPLEX_SELECTIONS_DIALOG.
    For this FM we have to pass the table name, field name and the range for the field whose range needs to fill when using the popup screen.
    To pass the table name and field name details into the FM, we have to declare as:
    DATA : tab TYPE rstabfield.
    This structure comprises of table name and field name.
    Pass these details in program as:-
    u2003
    *-- clear table and field details
      CLEAR tab.
    *-- append for range depending on the button clicked
    *   either for sales order or line item
      CASE sy-ucomm.
        WHEN 'VBELN'.
          tab-tablename = 'VBAP'.
          tab-fieldname = 'VBELN'.
    *--To call the popup screen for the field use code:-
      CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
        EXPORTING
          title             = text-002  u201Ctitle text
          text              = ' '
          signed            = 'X'
          search_help       = v_shelp u201Csearch help if required
          tab_and_field     = tab u201Ctable and field name details
        TABLES
          range             = r_vbeln u201Crange for the associated field
        EXCEPTIONS
          no_range_tab      = 1
          cancelled         = 2
          internal_error    = 3
          invalid_fieldname = 4
          OTHERS            = 5.
    Hope this helps you.
    Regards,
    Tarun

  • 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

  • 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.

  • 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

Maybe you are looking for