Adding new view to viewset (BP_DATA to ICCMP_BP_DETAIL)

Hello Experts !
We are on CRM 7.0. I want to add the window IDNumber of component BP_DATA in the component ICCMP_BP_DETAIL.
What are the steps to follow?
I created an "usage" of the component BP_DATA in the component ICCMP_BP_DETAIL. I added the interface view BP_DATA/IdNumberWindow to the usage.
I also created a new view area ('ZIdNumberData') in the viewset ICCMP_BP_DETAIL/BuPaCreateVS. Then, I assign the view of my usage BP_DATA to this new view area.
I enhance the BuPaCreateVS.htm by adding a new line to the code like this:
   <thtmlb:gridCell columnIndex = "1"
                   rowIndex    = "3" >
    <bsp:call comp_id = "<%= controller->GET_VIEWAREA_CONTENT_ID( 'ZIdNumberData' ) %>"
              url     = "<%= controller->GET_VIEWAREA_CONTENT_URL( 'ZIdNumberData' ) %>" />
  </thtmlb:gridCell>
But when I enter the webui it's giving me a DUMP in the view BP_DATA/AccountIDNumberList, the method DO_PREPARE_OUTPUT, because the following reference is initial:
ME->VIEW_GROUP_CONTEXT
The reference ME has the following value:
Does anybody has any suggestions ?
Thank you in advance
M.

Hi,
      Some components are meant to be used with a main component. The view group context is inherited hierarchically from parent components. Coming to your problem, assuming that the BP_DATA/AccountIDNumberList view is already enhanced, redefine the method set_view_group_context method im the IMPL class.
Put in code, something like this..
method SET_VIEW_GROUP_CONTEXT.
  IF iv_parent_context IS BOUND.
    CALL METHOD super->set_view_group_context
      EXPORTING
        iv_parent_context = iv_parent_context
        iv_first_time     = iv_first_time.
  ELSE.
    CREATE OBJECT me->view_group_context
        TYPE cl_bsp_wd_view_group_context.
  ENDIF.
endmethod.
This will clear up the immediate issue, but you will likely face more.
Regards,
Arun Prakash

Similar Messages

  • Adding New View Objects/Link on "Preview and Print" - Order Acknowledgement

    Hi,
    Can we add New View Objects/View Links for the existing "Preview and Print" Order Acknowledgement.
    I want to add for the 2 new functionalities i.e., for Charges (from OE_PRICE_ADJUSTMENTS_V ) and the Line Level Notes, which is currently not supported by Oracle.
    Can anyone help me on acheving this functionality?
    Looking forward for your response.
    Thanks in advance,
    Regards,
    Muru

    You can do that. You should first create the new business objects(AM, VO, VL) in jdeveloper, create your new regions in jdeveloper, associate the AM to the top level region(stackLayout) you create. Use personalization and add a stack layout in the Preview and Print page, set the extends property to point to the new region which you had created. Donot forget to deploy all the files in middle tier before doing the personalization.
    The AM which you had added to the stackLayout will automatically be nested with the root AM of the page during runtime.

  • Getting exception after adding new View attribute in OCO

    Hi,
    I have added a new field in Oracle Customers Online -> Customers -> Accounts Summary page. I had changed the query in the VO and added the view attribute through JDeveloper and created the corresponding VORowImpl java class. I have referred the same View attribute in the page bean also. When i am doing the testing i am getting the exception. Any idea to resolve this issue. I have given the customization details below.
    Page bean: IMCAccountsSummaryEditPG.xml
    Newly added line..
                                            <oa:messageStyledText id="CreditHold" dataType="VARCHAR2" prompt="CreditHold" text="CreditHold" viewName="IMCCustAcoountsVO1" viewAttr="CreditHold" maximumLength="30" sortState="yes" shortDesc="Credit Hold"/>
    VO: IMCCustAcoountsVO.xml
    Refer credit_hold in the query and CreditHold in the view attribute for the newly added column.
    <?xml version="1.0" encoding='windows-1252'?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!-- $Header: IMCCustAcoountsVO.xml 115.6 2005/01/20 23:11:08 kttang noship $ -->
    <ViewObject
    Name="IMCCustAcoountsVO"
    BindingStyle="Oracle"
    CustomQuery="true"
    RowClass="oracle.apps.imc.customer.account.server.IMCCustAcoountsVORowImpl"
    ComponentClass="oracle.apps.imc.customer.account.server.IMCCustAcoountsVOImpl"
    MsgBundleClass="oracle.jbo.common.JboResourceBundle"
    FetchMode="FETCH_AS_NEEDED"
    UseGlueCode="false" >
    <SQLQuery><![CDATA[
    SELECT account_number, account_name , pc.name AS profile_class ,
    rat.name AS payment_terms, TO_CHAR(TRUNC(act.creation_date)) creation_date , lu.meaning AS status, act.status AS theStatus,
    DECODE(1,1,'viewDisabled', 'viewEnabled') credit_summary, act.party_id AS party_id, act.cust_account_id, pt.party_name, 'updateEnabled' update_account
    , lu1.meaning AS credit_hold
    FROM HZ_CUST_ACCOUNTS act, HZ_CUSTOMER_PROFILES cp, HZ_CUST_PROFILE_CLASSES pc,
    ar_lookups lu,
    ar_lookups lu1,
    ra_terms rat, hz_parties pt
    WHERE act.PARTY_ID = :0
    AND act.cust_account_id = cp.cust_account_id
    AND cp.profile_class_id = pc.profile_class_id
    AND cp.SITE_USE_ID IS NULL
    AND cp.standard_terms = rat.term_id (+)
    AND lu.lookup_type= 'CODE_STATUS'
    AND lu.lookup_code = act.status
    AND lu1.lookup_type(+) = 'FOB'
    AND lu1.lookup_code(+) = act.fob_point
    AND act.party_id = pt.party_id
    ]]></SQLQuery>
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="9.0.3.13.75" />
    <Attr Name="_CodeGenFlagNew" Value="36" />
    </DesignTime>
    <ViewAttribute
    Name="AccountNumber"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="30"
    Type="java.lang.String"
    AliasName="ACCOUNT_NUMBER"
    ColumnType="VARCHAR2"
    Expression="ACCOUNT_NUMBER"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="AccountName"
    IsQueriable="false"
    IsPersistent="false"
    Precision="240"
    Type="java.lang.String"
    AliasName="ACCOUNT_NAME"
    ColumnType="VARCHAR2"
    Expression="ACCOUNT_NAME"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="240" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ProfileClass"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="30"
    Type="java.lang.String"
    AliasName="PROFILE_CLASS"
    ColumnType="VARCHAR2"
    Expression="PROFILE_CLASS"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="PaymentTerms"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="15"
    Type="java.lang.String"
    AliasName="PAYMENT_TERMS"
    ColumnType="VARCHAR2"
    Expression="PAYMENT_TERMS"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="15" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="CreationDate"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Type="java.lang.String"
    AliasName="CREATION_DATE"
    ColumnType="VARCHAR2"
    Expression="CREATION_DATE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="Status"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="80"
    Type="java.lang.String"
    AliasName="STATUS"
    ColumnType="VARCHAR2"
    Expression="STATUS"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="80" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="Thestatus"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="1"
    Type="java.lang.String"
    AliasName="THESTATUS"
    ColumnType="VARCHAR2"
    Expression="THESTATUS"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="1" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="CreditSummary"
    IsQueriable="false"
    IsPersistent="false"
    Precision="22"
    Type="java.lang.String"
    AliasName="CREDIT_SUMMARY"
    ColumnType="VARCHAR2"
    Expression="CREDIT_SUMMARY"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="PartyId"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PARTY_ID"
    ColumnType="VARCHAR2"
    Expression="PARTY_ID"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="CustAccountId"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="CUST_ACCOUNT_ID"
    ColumnType="VARCHAR2"
    Expression="CUST_ACCOUNT_ID"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="PartyName"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="360"
    Type="java.lang.String"
    AliasName="PARTY_NAME"
    ColumnType="VARCHAR2"
    Expression="PARTY_NAME"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="360" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="UpdateAccount"
    IsPersistent="false"
    Precision="13"
    Type="java.lang.String"
    AliasName="UPDATE_ACCOUNT"
    ColumnType="VARCHAR2"
    Expression="UPDATE_ACCOUNT"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="13" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="CreditHold"
    IsPersistent="false"
    Precision="255"
    Type="java.lang.String"
    AliasName="CREDIT_HOLD"
    ColumnType="VARCHAR2"
    Expression="CREDIT_HOLD"
    SQLType="VARCHAR" >
    </ViewAttribute>
    </ViewObject>
    Exception:
    oracle.apps.fnd.framework.OAException: Programming error. Row ([email protected]3) must be of type oracle.apps.fnd.framework.OARow.
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1223)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2898)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
         at oa_html._OA._jspService(_OA.java:105)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    oracle.apps.fnd.framework.OAException: Programming error. Row ([email protected]3) must be of type oracle.apps.fnd.framework.OARow.
         at oracle.apps.fnd.framework.webui.OADictionaryDataViewObject.getItem(OADictionaryDataViewObject.java:97)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer._renderTableRows(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderTableRows(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderTableContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.TableRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.apps.fnd.framework.webui.beans.table.OATableBean.render(OATableBean.java:635)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.RowLayoutRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.oracle.desktop.HeaderRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer._renderTableContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.oracle.desktop.PageLayoutRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.render(OABodyBean.java:398)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.partial.PartialPageUtils.renderPartialPage(Unknown Source)
         at oracle.apps.fnd.framework.webui.OAPageBean.render(OAPageBean.java:3209)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2888)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
         at oa_html._OA._jspService(_OA.java:105)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:534)
    oracle.apps.fnd.framework.OAException: Programming error. Row ([email protected]3) must be of type oracle.apps.fnd.framework.OARow.
         at oracle.apps.fnd.framework.webui.OADictionaryDataViewObject.getItem(OADictionaryDataViewObject.java:97)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer._renderTableRows(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderTableRows(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderTableContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.TableRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.apps.fnd.framework.webui.beans.table.OATableBean.render(OATableBean.java:635)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.RowLayoutRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.oracle.desktop.HeaderRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer._renderTableContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
         at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.oracle.desktop.PageLayoutRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.render(OABodyBean.java:398)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
         at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
         at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.BaseUINode.render(Unknown Source)
         at oracle.cabo.ui.partial.PartialPageUtils.renderPartialPage(Unknown Source)
         at oracle.apps.fnd.framework.webui.OAPageBean.render(OAPageBean.java:3209)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2888)
         at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
         at oa_html._OA._jspService(_OA.java:105)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:534)
    Let me know if you need more details.
    Thanks in Advance
    Regards,
    Kesavan

    First this is not the right way to do it. You should extend the VO and create a new vo and add the new attribute, then use personalization to add a new item, create substitution to represent the old VO with your new VO. Did you follow these steps to do the extension ?

  • Trouble adding new view to tab bar

    Hello All,
    I am trying to build a first Tab Bar Application through Interface Builder. I created a stock Tab Bar application using XCode but I am having trouble replacing the views with different ones (mine).
    For example, I have created a new view called PostView from XCode with just a simple label. I then went to Interface Builder, clicked on the second tab, and go to Tools->Attribute Inspector and change the NIB name from SecondView to my new PostView.
    However, when I run this, it crashes when I click on the the second tab with the following error in GDB:
    2008-06-30 23:22:26.623 TG2[5855:20b] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController loadView] loaded the "PostView" nib but no view was set.'
    I can't for the life of me figure out where I should be loading or setting this view as SecondView doesn't seem to be programmatically loaded anywhere and I can't seem to find any other reference to it in IB.
    I'm sure this is noob easy -- any ideas?
    Many thanks in advance,
    Tim

    First of all, click on File's Owner in the PostView.xib window. In the inspector window (it's on the right by default--if you don't see it, press Cmd-Shift-I), click the "i" button to display the Identity pane. There should be a drop down box labeled "Class". Is the class set to your controller class? If not, adjust it so it is.
    Next, click the blue circle with the white arrow. This will bring up the Connections pane. Look at the line that says "view". Is it connected to anything? (If it is, the name of the object it's connected to will appear next to it, with an "x" to undo the connection.)
    If not, hold down the circle to the far right of "view", then drag to the "View" icon in the PostView.xib window. (I'm assuming you haven't renamed the view.) A box should appear around the icon if it's the right type for that outlet. Now let go, and Interface Builder will establish the connection.
    Save, then go back to Xcode and build and run your project. Did that fix the problem?

  • Tutorial or more detailed steps on adding new views, flipside, etc?

    I have a working app and would like to add a flipside view, and maybe another view with some docs.
    I know there are examples of code already containing extra views, and there is the Xcode "Utility" skeleton one could start from.
    But just staring at those examples, where everything is already in place, is not really helping me understand "how do I add extra views to an already existing app?" Sometimes just looking at the entirety doesn't real fill in the blanks on how they got there...
    Does anybody know of of a step-by-step tutorial or more detailed docs that specify the exact steps needed to add a view, along with the necessary control elements to switch into that view and back again?
    Thanks...
    doug

    I don't know of anything that fits what you are asking, but basically you need to insert a parent of your existing view. That parent will then be used to add the new view with the animation. So if you have a HomeViewController, you will need to insert a FlipViewController that loads and displays HomeViewController.view as a subview. Then create the new SettingsViewController and when you want to display it, remove HomeViewController.view from FlipViewController and add SettingsViewController as a subview of FlipViewController. Do that with the animation settings you see in the examples. Hope that helps.

  • Problem with creating new view and binding it wht existing ViewSet/viewArea

    Hi All,
    I created a new view.
    Now I am trying to dynamically change the veiw in ViewArea : product of ViewSet : BupaMainViewSet .
    I added my new view in the views for viewarea : "product".
    Now I wanted to get this new view based on some button clicks on view BupaSearchB2B.
    If search Account button is clicked my new View has to appeared. Othewise the standard view in the Product view area shud appear.
    I dont know how to do.
    Your response will be highly appreciated with your reward points.
    kindly assist me on this.
    Thanks,
    SR.

    Hi,
    You can find detailed information at the following link:
    <a href="https://portal.wdf.sap.corphttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/go/km/docs/corporate_portal/ws%20service%20%26%20support/product%20support/workspace_public/product%20support%20knowledge%20base/crm/crm-ic/crm-ic/icwc_cbk_crm50_290306.pdf">https://portal.wdf.sap.corphttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/go/km/docs/corporate_portal/ws%20service%20%26%20support/product%20support/workspace_public/product%20support%20knowledge%20base/crm/crm-ic/crm-ic/icwc_cbk_crm50_290306.pdf</a>
    Please reward points if helpful
    Best regards
    Reyes

  • Adding a new view in Account Identification

    We have a requirement to add a new view beside Installed Base| Object.
    I maintained entries in Object Component and Ac Identification Profile.
    While navigating to the new view there is an exception.
    Cannot display view CRMCMP_BPIDENT/ObjectCompVs of UI Component CRMCMP_BPIDENT
    An exception has occurred Exception Class  CX_BSP_WD_INCORRECT_IMPLEMENT - Window 'dynObjCompMainWin' is not defined in the component 'ICCMP_BP_DETAIL' 
    Method:  CL_BSP_WD_COMPONENT_USAGE=>GET_INTERFACE_VIEW_CONTR 
    Source Text Row:  28
    When I investigated this further I found out that standard SAP expects the window name 'dynObjCompMainWin', however when we enhance the component and add a new window, the generated name is 'ZICCMP_BP_DETL/dynObjCompMainWin (default)' and hence it fails.
    Has anyone faced this or knows a workaround?
    This is a crucial requirement, your help is appreciated.

    Hello,
              Guess you might have resolved this issue but incase you didn't go to runtime repository and click on the XML source code  and then  change the Window name to ' dynObjCompMainWin' it will resolve the issue.
    I was facing the same issue and I changed the window name in the XML source code it worked for me.
    Edited by: reddyp_p on Jan 25, 2012 4:15 PM

  • Reg: Adding a new view

    Hi,
    Are there ay steps to follow to add a new view
    Sam

    Hi Carol,
    Thanks for the solution. I want to use a standard componenent tat is available in componenet workbenh. So as you said i should start with creating a view in the componenet. So If i am creating a new zview in the componenet will it impact the componenet. Will i be getting this new view at all places where the componenet is being used?
    I am actually trying to create a new view using a standard component and show iton CRM_UI_FRAME.
    The actual location where I want to create the new view is
    CRM_UI_FRAME/BSPWDApplication---->CRM_UI_FRAME/MainWindow-------->
    CRM_UI_FRAME/WorkAreaViewSet---------->BSPWD_BASICS/WorkAreaHostViewSet-----
    ------> InrWindow------>ICCMP_BT_INR/InrViewSet------->ICCMP_BT_INR/InrHeaderViewSet-
    -->MainWindow
    Sam

  • Error when Adding a new view

    When I try to add a new view, selecting my model class, I get an error, "There was an error running the selected code generator: 'There was an error getting the type 'mycontextname.Models.mymodelname'. Try rebuilding the project.'"  I rebuilt
    the project and everything rebuilt successfully, but I still get the error.  Any suggestions?  I can manually create a view, but would like Visual Studio to do it for me :-)  I am using Visual Studio 2013 and using MVC 5.

    Hi Angela4,
    For ASP.NET questions, please post in
    ASP.NET forums where you could get more help.
    Thanks for your understanding.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Creation of new view in ICWC

    Hi All,
    I have created the new view in my custom CRM_IC. Can I know what is the next step to do in order for the new view to show in ICWC - what is the inbound or outbound plug all about?
    Appreciate if someone can list me all the steps. Thanks

    Objective
    Calling a custom Simple View for the follow-up activity. Whenever, we click the link of a follow-up activity from the activity clipboard, the system leads us to “Simple Activity” view, where we can maintain the description and the status.
    Note
    This is just a guideline document to work with customer specific view sets for one case. While following this procedure for other cases, we may need to do further enhancements.
    A.     Primary Steps
    Create Custom Package “Z_CONS_COOK1”
    Create BSP application “Z_CRM_IC1” under package “Z_CONS_COOK1”.
    B.     Creating View Sets & Controllers
    1.     Through workbench transaction, Create New View Set: SimpleActivitySet
    2.     Specify view area name “main”.
    3.     All Controller & Model Classes are generated in the background.
    4.     Redefine method “GET_STATE_DESCRIPTION” of Controller Class “ZL_Z_CRM_IC_SIMPLEACTIVIT_IMPL” & populate with following source code:
    METHOD IF_BSP_WD_HISTORY_STATE_DESCR~GET_STATE_DESCRIPTION.
    *CALL METHOD SUPER->IF_BSP_WD_HISTORY_STATE_DESCR~GET_STATE_DESCRIPTION
    EXPORTING
       IV_CURRENT_DESCRIPTION =
    RECEIVING
       DESCRIPTION            =
        DESCRIPTION = TEXT-001.     " 'Simple Activity'
    ENDMETHOD.
    5.     Corresponding BSP Page is generated with the following code:
    %@page language="abap"%
    <%@ extension name="htmlb" prefix="htmlb"%>
    <%@ extension name="xhtmlb" prefix="xhtmlb"%>
    <%@ extension name="crm_bsp_ic" prefix="crmic"%>
    <%@ extension name="bsp" prefix="bsp"%>
    <crmic:gridLayout cellSpacing="1" columnSize="1" height="100%"
    rowSize="1" width="100%">
    <crmic:gridLayoutCell colSpan="1" columnIndex="1"
    rowIndex="1" rowSpan="1">
                <bsp:call  comp_id="<%=controller->GET_VIEWAREA_CONTENT_ID( 'main' )%>"
    url="<%=controller->GET_VIEWAREA_CONTENT_URL( 'main' )%>"/>
                </crmic:gridLayoutCell>
    </crmic:gridLayout>
    6.     Activate all objects
    C.     Creating Views & Controllers
    1.     Create View using IC Web Client Workbench transaction. Give view name “SimpleActivity”.
    In the wizard enter our view name, and specify all model nodes, model attributes and links to custom controllers.
    Add Model Nodes:
    Model Nodes          BOL Entity     High-level model node    BOL Relation
    GT_BTORDER     BTOrder                         
    GR_BTADMINH     BTAdminH     GT_BTORDER          BTOrderHeader
    GR_BTSTATUS     BTStatusH     GR_BTADMINH          BTHeaderStatusSet
    GR_BTSTATUSH     BTStatus     GR_BTSTATUS          BTStatusHCurrent
    Four nodes are the pointers to the similarly named BOL entities of the focus object. The focus object will be the Activity that the user clicked in the Activity Clipboard. Whenever this happens, an instance method of the controller is called. Method “IP_INBOUNDPLUGID” retrieves the BOL entities from the global memory and places them into these attributes. They can also be seen as buffers since they are used in multiple locations within the controller class.
         Value node: Optional entry, keep it blank.
    Add Model Attributes:
    Model Attribute     Model Node          BOL Attribute
    DESCRIPTION     GR_BTADMINH     DESCRIPTION
    STATUS          GR_BTSTATUSH     STATUS
    Create Links to Custom Controller
    Context node:          GT_BTORDER
    BSP Application:     CRM_IC
    Custom Controller:     CuCoBDC.do
    Context node (Custom Controller):     CURRENTINTERACTIONRECORD
    Select View Type
    Type: Form View
    2.     Restart the IC Web Client Workbench. We will observe, controller class is generated with methods. If we want to enhance these methods we should redefine them in the corresponding *_IMPL class.
    3.     Define the Inbound Plug.
    This is the method that is called by the framework whenever we navigate to our view set. Define method “IP_INBOUNDPLUGID” and populate with following code:
    Following attributes added to the controller class, as it was showing an error message:
    GR_BTORDER      TYPE REF TO     CL_CRM_BOL_ENTITY
    GR_BTADMINH     TYPE REF TO     CL_CRM_BOL_ENTITY
    GR_BTSTATUSH     TYPE REF TO     CL_CRM_BOL_ENTITY
    GR_BTSTATUS     TYPE REF TO     CL_CRM_BOL_ENTITY
    METHOD IP_INBOUNDPLUGID.
    data: lr_bdc     type ref to cl_crm_ic_cucobdc_impl,
          lr_btorder type ref to if_bol_bo_property_access.
    *- Read Parameter
      lr_bdc ?= get_custom_controller( 'CuCoBDC' ).
      CALL METHOD lr_bdc->get_navigation_data
      IMPORTING
        ev_selected_object = lr_btorder.
    *- Read Model
    IF lr_btorder IS BOUND.
        TRY.
           gr_btorder  ?= lr_btorder.
           gr_btadminh  = gr_btorder->get_related_entity(
                          iv_relation_name = 'BTOrderHeader' ).
           gr_btstatush = gr_btadminh->get_related_entity(
                          iv_relation_name = 'BTHeaderStatusSet' ).
           IF gr_btstatush IS NOT BOUND.
              gr_btstatush = gr_btadminh->create_related_entity(
                          iv_relation_name = 'BTHeaderStatusSet' ).
           ENDIF.
           gr_btstatus = gr_btstatush->get_related_entity(
                          iv_relation_name = 'BTStatusHCurrent' ).
           IF gr_btstatush IS NOT BOUND.
              gr_btstatush = gr_btstatush->create_related_entity(
                          iv_relation_name = 'BTStatusHCurrent' ).
           ENDIF.
           CATCH cx_root.
        ENDTRY.
    ENDIF.
    ENDMETHOD.
    4.     Confirm View Layout “SimpleActivity” consistency.
    5.     Two methods are responsible for the data transfer between the model/controller and the view and are created automatically by the wizard.
    SET_MODELLS -- Sends data to the view (PBO)
    DO_HANDLE_DATA -- Retrieves data from the HTTP request fields (PAI)
    We can redefine these methods for further enhancements.
    D.     Adjusting IC Web Client Framework
    After having defined the views, controllers and classes, we need to hook them up to the runtime profile of IC Web Client.
    STEPS:
    1.     To prepare IC Web Client framework for custom-built view-sets, create a new runtime profile BSP application in the customer namespace.
    Create BSP application “Z_CRM_IC_RT_REP” under package “Z_CONS_COOK1”.
    Copy the file CRM_IC.xml from the BSP application CRM_IC_RT_REP to “Z_CRM_IC_RT_REP”.
    2.     Adjust the contents of file “CRM_IC.xml”, as under:
    <%@page language="abap"%><?xml version="1.0"?>
    <WebDynProDefinitions>
        <Application id="CRM_IC">
            <ViewSets>
    <%@include file="../Z_CRM_IC_DT_REP/CRM_IC_All_Viewsets.xml" %>
            </ViewSets>
            <NavigationalLinks>
    <%@include file="../Z_CRM_IC_DT_REP/CRM_IC_All_NavLinks.xml" %>
            </NavigationalLinks>
        </Application>
    </WebDynProDefinitions>
    3.     Create BSP application Z_CRM_IC_DT_REP in package Z_CONS_COOK1.
    4.     Copy page fragment CRM_IC_All_Viewsets.xml of BSP application CRM_IC_DT_REP to Z_CRM_IC_DT_REP and replace the file contents with the following lines:
    Page fragment: CRM_IC_All_Viewsets.xml
    <%@page language="abap"%>
    <%@include file="MainViewSet.xml" %>
    <%@include file="../CRM_IC_DT_REP/BuPaViewSet.xml" %>
    <%@include file="../CRM_IC_DT_REP/CRM_IC_All_Viewsets_wo_BUPA_and_Main.xml" %>
    This definition still works with all standard view sets, but replaces the MainViewSet.xml with our own definition, since it is now loaded from Z_CRM_IC_DT_REP.
    5.     Copy page fragment MainViewSet.xml from BSP application CRM_IC_DT_REP to Z_CRM_IC_DT_REP.
    6.     Copy page fragment CRM_IC_All_NavLinks.xml of BSP application CRM_IC_DT_REP to Z_CRM_IC_DT_REP and replace the file contents with the following line:
    <%@page language="abap" %>
    <%@ include file="../CRM_IC_DT_REP/CRM_IC_All_NavLinks.xml" %>
    This definition makes sure that standard navigational links still work and that we are able to add our own link definitions later.
    7.     Activate all objects.
    8.     Customize the IC Web Client Runtime Framework Profile in such a way that the new Source file is used with the following sample code:
    Navigation: SPRO &#61664; CRM &#61664; Interaction Center Web Client &#61664; Customer-Specific System Modifications &#61664; Define IC Web Client Runtime Framework Profiles.
    Provide new profile name “ZCUST_PROF” & populate it with following set of attributes:
    Profile name:      ZCUST_PROF
    Component Set:      ALL
    Separate Display Model: Off
    Application:      IC_BASE
    Viewset name:     workViewSet
    Runtime Rep.Type: BSP Application
    Application:          Z_CRM_IC_RT_REP
    Page:          CRM_IC.XML
    E.     Creating View Definitions for Design Time Repositories
    1.     Every new view set must be defined in Design Time Repository. For this purpose, create page fragment SimpleActivitySet.xml in BSP application Z_CRM_IC_DT_REP and maintain it as shown in the following sample code:
    Page fragment “SimpleActivitySet.xml”
    <%@page language="abap"%>
    <ViewSet id="Z_CRM_IC1 /SimpleActivitySet">
    <ViewArea id="main" views="Z_CRM_IC1 /SimpleActivity"/>
    </ViewSet>
    2.     Include file “SimpleActivitySet.xml" into page CRM_IC_All_Viewsets.xml of BSP application Z_CRM_IC_DT_REP.
    Page “CRM_IC_All_Viewsets.xml” after modification:
    <%@page language="abap"%>
    <%@include file="MainViewSet.xml" %>
    <%@include file="../CRM_IC_DT_REP/BuPaViewSet.xml" %>
    <%@include file="../CRM_IC_DT_REP/CRM_IC_All_Viewsets_wo_BUPA_and_Main.xml" %>
    <%@ include file="SimpleActivitySet.xml" %>
    3.     Activate all objects.
    F.     Creating Navigational Link Definitions for Design Time Repositories
    To provide a navigational link for the activity clipboard, define this link.
    1.     Create Page fragment “SimpleActivityNavLinks.xml” in BSP Application “Z_CRM_IC_DT_REP” and maintain layout with following code:
    <NavigationalLink name="SimpleActivity">
    <Source viewRef="IRecActivitiesClipboard"
    outboundPlugRef="default"/>
                   <Targets>
    <Target viewRef=" Z_CRM_IC1/SimpleActivity"
    inboundPlugRef="inboundplugid"/>
    </Targets>
    </NavigationalLink>
    2.     Similar to the view definition, also the Navigational Link must be included into the framework.
    Add the following line
    <%@ include file="SimpleActivityNavLinks.xml" %>  to the file
    CRM_IC_ALL_NavLinks.xml in the BSP application “Z_CRM_IC_DT_REP”.
    Page fragment “CRM_IC_All_NavLinks.xml” – source code
    <%@page language="abap" %>
    <%@ include file="../CRM_IC_DT_REP/CRM_IC_All_NavLinks.xml" %>
    <%@ include file="SimpleActivityNavLinks.xml" %>
    3.     Activate all objects.
    G.     Placing View Sets into Controller Hierarchies
    1.     Adjust the file MainViewSet.xml in BSP application Z_CRM_IC_DT_REP.
    Add the reference to our view set and activate the file as shown in the following sample code:
              Page fragment: MainViewSet.xml
    <%@page language="abap"%>
    <ViewSet id="IC_BASE/ICAPPMainViewSet">
         <ViewArea id="navigationArea" views="IC_BASE/navigationViewSet"/>
         <ViewArea id="workArea" views="IC_BASE/workViewSet"/>
         <ViewArea id="contextArea" views="IC_BASE/contextAreaView"/>
         <ViewArea id="breadCrumbsArea" views="IC_BASE/BreadCrumbsView"/>
         <ViewArea id="globalSearchArea" views="HistoryView"/>
         <ViewArea id="helpArea" views="Help"/>
           <ViewArea id="statusArea" views="StatusView"/>
         <ViewArea id="errorArea" views="IC_BASE/ErrorViewSet"/>
    </ViewSet>
    <ViewSet id="IC_BASE/navigationViewSet">
         <ViewArea id="navigationViewSetArea" views="IC_BASE/NavBarView"/>
    </ViewSet>
    <ViewSet id="IC_BASE/workViewSet">
         <ViewArea id="workViewSetArea"
                     views="<%@include file="../CRM_IC_DT_REP/StdWorkareaOccupation.xml" %>
                     Z_CRM_IC1/SimpleActivitySet "/>
    </ViewSet>
    H.     Customize Activity Clipboard
    To make activity clipboard call our new view set, change it’s customizing.
    1.     Create Activity Clipboard profile called “ZCUST_PROF”.
    Navigation: SPRO &#61664; CRM &#61664; IC Web Client &#61664; Basic Functions &#61664; Define Activity Clipboard Profiles.
    Profile name: ZCUST_PROF (copy all entries)
    Keep Technical Profile name: DEFAULT
    2.     Assign this profile to IC Web Client profile.
    3.     Create a new entry for the object BTOrder and wrapped object type BUS2000126 by copying the existing entry BTORDERBUS2000126.
    Activity Clipboard Entry ID: ZBTORDERBUS2000126
    BOL Type: BTOrder
    NavigationLink: SimpleActivity
    4.     Go back to your profile and select Assign Entries to Profile. Replace the original Entry ID BTORDERBUS2000126  with your new entry ZBTORDERBUS2000126.
    5.     Activate your changes and test the IC WebClient (application CRM_IC)

  • Creation of new view by copying existing view in IC WebClient (BSP)

    Hi,
    we need to add a new view which will be a copy of existing view in IC web Client application. I ve created the new view & a controller for it(kepping the controller class same as that of old view).
    I have also created a new Id in the viewset runtime framework for the new view. Added this new ID in the viewset, but in the presentation layer it keeps on displaying the old view twice.
    Is there anything that I m missing out on???
    Pls help
    Thanks & regards,
    Deven

    Hi Deven,
        I think you have to create a new controller class for the new view, even if you don't want to change anything. Because in the attributes(attribute name - VIEW) of controller class you have to maintain view name.
    Hope this will help you.
    Thanks
    Swagatika

  • Adding a view in a component of BSP application

    Hi All,
    I want to create new component for a BSP and add a view to it.
    my scenario is : I have a problem in creating a pop-up view whenever a button in a WEB UI is clicked.
    I have added a button in the items tab of sales order creation(in WEB UI),so when that button is clicked a pop-up view has to be generated.
    the view i am creating is a ineractive view where the user can enter some data and press a button in the pop-up window so that the data is copied in the items tab.
    the pop-up contains a table grid where the user can enter the data and press the button in pop-up window.
    so could you please let me know how to create this type of pop-up window.
    Regarding this some one has send me a solution of creating a new component with a new view.but unfortunately i am not able to create a view because it is asking for nodes and BOL entity.
    so could you all provide me some input inorder to create the component and view.
    Thanks
    Tanveer

    Hi Tanveer,
    I have done the Similar Case.
    By now I hope you have Created a New Component.
    Ensure the Following Points before you Proceed.
    1. Create a Window/View Set and View.
    2. As you are saying yours is Table View while Creating View Specify it as Value Node and assign Corresponding Attributes to the Value Node.
    3. Specify Type of View is Table Type.
    4. Now in Runtime Repository Add the Created Window.
    5. Now add the Created ViewSet and View to the Window and Save.
    6. Create a New Interface View which is ( Window Name ) in Runtime Repository.
    7. Add Component Usage in Runtime Repository.( In Source Component where Button is Present )
        a. Give ID and Interface View for the Component Usage and give Used Component
            Name. If View is created in same component then give same name other wise
             Give another component name.
    8. After create View/Window/Component Interface/Component Usage Now to get the
       Table View in Popup Screen
       Modify the Standard Code similar to the Table View in HTML Page.
       For Reference:
    <chtmlb:tableExtension tableId = "Table"
                           layout  = "FIXED" >
      <chtmlb:configTable id              = "Table"
                          navigationMode  = "BYPAGE"
                          onRowSelection  = "select"
                          selectedRowIndex      = "<%= CONTEXTNODE->SELECTED_INDEX %>"
                          selectedRowIndexTable = "<%= CONTEXTNODE->->SELECTION_TAB %>"
                          selectionMode         = "<%= CONTEXTNODE->->SELECTION_MODE %>"
                          table           = "//CONTEXTNODE->/Table"
                          usage           = "SEARCHRESULT"
                          visibleRowCount = "10"
                          width           = "100%"
                          showNoMatchText = "FALSE"
    />
    </chtmlb:tableExtension>
    CONTEXTNODE is the Context Node in View.
    Now to get the Values in the Table View when popup gets displayed.
    Go to the Newly Created View and add Code to populate Values in Table View
    Method CL_BSP_WD_CONTEXT_NODE_TV - > IF_BSP_MODEL~INIT.
    Now,to Call the Created View as a popup from the New Component when Buton is Clicked
    Use the Following Code in the Event of Button Click.
    DATA: lr_popup TYPE REF TO if_bsp_wd_popup.
      IF lr_popup IS NOT BOUND.
        lr_popup = me->comp_controller->window_manager->create_popup( )
        (Specify Parameters Interface View,Component Usage and Title for Window in the above Method._
        lr_popup->set_display_mode( if_bsp_wd_popup=>c_display_mode_surrounded ).
      ENDIF.
    Set the callback event on the imported controller ( Specify Event Name which needs to get Triggered when Popup is Closed.)
      lr_popup->set_on_close_event( iv_event_name = "EVENT_NAME"
                                           iv_view = me ).
    *Set the width of the popup
      CALL METHOD lr_popup->set_window_width
        EXPORTING
          iv_width = 500.
    *Open the popup
      lr_popup->open( ).
    This will help in Getting a View as a Popup when Button is Clicked.

  • How to create new view in WebUI for Product

    Hello,
    We want to create a new view (Z) based on the fields of the BOL object and show it in the WebUI. Is there any step by step explanation how to do it?
    Thanks in advance,
    Sergey Kozyrev

    Hi Sijo,
    The following would be the steps to integrate a z component to a std component:
    1. Create the view that you would like to integrate with the standard component in a separate z component and design its configuration
    2. Add the view in the Component Interface of runtime repository editor. Executing the z component directly must display the view without any errors
    3. In the standard component, add the z component in Component Usage of runtime repository editor
    4. In the standard component, add the custom component view in Viewsets->Viewarea->View (overview page view) of runtime repository editor
    5. Now the view would be there in the available views of the overview page. Move it to the list of visible view on the right side
    6. Execute the std component through Web UI and the view should appear
    7. Make sure the Web UI uses the same role config key as that of the overview page in which you have added the view

  • TableSorter errors when adding new data

    so here is the deal:
    I am using the TableSorter.java helper class with DefaultTableModel
    from: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
    It works great when the data is static and I get it for the first time. however, occationally, when adding new data I get a NullPointerException error.
    in use:
    DefaultTableModel.addRow()
    DefaultTableModel.removeRow() and
    DefaultTableModel.insertRow() methods.
    Error:
    java.lang.ArrayIndexOutOfBoundsException: 5
         at com.shared.model.TableSorter.modelIndex(TableSorter.java:294)
         at com.shared.model.TableSorter.getValueAt(TableSorter.java:340)
         at javax.swing.JTable.getValueAt(Unknown Source)
         at javax.swing.JTable.prepareRenderer(Unknown Source)...
    code problem I:
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        }code problem II:
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        }TableSroter class:
    package com.shared.model;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    * TableSorter is a decorator for TableModels; adding sorting
    * functionality to a supplied TableModel. TableSorter does
    * not store or copy the data in its TableModel; instead it maintains
    * a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col))
    * they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way,
    * the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model,
    * just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then
    * passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's
    * rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the
    * setTableHeader() method or the two argument constructor, the
    * table header may be used as a complete UI for TableSorter.
    * The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition,
    * a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns
    * and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
    * NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns
    * and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
    * that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound
    * sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that
    * first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    public class TableSorter extends AbstractTableModel
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        public TableSorter()
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel)
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader)
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState()
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel()
            return tableModel;
        public void setTableModel(TableModel tableModel)
            if (this.tableModel != null)
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null)
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader()
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader)
            if (this.tableHeader != null)
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer)
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null)
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer())
        public boolean isSorting()
            return sortingColumns.size() != 0;
        private Directive getDirective(int column)
            for (int i = 0; i < sortingColumns.size(); i++)
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column)
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column)
            return getDirective(column).direction;
        private void sortingStatusChanged()
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null)
                tableHeader.repaint();
        public void setSortingStatus(int column, int status)
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE)
                sortingColumns.remove(directive);
            if (status != NOT_SORTED)
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size)
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE)
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting()
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator)
            if (comparator == null)
                columnComparators.remove(type);
            else
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column)
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null)
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType))
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel()
            if (viewToModel == null)
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++)
                    viewToModel[row] = new Row(row);
                if (isSorting())
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        private int[] getModelToView()
            if (modelToView == null)
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++)
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount()
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount()
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column)
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column)
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column)
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column)
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable
            private int modelIndex;
            public Row(int index)
                this.modelIndex = index;
            public int compareTo(Object o)
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();)
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null)
                        comparison = 0;
                    } else if (o1 == null)
                        comparison = -1;
                    } else if (o2 == null)
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0)
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener
            public void tableChanged(TableModelEvent e)
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting())
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW)
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null)
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter
            public void mouseClicked(MouseEvent e)
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1)
                    int status = getSortingStatus(column);
                    if (!e.isControlDown())
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority)
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y)
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth()
                return size;
            public int getIconHeight()
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer)
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column)
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive
            private int column;
            private int direction;
            public Directive(int column, int direction)
                this.column = column;
                this.direction = direction;
    }any input will be appreciated.
    thanks
    Peter

    The code you posted doesn't help us at all. Its just a duplicate of the code from the tutorial. The custom code is what you have written. For example do you update the TableModel from the Event Thread? Do you update the SortModel or the DefaultTableModel? If you actually provide your test code and somebody has already downloaded the sort classes, then maybe they will test your code against the classes. But I doubt if people will download the sort classes and create a test program just to see if they can duplicate your results (at least I know I'm not about to).

  • Inserting a new view  in place of already existed once

    Hai folks,
    In Ic Webclient on crm 5.0 system i got an issue
    In <b>identify customer</b> View set
    i have removed the view of <b>regestered product</b>
    and want to insert a  view <b>bupaLongTexts</b> there(in that deleted area)
    I am able to remove the view by removing the view name in the navigation links
    in <b>BuPaViewsets</b> in a customized design time repository zcrm_ic_dt_rep
    of a   customized   Run.Time. repository zcrm_ic_rt_rep.
    but For inserting a new view..
    I am getting fault .
    I inserted the view in the navigation link flow in Product (view area content id)..
    and copied customized view <b>BuPaIdentifycustomer</b>  and adjusted the code for a new viewset vision.
    I took care of  profile settings too.
    Is there any thing to  take care.. and what is this <b>view area content id.</b>
    Please reply this..Its my urgent requirement.
    Useful answers are rewarded..
    Bye..
    satish

    Hi Sathish,
    Instead of doing so much thing why dont u just go to spro->crm-icwc->customerspecificmodifications and just replace the existing view with the new view of ur application.
    thanks,
    ashish.

Maybe you are looking for

  • RoboHelp 9 Won't Generate a Word Document

    I'm trying to get RoboHelp 9 to generate a Word Document. It won't genterate and throws out the following message in output view: Preparing to create Printed Documentation... Clearing output folder... Preparing files for Print Document... Copying fil

  • Convert WMV to a video format for iPod?

    Hello, I have a WMV recording of a Microsoft Live Meeting event. It is 1.5 hours in length, about 31MB and 4 fps. I need to convert it to a video format that can be played on a video iPod. When I try to export as MP4 from Premiere Pro CS4, the file s

  • LMS 3.2 and RME NetConfig Job - No Devices

    I'm runnig CW LMS 3.2 on Solaris 10. If I go to Resource Management Essentials, click on NetConfig, and then select "create" as in "create a NetConfig job", it takes me to the Netconfig Jobs screen. On this screen, I check  "select all devices ", but

  • JMS properties in ALSB

    Hello, I've used ALSB 3.0. I created a proxy ans a business service that send JMS to a MQ queue, then i have a java application that listen the MQ to get the JMS. When i set one of the JMS properties in the test, i don't find this one when i'm listen

  • MUltiple Speaker Option

    I am trying to fix a problem in streaming internet radio through an air port express device to my stereo system and have encountered dropouts in the music. I was told to,"Set Air Tunes to the multiple speaker option and include the computer". How is