Workflow Screen: Workflow Screen with Simple Data Rule [IsPathRelative=True] does not load

I was trying to …

  1. I have Simple Data Rule which I want to use with IsPathRelative=True
  2. To test, I defined it very simply with constant (there were attributes referred but as it didn’t work I tried just with constant)
     
    obrazek
     
  3. I registered rule on a context store in workflow:
     

     
  4. I want to display the context store in the screen
     
    obrazek
     

I was expecting …

When I run the workflow, I expect the screen is displayed and the rule is working.

Instead I’ve got …

Screen is not loaded at all. Service InitUI does not return any value.

Other notes

If I use rule IsPathRelative=False then it works properly - UI loads and rule works:

obrazek

Does that meant the data structure had a master-detail relationship which was not set to IsParentChild=True?

@david.pochobradsky can you confirm my previous statement please? Thanks.

Hi Tomáš,

yes, I confirm that there is the parent-child relationship but property IsParentChild=False:
obrazek

I will change this on my model but can you explain a little bit how it affects the behaviour if it is checked and not checked regarding the rule?

Thank you,

David

I have changed the ParentChild relationship and the IsRelativePath now works fine. On the other hand the path /ROOT/ELEMENT/@attribute has stopped working because there is now also the parent object.

It was a bug. I just wanted to make sure that this was exactly the condition not to break other things. This scenario (a rule on a related entity but not in a parent-child mode) is very uncommon but definitely possible. I will now accept the pull requests.

1 Like

Great. But it is also good for me to learn and know about these details how the “parent-child” mode affects the rules and the data provided into rules. That’s why I added also the additional comment. In my scenario “parent-child” mode definitelly fits as far as I understand this relationship like dependant entities. Child has no meaning without parent - like Invoice and Invoice Item.

Unlike for example Order and ServiceRequest where ServiceRequest belong to certain Order but it exists itself as separate entity either it belongs to any order or not. In these cases I don’t use Parent-Child=true option.

Actually, in my reported case, there actually should be parent-child relationship so you also give me a hint what to change through this bug :-).

In ORIGAM setting relationship to be parent-child has two main consequences:

  1. It is rendered as a child node in XML/JSON data interpretation (affecting e.g. how you write an XPath)
  2. The data are deleted in a screen, all child records are deleted with it without saying

There is a limitation though: Child records cannot have multiple parents. I.e. you cannot have Order -> Product set as parent child relationship as the same product can appear in multiple orders. Unless you know there is only 1 order in your dataset. Then you can do it.

@david.pochobradsky Can you confirm that the solution is working?