Skip to Content
avatar image
Former Member

Loops in Context

Hi All,

I'm just starting to use Business Objects Designer recently and I have a question about loops.

Consider the following situation:

------------      a    --------------    c
| Case     | ----------| Category | -----------\    -------------
------------           --------------           ----|Durability |
      |           b     -------------    d      ----|           |
      | ---------------| Status     |----------/     ------------
                        -------------
Cardinality from left to rigth:
Join A : N - 1 
Join B : N - 1
Join C : 1 - N
Join D : 1 - N

So, a Case has a Status and a category. Depending on the category the status has a durability.

I designed my universe as above and when i create a Web Intelligence Document in InfoView it picks both join C an D which is intended. However the Integrity Check comes up with this as being a loop.

Can I keep my design like this, even though it would be marked as unresolved loop or should I try another aproach (derived table probably?)

I hope my question is clear enough, Please Advice,

TIA

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Sep 07, 2010 at 04:23 PM

    You can create 2 contexts to avoid loops: one with a and b and another with c and d.

    pls refer to the designer guide for details of procedures to avoid loops.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Loops are not always bad. I have delivered more than one universe where loops were not only included they were required. One such example was a medical reporting universe where there were three main "core" tables: the patient, the service, and the provider. At any given point in time any provider could deliver any service to any patient. So all three tables were required in order to generate a valid answer, and therefore we had a loop.

      I have also seen loops in effective-dating strategies.

      So to answer the original question: no, you do not always have to resolve loops. But behavior has changed from version to version. In earlier versions, if I had unresolved loops in my universe I could not run a query. Instead I would get an "Incompatible combination of objects" for every single query. The fix was to highlight the entire universe (it was small) and add every join to one big context. That way I told Web Intelligence that I knew I had a loop, but do it anyway. It worked fine after that. 😊