Why to multiple calls to begin action occur?

Hi!
I'm quite confused. When looking for the reason of some performance problems of our portal, I noticed that the begin action of many portlets is called several times.
Our portal has a number of portlets containing PageFlows, that are shown simultaneously. After logging in, the begin actions of each of these portlets is executed, as I'd expect. But on the next request, the begin actions of most portlets are executed again, no matter what a request that is (portlet or not). That happens two, three or four times, but then it stops, and only the actions that are really requested by the user are executed. Except of this problem, everything works as expected.
Of course, that has a performance penalty. How can that happen? I thought in each portlet an action is executed exactly once after a request is made that applies to this portlet. In requests that go to other portlets, I would expect only the JSP of the currently shown page in this portlet would be re-executed.
Thanks so much,
Hans-Peter Störr

Hans,
The reason will be clear if you consider the two stages involved with
portlets.
Render state: For generating a view. For page flows, the either the
begin action, or subsequently a JSP is used for generating a view.
Action/event phase: This is used for processing user input. With page
flows, the result of action processing is a JSP. This JSP will get used
for subsequent render state.
So, prior to a user interaction happens for a page flow, the begin
action will be used to generate the initial view of the portlet.
Note that since the begin action is used for generating the initial
view, and can be called a number of times (like you have noticed), you
should keep it idempotent - that is not make state changes (e.g.
inserting a record in a table). To address the perf concerns, you should
also limit the amount of business logic executed to generate this
initial view.
Hope this explains.
Subbu
Hans-Peter Stoerr wrote:
Hi!
I'm quite confused. When looking for the reason of some performance
problems of our portal, I noticed that the begin action of many
portlets is called several times.
Our portal has a number of portlets containing PageFlows, that are
shown simultaneously. After logging in, the begin actions of each of
these portlets is executed, as I'd expect. But on the next request,
the begin actions of most portlets are executed again, no matter what
a request that is (portlet or not). That happens two, three or four
times, but then it stops, and only the actions that are really
requested by the user are executed. Except of this problem,
everything works as expected.
Of course, that has a performance penalty. How can that happen? I
thought in each portlet an action is executed exactly once after a
request is made that applies to this portlet. In requests that go to
other portlets, I would expect only the JSP of the currently shown
page in this portlet would be re-executed.
Thanks so much,
Hans-Peter St??rr

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

  • Why the multiple selection can't work in sub screen

    hi experts:
         when i try to use the sub-screen in the report,why the multiple selection function(SO_BCTXT) can't work normally in screen 1095:
    the coding as below.will reward points if solve this issue
    the main program in Subscreen:
    PROCESS BEFORE OUTPUT.
    module status_1005.
      CALL SUBSCREEN area INCLUDING sy-repid lv_tab_number.
    PROCESS AFTER INPUT.
      MODULE cancel AT EXIT-COMMAND.
      CALL SUBSCREEN area.
      MODULE user_command_1005.
    module user_command_1005 input.
      my_ok = ok_code.
      clear ok_code.
      case my_ok.
        when 'TAB1'.
          mytabstrip-activetab = my_ok .
          lv_tab_number = 1095.
        when 'TAB2'.
          mytabstrip-activetab = my_ok .
          lv_tab_number = 1096.
        when 'CRET' or 'ONLI'.
          perform get_bc_set
                 using
                    so_chanb[]
                 changing
                    <fs_bcsetfield> .
          leave to screen 0.
      endcase.
    endmodule. 
    in the screen 1095:
    PROCESS BEFORE OUTPUT.
    MODULE %_INIT_PBO_J.
    MODULE %_PBO_REPORT.
    MODULE %_PF_STATUS.
    MODULE %_SO_BCTXT.
    MODULE %_END_OF_PBO.
    PROCESS AFTER INPUT.
    MODULE %_INIT_PAI_J.
    CHAIN.
      FIELD  SO_BCTXT-LOW.
      FIELD  SO_BCTXT-HIGH.
      MODULE %_SO_BCTXT.
    ENDCHAIN.
    FIELD !INCBCTY1 MODULE %_INCBCTY1 .
    FIELD !INCBCTY2 MODULE %_INCBCTY2 .
    FIELD !INCBCTY3 MODULE %_INCBCTY3 .
    FIELD !INCBACT MODULE %_INCBACT .
    FIELD !INCBINAC MODULE %_INCBINAC .
    FIELD !INCLMAND MODULE %_INCLMAND .
    FIELD !INCLOPTI MODULE %_INCLOPTI .
    CHAIN.
      FIELD  SO_BCTXT-LOW.
      FIELD  SO_BCTXT-HIGH.
      FIELD INCBCTY1 .
      FIELD INCBCTY2 .
      FIELD INCBCTY3 .
      FIELD INCBACT .
      FIELD INCBINAC .
      FIELD INCLMAND .
      FIELD INCLOPTI .
      MODULE %_BLOCK_1095001.
    ENDCHAIN.
    CHAIN.
      FIELD  SO_BCTXT-LOW.
      FIELD  SO_BCTXT-HIGH.
      FIELD INCBCTY1 .
      FIELD INCBCTY2 .
      FIELD INCBCTY3 .
      FIELD INCBACT .
      FIELD INCBINAC .
      FIELD INCLMAND .
      FIELD INCLOPTI .
      MODULE %_END_OF_SCREEN.
      MODULE %_OK_CODE_1000.
    ENDCHAIN.
    in the main report
    selection-screen begin of screen 1095 as subscreen.
    enquire Data
    data l_text       type as4text.
    selection-screen begin of block b1 with frame title text-024.
    select-options :
      so_bctxt     for l_text .
    selection-screen skip 1 .
    parameters:
      incbcty1    type c as checkbox default abap_true ,
      incbcty2    type c as checkbox default abap_true ,
      incbcty3    type c as checkbox default abap_true .
    selection-screen skip 1 .
    parameters:
      incbact      type c as checkbox default abap_true ,
      incbinac     type c as checkbox default abap_true .
    selection-screen skip 1 .
    parameters:
      inclmand     type c as checkbox default abap_true ,
      inclopti     type c as checkbox default abap_true .
    selection-screen end of block b1.
    selection-screen end of screen 1095 .

    Hiii
        In main program you have dclared subscreen area.
    now First of all you have to declare a selection screen in your main program
    selection-screen begin of screen 1005 as subscreen.
    SELECT-OPTIONS s_bukrs1 for  v_bukrs.   "whatever you want in selection screen
    selection-screen end of screen 1005.
    IN PBO of your main screen (not in 1005) write
    call subscreen SUB1 including sy-repid '1005'.
    where SUB1 is your subscreen area name. And remember don't touch PBO or PAI of your 1005 screen, otherwise it will give you error. Yuo can just put text in layout of 1005 screen. but don't disturb other things.

  • What is the best way to call a pageflow action from JavaScript?

    What is the best way to call a pageflow action from JavaScript?
    Thanks,
    John

    John,
    How would I do this from a grid??? Unfortunately there are no JavaScript attributes
    on any of the grid tags that I can see.
    Thanks,
    John
    "John H" <[email protected]> wrote:
    >
    Thanks John!
    "John Rohrlich" <[email protected]> wrote:
    John,
    If you want to put up a confirm dialog before calling an action from
    an
    anchor it is done as follows.
    Here is an example from code of mine that deletes a customer order,if
    the
    user confirms the delete. I pass the order id as a parameter.
    - john
    Here is the JavaScript -
    function confirmDelete() {
    if(confirm('Continue with order delete?'))
    return true;
    else
    return false;
    Here is a sample anchor tag -
    <netui:anchor action="requestToDeleteOrder" onClick="return
    confirmDelete(); return false;">
    Delete
    <netui:parameter name="orderId" value="{container.item.orderId}"/>
    </netui:anchor>
    "John H" <[email protected]> wrote in message
    news:402138f5$[email protected]..
    Thanks for the replies. I figured it was going to require buildingmy own
    url
    to call the action. I had hoped there was an easier way to do it.Rich,
    the
    reason I want to do this is because I want to call the JavaScript
    function
    confirm()
    when a user clicks on a link (in a repeater/grid) to drop a record,I only
    want
    to call the drop action if the user confirms the drop. Maybe thereis a
    better
    way to do what I am trying to do??? I really appreciate any help
    you
    guys
    can
    give me on this, I am pretty new to this sort of stuff.
    Thanks,
    John
    "Rich Kucera" <[email protected]> wrote:
    "John H" <[email protected]> wrote:
    What is the best way to call a pageflow action from JavaScript?
    Thanks,
    JohnTry figuring out the URL to the pageflow action, create a hidden
    form
    in the
    page, then use JS to submit the form. Why would you want to though,
    isn't
    the server going to want to send you to the next page?

  • Erratic behavior with multiple calls to the same RFC

    Hi,
    I am running into a strange problem invoking a custom RFC from a .NET application. I would appreciate it if someone has any insight into it.
    The steps to call the RFC are straightforward:
    1. Open the connection to SAP server
    2. Make the call
    3. Close the connection
    As you can imagine, the code is also quite simple. 
    In my simulation program, I have a button on a UI form that one can click and execute the above steps.
    The problem I am running into is that, on multiple calls, sometimes the parameter values that show up on the SAP side are not right. When the input parameter (a structure) is viewed in the ABAP debugger, the field values are all getting exchanged. For example, first name field contains values for the last name. Also, some fields that are supposed to have values do not have any.
    Just before the RFC call is made, when we look at the structures on the .NET side, the field values are the way they are supposed to be.
    I have not been able to establish a pattern. Sometimes, it takes two clicks to reproduce this problem. Sometimes it takes five.
    One of the team members thinks that this starts occurring right after one call fails for some valid reasons. However, I am not yet convinced.
    Having written many custom .NET applications using RFCs an BAPIs, I am fairly conversant with the technology. However, this one just baffles me. It appears something is getting messed up at the RFC layer itself. Does anyone have any idea on what could be happening?
    Thank you in advance for your help.
    Pradeep

    Indeed this is interesting .
    The problem is caused by an incompatible change from .NET Framework 1.1 to 2.0. Howerver, the documentation on the 1.1. API was not clear enough to decide if the incompatible change was adequate or not. Now in detail:
    NCo runtime uses the reflection API Type.GetProperties to read and cache all properties of a Proxy structure. NCo assumes that the order of the returned properties is the same on each call and especially that it is the order of the properties as they appear in source code. This was the behavior in .NET 1.1. It has changed in 2.0, see e.g. the internet forum discussion in http://www.thescripts.com/forum/thread455492.html .
    Calling Type.GetProperty(<PropertyName>) or Type.SetProperty(<PropertyName>)  in your code moves the mentioned properties up in the list returned by Type.GetProperties() later inside of NCo.
    We found the following work-arroud:
    When using late-binding, call a dummy Type.GetProperties()  before any GetProperty or SetProperty.

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

  • Why do we call an ABAP Runtime error a "Short Dump"

    Hi All,
    I was just working on one of the ABAP runtime errors with my technical counterpart and a question came to my mind "Why do we call an ABAP Runtime error a "Short Dump"?".
    I tried asking a few friends of mine working in the technical space in SAP and they were not able to answer.
    So, some one of you experts help me getting answer to this question.
    Thanks in Advance.
    Nitin.

    ABAP Runtime error is a generalized term .......... meaning the error occured while runtime.
    wheare as short dump.
    Short -  means brief.
    dump - error information from the memory
    Short dumps (also called ABAP memory dumps). Short dumps occur when an ABAP program fails.
    Short dumps provide basic information about which program failed and what the error was.
    hope this helps.

  • Set data in page flow begin action?

    Hi,
    I want to set some data in my page flow's begin action, and then access this data in a JSP. In my begin method, I have:
    * @jpf:action
    * @jpf:forward name="index" path="index.jsp"
    protected Forward begin()
    getRequest().setAttribute("foo", "mydata");
    return new Forward("index");
    then, in my index.jsp, I have:
    <netui:label value="{request.foo}" />
    but the JSP is displaying an empty value (i.e., blank).
    Is there something about the page flow begin action such that this can't be done there?
    Thanks,
    Jim

    Hi,
    For my sanity's sake, I tried creating another small test web app in Workshop, and just added code to my begin action. This time, the display of {request.foo} worked.
    So, it looks like there is SOMETHING in my original web app that is causing the data binding to stop working.
    I've been comparing the small test web app to my original web app, and the only thing that is significantly different is at the beginning of the JPF, I have the declaration for a control:
    public class Controller extends PageFlowController
    * @common:control
    * @jc:ManualConfiguration UserIdAttribute="uid" UserBaseDN="dc=whatever,dc=com" Port="389" Host="foo.whatever.com"
    private AccountManager accountManager;
    * @jpf:action
    * @jpf:forward name="index" path="index.jsp"
    protected Forward begin()
    getRequest().setAttribute("foo", "foodata");
    return new Forward("index");
    Would having that control declaration before the begin() method be causing this problem?
    Any other ideas about why this might be happening?
    Thanks,
    Jim

  • Why java is called pure object oriented.

    i know that java is called as pure object oriented language.
    why it is called so even though it has primitive datatypes and also it doesnot support multiple inheritance completely. it only supports in the case of interfaces but not in the case of classes. then why it is called pure object oriented.

    Its because you cannot write an executable java program without creating an object. Well, you can:
    public class a
      public static void main( String a[] )
    }In contrary to C++, there can be no variables or functions in the wild (outside a class).
    You can not create an executable java program without creating a class (but not forcibly its instance, an object.)
    The "pure object oriented" wording in this sense has not really much importance, it is rather a marketing ploy.

  • How populate and execute methods gets called in UserDefined Action Classes?

    In Struts2, if we override methods populate() and execute() , then if we made any request to some Action class which overrides these methods, then how does it look for these 2 methods??
    and why populate() method called first and later execute() method????
    Harishwar
    Edited by: Harishwar_Madhya on Sep 3, 2010 2:47 AM
    Edited by: Harishwar_Madhya on Sep 3, 2010 2:49 AM

    45RPMSoftware wrote:
    Thanks for this. Alas, I do not have the source code used to generate the jar file, and I have no means of getting it. I imagine, therefore, that I will not be able to update the manifest file.The manifest file is just a simple text file.
    You can get at it by unpacking/repacking the jar file with the jar utility (tar like syntax).
    ... I assume that classpath is rather like the unix path.It specifies a list of jar files and directories containing java class files (and more).
    Is there anything that defines the classpath for each login session and, if so, how do I add to it?As the link I posted says;
    you can set a CLASSPATH env.var.

  • Can one Action from Jpf call another method/Action in other jpf   ?

    hi ,
    "can one Action from Jpf call another method/Action in different jpf "
    we can call other jpf's begin from one jpf , but can we call method of other Jpf from different jpf .
    i m getting error when i m trying to do this .
    No module configuration registered for /pageFl
    dule path /pageFlowControllers/Controller)

    hi,
    write
    carmodel(null) in populateCar() action.
    means
    public void onActionpopulateCar(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionpopulateCar(ServerEvent)
         onActioncarmodel(null);
        //@@end
    Regards
    Trilochan

  • Multiple calls to the function

    I have an adf faces table and I have set the "value" to a function in my managed bean to return a List of values.
    public List<SomeObject> getTableData(){
    But my problem is when I select a row in the table multiple calls are made to this function in the bean and data is fetched again and again. Though the table is not refreshed again. I am not able to understand why is this happening?

    Yes. I have implemented a selectionListener. Based on the number of rows selected I am refreshing a button label with that number in that listener.

  • Unable to call the backend action method

    Hi,
    First of all,I would like to let you know that I am not very much familiar with jsf. My problem is as follows:
    I have a jsf page having some input text boxes,one gridview component( Infragistics jsf component) and a submit button. On submit, I am trying to call one managedbean action method. The gridview component has further two columns,one input text box and one h:selectonemenu component.
    When I try to submit the page, it doesn't call the managedbean action method.The gridview component has one attribute called datasource which is basically a list.During debugging, I found that on submitting the page, it goes to getter of datasource.
    One thing I noticed that If I remove the h:selectonemenu from the gridview component, the action method gets called.
    Can any body please suggest me where could be the problem?
    Thank you

    Hi Guys,
    Thanks for your solutions and answers. My problem was solved.
    But again I have similar kind of problem. This time I have h:selectOneRadio component which seems to be causing the problem because if I remove this, the call goes to action method. It's again seems to be conversion or validation error.As suggested,I have tried putting <h:message> for this component but I get a warn message in console like "Unable to find component with ID 'categorylist' in view". I further saw in the html source of the page and indeed found that the id was not there.I have no idea about it,why it's happening.
    I have following code snippet for jsp page:
    <div id="inner_body" style="height: 550px;">
                                  <h:outputText value="#{msg.Manage_MED_CLASS}" styleClass="title" />
                                  <h:messages globalOnly="true" styleClass="error" />
                                  <f:verbatim>
                                       <br />
                                       <br />
                                  </f:verbatim>
                                  <br />
                                  <ig:gridView id="medclassdefnitionlist"
                                       dataSource="#{medClassManagedBean.medClassDefinitions}">
                                       <ig:column>
                                            <f:facet name="header">
                                                 <h:outputText value="Med class definition"></h:outputText>
                                            </f:facet>
                                            <h:outputText value="#{DATA_ROW.medClassDef}"></h:outputText>
                                       </ig:column>
                                       <ig:column>
                                            <f:facet name="header">
                                                 <h:outputText value="Classification(Controlled/Uncontrolled)"></h:outputText>
                                            </f:facet>
                                            <h:selectOneRadio id="categorylist"
                                                 value="#{DATA_ROW.medClassCategory}"
                                                 style="white-space: nowrap">
                                                 <f:selectItem itemLabel="Yes" itemValue="true" id="itemid1"/>
                                                      <f:selectItem itemLabel="No" itemValue="false" id="itemid2"/>
                                            </h:selectOneRadio>
                                            <h:message for="categorylist" styleClass="error"></h:message>
                                       </ig:column>
                                  </ig:gridView>
                                  <f:verbatim>
                                       <br />
                                       <br />
                                  </f:verbatim>
                                  <h:panelGrid columns="2" cellpadding="4" cellspacing="3">
                                       <h:commandButton image="../../../images/btn_save.gif"
                                            accesskey="S"
                                            action="#{medClassManagedBean.saveMedClassDefinition}"
                                            style="outline: none;"></h:commandButton>
                                       <h:commandButton accesskey="C" style="outline: none;"
                                            image="../../../images/btn_cancel.gif"
                                            action="backtoreportinglevel" />
                                  </h:panelGrid>
                             </div>Under ig:gridView component, I have two columns, in the first one h;outputtext is there while in the 2nd one h:selectOneRadio is there. I tried putting immediate="true" in h:commandButton , and then the call goes to the action method. So, it is definitely failing in either validation or conversion phase.
    The following is my java code snippet:
    public ArrayList<MedClassBackingBean> getMedClassDefinitions() {
              try {
                   medClassDefinitions = new ArrayList<MedClassBackingBean>();
                   HttpServletRequest request = (HttpServletRequest) FacesContext
                             .getCurrentInstance().getExternalContext().getRequest();
                   HttpSession session = request.getSession();
                   String hospitalCode = (String) session
                             .getAttribute(Constants.HOS_GLO_EXCLUSION_SESSION_VAR);
                   MedGroupBD medGroupBd = new MedGroupBD();
                   List<Object[]> medClassList = medGroupBd
                             .getMedClassDefinitionsForHospital(hospitalCode);
                   //populateMedClassCategoryList();
                   if (UtilityFunctions.isNotEmpty(medClassList)) {
                        for (Object[] medClass : medClassList) {
                             MedClassBackingBean medClassBackingBean = new MedClassBackingBean();
                             medClassBackingBean.setHospitalCode(hospitalCode);
                             medClassBackingBean.setMedClassDef(medClass[0].toString());
                             if (medClass[1] != null) {
                                  if (medClass[1].toString().equals("Controlled")) {
                                       medClassBackingBean.setMedClassCategory("true");
                                  } else {
                                       medClassBackingBean.setMedClassCategory("false");
                             } else {
                                  medClassBackingBean.setMedClassCategory("false");
                             medClassDefinitions.add(medClassBackingBean);
              } catch (Exception e) {
                   log.error(e.getMessage(), e.getCause());
              return medClassDefinitions;
         }The above code returns the list for the ig:gridView datasource. "medClassCategory" is the property of backing bean which is mapped for the value attribute of h:selectOneRadio component. The managed bean is in the request scope.Right now on submit of form, first the call goes to this method "getMedClassDefinitions" and then I found like call goes to setter of medClassCategory property in the backing bean as well and sets the changed value from the UI but it never goes to the action method.
    Please see if anybody can help me.
    Thank you,
    Edited by: dacsinha on Nov 27, 2009 6:36 AM

  • Trouble handling multiple calls

    Can anyone explain to me why the iphone, after being in production since 2007, still cannot handle multiple calls properly? I am on one call, I take another call (and select put current on hold) and when I am done with the second call, I am locked into HOLD on the original. This is simply the latest in the most aggravating aspect of this phone. It is a phone FIRST and doesn't do multiple call handling well at all! It hasn't for the years I've been using iphones.
    Am I alone in this frustration?

    I have no problems taking the waiting call off hold.
    Reboot.
    Restore.
    Restore as new.
    Test after each step until it works.
    Something is wrong.
    It could be a carrier problem. What carrier are you using?

  • Why when u call apple support they record the call ?

    why when u call apple support they record the call ?

    For training and evaluation. Managers will go back and listen to the calls to evaluate the agent's responses and answers to ensure they are doing a good job and provide corrective training to improve their skills. They may also use selected calls to play them for agents-in-training to provide examples of what to do and what not to do. See where training may be lacking, if they hear multiple agents making the same mistakes.
    Hard to say they record EVERY call, they get a lot of calls every day. That is probably a general notice in case your call is one that is recorded. Personally, I think Apple's recording pretty much a non-issue.

Maybe you are looking for