Maciej
Scholar

One to many relation

I have a case where i need to create two lists probably..... The first one will contains a general submission data while second list will keep the sub tasks with additional info. Generally speaking the first list will contain one row while second many rows related to one and only row in the firs one. This is like in one-to-many in relational database.

10fig09.gif

 

The picture is representing the case that I would like to achieve using customer and customer rentals as an example.

 

Now i would like to have a possibility :

- store and present data in on form

- update the list or list while editing

- manage access of inputs on the form from list #2 fields depending on choices and person fields.

 

Presently I'm using one list with the multiline column in list#1 for data that I treat as list#2.

I used a repeating section on the form connected to multiline column in the list#1 and the values are stored there in xml format. But with this solution when I create a rules on the form, the form stops working - more over stops to display showing blank page.

 

Any Idea how to solve it? shoul I focused on two lists or stay with one,..

 

 

Labels: (1)
0 Kudos
Reply
1 Reply
MegaJerk
Collaborator

Re: One to many relation

This is a large and sort of complex problem to tackle. The Nintex project I'm in charge of is a one to many style setup, and there are significant hurdles in getting it to work with Nintex depending on exactly what you'd like to do.

 

The main things that I feel really qualify whether or not it's a good idea are

 

  1. If you need to track the state of the Children items separately from the state of the main Parent item
    • That is, once the Children Items are created, they each have to go through some processes that is explicitly unique to the Child Item in question. While the Parent Item might concern itself with wanting to know when ALL of the Children Items reach a "Completed" state, the Children Items themselves are essentially able to be processed out of sync with any other Child Item of the same Parent.

  2. If Multiple people might be working on different Children items of the Same Parent at any given time
    1. Johnny is Working on Item 1 of the Parent Item A. Item 1's state is "Incomplete"
    2. Sally is Working on Item 2 of the Parent Item A. Item 2's state is "Awaiting Approval"

 

I feel like if either or both of those questions are "yes" then it's a good idea to consider digging into the creation of a Many to One style setup.

 

While this is by no means a complete answer, I highly recommend looking at Vadim's example of building a Many to One style setup using an Order and Order Items relationship: http://workflowexcellence.com/nintex-workflow-order-and-order-items-relationship/

 

Other Thoughts

 

If you do decide to go down this route, here are some of the things that I found myself having to consider and solve. Some or none of these may apply to your situation, but I figured they were at least worth mentioning

 

  • What happens if someone needs to change the Parent Form's Information?
    • Should that form be "Locked" until some formal process happens that stops work downstream before allowing someone to make a change?

    • How do I handle data that is added / changed to the Parent Form?
      • Should it overwrite or just update the children items?
      • Do I need to inform people who were working on the tasks that something has changed?

  • Will the Parent Items be a "one off" or reused forever?
    • If they are used forever, how will I know what work has already been completed vs. work that needs to be done?

  • How will I keep track of the relationship between Parent and Children Items?
    • Do I create links for people to use, or does the org. not require this level of discoverability?

  • How will I create an immutable relationship between the Rows of my Repeating Section and the Children Items that are being created from the information?
    • Repeating Section Rows Numbers are not unique, and change value in accordance to position from the top. If I have 3 Rows, and delete the 2nd one, how will I know which Item to Delete in the Children Items List?

  • Do I need to display any information from the Main Parent Item on the Task Forms of the Children Items?
    • How will I pull that information down in such a way that it looks consistent with a normal form, and doesn't create information clutter for the user?

    • How will I pull that information down without running up against CORS issues in the browser?

  • How do I inform my Parent Item that all of the Children Items have reached a state of Completion without running into a Race Condition because two Children Items were completed at the same time?
    • How will I track that Completion on the Parent Item if it needs to be shown to a user at any given time?

 

-----

Outro

 

That's about all I can think of for now on the subject. I know that I have written a lot about it here and it may look daunting, but I just want to pull things into perspective depending on how deep you'd like to venture down the rabbit hole. If your case is solved by the video / blog I linked above, then that's awesome, but if you wanna go further with it, then the questions I've written above will likely need to be answered as they are all things that I've had to answer for my own project.

 

I hope this helps you with some of what it is you're looking for / to do

 

 

 

 

0 Kudos
Reply