I've got a sort of weird problem that I can't figure out. I have a webAPI built that kicks off a process model for creating new users. When I test it within Appian, I get a JSON response with all the info about the process model.
{ "pp" : { "id" : 268442112, "name" : "Create User Bob Newman", "priority" : 1, "initiator" : { "id" : "******" }, "startTime" : "2022-01-06T18:04:14.980Z", "timeZone" : "US/Eastern", "starred" : false, "parentName" : "", "execId" : 1, "status" : 0 }, "pm" : { "id" : 5238, "uuid" : "0005e780-67c2-8000-2559-7f0000014e7a", "name" : "PP Web API User Generation", "description" : "Create a new user with a web API", "version" : "16.0", "creator" : { "id" : "*****" }, "timeZone" : "US/Eastern", "starred" : false, "parentName" : "" }, "pv" : { "GroupsLIstDS" : { "id" : "0aeb9200-355f-4ff1-9741-7b2ef4459c2a@35138" }, "email" : "bob.newman@example.com", "firstName" : "Bob", "lastName" : "Newman", "newuser" : null, "successCode" : "207", "username" : "Bob Newman" } }
However when I access the same API externally, I get an empty JSON response that looks like this:
Discussion posts and replies are publicly visible
When calling from external, the JSON looks wrong. Could it be that the user does not have proper permissions? In the API, what do you return in the onError part of the startProcess?
On error it returns the standard "There was an error starting the process" message.
The process model is running and does everything it needs to do without giving any errors. I can see it completes properly. It just doesn't spit back any info at the end and then only specifically when connecting externally. I've tried all levels of security for the service account, and that doesn't seem to change anything.
Sorry, no good ideas here ...
You did save&publish, not just save?
Chaining is enabled?
A node that creates users must be run as a sys admin user. Permissions?
Yep, saved and published.
Tried with and without chaining, no change.
Currently the process model only writes the data to a data store as I don't want a million test accounts that I can't delete, but when I do enable that functionality it changes nothing. Permissions don't seem to make a difference.
Marco said:I've tried all levels of security for the service account, and that doesn't seem to change anything.
Hi Marco,I could reproduce this issue only when the service account used for authentication has Initiator access over the process model. If I changed the security to Viewer, I was able to see the process info.But since you've tested it already, we could try calling the API in postman using the basic authentication of your admin account. In this way, we can check whether the issue is with the service account/security or not.
I could have swore I had done that, but I am guessing I adjusted the permission elsewhere and got mixed up in my head. Oops. That was apparently it. Thanks for the help!