| 2013-06-09 02:59:49 utc | northox | Hi guys. |
| 2013-06-09 03:01:16 utc | jmettraux | hello |
| 2013-06-09 03:01:47 utc | northox | Hey John! |
| 2013-06-09 03:02:05 utc | jmettraux | how are you doing? |
| 2013-06-09 03:02:30 utc | northox | Ah i'm doing great! And you? |
| 2013-06-09 03:02:39 utc | jmettraux | doing great as well, thanks! |
| 2013-06-09 03:03:29 utc | northox | I had a question for you. I was trying to find the place where a participant in a tree (the array structure of a process) gets transformed into a workitem. |
| 2013-06-09 03:04:55 utc | jmettraux | generally a node where the nodename is the participant name or "participant" |
| 2013-06-09 03:05:12 utc | jmettraux | or simply look at the workitem's fei's expid |
| 2013-06-09 03:05:44 utc | jmettraux | 0_0_1 means root_1st-child_2nd-child |
| 2013-06-09 03:06:11 utc | northox | I'm asking this because of the Audit Trail I'm working on. I have a launch observer saving the original tree structure in the storage and then I'm using it to viualize the entire process. |
| 2013-06-09 03:06:19 utc | northox | ok wait |
| 2013-06-09 03:06:44 utc | jmettraux | (the original tree structure is also accessible via the root expression of a process) |
| 2013-06-09 03:11:07 utc | northox | Lets say I have a process with 3 participant - a sequence. Now let's the first is close, so were at the 2nd workitem. My auditrail would use the current workitem fei to find the entire process (the original tree). Within it I should the first participant with the worktiem /at that time/ , the second participant I use the current workitem, and the 3rd one I would only see the original tree structure ([0] = participant name, [1] = vars(params) and [2] = an e |
| 2013-06-09 03:11:08 utc | northox | mpty array because it has no child). |
| 2013-06-09 03:11:21 utc | northox | *empty |
| 2013-06-09 03:11:27 utc | northox | arg, thats a lot of text... |
| 2013-06-09 03:12:34 utc | jmettraux | sounds like what ruote-kit and ruote-fluo do to display a graphical process representation / place a pin on where a workitem or an error is |
| 2013-06-09 03:13:37 utc | northox | I used your tree_to_dot stuff to navigate the structure |
| 2013-06-09 03:13:48 utc | jmettraux | ok |
| 2013-06-09 03:14:07 utc | northox | with: branch(), children() and such. It works great. |
| 2013-06-09 03:14:10 utc | jmettraux | if you have the fei['s expid] you can pinpoint immediately the node in the tree |
| 2013-06-09 03:14:54 utc | northox | yep. This is what I do to know which child in the tree is the *current/active* workitem |
| 2013-06-09 03:15:14 utc | jmettraux | ok |
| 2013-06-09 03:15:30 utc | northox | So then I know everything before it is /in the past/ and everything else is /in the future/ |
| 2013-06-09 03:16:50 utc | northox | Now, what I would like is to be able to express all of them (past,present,future) the same way but with some little addition. e.g. PastWorkitem < Workitem |
| 2013-06-09 03:17:20 utc | jmettraux | archiving old workitems? |
| 2013-06-09 03:17:38 utc | northox | yes the old workitems are stored in the PastWorkitem. |
| 2013-06-09 03:17:43 utc | jmettraux | ok |
| 2013-06-09 03:18:01 utc | northox | PresentWorkitem would be the real Ruote's Workitem, and the future is the problematic one. |
| 2013-06-09 03:18:49 utc | northox | The question I had was: how is a branch with no child (so basically a participant or such) gets transfered to a real Workitem class. |
| 2013-06-09 03:19:24 utc | jmettraux | the workitem somehow travels in the tree |
| 2013-06-09 03:19:28 utc | northox | ... a branch representing a participant in the tree. |
| 2013-06-09 03:19:35 utc | northox | ok |
| 2013-06-09 03:19:35 utc | jmettraux | sometimes dupping, sometimes merging |
| 2013-06-09 03:19:46 utc | jmettraux | a participant merely hands a workitem out of ruote |
| 2013-06-09 03:19:55 utc | northox | ok so it only extract some info for the tree? |
| 2013-06-09 03:20:03 utc | northox | e.g. the params? |
| 2013-06-09 03:20:38 utc | jmettraux | if the participant has extra attributes, it stuffs them in the workitem before handing it out |
| 2013-06-09 03:21:29 utc | northox | So you are saying I would not find something taking a branch of the tree and creating a Workitem out of it? The worktiem would only `flow` through this branch and extract the params as an example? |
| 2013-06-09 03:21:48 utc | northox | ok I see |
| 2013-06-09 03:22:05 utc | jmettraux | each node of the tree may be applied, giving birth to an "expression" instance |
| 2013-06-09 03:22:11 utc | northox | could you point me where I could find this? |
| 2013-06-09 03:22:21 utc | northox | ah! |
| 2013-06-09 03:23:08 utc | jmettraux | https://github.com/jmettraux/ruote/blob/master/lib/ruote/worker.rb#L435-L463 |
| 2013-06-09 03:23:29 utc | northox | Seems like I still have a lot to learn about Ruote's internal, hehe. |
| 2013-06-09 03:23:35 utc | northox | thanks |
| 2013-06-09 03:23:52 utc | jmettraux | https://github.com/jmettraux/ruote/blob/master/lib/ruote/exp/flow_expression.rb#L369-L431 |
| 2013-06-09 03:24:34 utc | jmettraux | better "first link": https://github.com/jmettraux/ruote/blob/master/lib/ruote/worker.rb#L435-L509 |
| 2013-06-09 03:24:50 utc | jmettraux | you're welcome, I have to go now, lunch, I should be back in one hour |
| 2013-06-09 03:26:25 utc | northox | thanks a lot John! |
| 2013-06-09 03:48:18 utc | jmettraux | northox: back |
| 2013-06-09 03:56:28 utc | northox | ok well it's good for me. Seems like I would be able to `emulate` the FutureWorkitem. |
| 2013-06-09 03:59:08 utc | jmettraux | ok |
| 2013-06-09 04:02:30 utc | northox | Still a few months to go before releasing our open-source security project. Can't wait! |
| 2013-06-09 04:13:57 utc | jmettraux | :-) |
| 2013-06-09 04:14:05 utc | jmettraux | how many people in your organization? |