Clarify a Limitation for Inferred Entity Instances

Hi,
Under the section "Write rules that infer relationships and entities" in the User Guide there is the
Notes /Limitations
1) Combining manually created instances with inferred instances is not allowed.
2) Combining inferred entity instances with temporal values is not supported.
3) Only a single attribute of the entity instance can be inferred as a part of the entity rule. For example, the type of benefit ("unemployment benefit") can be set but the amount of the benefit would have to be set via a separate rule.
4) Inferred entity instances may not contain base level attributes.
5) A relationship that participates in an inferred entity instance rule is considered to be an inferred relationship. This means that an inferred relationship rule cannot be used to prove the same relationship used in an inferred entity instance rule.
Can number 4 be explained in a little more detail?
Thanks

I'm not sure I understand the question so I'm going to guess what you're asking by suggesting a business scenario and talk about how that would work. It is always much easier to talk about a specific business requirement you have rather than product features in general - so if you have a specific requirement I strongly recommend sharing it as you'll get better quality help.
Anyway, if we keep our existing example of an inferred entity "the product" (has attributes: the name of the product, the price of the product). Say we want to know want the price of the most expensive product you have selected (a concept which would be represented by an attribute at the global level).
You can do that. The rules to do that are just the same as the rules you'd use if instead of inferring the products and prices you instead asked the user to provide them (ie instancemaximum across a relationship). I'd send an example showing these rules - but it's not possible to attach files to this forum. You use inferred entities in the rest of your rules as if they had been input by a user - there's no difference. The key difference between an inferred entity and a non-inferred entity is that you can't collect more information about it (ie it can't have any base level attributes).
You can use any attribute in a rule so long as the usage of the attribute matches the entity level of the conclusion. ie You couldn't use "the price of the product" directly in a rule with a conclusion at the global level - because you revert to the problem of "the price of which product?".
On the off chance that this is somehow a "programmer" question (ie you're trying to understand how OPA works by treating it the same as another method for creating programs, for example a programming language like Java) - attributes in OPA don't have a concept of "private" and "public". If I tried to put OPA In those terms (and it's a stretch because OPA is not Java) - in OPA: everything is public (declare once use everywhere). An entity model in OPA is different thing to a class hierarchy.

Similar Messages

  • Creating infered entity instances

    How can I create infered entity instances..in opa 10.4.
    When I am trying to write rule using the "exists" keyword.. its not compiling as "Infered
    Instance" but it compiles as normal conclusion.
    and how can I create inferred instances conditionally..

    Sorry for the long delay in replying Rajan, I missed your request to elaborate.
    To be specific:
    When an entity instance is inferred that means that every attribute in it must also be inferred. The rule engine cannot cope with logic like: "this entity might or might not exist, but if it does, we need to ask for more information about it"
    There are a few ways to deal with setting information in an inferred entity:
    - most obviously infer any values from other entiy attributes in the session.
    - set attribute values on related, non-inferred entities and then use rules infer those attributes on the inferred entity.
    Its worth having a think about what the inferred entity instances means. If you want to use the rules as a convenient way to create an entity instance and you still need to set non-inferred attributes, then you are better off using an inferencing listener to create the instances.
    If the instances are truly derivable from rules, then any attribute values of those instances are probably also derivable.
    Cheers
    Frank

  • OPA 10.4 "Inferred Entity Instances", possible to integrate with Siebel?

    Hi,
    In OPA 10.4, I found a new feature "Inferred Entity Instances" using which we can create benefit plans, Opportunities, Service Request,Order lines using only rules.
    Does it mean we can create an Opportunity/Service Request/Order line by writing the information only in the rule when OPA 10.4 is integrated with Siebel?
    Thanks,
    Subhradeep

    The current Siebel Connector only supports OPA 10.3, which does not have inferred entity instances.
    The upcoming release of the Siebel Connector will support new 10.4 OPA features including inferred entities.
    Cheers
    Frank

  • Return value of inferred entity instance from relationship in SOAP Determinations

    Hey,
    I had an original thread open which indicates the problem I was trying to solve (Multiple Conclusion based on input values ). My rule base now behaves as expected and I can test it in the debugger as expected, only now I can't get the actual identifying values back I want using the determinations web service.
    I get a whole bunch of inferred entity instances back from an inferred relationship the same as the situation/screen shot at the bottom of the "Investigate an inferred relationship" page on the Oracle Policy Automation Cloud Service User Guide, but in my SOAP response I only get the instances with hashed IDs. I want the actual identifying value of the entity.
    e.g. Currently get this:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:i18n="http://www.w3.org/2005/09/ws-i18n" xmlns:typ="http://oracle.com/determinations/server/11.0/rulebase/assess/types">
       <SOAP-ENV:Header>
          <i18n:international>
             <i18n:locale>en_GB</i18n:locale>
             <i18n:tz>GMT-0500</i18n:tz>
          </i18n:international>
       </SOAP-ENV:Header>
       <SOAP-ENV:Body>
          <typ:assess-response>
             <typ:global-instance>
                <typ:attribute id="course_code" type="text">
                   <typ:text-val>AHPY</typ:text-val>
                </typ:attribute>
                <typ:entity id="the_supplementary_documents" inferred="true">
                   <typ:instance id="0x608c2dc220e15d8c"></typ:instance>
                   <typ:instance id="0x5b7e2d02e8780325"></typ:instance>
                </typ:entity>
                <typ:entity id="the_informational_documents" inferred="true">
                   <typ:instance id="0x19387621439a43c7"></typ:instance>
                </typ:entity>
             </typ:global-instance>
          </typ:assess-response>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    But I want something like below and I'm having a lot of trouble figuring out how to actually do this. Also is there anywhere that defines the meaning of errors you get from OPA? I have tried to modify my rulebase and I got a few OPA-EXXXXX errors but apart from the description you get in OPM, I can't find anywhere that gives more detail on these and explains what they mean/how to fix it.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:i18n="http://www.w3.org/2005/09/ws-i18n" xmlns:typ="http://oracle.com/determinations/server/11.0/rulebase/assess/types">
       <SOAP-ENV:Header>
          <i18n:international>
             <i18n:locale>en_GB</i18n:locale>
             <i18n:tz>GMT-0500</i18n:tz>
          </i18n:international>
       </SOAP-ENV:Header>
       <SOAP-ENV:Body>
          <typ:assess-response>
             <typ:global-instance>
                <typ:attribute id="course_code" type="text">
                   <typ:text-val>AHPY</typ:text-val>
                </typ:attribute>
                <typ:entity id="the_supplementary_documents" inferred="true">
                   <typ:instance id="http://mydomain.com/mydocument.pdf">
                   </typ:instance>
                   <typ:instance id="http://mydomain.com/mydocument.pdf"></typ:instance>
                </typ:entity>
                <typ:entity id="the_informational_documents" inferred="true">
                   <typ:instance id="http://mydomain.com/mydocument.pdf"></typ:instance>
                </typ:entity>
             </typ:global-instance>
          </typ:assess-response>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    I managed to get this working by referring to this thread: Inferred Entity Instances IDs in output response
    I had tried something similar but not quite the same. In the end my request looked something like this:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://oracle.com/determinations/server/11.0/rulebase/assess/types">
       <soapenv:Header/>
       <soapenv:Body>
          <typ:assess-request>
             <typ:config>
               <typ:outcome>
              <typ:entity id="the_supplementary_documents">
                <typ:attribute-outcome id="supplementary_documents" outcome-style="value-only"/>
              </typ:entity>
              <typ:entity id="the_informational_documents">
                <typ:attribute-outcome id="informational_documents" outcome-style="value-only"/>
              </typ:entity>
           </typ:outcome>
             </typ:config>
             <typ:global-instance>
                <typ:attribute id="course_code">
                <typ:text-val>AHPY</typ:text-val>
       </typ:attribute>
              </typ:global-instance>
          </typ:assess-request>
       </soapenv:Body>
    </soapenv:Envelope>

  • Batch Processor, WIA and Inferred entity instances

    Hi All,
    I'm playing around with the new OPA 10.4. I bumped into an error in What-If-Analysis document when I tried to add a new worksheet for an inferred entity. Is this not possible in WIA? Does it mean it will not work as well with Batch Processor.
    Here's my data model:
    global
    --- the applicant
    --- --- the qualification
    --- --- --- the exempted course (inferred instances from 'the qualification' attributes)
    Thank you in advance!
    Regards,
    Jerome

    Brad Tuckett wrote:
    Jerome wrote:
    Is there a possible workaround right now in 10.4 to persist inferred instances in Batch Processor?The Batch Processor will not output any inferred instances in 10.4
    One more thing, I'm also using 10.2 and have implemented InferencingListener to create instances, would you happen to know if I will bump on the same issue with DSC?
    There probably isn't a way of having any entity instances created by an event listener appear in the Batch Processor output for database or CSV.
    However, you may be able to set the output to saved sessions. Although this isn't explicitly supported, I would expected that any instances you have created would show up in the exported sessions, which will be xml files in the xds format. This will create one session file for each case.
    You can set the output to be exported sessions by using "--export <dir>" in the command line or use the xml configuration for the Batch Processor.
    When 10.4.1 is released you should be able to switch to using inferred entities which will be compatible with the Batch Processor.

  • Support for creating entity instances through rules

    Hi,
    Is there support to generate an instance of an entity purely through rules? For example, if I have an entity called "VerificationItems", can I write a rule in OPA that will one instance of this entity per verification item that the applicant needs to produce (like one instance for address proof, one instance for SSN etc).
    Thanks
    Sam

    Hi Sam,
    Thanks! No problem. I understand completely your perspective, especially about the integration stuff.
    In case more detail helps:
    Each "action" we have has a clear naming structure and actually they all get aggregated up to global in the end using Exists() if the action is on a child entity. They are called action_1 to action_N where N is the total actions in the active delivery. The rule developers update this each time a release is completed.
    N is a value set in the rulebase that the calling system can have access to, e.g. N=20. The calling system would then know to look in the response field the value of action_1 through to action_20, and do some further processing based on this. So if action_7 meant at "at least one address needs verifying", it would then look at the address instances returned in the response, and see which one(s) have address_action_7 also set. Both systems are aware of what the actions "are", but OPA contains all of the legal / business rules as to when that action should be raised, and the calling system interprets this and sorts out / transforms the data.
    This works well and in terms of performance is optimised, but that said we will be looking at 10.4 and seeing what advantages it could bring over this approach.
    Good luck with the implementation!
    Cheers,
    Ben

  • Creating New Entity Instances within OPA

    This is another one that I think I know the answer to, but I think it is best to confirm.
    In prior versions, it was not possible to create entity instances within RuleBurst/Haley Office Rules. Is that still the case in OPA?
    For example, my rules are determining the status of a case and the reason(s) why that status was determined. The case status may be Denied and the reasons may be "invalid customer Id", "expenses to income ratio too high", "primary customer not employed long enough", etc. I want to return all the reasons for the status. While the list of reasons is pre-determined, the ones that apply to a particular case are dynamic, as any, but not all can apply.
    Given this situation using a database, I would create an instance of reason for each applicable one and link it to the case. In the past, with OPA's predecessor(s), it was not possible to create new instances from within. They either had to all be passed into the rulebase or a list of all allowable reasons attributes had to be created and then set to true for the ones that applied.
    My preference is to create the instances inside OPA. Is that functionality provided in the current version?
    Thanks,
    Terry

    Hi Terry,
    Michael is correct that you can't write rules at design time which will dynamically create new entity instances at runtime. However, perhaps the new inferred relationships functionality in v10 could address what you're trying to do.
    You can write rules which conclude membership of an inferred relationship. So you might always have, say, 10 instances of 'the reason' in every case, but as for which of those instances apply in any particular case, it depends on the details of the case. You could use an inferred relationship to collect up the entity instances which apply in the case.
    First you'd need to set up a regular one-to-many relationship to instantiate the 10 instances at runtime - this would be done in the usual way. Then you'd also need to set up an inferred relationship and write rules to conclude the members of the inferred relationship. The instances which are members of the inferred relationship are then effectively the list of entity instances you wanted to create in your example above.
    Have a look at this OPM Help article: http://www.oracle.com/technology/products/applications/policy-automation/help/opm10_1/Content/Rules%20using%20entity%20instances/Reason_about_relship_between_2_entities.htm
    Cheers,
    Jasmine

  • OPA Siebel Error - Entity instance does not exist

    Hi
    We have installed Siebel OPA connector in our environment and want to have a rule base based on below entities
    Opportunity(S_OPTY) and Opportunity Product(S_REVN)
    Created new Entities : dealProduct (1 to M) to Global
    Added attributes in dealProduct entity as below
    ao_fast_track – Text
    customizable – text
    fast_track _ Text
    Product_id - Identifying attribute
    Logic: Based on few field values in Opportunity Product we want to pass a value to Opportunity entity to display a message in UI.
    Created the rule and run in debug mode all works fine (created instances manually) but when we invoke the same rule base getting below error message
    [1]Error invoking service 'Policy Automation Determination Server', method 'Assess' at step 'Call Determination Server'.
    (SBL-BPR-00162)[2]Operation 'Assess' of Web Service 'http://oracle.com/determinations/server/10.0/server/types.DeterminationServer' at port
    'NonFastTRackDeal' failed with the following explanation: "Entity instance 'dealproduct[deal Product-1-7IGVAU]' does not exist.".(SBL-EAI-04308)
    I have checked the record with Id'1-7IGVAU' is available in the database , Please let me know if I am missing any thing here.
    Please find the details of the changes in siebel.
    1. Add a button to existing applet and added the relevant code to invoke the rule base web service.
    2. Create New Mapping as below
    Mapping Name:NonFastTRackDeal
    Business Object:Opportunity
    Default Value:UnKnown
    Outbound Poart:NonFastTRackDeal
    Created below 2 Entity Attributes:
    deal Product BC Opportunity Product
    global BC Opportunity
    Relation Ships
    Name: dealproduct(same as public name of Forward relationship)
    Source:global
    Target:deal Product
    Outcomes for global entity: deal_type
    Attributes for deal Product
    Prod_id(identify Attribute): Row Id(Opportunity Product Row Id)
    mapped to corresponding fields for below attributes
    ao_fast_track:
    customizable
    fast_track
    Please let me know if I am missing any thing here.
    Regards
    CRT

    Kristy,
    First thank you for the assisance. The Instances are create when the screen is submitted to the session. We save the session to XDS and reconstitue the session before the next screen for the first instance is submitted (instance#1 of employer type), so i would think it would not be treated as inferred ?
    Return (screen.GetInteractiveSession().Submit(screen))"entity instance whose values can be modified via the interview, you must use the facilities provided by the Interview API."
    Is there a C# example of using the Interview API with multiple instances?
    Thanks
    Alex

  • Explaining a WD Error: "Entity Instance Does Not Match Expected Entity"

    Hello,
    I'm wondering if someone can help me understand what is causing a persistent web server error that seems to be related to entities and/or instance creation. Lately, after building with screens and clicking on the top-level goal, I'll get this generic error:
    An error occurred trying to process your request.
    This error has been logged and is available in the application logs.
    For support and assistance please contact [email protected].
    I then check the Embedded Web Server Output, and see the text pasted at the bottom of this post - the key error seeming to be "java.lang.IllegalArgumentException: Entity instance does not match expected entity".
    Observations:
    - It seems to occur after I've made some significant changes to my data model: merging two entities, or switching relationships to being inferred.
    - There are no errors or warnings in the "Error List" and all documents are compiling successfully.
    - It only happens when I build with screens. I can 'build', or 'build and debug' without screens successfully.
    - The most recent occurrence was after I had converted a few relationships to "Inferred" and resolved all compiling errors.
    - It only occurs after clicking on the top-level goal, and sometimes a few screens afterwards. By switching most of my relationships back to non-inferred (except for one), I've been able to get some of the screens working - up until I arrive at the screen that involves creating instances for the second entity involved in the remaining inferred relationship.
    - The remaining inferred relationship that I was suspecting as a cause seems to be working correctly (i.e. I can see that the instances were connected in the Data tab, even after the error has appeared in the web output).
    I would be very grateful for any assistance with this error, as it's become somewhat of a time sink and I've already tried a few angles for troubleshooting it.
    Thanks!
    - Patrick
    Embedded Web Server Output:
    Deploying application
    Jul 18, 2011 2:35:18 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
    INFO: validateJarFile(C:\projects\[project name]\Release\web-determinations\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    Server startup complete!
    OK - Tomcat server started
    4 [http-127.0.0.1-9000-Processor4] ERROR com.oracle.determinations.web.platform.servlet.WebDeterminationsServletUtility - java.lang.IllegalArgumentException: Entity instance does not match expected entity
    java.lang.IllegalArgumentException: Entity instance does not match expected entity
         at com.oracle.determinations.engine.local.RelationshipRule.backwardChainInternalItem(RelationshipRule.java:209)
         at com.oracle.determinations.engine.local.RelationshipRule.backwardChainRelationshipItem(RelationshipRule.java:132)
         at com.oracle.determinations.engine.local.eval.RelationshipExpression.backwardChain(RelationshipExpression.java:216)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleTableValue.backwardChain(RuleTableValue.java:264)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleTableValue.backwardChain(RuleTableValue.java:264)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleTableValue.backwardChain(RuleTableValue.java:264)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleSimpleValue.backwardChain(RuleSimpleValue.java:212)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.RelationshipExpression.backwardChain(RelationshipExpression.java:223)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleSimpleValue.backwardChain(RuleSimpleValue.java:211)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.ExpressionScopeSelect.backwardChain(ExpressionScopeSelect.java:40)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleTableValue.backwardChain(RuleTableValue.java:264)
         at com.oracle.determinations.engine.local.eval.ExpressionAttributeRef.backwardChain(ExpressionAttributeRef.java:122)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.RelationshipExpression.backwardChain(RelationshipExpression.java:223)
         at com.oracle.determinations.engine.local.eval.SimpleExpression.backwardChain(SimpleExpression.java:101)
         at com.oracle.determinations.engine.local.eval.ExpressionEvaluation.backwardChain(ExpressionEvaluation.java:102)
         at com.oracle.determinations.engine.local.RuleSimpleValue.backwardChain(RuleSimpleValue.java:211)
         at com.oracle.determinations.engine.local.LocalAttribute.backwardChain(LocalAttribute.java:562)
         at com.oracle.determinations.engine.local.LocalAttribute.getRelevanceReport(LocalAttribute.java:515)
         at com.oracle.determinations.interview.engine.local.AttributeGoal.getNextScreen(AttributeGoal.java:113)
         at com.oracle.determinations.interview.engine.local.LocalInterviewSession.getNextScreen(LocalInterviewSession.java:213)
         at com.oracle.determinations.web.platform.controller.actions.InvestigateAction.submit(InvestigateAction.java:99)
         at com.oracle.determinations.web.platform.servlet.WebDeterminationsServlet.doPost(WebDeterminationsServlet.java:102)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at com.oracle.determinations.web.platform.util.CharsetFilter.doFilter(CharsetFilter.java:46)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
         at java.lang.Thread.run(Unknown Source)
    Edited by: Patrick Devine on Jul 18, 2011 3:23 PM

    Hi Patrick,
    The bad news is that your issue is due to a bug in the Determinations Engine. The good news is that there is a workaround. Basically there’s an implied directionality for all relationships which, for inferred relationships is defined by the direction in which you declared the relationship in the properties file. The problem only happens if you write your membership rule in the reverse direction to the one in which it was originally declared. In your case because your membership rule concludes the relationship ‘the benefits of the benefit plan’ you need to make sure that your relationship was declared in that direction as well. To do that, you’ll need to delete your existing relationship in the properties file and then create it as follows:
    Source: the benefit plan
    Target: the benefit
    Relationship Type: Inferred (Many to Many)
    Text: the benefits of the benefit plan
    Reverse Text: the benefit plan of the benefit
    We will fix the issue in the next release.
    Thanks,
    Kristy

  • Performance tuning for OS400 - three instances

    I have an OS400 LPAR that has been setup with 10GB RAM and 40GB swap space.
    The LPAR supports three SAP systems, a development ERP, QA ERP and PI Development system (ABAP+JAVA). All systems are based from the Netweaver 7.0 stack.
    Quite often the CPU maxes at 100% of utilization. This occurs even when the DB02 transaction is started and CPU will hit 100% for approximately 30 seconds (the time for DB02 to load is about 35 seconds).
                                Work with System Status                    SAPDEV  
                                                                 27/06/08  11:10:56
    % CPU used . . . . . . . :      100.0    System ASP . . . . . . . :    846.7 G
    % DB capability  . . . . :       26.3    % system ASP used  . . . :    86.3558
    Elapsed time . . . . . . :   00:00:01    Total aux stg  . . . . . :    846.7 G
    Jobs in system . . . . . :       6277    Current unprotect used . :    34170 M
    % perm addresses . . . . :       .010    Maximum unprotect  . . . :    39988 M
    % temp addresses . . . . :       .117                                                                               
    Sys      Pool   Reserved    Max  -
    DB-----  Non-DB-  Act-   Wait-  Act- 
    Pool    Size M   Size M     Act  Fault Pages  Fault Pages  Wait   Inel   Inel 
       1     700.00    244.04  +++++     .0    .0     .0    .0  188.4     .0     .0
       2   10008.06      6.70   3000    1.8  28.8    1.2   2.5   2713     .0     .0
       3     400.00       .07    151     .0    .0     .0    .0   37.6     .0     .0
       4      80.00       .00      5     .0    .0     .0    .0     .0     .0     .0
    The wrkdsksts occassionally hits 100% busy, but most of the time, averages:
                                 Work with Disk Status                     SAPDEV  
                                                                 27/06/08  11:39:01
    Elapsed time:   00:00:53                                                                               
    Size    %     I/O   Request   Read  Write   Read  Write    %   
    Unit  Type      (M)  Used    Rqs  Size (K)    Rqs   Rqs     (K)   (K)   Busy  
        1  4328   105847  82.2   44.2      9.6    30.1   14.0    6.1   17.3     3  
        2  4328   105847  88.9    4.2     15.1     1.5    2.7   29.2    7.4     1  
        3  4328   105847  89.0    4.9     13.5     1.7    3.1   23.4    7.9     1  
        4  4328   105847  88.8    5.1     15.6     2.2    2.8   24.7    8.5     1  
        5  4328   141129  85.4    6.5     14.3     2.8    3.6   22.4    7.9     2  
        6  4328   141129  85.4    5.8     16.5     2.6    3.2   28.1    6.9     2  
        7  4328   141129  85.4    6.1     16.6     2.6    3.4   28.8    7.2     1                                                                               
    Does this appear to be a CPU related limitation for performance or am I able to better tune the memory/disk allocation?
    Quite often the Java stack on the PI system seems to hang and needs to be restarted.
    Would it be useful for me to split the memory in multiple pools to support ERP and the PI systems separately?
    Thanks for your assistance!

    Hi Satid,
    Thanks for your comments. In regards to your query, the Processor feature value is 5460.
    I have granted this LPAR some additional resources, being 0.8 CPU and 16GB of RAM, (originally, 1.2CPU and 18GB RAM was planned however, there were max limits originally configured which I decided to abide by for the interim).
    The performance is significantly better now.
    I'm still centering on the Java Garbage Collector as its usually around this that performance is impacted.
    grep "current heap" std_server0.out                           
    GC 1: current heap(KB) 6436; current threshold(KB) 1048576.   
    GC 2: current heap(KB) 1208776; current threshold(KB) 1048576.
    GC 3: current heap(KB) 1468428; current threshold(KB) 1048576.
    GC 4: current heap(KB) 1628184; current threshold(KB) 1048576.
    GC 5: current heap(KB) 1662796; current threshold(KB) 1048576.
    GC 6: current heap(KB) 1686988; current threshold(KB) 1048576.
    GC 7: current heap(KB) 1762488; current threshold(KB) 1048576.
    GC 8: current heap(KB) 2034252; current threshold(KB) 1048576.
    GC 9: current heap(KB) 2266228; current threshold(KB) 1048576.
    GC 10: current heap(KB) 2389784; current threshold(KB) 1048576.
    GC 11: current heap(KB) 2336620; current threshold(KB) 1048576.
    GC 12: current heap(KB) 2317836; current threshold(KB) 1048576.
    GC 13: current heap(KB) 2316024; current threshold(KB) 1048576.
    GC 14: current heap(KB) 2295552; current threshold(KB) 1048576.
    GC 15: current heap(KB) 2355488; current threshold(KB) 1048576.
    GC 16: current heap(KB) 2340512; current threshold(KB) 1048576.
    GC 17: current heap(KB) 2352872; current threshold(KB) 1048576.
    GC 18: current heap(KB) 2342312; current threshold(KB) 1048576.
    GC 19: current heap(KB) 2238296; current threshold(KB) 1048576.
    GC 20: current heap(KB) 2209844; current threshold(KB) 1048576.
    GC 21: current heap(KB) 2211380; current threshold(KB) 1048576.
    GC 22: current heap(KB) 2168864; current threshold(KB) 1048576.
    GC 23: current heap(KB) 2269324; current threshold(KB) 1048576.
    grep "collect (mill" std_server0.out
    GC 1: collect (milliseconds) 110.   
    GC 2: collect (milliseconds) 2111.  
    GC 3: collect (milliseconds) 3321.  
    GC 4: collect (milliseconds) 3797.  
    GC 5: collect (milliseconds) 4815.  
    GC 6: collect (milliseconds) 5418.  
    GC 7: collect (milliseconds) 1313.  
    GC 8: collect (milliseconds) 15789. 
    GC 9: collect (milliseconds) 5754.  
    GC 10: collect (milliseconds) 33555.
    GC 11: collect (milliseconds) 39700.
    GC 12: collect (milliseconds) 44957.
    GC 13: collect (milliseconds) 40003.
    GC 14: collect (milliseconds) 13410.
    GC 15: collect (milliseconds) 309107
    GC 16: collect (milliseconds) 1819.
    GC 17: collect (milliseconds) 37277.
    GC 18: collect (milliseconds) 443266
    GC 19: collect (milliseconds) 1890.
    GC 20: collect (milliseconds) 78749.
    GC 21: collect (milliseconds) 40124.
    GC 22: collect (milliseconds) 14932.
    GC 23: collect (milliseconds) 10085.
    grep "starting collection" std_server0.out                    
    GC 1: starting collection, reason  external thread attached.  
    GC 2: starting collection, threshold allocation reached.      
    Login :GC 3: starting collection, threshold allocation reached.
    GC 4: starting collection, threshold allocation reached.      
    GC 5: starting collection, threshold allocation reached.      
    GC 6: starting collection, threshold allocation reached.      
    GC 7: starting collection, threshold allocation reached.      
    GC 8: starting collection, threshold allocation reached.      
    GC 9: starting collection, threshold allocation reached.      
    GC 10: starting collection, threshold allocation reached.     
    GC 11: starting collection, threshold allocation reached.     
    GC 12: starting collection, threshold allocation reached.     
    GC 13: starting collection, threshold allocation reached.    
    GC 14: starting collection, threshold allocation reached.    
    GC 15: starting collection, threshold allocation reached.    
    GC 16: starting collection, reason  stop the world collection.
    GC 16: starting collection, reason  stop the world collection.
    GC 17: starting collection, threshold allocation reached.    
    GC 18: starting collection, threshold allocation reached.    
    GC 19: starting collection, reason  stop the world collection.
    GC 19: starting collection, reason  stop the world collection.
    GC 20: starting collection, threshold allocation reached.    
    GC 21: starting collection, threshold allocation reached.    
    GC 22: starting collection, threshold allocation reached.    
    GC 23: starting collection, threshold allocation reached.  
    From the std_server0.out logs, I have the following impression:
    - maximum heap size is set too low (currently set at 4096MB)
    - initial heap size set too low (currently 1024MB)
    - garbage collection unable to keep up
    I appreciate any suggestions to tune these settings.
    I'm thinking of setting the following:
    - initial heap size to 2048MB
    - maximum heap size to 8192MB
    Would this be suitable considering there are three instances running on the same partition with Java being allocated this amount of memory. I'm open to suggestions to refine these figures.
    Thanks!

  • Listener configuration for 2 db instance in a single node

    Hi,
    I have configure a 11gR2 server with 2 db instance (A and B), but I have only one listener (default) to server this two db instances.
    Is this the recommended configuration or should I have one listener for each db instance? e.g Listener_A and Listener_B. I think it will be usefull in cases when I need to block the access to one db instance (A) without shutting down the database, by just turning off the proper Listener.
    With my current configuration I am not able to do that since if I turn of the only listener that I have both dbs will not receive any other connections.
    Am I correct?
    Regards,
    Edited by: ashum on May 13, 2011 8:21 AM

    You are right that there is some value in going to the trouble to set up a separate listener for each database. Whether you take this approach depends mainly on how satisfied you are with the alternatives and how much trouble you want to incur in setting up and maintaining multiple listeners. We use separate listeners for each of our databases and really like the granularity it provides in limiting the scope of outages.
    If you take the multiple listener approach, you will need to either use separate ports for each listener, or bring up a virtual ip on your server so that the second listener can run on the virtual ip.

  • Limits for data exponential values in Essbase

    Hi Gurus,
    Can some one let me know the limits for exponential values for the data in essbase. I know how to set it at the time of export. But and the time of data load what is the min and max(range) limit for the Exponent value. like a number 6.75285 E+008 exponent is 8. But what is the min and max like -100 to +100.
    Thanks
    Sri

    Hi,
    If I understand correctly, you want to display report id with its corresponding report name in different pages. If in that case, we can use list control to achieve your requirement. For more details, please refer to the following steps:
    Drag a list control from Toolbox to design surface.
    Drag a tablix with those two fields to the list.
    Right-click the List to use the same dataset as the tablix.
    Click the list, right-click the Details group to open the Group Properties dialog box in the Row Groups pane.
    Add a group grouped on [Report_Id].
    Select Page Breaks in the left pane, enable “Between each instance of a group”.
    If there are any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Is it a limitation for BAPI_SLSTRANSACT_CREATEMULTI?

    Is it a limitation for BAPI_SLSTRANSACT_CREATEMULTI
    I am trying to create a Sales Order using a Zprogram. I have used BAPI_SLSTRANSACT_CREATEMULTI. If I give the input as Normal material I am able to generate a sale order. If I give the input as VC material I am able to generate a sales order. But if I give both VC and Normal material as input, I get a run time error as follows.
    Is it a limitation for BAPI_SLSTRANSACT_CREATEMULTI that we cannot create a sales order with both VC and Non-VC items or am I missing some data which I need to pass when I give both VC and Non VC items? I get this error only for my Zprogram. But if I try to create an order on screen manually I donu2019t get any error. This happens only if I create an order with my Zprogram.
    Some one please help me u2026I am just stuggling to get this doneu2026
    I dint find any posts that gives me information about this error.
    CUX1 034 u201CNo root instance found in header datau201D                                                                               
    In the source code you have the termination point in line 63                                   of the (Include)program "LCRM_CONFIG_OWF02". 
    Line
    SourceCde
    33
    LT_CUXI_CUPRT
    34
    LT_CUXI_CUVAL
    35
    LT_CUXI_CUVK
    36
    LS_CUXI_CUCFG.
    37
    38
    PERFORM CREATE_PRICING_CSTIC USING IS_CONFIG-CUCFG-CFGINFO.
    39
    40
    set config to cbase
    41
    CALL FUNCTION 'COM_CUXI_SET_SINGLE_CFG'
    42
    EXPORTING
    43
    I_CFG_HEADER          = LS_CUXI_CUCFG
    44
    I_ROOT_INSTANCE       = CV_INT_OBJ_NO
    45
    I_LOGSYS              = LV_LOGSYS
    46
    IMPORTING
    47
    E_ROOT_INSTANCE       = CV_INT_OBJ_NO
    48
    TABLES
    49
    I_TAB_INSTANCES       = LT_CUXI_CUINS
    50
    I_TAB_PART_OF         = LT_CUXI_CUPRT
    51
    I_TAB_VALUES          = LT_CUXI_CUVAL
    52
    I_TAB_VAR_KEYS        = LT_CUXI_CUVK
    53
    I_TAB_RESTRICTIONS    = LT_CUXI_CURES
    54
    EXCEPTIONS
    55
    INVALID_INSTANCE      = 1
    56
    INTERNAL_ERROR        = 2
    57
    OTHERS                = 3.
    58
    59
    IF SY-SUBRC <> 0.
    60
    if sy-msgno is initial.
    61
    MESSAGE X010 WITH 'COM_CUXI_SET_SINGLE_CFG'.
    62
    else.
    >>>>>
    MESSAGE ID SY-MSGID TYPE 'X' NUMBER SY-MSGNO
    64
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    65
    endif.
    66
    ENDIF.
    67
    68
    ENDFORM.                               " CONFIG_TO_CBASE
    Edited by: jessica sam on Jan 22, 2009 9:58 PM

    Re: Can we create saleorder for VC,Non-VC items with BAPI_SLSTRANSACT_CREATEMUL

  • Validation in entity instance collection page

    I have a requirement where I have a page on our OPA interview page which collects entity instance.In this page there are two fields person contacted and contact date.I have to validate that the contact date is one per week.Please advice how can I achieve this requirement.

    There is no standard definition, nor function for "the same week" - e.g. does that mean a week starts on a Sunday or Monday, or within 1 week in either direction?. In other words, you will need to express the specific logic you desire for "during the same week" in terms of the available functions such as those that can determine the day of the week and/or those that return the date plus/minus a number of days and/or the difference in days between two dates. Some suggestions on simplifying the logic ... two dates that are more than 7 days apart can't occur during the same week so only worry about <= 7 days apart, two dates which are the same day of the week and different dates can't be within the same week, so your logic should only need to deal two dates are different days of the week and are less than 7 days apart. In that case, you will need to express exactly what you mean by during the same week. (e.g. is a Sun and Sat that are 1 day apart within the same week or not?) Your logic should reduce to a rule table dealing with each day of the week and a range of days before/after that define "within the same week".

  • Limitations for upgrading SQL server database engin from SQL 2008 R2 enterprise edition to SQL 2014 enterprise edition

    Dear All,
    we are planning to upgrade  SQL Server 2008 R2 Enterprise edition to SQL Server 2014 Enterprise edition.
    please suggest the limitations for the up gradation.
    Thanks in Advance
    Vineet Srivastava
    NIIT Technology Ltd.
    New Delhi , India

    Hello,
    Please note that we have 2 Enterprise Editions now: 
    (1) Enterprise Edition with Server + Client Access License (CAL) and (2) the Enterprise Edition licensed by core. “Enterprise Edition with Server + Client Access License (CAL) based licensing (not available
    for new agreements) is limited to a maximum of 20 cores per SQL Server instance. There are no limits under the Core-based Server Licensing model”. Source:
    https://msdn.microsoft.com/en-us/library/ms143760(v=sql.120).aspx
    Hope this helps.
    Regards,
    Alberto Morillo
    SQLCoffee.com

Maybe you are looking for