Automate

 View Only
  • 1.  Foundation workflow setup

    Posted 08-06-2019 04:34
    Hi Winshuttle users,

    I'm trying to create a rule based upon which the next swimlane (apporval step) in the worklow is chosen (participant resolver). The rule needs to take into account 3 variables and then pick a list of users (of which I have several) which I've set up as a Group on Winshuttle Foundation.  I've tried using SharePoint ListQuery as the Participant Resolver. Please advise.

    ------------------------------
    Joost Hogervorst | Winshuttle Solutions Engineer
    CTAC | +31627885624
    joost.hogervorst@ctac.nl
    ------------------------------


  • 2.  RE: Foundation workflow setup

    Posted 08-07-2019 08:00
    For the SharePoint List Query participant resolver, you'll want to target a SharePoint list that contains the matrix of participants and values. You can achieve much the same thing by using a standard query element to grab the users from that same list and populate a background table on the view, then have a Workflow Participant element use that table to route. This gives you a bit more control in managing the list (such as deleting or adding to the pool) and the ability to display the assignees to the current user.

    ------------------------------
    Joshua Whitener | Technical Advisor
    Exxon Mobil Corporation | 8326258441
    ------------------------------



  • 3.  RE: Foundation workflow setup

    Posted 08-08-2019 09:12
    Hi Joshua,

    Thanks for your reaction.

    My biggest issue is that I would need to maintain a huge number of SP lists. By the way , Winshuttle Support UK confirmed that we can't work with dynamic group assignment within Foundation. 

    How would your solution work in practice?

    Rgrds, Joost

    ------------------------------
    Joost Hogervorst | Winshuttle Solutions Engineer
    CTAC | +31627885624
    joost.hogervorst@ctac.nl
    ------------------------------



  • 4.  RE: Foundation workflow setup

    Posted 08-09-2019 04:52
    My advice would be to move it out of sharepoint lists, into SQL - ​If you set up an SQL user table, there are more detailed options for querying, and this way all your user admin is in one table.

    The way we landed on was a table like this :

    userName, email, roleFlow1, roleFlow2, roleFlow3

    roleFlow1 contains only "Admin", "Treasury", "Processing" and similar roles
    roleFlow2 contains only "Admin", "Expenses" etc

    the role names match the swimlane names in the particular flow, so anyone with role "Admin" should be in swimlane "Admin" for flow "1"

    Lookup from this table all the emails of the matching users, separated by a comma - add it to a text box, use that for  your participant list

    In your exact scenario - there's a few ways it could go - can a user be in multiple lists? you'd likely need to use a wildcard query, and concatenate your role names against each user. If the 3 variables choose one user list, and the users can only be in one list each, then its as easy as a simple where = "role" query

    You cant use this for permissions to edit a master data list however. that would indeed need more groups.

    ------------------------------
    Stephen Butler | Systems Analyst
    RSA Insurance Group Plc
    ------------------------------



  • 5.  RE: Foundation workflow setup

    Posted 08-09-2019 08:19
    I missed the key information on there being multiple groups, which are acting as lists of users. In this case, either SharePoint or SQL would be your matrix with a column that identifies the user for the queries in the form, no need for multiple lists/tables. 

    If groups are still the best way for you to manage the users, which is often the case if you need auto-updating users by placing an Active Directory group into the SharePoint group, you could place tables on the form that are not displayed on the form to the user. Populate these tables with SharePoint User elements, one for each group. Because you cannot manage Workflow Participant targets dynamically, you will need a custom rule.

    Using the a field for concatenated values like Stephen mentions, build a set of the below based on the variables.

    var userList = getRepeatingValues('/my:myFields/my:Repeating_Table_2/my:Repeating_Content/my:userLogin');
    var assignees = userList.join(",");
    $form.setValue('/my:myFields/my:concatfield', assignees);

    You'll just need to alter the first line's repeating table column for each condition.

    ------------------------------
    Joshua Whitener | Technical Advisor
    Exxon Mobil Corporation | 8326258441
    ------------------------------