Process does not show User Input Task

I had a process model that has sub-process, events, script tasks and user tasks, and it was working fine, recently I had to updated the process model and added a sub-process right before the user task that will run multiple sub-processes synchronously and then start a user task; after the update and running the task from the end-user site the process runs but it won't show the user task although it is created and user has to go to tasks tab to access the user task.
Any idea what is going? or any setup that I need to change for that to act as expected?

OriginalPostID-273235

  Discussion posts and replies are publicly visible

  • @coltonb, I won't know how many instances in the array in the runtime, and the sub-process is running quite few conditions and script tasks before writing to the database.
    @philib, there are more than 50 nodes per sub-process and the sub-process is called multiple time in parallel.
    @christineh, i actually have similar setup to what you described, as the parent process chained to synchronous sub-process, and first sub-process calls another sub-process multiple times and at the end all chain to the user task, but I can't run it asynch. as the user task depends on the output of all ran sub-processes.
  • 0
    Certified Lead Developer
    @minal is the User Input Task node depending upon the Subprocess which has MNI. if it is, then is the User Input Task depending upon only one instance of Subprocess or all?
  • @aloks176, the user task is depending on the output of all MNI sub-processes.
  • What are you trying to achieve with multiple runs of fifty or more nodes before a user input task...?! Are they data writes, data retrieval...? As @minal asks, does the task rely on all of the output? Do the subprocesses contain data retrieval that could be done in the interface? You'll have to cut down the number of chained nodes before the task to get this to work.
  • @philb, the sub-process is taking each instance in the array and run few checks includes data retrieval and then insert data in the database if needed, the end result is passed to the user task to show up in the screen.
    I think the appropriate solution is to revisit the sub-process and cut down the number of chained nodes as you suggested. thanks.
  • 0
    Certified Lead Developer
    @minal in such cases i don't think there is any possibility to get the User input Task directly, because here the number of nodes as well as the time to complete the subprocess is huge. so if possible, then try doing most of the processing using rule in interface instead of subprocess, however this can cause huge performance issue too.

    Also is there any possibility to send complete array into the subprocess and process all at a time instead of having MNI?
  • Don't forget that you can carry out a write of multiple rows with a single write to datastore node; if you're looping the subprocess because you're doing the same thing to multiple items, see if you can rewrite the subprocess to accept a list of items and have it update all of them at once rather than one at a time. There's also the write to multiple data store node if you're really struggling to cut down the number of unattended nodes.
  • @aloks176, I will update the sub-process to do the work in fewer script activities calling expression rules.
    @philb, I actually accumulate all the data from the MNI sub-processes and write once after, but the sub-process has extensive number of unattended tasks which I am planning to reduce and use more expression rules.
  • Based on your explanation, this could be a good use case for using stored procedure. You could do a single procedure call that handles all data checks and writes, then you could run a single query to return all information the user would need to see.

    Just something to consider.
  • 0
    Certified Lead Developer
    @minal i agree with @philb you can send array of items and perform all store operation using process model and all retrieve and operations using rule in interface

    Also not to forget, you can perform insert, update, delete, select as well as execute many OOTB smart service from interface also by he help of smart service function.

    So if possible, try doing these operation through interface on load itself.