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? |