Task is not correctly assigned

Certified Associate Developer

Hello All,

I have created a web API that initiated the process and generates a task for the use. This web API is called by third party application, Wherein they pass "username" as a parameter on the basis of which the process model executes.

Now inside the process model I'm using the username variable for the task assignment. For calling the Web API, I have created an unique user account which they use for authentication. As a result of which when the API is called, Its showing that account information as a process initiator(Which is fine) but the task is not getting assigned to the user whose value exists in "UserName" variable. However, If the same process model is initiated from Appian then it got assigned to correct user whose value exists in that variable

  Discussion posts and replies are publicly visible

  • Hi Vivek,

    To have a better look at what is happening, run an instance of the process by calling the Web API through your external system, monitor the instance in Appian and look into the following information inside process details:

    - Which pv! is set to hold the username that you passed as a parameter? (+ Is this process variable parameterised?)

    - What is the value of this pv! ?

    - When the task was assigned, who was it assigned to? (+ In the user task itself, what did you put for the assignment details?)

    From this information we'll be able to help a bit more

  • Hi

    Are you facing the same issue when you are trying to test the WEbAPI from Appian or is it when you are calling it from external system?

    Also, can you make sure the type of the userVariable is user or group. I tried to create a similar scenario and it worked for me.

  • 0
    Certified Associate Developer
    in reply to Nathan Hunter

    Hello Nathan,

    I performed the said steps and here are my findings. Lets understand it with an example,

    Suppose  third party application is calling the appian Web API and for authentication they are using service account. Lets say username for the same is "WebServie" and in the queryParameter they are providing some username lets consider its "nathan_hunter"

    Now this WebAPI will initiate a process model. As a result of which the "WebService" will be shown as the process initiator. Inside that process model I have a variable called "UserName" it will hold the value "nathan_hunter" and the same variable is used in the assignment tab of Task Form.

    - Variable holding the value of username is of type user and it receives the value when the process is initiated

    - As per the above scenario this variable will hold the value "nathan_hunter"

    - The assignment shown is null in the case of Web API(Attaching screenshot)

    - The same "UserName" variable is used under assignment tab

  • 0
    Certified Associate Developer
    in reply to ankitab0001

    Hello Ankita,

    Thanks for the reply, Yes the issue is not happening while i execute the API from Appian. Please refer the attached screenshot for more insight in my other reply. The username variable is of type user

  • 0
    Certified Lead Developer

    When you pull the username value in and store it in the PV of type user, are you wrapping the text value in a touser()? Appian might not always cast a text to user type for you. Never hurts to do this. Also, does the case and text match the username in Appian - exactly?

    Might seem silly, but I had to ask...

  • It may happen that there are some case sensitive value or spaces in the user name you are providing. Do the validation doesuserexist() and then assign the variable in the task

  • 0
    Certified Associate Developer
    in reply to ChristineH

    Hello Christine,

    The process model consists of activity chaining from start node till User Input task node, Due to that the task was getting assigned to 2 users. One which is already available in "userName" variable and another one "pp!initiator". So, under activity chaining properties I unchecked the "Override assignment for the next attended activity even if the current user is not an assignee" and then it started working fine. Slight smile