Using a registered object outside a UnitOfWork

We are constructing a multi-tiered application using TopLink 4.6. The Model and Controller are in different JARs but are part of the same EAR. Data objects mapped in TopLink are sent by the Model to the Controller. The Controller may modify these objects locally, and send them back to the Model for persisting.
When the Controller makes a request for a data object to the Model, the Model does the following -
1. Gets the object from the TopLink cache through a query
2. Gets a UnitOfWork
3. Registers the object with the UnitOfWork to get the clone
4. Releases the UnitOfWork
5. Returns the clone to the Controller
I am registering the object with a UnitOfWork, even though I am not modifying it in that UnitOfWork.
I have to do this because the object model is very complicated. The Controller needs access to the root object, and also all of its nested parts. Using this technique, I retain the benefit of Indirection. The other option is to use a ObjectCopyingPolicy, but that is expensive as the Model is forced to do a cascadeAll copy. Also, I cannot send back the original object returned by the query because this object comes from the cache, and the Controller could end up modifying it, thus causing possible data inconsistency.
After the Controller sends back the modified object, the Model now does the following -
1. Check the incoming object and perform business validations
2. Get a UnitOfWork
3. Do a deepMergeClone on the UnitOfWork to save the object.
4. Commit or release the UnitOfWork
This seems to work without any problems. Will this have any other repercussions? The object is initially obtained through a different UnitOfWork, and is saved using a different UnitOfWork.
Is there a better way of handling this situation?
Thanks

Hi,
The key here is that the object is cloned (copied) and the clone (copy) is returned to the client.
The client then makes the changes to the copy (the original is still in the session cache and has not changed)
When the object is register, TopLink does a look-up, using the copy Object, in the session to find the original object, it then makes a clone of the original object.
You now have three copies of the same object. The Original Object (no changes), the clone of the Original Object (no changes yet), and the copy Object (with client changes).
The next step merges the Original Object Clone (without changes) and the copy Object Clone (with changes).
Now your system has two copies, The Original Object (no changes) and the clone Object (with changes).
Now on commit, TopLink compares the Original with the Clone and updates the DB.
Raanan.

Similar Messages

  • Using a Circle object which has been created outside a Group

    Hi all!
    I have one trouble:
    I create a Circle object outside a Group object.
    I trying to use th Circle in the Group and I have got compilation error.
    It's my code:
    * testfx.fx
    * Created on 24.03.2009, 21:19:00
    package testfx;
    import javafx.scene.effect.*;
    import javafx.scene.paint.*;
    import javafx.scene.shape.*;
    import javafx.scene.*;
    import javafx.scene.text.*;
    import javafx.scene.control.*;
    import javafx.scene.transform.*;
    import javafx.stage.Stage;
    var MyCircle : Circle = Circle{
        centerX: 200
        centerY: 200
        radius: 15
        fill: Color.BLUE
    function run(){
        Stage {
            title: "Button"
            width:400
            height:400
            scene: Scene{
                fill: Color.BLACK
                content:[
                    Group{
                        content:[
                            Rectangle{
                                x: 125
                                y: 175
                                width: 150
                                height: 50
                                arcHeight: 5
                                arcWidth: 5
                                stroke: Color.GRAY
                                fill: LinearGradient{
                                    startX: 0.0
                                    startY: 0.0
                                    endX: 0.0
                                    endY: 1.0
                                    proportional: true
                                    stops:[
                                        Stop{offset: 0.0 color: Color.WHITE},
                                        Stop{offset: 1.0 color: Color.BLACK}
                            MyCircle                           <------- (SIC!)    
                        effect: Reflection{
                            fraction: 1.0
                            topOffset: 3
                            topOpacity: 0.8
                            bottomOpacity: 0.2
    }My error:
    Note: The following error is an internal error in the OpenJFX compiler (1.1.0).
    Please file a bug at the Openjfx-compiler issues home (https://openjfx-compiler.dev.java.net/Issues) after checking for duplicates. Include the following diagnostic in your report and, if possible, the source code which triggered this problem. Thank you.
    Where is my mistake here?
    I'm sorry for my English, I have not enough knowledge in it at the moment.
    //Best regards!
    //Alexander

    Try this:
    package testfx;
    import javafx.scene.effect.*;
    import javafx.scene.paint.*;
    import javafx.scene.shape.*;
    import javafx.scene.*;
    import javafx.stage.Stage;
    var myCircle : Circle = Circle{
    centerX: 200
    centerY: 200
    radius: 15
    fill: Color.BLUE
    Stage {
    title: "Button"
    width:400
    height:400
    scene: Scene{
    fill: Color.BLACK
    content:[
    Group{
    content:[
    Rectangle{
    x: 125
    y: 175
    width: 150
    height: 50
    arcHeight: 5
    arcWidth: 5
    stroke: Color.GRAY
    fill: LinearGradient{
    startX: 0.0
    startY: 0.0
    endX: 0.0
    endY: 1.0
    proportional: true
    stops:[
    Stop{offset: 0.0 color: Color.WHITE},
    Stop{offset: 1.0 color: Color.BLACK}
    myCircle
    effect: Reflection{
    fraction: 1.0
    topOffset: 3
    topOpacity: 0.8
    bottomOpacity: 0.2
    By the way, you could define the Circle inline, like this:
    package testfx;
    import javafx.scene.effect.*;
    import javafx.scene.paint.*;
    import javafx.scene.shape.*;
    import javafx.scene.*;
    import javafx.stage.Stage;
    Stage {
    title: "Button"
    width:400
    height:400
    scene: Scene{
    fill: Color.BLACK
    content:[
    Group{
    content:[
    Rectangle{
    x: 125
    y: 175
    width: 150
    height: 50
    arcHeight: 5
    arcWidth: 5
    stroke: Color.GRAY
    fill: LinearGradient{
    startX: 0.0
    startY: 0.0
    endX: 0.0
    endY: 1.0
    proportional: true
    stops: [
    Stop{
    offset: 0.0
    color: Color.WHITE
    Stop{
    offset: 1.0
    color: Color.BLACK
    Circle{
    centerX: 200
    centerY: 200
    radius: 15
    fill: Color.BLUE
    effect: Reflection{
    fraction: 1.0
    topOffset: 3
    topOpacity: 0.8
    bottomOpacity: 0.2
    Thanks,
    Jim Weaver
    JavaFXpert.com (Learn JavaFX blog)
    Edited by: JimWeaver on Mar 25, 2009 1:15 PM
    Edited by: JimWeaver on Mar 25, 2009 1:17 PM

  • Stumped with registering objects

    I have tried mightily, but am not getting behaviour I desire.
    I would like to eventually move to using DTO's to move data in and out of my session tier, but for the short term, I am trying to get the 'quick and dirty' approach to work.
    For instance,
    I query say 40 objects. I store a list of them in session scope in the servlet container. The gui then will allow a user to make some changes to one of these objects, and then resubmit it to the session tier to be saved.
    The problem seems to be I am not starting a unit of work before the changes start, and making the changes to clones. The servlet code does not know about toplink, it just reads a list of objects, picks an arbitrary one to edit, and then resubmits it.
    I was using deepMergeClone on the object to be saved to allow toplink to get a list of differences, and this seemed to work for most scenarios, but not all. I have heard that the merge api is more for objects which have been disconnected from the session.
    I have attached the methods i have written for load/save. Any feedback would be very much appreciated...espicially if it explains that this interm method will work, acknowledging I will implement a better facade pattern with DTO's in the future. (I really need demo quality soon)
    Here is the load method:
    public static Collection returnQueryResult(String queryBarId) {
              UnitOfWork uow= getSession().acquireUnitOfWork();
              Vector facilities= null;
              try {
                   Vector results=
                        (Vector) getSession().readAllObjects(
                             QueryBarResult.class,
                             new ExpressionBuilder().get("id").equal(queryBarId));
                   facilities= new Vector(results.size());
                   Iterator iter= results.iterator();
                   IdentifiableObject theFacility;
                   while (iter.hasNext()) {
                        theFacility= ((QueryBarResult) iter.next()).getQueriedObject();
                        facilities.add(uow.registerExistingObject(theFacility));
                   } catch (Throwable th) {
                   th.printStackTrace();
              return facilities;
    Here is the save:
         public static Object save(IdentifiableValue obj, String sessionName) {
              try {
                   UnitOfWork uow= getSession(sessionName).acquireUnitOfWork();
                   uow.registerObject(obj);
                   uow.deepMergeClone(obj);
                   uow.commit();               
              } catch (DatabaseException e) {
                   e.printStackTrace();
              return getSession(sessionName).readObject(obj);

    Craig,
    Sorry to hear you are having such difficulty getting your demo going. Have you looked at the session-bean and jsp-Servlet demos that are shipped with TopLink. They may help you get something running quickly.
    I would like to clarify some issues that you have raised.
    1. The instances in the shared cache, those returned from a query against a client session, are in fact the original objects. You need to be careful not to modify these outside the context of a UnitOfWork/TX.
    2. The use of the merge API is typically used when the objects are detached from the session through serialization. This means that you architecture has a serialized link between the web tier and the server tier. This is more often accomplished by wrapping your server logic with a session beans. You will also need to ensure that if the web tier and server/ejb tier are in the same JVM that the app server is not passing the object by reference instead of by value.
    3. If the objects you are changing in the web-tier are not separated by a serialized link such as a session-bean then you must register the objects prior to making any changes to them.
    The code you have shown seems to assume that the web application will be in the same JVM and not have a serialized link between it and the persistence layer. Then to ensure you have a copy of the object you use one UnitOfWork to copy the objects and another to persist the changes. If you were willing to have a slightly more stateful system you could just maintain the UnitOfWork and avoid having to register or merge on the save, just call UnitOfWork.commit().
    To address your specific code without writing a complete novel I would suggest the following:
    Here is the load method:
    public static Collection returnQueryResult(String queryBarId) {
    UnitOfWork uow= getSession().acquireUnitOfWork();
    Vector facilities= null;
    try {
    // Note: reading through the UOW will register results
    Vector facilities = (Vector) uow.readAllObjects(QueryBarResult.class, new ExpressionBuilder().get("id").equal(queryBarId));
    uow.release(); // not going to need it any more
    } catch (Throwable th) {
    th.printStackTrace();
    return facilities;
    Here is the save:
    public static Object save(IdentifiableValue obj, String sessionName) {
    try {
    UnitOfWork uow= getSession(sessionName).acquireUnitOfWork();
    uow.readObject(obj); //ensure its cached and registered
    uow.deepMergeClone(obj);
    uow.commit();
    } catch (DatabaseException e) {
    e.printStackTrace();
    return getSession(sessionName).readObject(obj);
    Although this should work for all cases there will be issues if you attempt to instantiate any indirect relationships on the copies returned from the query method. These objects have been copied through a now inactive UOW. If you require lazy loading after the query I would recommend using a more stateful solution an maintaining the UOW.
    I hope this helps you get your demo going quickly. Please let me know if you run into any further complications.
    Doug

  • How can I use a COM object that does not have a type library?

    Hello,
    I've created a com server in python for which I do not have a type library. I am able to call functions for this application in Python, TCL, I'm sure VB, etc. without the type library.
    Must I have a type library registered to use this COM object with Labview? I was hoping I could simply supply the name to the refnum (or the GUID) then call functions by passings strings to the invoke node. This does not seem to be possible - am I missing something?
    In the event that I cannot use a com server without a type library. Any recommendataions on how to create one? I'm wondering if I can use the same GUID and create a shell in LabWindows which generates the IDL/TBD file I need for Labview to see my
    com server.
    Any help is greatly appreciated.
    73,
    Timothy

    Timothy Toroni wrote:
    > Thanks for the info, however their example is labview server and
    > python client. I'm going the other way. It's good to know about
    > LabPython though...
    >
    > As of now, it seems to be there is no way to use a COM object without
    > a type library from inside LabView.
    Yes that is true. LabVIEW needs that to configure the Property and
    Methode Nodes correctly. Otherwise it would need to have a special
    Property and Method Node with a configuration dialog similar to the Call
    Library Node, but a LOT more complicated. Not sure many people could
    make use of that, and it would be a very tiring experience trying to get
    things setup in that way, by going through the edit, test, and crash
    cycle over and over again.
    Rolf Kalberm
    atter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • [custom application] we did'nt use the register form, and it works anyway !!!!

    [custom application] we did'nt use the register form, works anyway ?
    Excuse my english:
    Our developper's have created the custom objects in a new oracle user.
    The have given all grants ans synonyms to APPS (by the hand with manuel scripts).
    They didn't use the 'Security\oracle\register' forms.
    They have just declared the application in 'security\oracle\data group' using APPS as oracle id.
    So they did not have to enter a password in AOL for the new custom oracle userneme.
    QUESTION ?
    Did we miss something ? What is wrong ?
    Are we qoing to face some issue (with standard AOL admin scripts for exemple ?)
    Does Always OA connect via APPS or did it sometimes need to connect
    with the real oracle usernam of the custom application ?
    Thanks in advance for your answers.
    Pierre from Paris.

    I believe you're probably okay, as long as you are only adding objects, not modifying existing ones. We have custom database accounts registered through the aforementioned forms, but as a rule-of-thumb we always grant all on any custom objects to APPS with grant option. All custom packages we create are also created under the APPS schema. The underlying user that is running for our custom forms & reports is still APPS. We just put tables, indexes, and similar objects under the custom accounts primarily so that we can clearly tell what objects are custom and which are not.
    Keep in mind that one risk you run with any customizations you make under APPS (or any other delivered database account) is that there is always a chance that Oracle could create an object with the exact same name in the future, potentially overwriting your customizations
    Hope this helps!
    Josh Wasser
    [email protected]

  • External transaction control and ability to find new registered objects

    Hello, We are using Toplink with external transaction control and have a process inserting a complex hierarchy of objects. During the process we either do a registerObject or deepmergeClone depending on if the instance is already in the db. With external transaction control the registerObject does not actually do the commit to db until the global transaction (Container) issues the commit. Unfortunately we end up doing creating multiple instances of same objects ( because the assumption that registerObject would have written the row to the db ) with the same keys and when the container issues the commit we end up with duplicate key violation. Is there a way to find out if an object with a particular key is already registered?

    This sounds like the kind of question that can only be answered with a whiteboard and a good review of your architecture.
    In general, there should be no problem registering objects multiple times. I.e.,
    x = some object
    x1 = uow.registerObject(x);
    Then x1==uow.registerObject(x), and x1==uow.registerObject(x1), etc. When you register an object with the UOW, based on PK it'll always return that same one.
    Do you have multiple units of work on the go? (that may explain this behavior).
    In any case, I think the real problem here is that you're somehow registering objects that are no longer cached. I.e., some object is serialized or rebuilt and then registered after it's gone from the cache. By default, TopLink determines if an object is new or existing (to determine INSERT vs UPDATE) by hitting the cache. You can change this default behavior in the Mapping Workbench, open the advanced property for "Identity" and change existence checking to "check database". Although, this can be a slow and tedious process to have to keep hitting the DB.
    A little trick I use sometimes is to take advantage of the "readObject" API that will read the object from the databaes if it's not already in cache, and just return it from cache if it is in cache. Check out the UOW primer at http://otn.oracle.com/products/ias/toplink/index.html for more info, but the jist is that I would do this if I were you:
    x = some object that you're not sure is cached and you want to register in UOW;
    x' = uow.readObject(x);
    IF the object was in cache, you'd get back a working copy, nice and fast. IF it's not in cache, you hit the database, it goes in cache, and you get your working copy. Now you don't have to change the existence checking option which could slow everything down.
    - Don

  • BPM SMQ2 in sysfail Access using a 'ZERO' object reference is not possible

    Hi ,
    I am working on a IDOC to SOAP synchronous scenario
    So I am using a BPM....
    I have written a operation mapping outside BPM
    1) Request MM creates the SOAP rquest
    2) Response is a ABAP mapping where i am checking the response from webserice and then generating an email using ABAP code.
    now when i am running this scneario works fine and the mail gets generated...
    however i get a green flag in moni  and in SMQ2 in sysfail Access using a 'ZERO' object reference is not possible
    PS : Also  the response coming from the webserice has a custom header which does not match with the response ABAP mapping source MT
    however if I work on the same thing using Proxy to SOAP sync there is no sysfail message and it works fine
    Is this a bug in the system ...i am using PI 7.1

    Hi,
    Try to implement SAP note 1164228 or apply package SAPKB71007 to resolve your issue.

  • CDG-03516:references an object outside of the workarea

    i've exported some App System by RON after that delete all applications systems and migrate the repository again (6 to 6i) then i deleted the application previously backed and restore the import and now i am trying to geneate my form modules. When I try to generate a module in the Design Editor I get the following message: 'CDG-03516 ERROR: Module : This module contains or references an object outside of the current workarea'. The firts time i included the external objects (System folder/Oracle forms-language) and i try to generate again i got the same message, i tried to include external references again, when i choose this I get a message saying 'There are no external references for this Workarea'. i lost some relationship when i did the export/import process? what is the way to make a backup by application system and assurance the integrity of that?
    thks in advance

    Hi Alex,
    It sounds like you have a problem with the access rights defined for your users and perhaps some information lost
    in the migration.
    The Design Editor treats everything in the context of a
    workarea, so if a user does not have access to an object
    in a workarea then the action fails with this error.
    Secondly, have you read the 6i Migration Guide here on
    OTN (see our Documentation page, under 6i Release 4.6)?
    There may be some useful information in there regarding
    the possible loss of information or related issues.
    Hope this helps.
    Regards,
    Dominic
    Designer Product Management
    Oracle Corp

  • Registering a child of registered object goes into endless recursion

    Hi
    Looks like we have found another bug in toplink.
    test scenario: object A have a indirection relation 1:1 with object B
    Lets register object A. Everything works fine. Lets register that cloneA1 again. It is fine again ( registration returns same object).
    Now lets ask cloneA1 for related object B : cloneA1.getB(). Works fine. And we know that it retirn registeres object cloneB1. Now - lets imagine that developer made a mistake (usual thing is this unperfect world) and trying to register cloneB1 again. Instead of silently returning same object instance cloneB1, toplink in going into some endless recursion which ends up with StackOverflowError:
    Received execption: java.lang.reflect.InvocationTargetException
    java.lang.reflect.InvocationTargetException: java.lang.StackOverflowError
    at oracle.toplink.publicinterface.Session.getDescriptor(Unknown Source)
    at oracle.toplink.publicinterface.Session.getDescriptor(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown
    Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractPrimaryKeyFromObject(Unknown

    The mapping of A and B is as follows:
    Both A and B are interfaces of concrete classes
    mapped with Interface Alias:
    Aimpl implements A
    Bimpl implements B
    The attribute mappings are:
    Bimpl.as is a OneToMany collection of A (bidirectional to Aimpl.b)
    and using Transparent Indirection with IndirectList
    Aimpl.b is the OneToOne "owner" B (bidirectional to Bimpl.as)
    Aimpl.b OneToOneMapping to switched to ProxyIndirection
    upon startup.
    Application code works exclusively with A and B and gets
    concrete instances from a factory.
    There's much more to the mapping, but that seems to be all
    the bits related to this problem.
    Thanks and best regards,
    John

  • Registered objects with Unit of work

    Hi,
    I am using the following code for persisting some data to the database. I register the following objects with the UOW obtained. If there is any exception with the business rules method(shown below) , the code uow.commit() is never invoked.
    My question here is what happens the registered objects in that uow if commit is never invoked.
    Any help will be appreciated.
    Thanks
    Priya
    node=(DeviceNode) uow.registerObject(node);
    station=(Station)uow.registerObject(station);
    user=(User)uow.registerObject(user);
    //Call a method to do some businees rules check
    startWork(node,station,user);
    uow.commit;

    It depends on how you set things up. If you are managing the connection directly via Toplink (no pooling or containers or transactions), then if you dont commit, it doesnt save. If you are using JTS, registering the object will save it to the database barring any unchecked exceptions.
    Zev.

  • Can scheduled tasks be set up using a Java Object?

    I need to run a script that will create a scheduled task in
    the Coldfusion Administrator CF8. I have used a Java Object to
    register a custom tag and I am wondering if you can do the same
    thing with a scheduled task.

    No special java class/object is needed actually. ColdFusion
    offers a built-in tag for this, <cfschedule>.
    Read more here:
    http://livedocs.adobe.com/coldfusion/8/Tags_r-s_11.html

  • Hide objects outside the stage

    Hi there!
    I have recently downloaded a sample FLA file and I see the stage is FIXED on top-left side of the flash screen and objects outside the stage does not appear on screen (Like a mask, but there is no mask layer).
    And when I create a new file the stage appears in middle of the screen and objects outside the stage are not masked.
    Would you please help me what should I do in this case?
    (I always use a very big White layer in top of all other layers, to cover out of stage, OR use a mask layer)
    Regards,
       Ali

    Hi!
    Sorry if my question was not clear. here is the link (adobe TV):
    http://downloads.tv.adobe.com/2012-00-24/WebChallenge_FL_3.zip
    I have uploaded that single FLA file to the address below :
    http://www.howallah.com/Mobile.fla
    To simplify my question, each flash scene is indeed divided into 3 sections based on colors (white, light grey, dark grey) as marked below :
    (the Zoom is 20% to cover them all).
    Section 1.  is called Stage (I know)
    Section 2.  it expands automatically as you move an object outside the stage (image, movieclip etc.) and it works like a mask (I dont know the name of this section)
    Section 3.   is something like "out of Scene" (I don't know the name of this section as well)
    What I want to do is sort of FITTING Section 1 (Stage) to Section 2.
    Exactly like the FLA sample file above.
    What is that good for?? to help me only see the stuff INSIDE the stage, without any need to make a mask layer or a LARGE white layer above all layers etc.!
    Anybody knows what I am talking about and having a clue please?
    Regards,
       Ali

  • Remote register object

    The UnicastRemoteObject can register OBJECT by the export method. Is it feasible to register the object remotely to a seperate machine?
    e.g.
    Machine A register object A at Machine B
    Machine C invoke RMI on Machine B and use object A
    If it works, i can eliminate the RMI from Machine B to Machine A.
    Otherwise, i need to invoke twice of RMI, C --> B then B --> A since we don't want to run C-->A directly.

    The UnicastRemoteObject can register OBJECT by the
    export method.No it can't. What it does is to export it from the current machine.
    Is it feasible to register the object
    remotely to a seperate machine?The question makes no sense as stated given the terminology error.
    Machine A register object A at Machine B
    Machine C invoke RMI on Machine B and use object ATo put it correctly, once a remote JVM B has acquired a remote reference to a remote object exported from A, it can pass it to another JVM in the same or another host, say C, and JVM C will then communiate directly with the original host from which A was exported when calling methods on A, without involving B in the exchange.

  • How to get all previous versions page contents of a publishing page using SharePoint Client Object Model 2010

    How to get all previous versions page contents and other field values of a publishing page using SharePoint Client Object Model 2010?
    Thanks,
    Osmita

    Hi Osmita,
    Greetings.
    Here are the links that helps you. It has code attached to it.
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/a0d2ab40-99ba-4368-8505-1dc559ef6469/get-content-of-previous-version-of-page-sharepoint-2010?forum=sharepointgeneralprevious
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/faaf419f-997e-4150-9911-48cc375c3b46/how-to-get-previous-published-versions-of-publishing-pages-in-sharepoint-2010?forum=sharepointdevelopmentprevious
    Please remember to click 'Mark as Answer' on the answer if it helps you

  • Creating a LOV by using a Command Object

    Hello All,
    I have a report that's driven by a parameterized sproc, which is a year parameter.  However, we have a table that I would like to use in my object command to populate this parameter with the values from the select statement to enforce consistency. A new year is inserted into to this table yearly by another process, which would keep me from having to go into a static list to update the year options yearly. 
    I've created the command object and saved it to the repository, but I can't figure out how to associate it to the report as the parameter.
    Can anyone point me in the right direction?
    Thanks in advance.

    hi DevinM,
    two choices:
    A) add the Command to your report
    1) you can add the Command to your report...don't link it to any tables though...you'll get a "Generally not supported error" but you can ignore it for this test
    2) now in your prompt you will have the Command available for the dynamic values
    3) check that the number of records on your report remains the same as before...it should...any test i have run on this is aok
    B) create a Business View
    1) go into the Business View Manager and create a business view from the data foundation up
    2) once you've got the business view built you can create an LOV from there which is available to your current report and all other reports
    jw

Maybe you are looking for

  • Creating transfer order for delivery with ABAP

    Hi Experts, I'm using L_TO_CREATE_DN to create a transfer order for delivery note... Is it possible to use this function or another one, to create a transfer order for one position of the delivery note ? Regards, David

  • Drag and Drop | Text | Submit | PLEASE HELP

    Hi. I really need help.  THANK YOU in advance. I am building a voting contact from in flash profession with AS3. The functionality will allow users to drag and drop choices OR add their own allow them to submit their TOP 5 choices. PROBLEM: 1. Drag a

  • How do I make my submenu appear when I click on a link?

    I am trying to make my submenu reappear once you click on the catalogue link, how do I do this? This is the new uploaded website: http://www.darbymanufacturing.com/test_website2/index.html CSS: Here is my nav code: ul#nav { margin:0 auto;/*---centers

  • Why Position:Relative from CSS doesn't work at Safari 5.03?

    If you watch my web page: http://clubdeleonesst.tk I designed a ComboBox and have some problems with position relative. I used jQuery to create it, you could watch the original example here: http://www.marghoobsuleman.com/jquery-image-dropdown And I

  • Wily Enterprise Manager 8 connection to SM Ehp1 failed

    Hi guys ( SM eph1 sps18, x64 jdk_ 17,Wily Enterprise Manager 8 ) Have installed Wily Enterprise Manager 8 successfully. Its up and running with out errors. when i go to Diagnostics Setup -- Managed Systems--Introscope Agent Unable  to find the wily e