Skip to Main Content

Intelligent Advisor

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

InstanceSum on nested relationship

ParthibHWSep 1 2013 — edited Sep 2 2013

Hi OPA Experts.

I have following data model and appropriate relationship created.

Quote

  Line Items

      PartDetails

  Agreement Terms

      MileStoneforAgreementTerms

I want to use function InstanceSum on field 'ItemPrice' on Entity 'PartDetails' . I tried below:

the order total = InstanceSum(the PartDetails, the PartDetails ItemPrice)

It throws me following error:

"Relationship not recognized. You may need to use an alias when referring to use this relationship. (OPA-E00178)"

  Is it because of scope?, how to use scope statement for above scenario?. Thanks.

This post has been answered by Frank.Hampshire-Oracle on Sep 2 2013
Jump to Answer

Comments

The rule you have described will work if "the order total" is an attribute on the Line Items entity, which is the parent of the PartsDetails relationship. If you are getting the error message described you should do the following:

1. check that the relationship text for Line ITems --> PartDetails is "the PartDetails"

2. check that you have a number or currency attribute with the text "the order total" on the Line Items entity.

3. If you are rely on an automatically created attribute, you should change the attribute to "the Line Items order total". If you include the text of an entity in an attribute, the automatically created attribute will be placed in the correct entity, and then the InstanceSum statement will be correct for the attribute.

Cheers

Frank

ParthibHW

Hi Frank, It is not working. If I flatten the structure keep 1 entity (line item details) under global, InstanceSum works fine. For nested datamodel relationship, instanceSum not working.

PathhibHW,

This is almost certainly becuase the rule is trying to create the attribute "the order total" on the global entity, in this case it cannot sum across all line items, all part details.

Have a look at my suggestions 2. and 3. make either of those changes and your rule should work.

Cheers

Frank

ParthibHW

Hi Frank, Thanks a lot. It is working now. Can you please share the scenario for "Reasoning across entity instances" ForScope statement. Thanks.

Answer

Glad to hear you got it working.

Due to quirks of our rule parser, you can't sum across a deep relationship structure in one rule using scope operations. However with a few itermediate attributes it becomes pretty simple.

To sum all the PartDetails of a quote. I would use the following two rules:

the line item's total = instancesum(the PartDetails, the PartDetails ItemPrice)

the quote's total = instancesum(the line items, the line item's total)

You have to sum the totals across one relationship at a time.

Cheers

Frank

Marked as Answer by ParthibHW · Sep 27 2020
1 - 5
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Sep 30 2013
Added on Sep 1 2013
5 comments
618 views