Skip to main content

Hi,


I have a master process which fires off multiple IPC processes, each one of these IPC processes ultimately end with either a reject or approved action.


If all the IPC processes get approved, the master process finishes with an overall approval, if any of the IPC processes get rejected, the master processes finishes with an overall rejection.


Whats the best way to evaluate the results of all the IPC processes so they can be passed back to the main process to determine if the overall process results in a Approved or Rejected?


I was thinking just a simple counter against all the rejections which I thought should be able to achieve using inline events but doesnt seem to be the case as the Data Process Field i create as the counter always has to have a default value which appears to have to be a hard typed number, is this corrrect ?


Cheers, 

We do something similar, and the approach we took was to have each sub-process return a value to a data field on the main process indicating whether it passed or failed.  Then, at the end of the main process, we evaluate each of these data fields and take the appropriate action.  Hope I'm not over-simplifying...


Hi Tim,


Thanks for the reply, this is also what I want to do but cant work out how to do it, maybe im having a mental block !  The number of sub processes fired of for each master can be a different amount each time.


ie I have a data field on the Sub process which is to 1 if it accepted or 0 if its rejected, I pass this back to a datafield on the master process, but the data filed on my master process only ever stores the result from the last sub process so I cant make an over all evaluation ?  As I say Im sure Im having a mental block!?


 


Cheers,


 


Hi,


Rather create an Activity-level data field to save the retuned result. Each IPC will create a unique activity instance, each with each own instance of this data field. When the data is returned the data is saved into the activity instance's data field and this can be used in the Succeeding Rule to evaluate how many of them completed successfully.


Hope this helps!


Thanks for the reply, just to confirm Ive got this right basically:


In my sub IPC process Im going to create a activity level data field say 'SubProcStoredResult' which I use to store the contents of the 'Action Result' field of the activity for each sub process fired.


Then in my IPC event in the master process im going to set 'SubProcStoredResult' to send data to a field in my master process ie 'MasterStoredResult'


Now in my master process I can evaluate the results of 'MasterStoredResult' in a line rule ie.


If 'MasterStoredResult' ALL = Accepted then go to this event (approved)


If 'MasterStoredResult' ANY <> Accepted then go to this event (rejected)


?


Thanks


 


 


Yeah, I think you got it if your scenario is that you can have x instances of the SAME IPC.  In my scenario, we only have one instance of an IPC but there were many different IPCs so I guess it wasn't quite the same as your goal


Thanks, Il give it a go & let you know the outcome......


Hi guys,


Still cant get this to work, I am trying to follow what Johan suggested but as Im using an 'activity' level field I cant pass this data back to the main process as it doesnt exist (as it only exists in the activity)


This is what I have - my sub process which is getting called by the main process & getting run for each repeating section in an IP form:


https://skydrive.live.com/?cid=bfac7d98941c0b11&sc=documents&uc=2&id=BFAC7D98941C0B11%21157#cid=BFAC7D98941C0B11&id=BFAC7D98941C0B11%21544&sc=documents


As you can see, the 'Reject' or 'Approve' on the sub process can come from one of a number of multiple activities, basically depending on values & approval limits etc determines who can approve / reject the item hence the multiple approve / reject lines.


I have created activity level fields to capture the rejects & approval as you can see in the above screen shot, my problem is how do I evaluate these out comes in my main process, as I cant pass them back to the main process ?


My main process:



https://skydrive.live.com/?cid=BFAC7D98941C0B11&id=BFAC7D98941C0B11%21544&sc=documents#cid=BFAC7D98941C0B11&id=BFAC7D98941C0B11%21545&sc=documents


On the event 'Line Item Processing Complete' I was just thinking I could use to line rules to determine whether it takes the overall reject or approve route, but I cant work out how to evaluate the results of my subprocess ?


I think Johans suggestion was based on me in my sub process just having a single source of either reject / approve but as you can see in the screenshot the approves / rejects can come from any one of a number activities.


Any ideas?


 


Thanks,


Hi,


I think you got it wrong in your previous reply.


You need to create an Activity-level data field on your Main process on the activity which contains your IPC Event. (Not in the sub-process).


In your sub-process create a Process-level data field to store the result. (Approve/Reject)


Configure the main process to receive data from the sub-process into the activity-level data field and the source will be the Process-level data field in the sub process. Here is a screenshot of the configuraiton which might explain it better.



 Hope this resolves it!


Regards,


Just to add to Johan's reply. 


In the subprocess you want to get the "Action Result" from the approval activities which I'm assuming can come from different client activities in the subprocess. 


An approach that should work is in your subprocess:



  1. Create an process datafield called something like SubProcessResult.
  2. Add a dataevent as the last event in each client activity that copies the Activities "Action Result" datafield (where the actions of the activity is actually stored and evaluated in the activities succeeding rule) from the activity to the "SubProcessResult" process level field.

In your parent process you would then follow Johan's suggestions to evaluate the SubProcessResult field when it gets passed back to the parent when the subprocess completes.


That looks good, thanks guys !


Reply