Service Objects Extended Properties

Hi,
I'm looking for a list of registered keywords and properties
for the Service Objects extended properties.
I found servicetobind and forte_generated, but I'm looking
for the exhaustive set, so that not to interfere with them.
Thanks for any input,
j-paul gabrielli
sema dts

Hi Denis,
it worked now. i had didn't stop SIA completely.
Thanks!!!
-Pavana

Similar Messages

  • Unable to programmatically get content of extended properties in custom control

    Hi all
    I am facing some problems with a custom control which I applied to the Business Service class form. The goal of this control is to automatically populate the DisplayName property of a Business Service based on two properties which are part of a Business
    Service class extension. The control is working fine and gets applied successfully to the Business Service forms.
    Also populating DisplayName as well as other OOB Business Service properties works fine, but when it comes to extended properties, it seems as if the instance I am working with in the custom control is not aware of those... However when getting the class
    of the given instance and searching propertyCollection, both properties are visible.
    It seems so me as if the instance I am working with is just no aware of properties coming from a class extension. I never ran into that when building my own custom forms.
    Any thoughts about this?
    private void ServicePriceListView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
    //Check if we get an IDataItem
    if (this.DataContext is IDataItem)
    //Get the IDataItem
    inst = (IDataItem)this.DataContext;
    IDataItem dataItemClass = inst["$Class$"] as IDataItem;
    Dictionary<string, IDataItem> dataItemClassProperties = dataItemClass["PropertyCollection"] as Dictionary<string, IDataItem>;
    // dataItemClassProperties contains both extended properties
    string displayName = inst["DisplayName"].ToString(); // Works fine
    string serviceID = inst["scsmlabid"].ToString(); // Does not find property scsmlabid
    string serviceDescription = inst["scsmlabdescription"].ToString(); // Does not find property scsmlabdescription
    //Set DisplayName
    inst["DisplayName"] = inst["mchserviceid"] + " - " + inst["mchdescription"];
    Blog: http://scsmlab.com  Twitter:
    @scsmlab

    The "FormView" object is, for all intents and purposes, your parent form object. You can use FormUtilities.GetFormView() and send pretty much any control from your form as a parameter to that method. It'll send back the top-level FormView object.
    (More precisely, the FormView's "Form" property is your parent form object..ie: FormView MyMainForm = FormUtilities.GetFormView(this); MyMainForm.Form;)
    With that object you can subscribe to all of the typical FrameworkElement events. If you want to subscribe to the SCSM Console API events, use the FormEvents class and add a handler to MyMainForm.Form using .AddHandler() and .RemoveHandler(). 
    Here's a little primer from Microsoft on the Console form events:
    https://technet.microsoft.com/en-us/library/ff461071.aspx

  • Re: Service Objects

    Hi Andrew...
    Service Objects, are, in essence, the central concept of any Forte
    application, so I think that every participant in this forum can
    probably offer some type of insight on using Forte Service Objects in
    their application :).
    Any type of shared application functionality is a candidate for
    inclusion in a service object. The definition given on page 156 of the
    Forte Programming Guide states that "[a] service object is a named
    object that represents an existing external resource, a Forte shared
    business service that is shared by multiple users, or a service that is
    replicated to provide failover or load-balancing. The service object
    contains information needed by the service as well as operations that
    the service can perform."
    Service objects are, imho, the most important concept for building a
    successful Forte application, and by far the least well understood. I
    suggest spending a good amount of time familiarizing yourself with the
    Service Object concept, and then understanding the Service Object
    properties (dialog duration, visibility, replication, search paths,
    etc.) so that you can build a scalable, robust, and fault-tolerant
    system to meet your user requirements. Forte is an incredibly powerful
    tool when you understand all of the possibilities you have, especially
    those related to Service Objects.
    In order to get a better understanding of Forte Service objects and how
    they relate to the design and development of your particular system, I
    highly suggest participating in the Forte Object-Oriented Analysis and
    Design (OOAD) course. You can get more information on the course and
    register on-line by visiting the Forte Education website:
    http://www.forte.com/Educate/index.htm. Additionally, you can take a
    look at the Forte manuals, especially Chapter 8 of the Forte Programming
    Guide and throughout the Guide to the Forte Workshops manual.
    To answer one of your other questions... You can pass references to
    objects from a service object back to a client in Forte (you can also,
    for that matter, pass copies of objects - it depends upon your needs).
    Again, to get a better understanding of these concepts, I suggest taking
    the Forte OOAD class.
    I hope this helps! Please let me know if you have any further questions
    - I'd be happy to help.
    -Katie
    Andrew Lowther wrote:
    >
    We are currently in the process of rearchitecting our software systems
    around Forte.
    Could anyone tell me what experiences they have had with building a
    system using Forte Service objects in a multi-tiered system?
    It seems to us that these are intended to be used as high-value
    facade-like interfaces which serve as an entry point to the underlying
    business object model. Is this correct?
    Can we pass a remote object reference back to a client for its
    subsequent use? If not, does this mean that we have to build a local,
    client-based object model to hold the data returned from the service
    object methods?
    Any other assistance you can give will be very much appreciated.
    Thanks
    Andrew Lowther--
    Katie Carty
    Senior Consultant
    Forte Software, Inc.
    http://www.forte.com
    4801 Woodway Drive, Suite 300E
    Houston, Texas 77056
    vmail: (510) 986-3802
    email: [email protected]
    **************************************************

    Andrew,
    We at Per-Se Technologies have developed an approach to alleviate many
    "pains" with using service objects. Some things you will soon discover is
    that although service objects provide fail-over, load balancing, etc., they
    also,
    1. Eat up valuable developer time because it takes time to repartition and
    start partitions in development mode. In development mode (i.e., running
    from the workshops), each developer gets their own copy of all partitions!
    2. Limit the use of compiled libraries due to service object references in
    TOOL code.
    3. Consume valuable server resources because each developer has their own
    copy of the partitions.
    We have several alternatives to address all of the above problems. I am
    currently working on converting a large application so that:
    1. All developers share a single set of service objects/partitions. Each
    developer doesn't have to wait while their copies of the partitions come
    up. Therefore, development time is more fully utilized and server
    resources are dramatically freed up.
    2. Service objects are completely decoupled from an application.
    Therefore, we can compile as much as possible.
    You asked some other questions as well: You should always isolate SO
    references as much as possible. We do this by using a facade. You can
    pass a remote obj. reference to a client for future use.
    Take care!
    Dustin Breese
    Supervising Technical Specialist
    Per-Se Technologies
    From: Andrew Lowther <[email protected]>
    Date: Tue, 24 Feb 1998 16:24:31 -0000
    Subject: Service Objects
    We are currently in the process of rearchitecting our software systems
    around Forte.
    Could anyone tell me what experiences they have had with building a
    system using Forte Service objects in a multi-tiered system?
    It seems to us that these are intended to be used as high-value
    facade-like interfaces which serve as an entry point to the underlying
    business object model. Is this correct?
    Can we pass a remote object reference back to a client for its
    subsequent use? If not, does this mean that we have to build a local,
    client-based object model to hold the data returned from the service
    object methods?
    Any other assistance you can give will be very much appreciated.
    Thanks
    Andrew Lowther

  • Folder Extended Properties (EWS+Outlook)

    What Im trying to achive is to be able to create a Folder with Extended Properties using EWS and then be able to read these properties from inside Outlook.
    Ive verified that it works to add & retrieve extended properties on Folders using EWS, i.e.
            var f = new Folder(_svc);
    f.DisplayName = "Testing";
            f.SetExtendedProperty(EPD.ItqAction, 1);
            f.Save(WellKnownFolderName.MsgFolderRoot);
    then loading it as following,
            PropertySet propset = new PropertySet(PropertySet.IdOnly);
            propset.Add(EPD.ItqAction);
            f.Load(propset);
    or even using SearchFilder.IsEqual()
    but these Properties does not appear in OutlookSpy nor MFCAPI, and can't seem to be accessable from Outlook VSTO.
    I've tried 
    myFolder.PropertyAccessor.GetProperty(EPD.ItAction.ToMapiString());
    ToMapiString creates a "http://schemas.microsoft.com/mapi/{GUID}/attr-name" string
    But this results in a COMException. 
    Ive heard that named Properties are not supported by Outlook, what is the alternative type definition? And that one should create a Hidden Item in the folder for properties. But haven't been able to find any details on how to create a hidden item (only Hidden
    folders w/ attribute 0x10f4).

    >user defined properties are vanished if they are not defined in the delivery store".
    What exactly do you mean? How is that possible?
    >I'd recommend asking EWS specific questions on the Exchange dev forums instead
    Eugene, I am answering this question in the Outlook dev forum. It is perfectly fine here. If you do not know how to answer it, you do not have to reply. There is no requirement that you answer each and every question asked in the forum.
    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

  • Re: (forte-users) Service Object

     

    what about subclassing it and putting the agent stuff in there
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail matthewmwriteme.com
    ----- Original Message -----
    From: Ramarao Pabbaraju <RPabbarajulmimsno.com>
    To: <kamranaminyahoo.com>
    Sent: Tuesday, February 29, 2000 9:02 AM
    Subject: (forte-users) Service Object
    Hi,
    We have a class X which we would like to use it for service object andalso
    to instantiate it locally to call some methods. We would like to have
    system agents for the service object, but not for objects instantiated
    locally. In other words, if the object is used for service object, only
    then we want the agents (customized) to be initialized. How do we find out
    whether it is service object in Init method self? Service objectproperties
    (like isAnchored) or attributes (given from ServiceObject
    properties/initial values window) are set only at the end of init method.
    One workaround we could think of is start a task at the end of init method
    and also delay the execution of method. Is there any clean way of doing
    this?
    Thanks in advance,
    Ramarao
    IonIdea
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • List extended properties on all databases

    I need a script that lists/returns all extended properties in all the databases on a SQL Server 2008 Instance.
    For example the script below returns the extended property for a single database.
    SELECT objtype, objname, name, value
    FROM fn_listextendedproperty(default, default, default, default, default, default, default);
    However I need a script that returns the extended properties for all databases. Thanks.

    Hi,
    Try PowerShell like below to get the information:
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
    $s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') "computer\instance"
    $dbs = $s.Databases
    foreach ($db in $dbs)
    $ds=$db.ExecuteWithResults("SELECT objtype, objname, name, value FROM fn_listextendedproperty(default, default, default, default, default, default, default)")
    $table = $ds.Tables[0];
    foreach ($row in $table)
    Write-Host $row.Item("objtype") $row.Item("objname")$row.Item("name")$row.Item("value");
    Please check below articles for more information:
    http://www.mssqltips.com/sqlservertip/1759/retrieve-a-list-of-sql-server-databases-and-their-properties-using-powershell/
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/ff5ae2d3-0923-4240-a532-2d879d9528a6/using-powershell-to-get-data-from-sql-database?forum=winserverpowershell
    Hope it helps.
    Tracy Cai
    TechNet Community Support

  • Is it possible to delete extended properties without knowing the id?

    Hello,
    Can you delete any custom extended properties without knowing their ID?
    I took over managing a feature that used EWS to send emails to customers.The current code creates a new GUID, and thus new Extended Property, every time an email is sent.
    // Create a custom extended property and add it to the message.
    var myExtendedPropertyDefinition = new ExtendedPropertyDefinition(Guid.NewGuid(), "MyGuidId", MapiPropertyType.String);
    mail.SetExtendedProperty(myExtendedPropertyDefinition, "MyGuidId");
    // Send and save a copy
    mail.SendAndSaveCopy();
    Is there a way to delete any of the custom extended propeties without knowing the IDs?
    Thank you

    No you can't do that in EWS you need to know the details of the property you want to Read/Write or delete. EWS has no method of enumerating all extended properties either you would need to use MAPI to do this.
    >>The current code creates a new GUID, and thus new Extended Property, every time an email is sent.
     I'd question the design of this what where they trying to acheive ? Why not have ths same property with a different Value ? else using an X-header would be better idea at least then it will persist ouside of your Exchange infrastructure and even
    inside would be more discoverable.
    Cheers
    Glen

  • Calling a web-service from extended controller

    Hello,
    We are tying to consume a web-service in extended controller of a page. We created stub files using
    */oracle/d01/oracle/VIS/db/tech_st/11.1.0/jlib/axis.jar* and related jar files found on the E-BS Server.
    We are using our stub classes in the extended controller, code gets compiled fine, we have deployed our CO, along with class files
    of the stub in
    $JAVA_TOP/xxcustom/oarcle/apps/.... folder.
    Now when we access the page for which we have extended the controller, we get following error
    oracle.apps.fnd.framework.OAException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.classloader.util.AnnotatedNoClassDefFoundError, msg=
         Missing class: org.apache.axis.client.Service
    Seems like server can't find */oracle/d01/oracle/VIS/db/tech_st/11.1.0/jlib/axis.jar* and related jars.
    Does anyone know how to fix this issue?
    We are using E-BS *12.1.1* instance and JDeveloper version is *10.1.3*
    regards, Yora

    look in the tutorial the web-client example or the dii interface example... and read all about jaxrpc ...
    bye
    J

  • FIM MA Export errors. There is an error executing a web service object creation.

    While checking for the permission, we have figured that the Built-In Synchronization account is being deleted by an Expiration Workflow.
    FIM MA Export errors. There is an error executing a web service object creation.
    While checking for the permission, we have figured that the Built-in Synchronization account was deleted by an Expiration Workflow
    Is there a way to restore. Thanks.

    I would re-run FIM setup - I think it can re-create this account
    If you found my post helpful, please give it a Helpful vote. If it answered your question, remember to mark it as an Answer.

  • RE: Re[2]: Service Object events and LockMgr

    I think there are a lot to implement a lock manager. If several objects
    should be updated in one transaction, the lock manager should be able to
    handle rollbacks. Other things like release lock when exception happens,
    avoiding dead locks, etc. Most of the features are provided by DBMS, so
    I think using a option 2 would be a better solution.
    -----Original Message-----
    From: Dimitar Gospodinov [mailto:[email protected]]
    Sent: Wednesday, July 28, 1999 2:44 PM
    To: Peter Sham
    Cc: Duncan Kinnear; [email protected]
    Subject: Re[2]: Service Object events and LockMgr
    Hello Peter,
    Wednesday, July 28, 1999, 9:19:10 PM, you wrote:
    PS> Hi,
    PS> Just wonder exactly how this Lock Manager can be
    implemented. Do you mean that you are
    PS> going to cache every object that is instantiated from the
    database? Or you just cache
    PS> the object id, primary key, etc?
    PS> Frankly speaking, I won't attempt to due with this kind
    of currency coding myself as
    PS> the database vendor has spent years in coding just to do this.
    PS> Regards.
    The second one - you just need some unique value that will identify
    the object being locked. You should register with the Lock
    Manager only
    the objects that you want to lock.
    For me, one of the goal of such pattern is to give you some freedom
    from the specifics of the database lock mechanism.
    Another benefit that I can see is that using such approach you can
    always answer to the question: "Can I modify/delete this object?".
    Best regards,
    Dimitar mailto:[email protected]
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

    I think there are a lot to implement a lock manager. If several objects
    should be updated in one transaction, the lock manager should be able to
    handle rollbacks. Other things like release lock when exception happens,
    avoiding dead locks, etc. Most of the features are provided by DBMS, so
    I think using a option 2 would be a better solution.
    -----Original Message-----
    From: Dimitar Gospodinov [mailto:[email protected]]
    Sent: Wednesday, July 28, 1999 2:44 PM
    To: Peter Sham
    Cc: Duncan Kinnear; [email protected]
    Subject: Re[2]: Service Object events and LockMgr
    Hello Peter,
    Wednesday, July 28, 1999, 9:19:10 PM, you wrote:
    PS> Hi,
    PS> Just wonder exactly how this Lock Manager can be
    implemented. Do you mean that you are
    PS> going to cache every object that is instantiated from the
    database? Or you just cache
    PS> the object id, primary key, etc?
    PS> Frankly speaking, I won't attempt to due with this kind
    of currency coding myself as
    PS> the database vendor has spent years in coding just to do this.
    PS> Regards.
    The second one - you just need some unique value that will identify
    the object being locked. You should register with the Lock
    Manager only
    the objects that you want to lock.
    For me, one of the goal of such pattern is to give you some freedom
    from the specifics of the database lock mechanism.
    Another benefit that I can see is that using such approach you can
    always answer to the question: "Can I modify/delete this object?".
    Best regards,
    Dimitar mailto:[email protected]
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

  • Re: Service Object events and LockMgr

    On the option that you have considered, I have implemented the same model
    in my previous project (using Java/RMI), but I felt that it is more than
    what is normally needed for concurrency protection.
    I can suggest another option that is worth considering which is in place in
    our app for concurrency.
    Almost every table in our db has created By, created On, modifed By,
    modified On columns. The parent class of all business objects has
    attributes that correspond to these four columns. In addition to these
    four, there is a fifth attribute (introduced when concurrency was built)
    called originalModifiedOn. Upon retrieval from the db, it is set to
    modifiedOn value (from the db), during UPDATE, the value in this column is
    added part of the WHERE clause. So when the second user tried to do save
    the same object, the underlying db update will get a 'zero rows updated'
    which is translated into an application error 'possible concurrency
    error'. The user re-retreives the now 'stale' object before applying their
    edits.
    A lot of these things are and can be built into the framework imposing very
    little work that each Object needs to do to have concurrency protection.
    I am not sure if there is a mention in the Patterns paper of this model,
    but it is very easy to implement and supports what is needed.
    Kishore Puvvada's Mail
    [email protected] on 07/28/99 01:47:00 AM
    To: [email protected]@INTERNET
    cc: (bcc: Kishore Puvvada/HQ-IS/TAL)
    Subject: Service Object events and LockMgr
    Hi folks,
    We're currently looking at strategies for dealing with the simultaneous
    updates to the database from multiple clients (concurrency
    management). That is when two (or more) clients load the same object to
    edit it, then make different changes and save them to the database.
    We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    think) which describes three methods of dealing with this:
    1) Lock the database table row as soon as a client select it for editing
    and hold the lock until it is saved.
    2) Immediately before 'saving' check that the database hasn't changed
    (either by reading what's there before updating, or by using a huge
    'where' clause that contains all unchanged fields)
    3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    proxies to allow locking and updating notification between the clients.
    Option 3 is obviously the most robust method, but it requires a fair
    amount of coding and could also be a bottleneck for database reads and
    writes.
    But I have another option for which I was looking for opinions. What if
    we had a "Change Event manager" which broadcast an event every time
    a change is made to the database. Each business class would have its
    own event. If the event had the object's primary key as a parameter, then
    clients editing that particular object type could check to see if the object
    currently on screen is the one that changed. That way you could disable
    the 'save' until they had refreshed their on-screen data.
    It's not particularily elegant, but it's reasonably simple to implement. It
    also deals with changes sent across our WAN from other database
    servers.
    But this option is only worthwhile if you can replicate the "Change Event
    manager" SO and still register for an event on the client. Can clients
    register for SO events and receive an event generated by any of the SO's
    replicates? Or when you register for an SO's event do you register for
    only one instance of the SO?
    Thanks in advance for any answers.
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email:
    [email protected]
    PO Box 764, McLean Towers, Phone: +64 6 834 3360
    Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    Providing Integrated Software to the Meat Processing Industry for over 10
    years
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:
    http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

    On the option that you have considered, I have implemented the same model
    in my previous project (using Java/RMI), but I felt that it is more than
    what is normally needed for concurrency protection.
    I can suggest another option that is worth considering which is in place in
    our app for concurrency.
    Almost every table in our db has created By, created On, modifed By,
    modified On columns. The parent class of all business objects has
    attributes that correspond to these four columns. In addition to these
    four, there is a fifth attribute (introduced when concurrency was built)
    called originalModifiedOn. Upon retrieval from the db, it is set to
    modifiedOn value (from the db), during UPDATE, the value in this column is
    added part of the WHERE clause. So when the second user tried to do save
    the same object, the underlying db update will get a 'zero rows updated'
    which is translated into an application error 'possible concurrency
    error'. The user re-retreives the now 'stale' object before applying their
    edits.
    A lot of these things are and can be built into the framework imposing very
    little work that each Object needs to do to have concurrency protection.
    I am not sure if there is a mention in the Patterns paper of this model,
    but it is very easy to implement and supports what is needed.
    Kishore Puvvada's Mail
    [email protected] on 07/28/99 01:47:00 AM
    To: [email protected]@INTERNET
    cc: (bcc: Kishore Puvvada/HQ-IS/TAL)
    Subject: Service Object events and LockMgr
    Hi folks,
    We're currently looking at strategies for dealing with the simultaneous
    updates to the database from multiple clients (concurrency
    management). That is when two (or more) clients load the same object to
    edit it, then make different changes and save them to the database.
    We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    think) which describes three methods of dealing with this:
    1) Lock the database table row as soon as a client select it for editing
    and hold the lock until it is saved.
    2) Immediately before 'saving' check that the database hasn't changed
    (either by reading what's there before updating, or by using a huge
    'where' clause that contains all unchanged fields)
    3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    proxies to allow locking and updating notification between the clients.
    Option 3 is obviously the most robust method, but it requires a fair
    amount of coding and could also be a bottleneck for database reads and
    writes.
    But I have another option for which I was looking for opinions. What if
    we had a "Change Event manager" which broadcast an event every time
    a change is made to the database. Each business class would have its
    own event. If the event had the object's primary key as a parameter, then
    clients editing that particular object type could check to see if the object
    currently on screen is the one that changed. That way you could disable
    the 'save' until they had refreshed their on-screen data.
    It's not particularily elegant, but it's reasonably simple to implement. It
    also deals with changes sent across our WAN from other database
    servers.
    But this option is only worthwhile if you can replicate the "Change Event
    manager" SO and still register for an event on the client. Can clients
    register for SO events and receive an event generated by any of the SO's
    replicates? Or when you register for an SO's event do you register for
    only one instance of the SO?
    Thanks in advance for any answers.
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email:
    [email protected]
    PO Box 764, McLean Towers, Phone: +64 6 834 3360
    Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    Providing Integrated Software to the Meat Processing Industry for over 10
    years
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:
    http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

  • Service Object events and LockMgr

    Hi folks,
    We're currently looking at strategies for dealing with the simultaneous
    updates to the database from multiple clients (concurrency
    management). That is when two (or more) clients load the same object to
    edit it, then make different changes and save them to the database.
    We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    think) which describes three methods of dealing with this:
    1) Lock the database table row as soon as a client select it for editing
    and hold the lock until it is saved.
    2) Immediately before 'saving' check that the database hasn't changed
    (either by reading what's there before updating, or by using a huge
    'where' clause that contains all unchanged fields)
    3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    proxies to allow locking and updating notification between the clients.
    Option 3 is obviously the most robust method, but it requires a fair
    amount of coding and could also be a bottleneck for database reads and
    writes.
    But I have another option for which I was looking for opinions. What if
    we had a "Change Event manager" which broadcast an event every time
    a change is made to the database. Each business class would have its
    own event. If the event had the object's primary key as a parameter, then
    clients editing that particular object type could check to see if the object
    currently on screen is the one that changed. That way you could disable
    the 'save' until they had refreshed their on-screen data.
    It's not particularily elegant, but it's reasonably simple to implement. It
    also deals with changes sent across our WAN from other database
    servers.
    But this option is only worthwhile if you can replicate the "Change Event
    manager" SO and still register for an event on the client. Can clients
    register for SO events and receive an event generated by any of the SO's
    replicates? Or when you register for an SO's event do you register for
    only one instance of the SO?
    Thanks in advance for any answers.
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email: [email protected]
    PO Box 764, McLean Towers, Phone: +64 6 834 3360
    Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    Providing Integrated Software to the Meat Processing Industry for over 10 years
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

    Hi,
    Just wonder exactly how this Lock Manager can be implemented. Do you mean that you are
    going to cache every object that is instantiated from the database? Or you just cache
    the object id, primary key, etc?
    Frankly speaking, I won't attempt to due with this kind of currency coding myself as
    the database vendor has spent years in coding just to do this.
    Regards.
    Dimitar Gospodinov wrote:
    Hello Duncan,
    Wednesday, July 28, 1999, 10:31:46 AM, you wrote:
    DK> Hi folks,
    DK> We're currently looking at strategies for dealing with the simultaneous
    DK> updates to the database from multiple clients (concurrency
    DK> management). That is when two (or more) clients load the same object to
    DK> edit it, then make different changes and save them to the database.
    DK> We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    DK> think) which describes three methods of dealing with this:
    DK> 1) Lock the database table row as soon as a client select it for editing
    DK> and hold the lock until it is saved.
    DK> 2) Immediately before 'saving' check that the database hasn't changed
    DK> (either by reading what's there before updating, or by using a huge
    DK> 'where' clause that contains all unchanged fields)
    DK> 3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    DK> proxies to allow locking and updating notification between the clients.
    DK> Option 3 is obviously the most robust method, but it requires a fair
    DK> amount of coding and could also be a bottleneck for database reads and
    DK> writes.
    DK> But I have another option for which I was looking for opinions. What if
    DK> we had a "Change Event manager" which broadcast an event every time
    DK> a change is made to the database. Each business class would have its
    DK> own event. If the event had the object's primary key as a parameter, then
    DK> clients editing that particular object type could check to see if the object
    DK> currently on screen is the one that changed. That way you could disable
    DK> the 'save' until they had refreshed their on-screen data.
    DK> It's not particularily elegant, but it's reasonably simple to implement. It
    DK> also deals with changes sent across our WAN from other database
    DK> servers.
    DK> But this option is only worthwhile if you can replicate the "Change Event
    DK> manager" SO and still register for an event on the client. Can clients
    DK> register for SO events and receive an event generated by any of the SO's
    DK> replicates? Or when you register for an SO's event do you register for
    DK> only one instance of the SO?
    DK> Thanks in advance for any answers.
    DK> Cheers,
    DK> Duncan Kinnear,
    DK> McCarthy and Associates, Email: [email protected]
    DK> PO Box 764, McLean Towers, Phone: +64 6 834 3360
    DK> Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    DK> -------------------------------------------------------------------------------
    DK> Providing Integrated Software to the Meat Processing Industry for over 10 years
    DK> -
    DK> To unsubscribe, email '[email protected]' with
    DK> 'unsubscribe forte-users' as the body of the message.
    DK> Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>
    I would recommend you to use the following approach (of course if you
    do not have some special requirements :) ):
    1. You should have a LockManager that will synchronize all clients in
    their attempt to modify/delete objects in your application.
    2. Each client, when attempts to modify/delete some object, it must
    LOCK it using the services provided with the LockManager.
    3. The requested operation can be performed only after successful
    locking.
    4. If a lock can not be obtained (for example if the object is already
    locked by some other client) then the operation is aborted.
    The details of this pattern depends on your needs. :)
    Hope this helps.
    Best regards,
    Dimitar mailto:[email protected]
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

  • Events in Service Objects

    Hi,
    Is it possible to have a service object checking permanently for events
    posted by other service objects? I have not been able to start this type of
    object.
    Thanks,
    Guillermo Turk
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    I have something this (please, some patience :-) ):
    //Example: handle event (the event is Beep)
    interface AlarmListener{
    void Beep(String hour); //declare a event handler
    //The class that "raise" an event Beep
    class Clock{
    AlarmListener theAlarmListener; //Referecne to an listener object
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener = theAlarmListener;
    private ringAlarm(){
    theAlarmListener.Beep("10:00 P.M."); //Raise Beep event
    class Guy implements AlarmListener{
    public Guy(){
    Clock clock = new Clock();
    clock.addAlarmListener(this);
    //Handle Beep event
    void Beep(String hour){
    System.out.println("Ohhh, its time of wake up!!!");
    //End
    But, in this model my source object have only an listener object.
    This can be improved by a array, like this:
    class Clock{
    AlarmListener[] theAlarmListener = new AlarmListener[10];
    private int i = 0;
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener[i++] = theAlarmListener;
    //More code...
    making to a side the limitation of size of an array (although this can be managed somehow if it is necessary), the problem begining to be more and more complex... i.e., it is necessary to create a method for unregister a listener...
    And, what about with multi-threads programs??? The addAlarmListener method should be synchronized or something??
    It should have an easier way!
    PD: I think that I have used the Delegate pattern in conjunction with some other pattern.
    PD: Forget my English. It is terrible
    Saludos

  • Services in extended classic scenarios

    Friends,
    We have implemented services in extended classic scenario. When we create a shopping cart with two service lines and same product category here is what happens:
    The SRM PO has two lines items but in the backend the PO is replicated with one Po line item and the two service lines from the shopping cart. This causes a inconsistency with the SRM PO line item number and R/3 PO line item number.
    Please advise. Any help is greatly appreciated

    Hi Donna,
    Is is standard functionnality as the backend PO has item type "D" for service in the first line.
    Then for sub item, only limits or services (Id or description) are allowed.
    The first line is dedicated to product category.
    All sublines belonging to this product category are implemented in the sub item in the service tab.
    I have opened an OSS message too but for other services bugs.
    Please post SAP answers to update SDN community
    Kind regards,
    Yann

  • Is service object comes default in purchase order

    Hi Abapers,
    I am a Fucntional consultant. I would like to know whether the service object comes in the Purchase order defauly or any setting is ther behind.
    Reg,
    Ashok

    Hi,
    Have you read my question properly. I was asking about Service Object key in Purchase Orders & Purchase Requisitions where we can attach External Documents.
    Hope your doubt is clear.
    Reg,
    Ashok

Maybe you are looking for

  • How do I sync my note from my notepad to iCloud and my other devices

    How do I sync my note from my notepad to iCloud and my other devices

  • Do not want attachments embedded - how do I fix this problem?!?!?!

    I frequently have to send attachments in my mail messages (jpegs, tiffs, eps). However, every time I send attachments in jpeg, eps and tiff formats the recipient cannot download them. They are either invisible or embedded in the message - which I do

  • How to install Business Content of SAP BW

    Hi BW guru's Can anyone tell how to install business content in bw. we have installed central instance , data base instance and bw component then stuck up can any one help where and how to install Business content Thanks in advance Regards Srini--

  • Controlling two relays

    Hello, I have a problem in controlling the relays i developed to two loops for relays one to control solenoid and other to control fans. solenoid loop should be working when fans stops. I am unable to control the loops or may be my developed logic is

  • Minimum Development Landscape for XI

    Hello, In most cases the proposed optimum landscape for an XI project is the following: 2 XI servers such that    DEV R/3 linked via logical name to XI DEV and    PRD R/3 linked via logical name to XI PRD) Asking the customer to buy 2 servers for XI