How to refresh a  region using Active Data Service

Hi,
I need to refresh the region using ADS.
I am creating jsff which contains dynamic tables rendering. This jsff is bound to a task flow (having input parameter and refresh property set to "ifNeeded). The bounded task flow is dropped on a jspx as a region.
Now in order to refresh the region, I need to pass the updated param value, which would cause the region refresh.
I am able to do so on a button click from jspx page. But I have to make it auto refresh using ADS as per app requirement.
The issue is "AdfFacesContext.getCurrentInstance return null..if I am using it in startActive Data or changeData Update (where I am using ActiveDataUpdateEvent)".
Please guide me how can I achieve this.
I am using Jdev 11.1.1.4.
Thanks.
Edited by: 977455 on Jan 3, 2013 7:35 PM

Hi,
try a variation of this blog entry: http://matthiaswessendorf.wordpress.com/2010/01/22/flexible-active-data-service/
Instead of showing a popup, you do the following
1. set clientComponent=true for the hidden field
2. configured the PartialTrigger property of the region to point to the hidden component
If this doesn't work then try this
1. use <af:clientListener type="propertyChange" method="activeDataCallback" /> as used in the sample
2. define an af:serverListener that points to a managed bean that has access to the region (RichRegion) instance
3. The af:serverListener needs to be defined as a child of the outputText
4. change "activeDataCallback" to queue the server listener event (CustomEvent)
5. Use the managed bean to refresh the region
Frank

Similar Messages

  • How to auto scroll a table to last row when using Active Data Service?  11g

    Hi all,
    Has anyone got any experience with the ADF Active Data Service?
    I am using an af:table in combination with the ADF Active Data Service and I want the table to scroll to the latest row when new data arrives.
    It is basically a simple setup:
    The value attribute of my table points to a bean that extends CollectionModel and implements ActiveDataModel. This works perfectly. A soon as I receive new data in my bean, the table is automatically updated (e.g. a new row is inserted). I use JDev version: 11.1.1.3
    The problem is that I can not get the scroll bar to move down to the last row automatically when new data arrives. The auto scroll only works for the client that actually performs a submit. In other words the person that submits the new data, will see his scrollbar move down, this is because I added the following code:
    RowKeySet rowkeysset = chatTableBinding.getSelectedRowKeys();
    rowkeysset.clear();
    rowkeysset.add(getRowKey());
    AdfFacesContext.getCurrentInstance().addPartialTarget(this.chatTableBinding);
    This does not work for the clients that receive the new data via the Active data model. Apparently the active data service partially refreshes the table, but not in such a way that it sets the selected row to the last row?
    My table definition:
    <af:table value="#{pageFlowScope.chatBean.instantMessagingChatwindowBean}" var="row"
    id="t1" columnStretching="last" rows="10"
    styleClass="AFStretchWidth" autoHeightRows="10" contentDelivery="immediate"
    horizontalGridVisible="false"
    verticalGridVisible="false"
    disableColumnReordering="true" displayRow="last"
    rowSelection="single"
    binding="#{pageFlowScope.chatBean.instantMessagingChatwindowBean.chatTableBinding}"
    inlineStyle="height:80px;">
    p.s.
    The table is used to show incoming chat message.
    I am building a chat client (taskflow) in a Webcenter application. The concept is similar of that presented by Lucas Jellemain in his blogpost on building a Google Talk Client http://www.oracle.com/technetwork/articles/jellema-googletalk-094343.html

    Dan,
    This is a thanks for posting your findings. You saved me quite some time.
    <af:selectBooleanCheckbox id="showOnlyActiveSubscriptions" selected="true"
    label="Show only active services:"
    value="#{servicePortfolioBean.showOnlyActiveSubscriptions}"
    autoSubmit="true" />
    <af:table binding="#{servicePortfolioBean.serviceTable}" ...
    partialTriggers="showOnlyActiveSubscriptions">
    Of course, when I add a "ValueChangeListener" to the selectBooleanCheckbox, the PPR stops working. :( I wonder why?

  • Active data services

    hey,
    I'm using active data services to update a table component with the use of database change notifications. I've been able to display the changes in the database as they take place. The problem is that the newly inserted data will be added at the end of the table and if I want to add it at the beginning or in some other place it would be difficult to change the HashMap (will reduce the performance) to include the new row data (I will have to push the values in the hashmap and add the new at the beginning so that it will be displayed at the beginning of the table).
    So the basic question is how can I do it more efficiently?
    Is it possible to use some other data structure where it will be possible to add the data to a position which will automatically push the other values?
    Edited by: mangun on Nov 19, 2009 5:05 PM

    Hi,
    not sure about the AP you use, in JDeveloper 11g R1 PS1 (11.1.1.2) we provide a proxy framework for this, which has a method
    * builds the <code>ActiveDataUpdateEvent</code>.
    * @param type the change type of the event, could be UPDATE, INSERT,
    * DELETE, REFRESH, etc
    * @param changeCount the changeCount
    * @param key the key of the row (in the CollectionModel case)
    * @param insertKey the key to indicate the insert position
    * @param genericConversion param passed to the internal call of
    * <code>convertKeyPath</code>
    * @param names the names of the attributes to be changed
    * @param values the values of the attributes to be changed
    * @return the ActiveDataUpdateEvent
    public static ActiveDataUpdateEvent buildActiveDataUpdateEvent(
    ActiveDataEntry.ChangeType type,
    int changeCount,
    Object[] key,
    Object[] insertKey,
    String[] names,
    Object[] values)
    The insertKey can be used to specific the key of the row where the new row should be inserted. I did not work with the API set prior to JDeveloper 11g R1 PS1, so all I can say is that if it works with the procy then it works with the manual API as well
    See:
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/adv_ads.htm#ADFFD19611
    Frank

  • How to configure Enterprise Manager in Active Data Guard?

    Hi,
    I have installed oracle 11g r2 rac with asm in two nodes. OS is hp-Unix.
    I have installed oracle11g Active Data Guard using Single alone Database.
    Both RAc and Active Data Guard works fine.
    I have not configure Data Guard Broker.
    Question: How to configure Enterprise Manager in Active Data Guard?
    Thanks
    Solaiman

    http://www.gokhanatil.com/2012/04/manage-your-existing-data-guards-with.html

  • How to create DB partitioning in active data tables for ods?

    hi all,
    Can anyone let me know how to create DB partitioning in active data tables for ods. if any docs pls share with me at my email id : [email protected]
    regds
    haritha

    Haritha,
    The following steps will briefly explain you to improve the performance in terms of DB partitioning as well as loading. Please find the same,
    transaction RSCUSTA2,
    oss note 120253 565725 670208
    and remove 'bex reporting' setting in ods if that ods not used for reporting.
    hope this helps.
    565725
    Symptom
    This note contains recommendations for improving the load performance of ODS objects in Business Information Warehouse Release 3.0B and 3.1 Content.
    Other terms
    Business Information Warehouse, ODS object, BW, RSCUSTA2, RSADMINA
    Solution
    To obtain a good load performance for ODS objects, we recommend that you note the following:
    1. Activating data in the ODS object
    In the Implementation Guide in the BW Customizing, you can implement different settings under Business Information Warehouse -> General BW settings -> Settings for the ODS object that will improve performance when you activate data in the ODS object.
    1. Creating SIDs
    The creation of SIDs is time-consuming and may be avoided in the following cases:
    a) You should not set the indicator for BEx Reporting if you are only using the ODS object as a data store.Otherwise, SIDs are created for all new characteristic values by setting this indicator.
    b) If you are using line items (for example, document number, time stamp and so on) as characteristics in the ODS object, you should mark these as 'Attribute only' in the characteristics maintenance.
    SIDs are created at the same time if parallel activation is activated (see above).They are then created using the same number of parallel processes as those set for the activation. However:if you specify a server group or a special server in the Customizing, these specifications only apply to activation and not the creation of SIDs.The creation of SIDs runs on the application server on which the batch job is also running.
    1. DB partitioning on the table for active data (technical name:
    The process of deleting data from the ODS object may be accelerated by partitioning on the database level.Select the characteristic after which you want deletion to occur as a partitioning criterion.For more details on partitioning database tables, see the database documentation (DBMS CD).Partitioning is supported with the following databases:Oracle, DB2/390, Informix.
    1. Indexing
    Selection criteria should be used for queries on ODS objects.The existing primary index is used if the key fields are specified.As a result, the characteristic that is accessed more frequently should be left justified.If the key fields are only partially specified in the selection criteria (recognizable in the SQL trace), the query runtime may be optimized by creating additional indexes.You can create these secondary indexes in the ODS object maintenance.
    1. Loading unique data records
    If you only load unique data records (that is, data records with a one-time key combination) into the ODS object, the load performance will improve if you set the 'Unique data record' indicator in the ODS object maintenance.
    Hope this helps..
    ****Assign Points****
    Thanks,
    Gattu

  • How to refresh table display using slis and 'reuse_alv_grid_display method.

    hello,
    how to refresh table display using slis and 'reuse_alv_grid_display method'.
    when i'm refreshing table display it performs once again reuse_alv_grid_display.and when i back the previous value appear.how to solve it?
    neon

    are you chaning any value in the gird if so use this..
    Pass the user_command form name to the Import parameter
    I_CALL_BACK_USERCOMMAND .
    and have the Dynamic form implementation..
    FORM user_command USING ucomm TYPE sy-ucomm
                selfield TYPE slis_selfield.
    "The below is important for Editable Grid.
      DATA: gd_repid LIKE sy-repid, "Exists
      ref_grid TYPE REF TO cl_gui_alv_grid.
      IF ref_grid IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            e_grid = ref_grid.
      ENDIF.
      IF NOT ref_grid IS INITIAL.
        CALL METHOD ref_grid->check_changed_data .
      ENDIF.
      CASE ucomm.
        WHEN 'REFRSH'.
      ENDCASE.
           selfield-refresh = 'X'.
    ENDFORM.                    "user_command

  • What are the pros and cons using Active Data Guard vs Data Guard?

    My understanding is that Active Data Guard is an additional database option for Oracle 11gR2 Enterprise Edition. I need to know the pros and cons using Active Data Guard vs Data Guard in order to decide whether to get pay extra for the Active Data Guard.
    Thanks for any help.

    Hemant K Chitale wrote:
    Before jumping in to Active Data Guard, one needs to evaluate :
    a. Is there really a need to run queries on the Standby ? The Standby could / should be at a remote site so queries are "across the network". Depending on the nature of the queries and the volume of output, the "performance" of the queries may not seem to be the same.
    b. If the database is not in Maximum Protection mode, the data "seen" at the standby may not be in "real-time" synch
    c. Not all applications are truely read-only when querying. Some applications use "jobs" that write to tables when querying. Such would not work with Active DataGuard. (example : EBusiness Suite). There are very complicated ways of handling this -- and one needs to consider if the complications can be introduced and supported.
    Over the network accessing standby read only is really not an good idea, I think no one will compare performance with primary and standby,
    But some of them they want to validate data which are very critical, as it is matching with primary or not, Its an added advantage with ACTIVE DATAGUARD
    Prior to that until unless stop MRP, open database and then we need to validate, So there is an interruption of recovery, I can say its also an advantage where there is no interruption of recovery.

  • Active Data Service DataUpdateManager is NULL

    Hello,
    I have two pages that make use of the ADF Active Data Service, and sporadically when one of the pages loads it abruptly refreshes itself and loads again. I haven't been able to reproduce this on demand, but when it happens its very distracting, and the following information is logged:
    <LongPollingChannelHandler> <handleError> Active Data Service DataUpdateManager is NULL
    <RichExceptionHandler> <_logUnhandledException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RESTORE_VIEW 1
    oracle.adfinternal.view.faces.activedata.IllegalActiveDataStateException: ADF_FACES-60078:Forcing the client to reload the page, because component with ID: pt1:r1:0:pt1:aot1 was not registered for Active Data.
         at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager._startActiveData(PageDataUpdateManager.java:562)
         at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager.startActiveData(PageDataUpdateManager.java:541)
         at oracle.adfinternal.view.faces.context.RichPhaseListener$StartStopADSContextCallback.invokeContextCallback(RichPhaseListener.java:740)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1735)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:222)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:161)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnNamingContainerComponent(UIXComponentBase.java:1693)
         at oracle.adf.view.rich.component.fragment.UIXRegion.invokeOnComponent(UIXRegion.java:625)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:222)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:161)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1627)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1750)
         at org.apache.myfaces.trinidad.component.UIXDocument.invokeOnComponent(UIXDocument.java:106)
         at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:1321)
         at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:678)
         at oracle.adfinternal.view.faces.context.RichPhaseListener.handleStartAndStopActiveData(RichPhaseListener.java:452)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:487)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:202)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at com.sps.regression.servlet.ApplicationSessionExpiryFilter.doFilter(ApplicationSessionExpiryFilter.java:55)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #1
    I haven't been able to find any useful information online about what causes this error or how to correct it.
    Additionally, sometimes a backing bean used in each of these task flows is constructed twice, and the following is logged in between the constructions:
    <RichWindowManager> <updateCurrentWindowIdForPartialRequest> No window specified in request
    <SessionDataUpdateManager> <__getPageDataUpdateManager> cannot register active data when window has no name
    Neither of these things happen 100% of the time. Has anyone else experienced either of these issues?
    Thanks,
    Evan Gilbert

    Hi Evan,
    Did you find out what was the cause of the issue ? We have the exact same problem and was looking for a solution. Please let me know if you have found any pointers.
    thanks,
    Jaseer

  • ADF BC and the Active Data Service

    hi
    The OFM Fusion Developer's Guide for Oracle ADF 11g Release 1 (B31974-05) has a section "42 Using the Active Data Service"
    at http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/adv_ads.htm
    that says "... If you want your components to update based on events passed into ADF Business Components, then you need to use the Active Data Proxy. ..."
    but it does not seem to explain how to use ADF BC and the Active Data Service.
    I have been able to create this example application ...
    http://www.consideringred.com/files/oracle/2010/ActiveDataServiceADFBCApp-v0.01.zip
    ... that does not have a af:poll component (but has moved polling into a managed bean).
      <managed-bean>
        <managed-bean-name>sumSalBean</managed-bean-name>
        <managed-bean-class>activedataserviceadfbcapp.view.SumSalBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
          <property-name>empSumSalVO</property-name>
          <value>#{data.activedataserviceadfbcapp_view_sumSalPagePageDef.SumSal.viewObject}</value>
        </managed-property>
      </managed-bean>This is some code in the SumSalBean class:
    package activedataserviceadfbcapp.view;
    // also based on code found in "ADF’s Active Data Service and scalar data (like activeOutputText)" by Matthias Wessendorf
    // at http://matthiaswessendorf.wordpress.com/2010/01/07/adf%E2%80%99s-active-data-service-and-scalar-data-like-activeoutputtext/
    public class SumSalBean
         extends BaseActiveDataModel
         protected static final String SUM_SAL_NAME = "sumSal";
         protected final AtomicInteger fCurrentChangeCount = new AtomicInteger(0);
         protected long fActiveDataUpdateEventTime;
         protected EmpSumSalVO fEmpSumSalVO = null;
         @PostConstruct
         public void setupActiveData()
              ActiveModelContext vActiveModelContext =
                   ActiveModelContext.getActiveModelContext();
              Object[] vKeyPath = new String[0];
              vActiveModelContext.addActiveModelInfo(this, vKeyPath, SUM_SAL_NAME);
              ScheduledExecutorService vSEService = Executors.newScheduledThreadPool(1);
              vSEService.scheduleAtFixedRate(new Runnable()
                        public void run()
                             if (hasDataChanged())
                                  triggerActiveDataUpdateEvent();
                   3, // let's wait some seconds
                   2, // period between the updates
                   TimeUnit.SECONDS);
         public void triggerActiveDataUpdateEvent()
              setActiveDataUpdateEventTime(System.currentTimeMillis());
              incrementCurrentChangeCount();
              ActiveDataUpdateEvent vEvent =
                   ActiveDataEventUtil.buildActiveDataUpdateEvent(
                        ActiveDataEntry.ChangeType.UPDATE,
                        getCurrentChangeCount(), new String[0], null,
                        new String[] { SUM_SAL_NAME },
                        new Object[] { getSumSal() });
              fireActiveDataUpdate(vEvent);
         public String getSumSal()
              EmpSumSalVO vEmpSumSalVO = getEmpSumSalVO();
              return "" + vEmpSumSalVO.getFirstSumSal();
         protected void startActiveData(Collection<Object> rowKeys,
              int startChangeCount)
         protected void stopActiveData(Collection<Object> rowKeys)
         public int getCurrentChangeCount()
              return fCurrentChangeCount.get();
         protected boolean hasDataChanged()
              EmpSumSalVO vEmpSumSalVO = getEmpSumSalVO();
              return vEmpSumSalVO.hasDataChanged(getActiveDataUpdateEventTime());
         public void setEmpSumSalVO(EmpSumSalVO pEmpSumSalVO)
              fEmpSumSalVO = pEmpSumSalVO;
    }How all this behaves a runtime can be seen in this screencast
    at http://www.screentoaster.com/watch/stUEpQSkxIR19aSV9YW1NRVF9W/activedataserviceadfbcapp_v0_01_zip_demo
    I would welcome comments on how the example application in ActiveDataServiceADFBCApp-v0.01.zip can be improved, or references to information on how this should be done properly.
    question
    (q1) Where can I find some example code that does use ADF BC and the Active Data Service?
    many thanks
    Jan Vervecken

    Jan,
    ADF BC does not natively support ADF yet. Its planned for a next release. The only Data Control that out of the box support ADS is BAM. To use ADF BC with e.g. databae change notifications you
    - create a shared AM
    - Configure the VO to respond to database changes (check box)
    - Configure the database to broadcast changes
    - Use an af:poll component for the refresh because the update would be on the model layer only
    So what is in the documentation is a doc bug. In the current releae you can use ADS best with a POJO model (that you use directly for dashboard use cases). You can though use a POJO data control, but this at the current stage would just act as a pass through for the data access.
    See example 156 on http://blogs.oracle.com/smuenchadf/examples/ for how to do it with ADF BC
    Frank
    Ps.: Of course, the plan is to make everything working out of the box with no developer action required.
    Edited by: Frank Nimphius on Feb 12, 2010 6:56 AM
    Re-read your post. Maybe I need to revise my comment. Are you accessing AM directly or via the ADF layer. If the latter - I did not yet look at your sample - then this may work if you don't release the AM module you access directly (may not scale well)

  • BAM Vs Active Data Services

    Hi,
    In our application, we want to achieve dynamic real-time refresh on a table .But we don't want to see any analytics. Which is the better option -BAM /Active Data Services.
    Does usage of Active Data Services guarentee 100% real-time refresh if we set attribute ChangeEventPolicy ='push'.
    Please let us know if anyone has come across any prior investigation done by any other team on this. Any pointers would be appreciated.
    Thanks,
    Angeline

    Hi,
    not sure about the AP you use, in JDeveloper 11g R1 PS1 (11.1.1.2) we provide a proxy framework for this, which has a method
    * builds the <code>ActiveDataUpdateEvent</code>.
    * @param type the change type of the event, could be UPDATE, INSERT,
    * DELETE, REFRESH, etc
    * @param changeCount the changeCount
    * @param key the key of the row (in the CollectionModel case)
    * @param insertKey the key to indicate the insert position
    * @param genericConversion param passed to the internal call of
    * <code>convertKeyPath</code>
    * @param names the names of the attributes to be changed
    * @param values the values of the attributes to be changed
    * @return the ActiveDataUpdateEvent
    public static ActiveDataUpdateEvent buildActiveDataUpdateEvent(
    ActiveDataEntry.ChangeType type,
    int changeCount,
    Object[] key,
    Object[] insertKey,
    String[] names,
    Object[] values)
    The insertKey can be used to specific the key of the row where the new row should be inserted. I did not work with the API set prior to JDeveloper 11g R1 PS1, so all I can say is that if it works with the procy then it works with the manual API as well
    See:
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/adv_ads.htm#ADFFD19611
    Frank

  • Looking for Active Data Service samples with RDBMS change notification fire

    Hi,
    I am looking for samples/examples of Active Data Service when a server side event, like RDBMS change notification got triggered.
    The ADS samples that I found so far are:
    - Twitter http://www.oracle.com/technetwork/developer-tools/jdev/learnmore/65-activedataservicestwittersample-191314.pdf
    - http://adfwithejb.blogspot.com/2012/12/active-data-service-with-active-image.html
    - http://adfwithejb.blogspot.com/2012/12/active-data-serivce-with-data.html
    But these samples do not demonstrate how RDBMS change notification got triggered got triggered. The last two samples have a Runnable class that simulate the triggering, and the Twitter example is twitter stream notification.
    Please shed some lights on Active Data Service with RDBMS change notification got triggered.
    Thanks
    -Mina

    Hi Mina,
    Check this 2 resources, first a presentation made at OOW by Lucas Jellema: http://www.slideshare.net/lucasjellema/push-to-the-limit-rich-and-proactive-user-interfaces-with-adf-oracle-open-world-2011
    second an interesting forum thread around the the topic: ADF BC and the Active Data Service using af:table from what I know this is still valid as of today.
    After reviewing the topic there is also one more link that address this topic:
    http://technology.amis.nl/2012/06/18/notifying-adf-applications-of-database-changes-fast-and-lean-using-database-query-result-change-notification-part-one/?utm_source=rss&utm_medium=rss&utm_campaign=notifying-adf-applications-of-database-changes-fast-and-lean-using-database-query-result-change-notification-part-one
    Thanks,
    JC
    Edited by: Juan Camilo Ruiz on Jan 9, 2013 2:57 PM

  • Extracting Data from SAP ERP using BODI/Data Services 4.0

    HI,
    I am trying to extract data from SAP ERP via SAP extractors using BODI/Data Services 4.0.
    I do not have my own ERP system so I am renting remote access from one of the many available on the internet.
    I am able to connect BODI to the ERP system and import the extractors metadata.
    The problem I am experiencing is that when I run job to extract the data I get the following error:
    Vendor-supplied function module <Z_AW_RFC_READ_EXTRACTOR> not found. Ensure that you can execute the function module in SAP via transaction /nSE37.
    How do I create the function? Or is the function a SAP standard function?
    SAP ERP system being used is: ECC6 EHP4
    User has SAP FULL and DEVELOPER authorizations.
    Any assistance would be appreciated.

    You might have better luck in the (somewhat misnamed) [Data Integration and Data Quality Management|Data Services and Data Quality; forum:
    This forum is dedicated to topics related to SAP BusinessObjects Data Services (Data Integrator, Data Quality Management, Text Data Processing), SAP BusinessObjects Information Steward (Metadata Management, Data Insight), SAP BusinessObjects Rapid Marts and SAP BusinessObjects Data Federator.
    (emphasis added)
    Regards,
    Sean

  • How to trigger a workflow using generic object services?

    Hi Experts,
    Let me know on how to trigger a workflow using generic object services.
    My requirement is to trigger the FI document reversal document using Object services.
    Any info or docs relevant to this, please share with me..
    Thanks,
    Dinesh.

    Dinesh,
    First of you need to check if the transaction has a BO (in released status) published to use the GOS.
    These are the pre-requisites for GOS
    http://help.sap.com/saphelp_46c/helpdata/en/94/aa532cddd511d289860000e8216438/content.htm
    Once done.. check that you have valid workflow linkages active for this BO.
    Now when you click on the 'start workflow' the system will show all relevant workflows for the BO to choose from and to start.

  • Why would I need to use LiveCycle Data Services in a Flex app?

    I cannot figure out what additional functionality is provided by using LiveCycle Data Services in my Flex apps.  I cannot get a clear understanding of how using LiveCycle Data Services would benefit my applications.  Does someone out there use LiveCycle Data Services?  If so, what do you do with it in Flex?
    Thanks!

    - data push for publish/subscribe implementations
    User has to do nothing to get updated information. You push it to their machine when new data is available, like Yahoo finance updated quotes.
    - data paging
    You don't want to display one million rows in your datagrid at once. Get a batch of data, if the user scrolls down, get the next batch, etc.
    - server side clustering
    One server does not get overloaded. High traffic sites have their large number of concurrent connections managed more efficiently.
    - JMS services
    JMS is a powerful technology for messaging throughout an application, and LCDS makes it much easier.
    - RTMP tunneling
    Allows the use of the RTMP protocol in LiveCycle Data Services applications. Makes it easier to traverse firewalls and proxies appropriately that currently prevent direct RTMP client connections to the server.
    If this post answered your question or helped, please mark it as such.

  • Using PHP Data Services to create an object and accessing that objects data in an unbound way in AS

    Hello,
    I've been able to use the php data services and bind the results of a function to a component. However I am having a hard time figuring out the syntax to use the data services to create an object out of the results, and then use that object as an array of filenames to provide the current index of the filename to a new sound object.
    My problem is obviously in not being able to figure out the specific syntax, I have declared the service and and object of the services returned type and in the creationComplete() function I have assigned object.token = service.getData();
    I've tried various ways of then pulling that data out of the object, with no success.
    Can someone point me in the right direction?
    This code probably looks horrible because it doesn't work yet.
    - Joel
                import flash.media.Sound;
                import flash.media.SoundChannel;
                import mx.controls.Alert;
                var playing:Sound = new Sound();
                var channel:SoundChannel = new SoundChannel();
                var sndIndex:int=0;
                var skpTr:String;
                public function init():void{
                 mp3Array.token = mp3service.getData();
                 currentTrack(mp3Array.lastResult.filename); 
                     trace(mp3Array.lastResult.filename[sndIndex]);
                public function currentTrack(t:String):void{
                    playing = new Sound();
                    playing.load(new URLRequest("mp3/" +t));
                public function skip():void{
                    stop();
                    if (sndIndex != mp3Array.lastResult.length-1){
                        sndIndex++;
                        var skipTr:String=mp3Array.lastResult.filename[sndIndex].data;
                        currentTrack(skipTr);
                        play();
                    } else {
                        sndIndex=0;
                        skipTr=mp3Array.lastResult.filename[sndIndex].data;
                        currentTrack(skipTr);
                        play();
                public function stop():void{
                    channel.stop();
                public function play():void{
                    channel = playing.play();
        <fx:Declarations>
            <s:CallResponder id="mp3Array"/>
            <mp3services:Mp3Service id="mp3service" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>

    Hello Joel;
    In retrieving your data - what is your php returning to FB, an object, object array, an array?  Either way, I have a brief example below that an object(s) is being returned.  Pull the data from the lastResult in a ResultEvent.  The object instantiated in the resultEvent will contain your data and you can do what you want from there. 
    Also, I always use Network Monitor to see what data (if any) is being returned from the server, you can also see how it is being sent back.
    John
    private function init():void
         mp3Array.token = mp3service.getData();
         mp3Array.addEventListener(FaultEvent.FAULT, faultHandler);
         mp3Array.addEventListener(ResultEvent.RESULT, mp3Array_resultHandler);
    protected function faultHandler(event:FaultEvent):void
         Alert.show("There was a fault error!" + event.message, "Fault Error", Alert.OK);
    protected function mp3Array_resultHandler(event:ResultEvent):void
         // Not sure if your service is sending back an object or an array or ?
        var info:Object = mp3Array.lastResult;
         doSomeFunction(info)
    protected function doSomeFunction(data:Object):void
         trace(info.filename);

Maybe you are looking for

  • How to put date&time into a variable from a database?

    In an Oracle table, myDateColumn is 2002-06-25 17:40:55. I can't put it into a variable. java.text.SimpleDateFormat dF=new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); rs=stmt.executeQuery("select myDateColumn from myTable"); rs.next() System.o

  • Performance Issue related to SAP EP

    Hi All, Performance wise, I would like to know which one is better SAP EP or SAP GUI? Also how good is SAP EP for handling Large Scale Data Entry Transactions and Printing Jobs.

  • How to install X-Fi Autio Panel etc?

    Hello Until recently I used windows XP, and after a clean install, I installed the updated XP audio driver from creative site, then the programs (Console Launcher, Audio Panel, THX options and whatelse I chose from the list). However, now I use windo

  • User timeout sap me 5.2

    Hello. I have a tiny issue, but it is not a problem. When I logon to a site and stay idle for sometime and i try to open resources or admin pods or any of the links in sap me, it wont work. As it turns out after some time of idling I'm being logged o

  • Syncing Ical

    Can somebody please tell me a way to move Ical entries on my laptop running 10.3 to my desktop running 10.4 and vice versa? Apparently, Ical is the only application that cannot sync through .Mac between different operation systems. Thanks, Sande