I was reading this link: https://docs.appian.com/suite/help/17.3/User_Management.html#-add-user-filters and didn't find the answer to my question. I would like to be able to search by user ID. Is there any way to do so?
Discussion posts and replies are publicly visible
I'm also looking for a way to enable searching the User record list by username, and haven't been able to solve that problem. This would be a helpful feature for a future version.
Can you elaborate a bit more on what you're trying to do? You can search for users by username in the User Management view ( https://docs.appian.com/suite/help/19.4/User_Management.html ), and the user picker component also supports searching by username.
The current workaround is user pickers, but these do not currently support searching for inactive users.
It is my understanding that deactivated users are intentionally excluded from user pickers because they are no longer active and can't have 'metadata' like tasks, etc assigned to them. So, if you need to give a list of all users (past and present), you might want to consider letting them pick them from a different source (integration to a diff systems, DB table, etc).Hope that helps
What if that could be a parameter for the user picker component, though? By default, only show active users (because this is what I want probably 80% of the time), but allow me to pass true() in some parameter if I also want to show inactive users.The most common use case for this is searching for historical records where the creator/assignee/etc is no longer with the company. I have a lot of applications like this, and sometimes I do have to pick from a different source. It can be confusing for users to see a user picker in some situations and this random other picker (that doesn't quite look or behave the same) in other situations.
In one of my projects, to solve this I created a "user picker from database" custom component (which uses the generic picker field paired with my Users database table), as it allows inactive users to be searched in a similar fashion to the OOB user picker, but to allow inactive ones to be returned (along with a label saying "(deactivated)" after their name). This does require a "users" table to be created and maintained, but IMHO that's fairly essential for any project.
Are you willing to share the objects that you created to maintain that Users table? Would save me the trouble of creating them from scratch.
Sorry for the late reply - for whatever reason I don't think I originally got a notification of this so I only just noticed after the newer reply was added below.
In general the user DB table can and should be fairly simple - with just enough to give you the control you need. The fields typically involved that I've seen:
That's about all you would need - to support such a table, you would either need a process where admins can add/edit users via a front-end process, or at least a process that runs periodically and finds all current active user accounts in the system and syncs their data with the matching DB table entry, and creates one if none is found.
For a number of reasons, I don't think I want to require all user adding/editing operations to be performed through a separate front end. If you have already created a process that syncs user data with a table, are you willing to share that?
I don't have such a process at hand, but it shouldn't be terribly hard to create from scratch. A few checklist items I can think of:
Let me know if any of that is unclear or if there are any other questions. This was all off the top of my head so I may have glossed over something.
Makes sense, but this is one of those things that is unlikely to make it to the top of my to-do list if I have to make it from scratch. Also, don't you wish that there were a better way to handle scheduling processes to run on a timer?
John Stretton said:Also, don't you wish that there were a better way to handle scheduling processes to run on a timer?
I'm quick to call out Appian in areas that I feel they need to improve, but as far as pure use cases like running a maintenance process once per day overnight, I feel it's fairly easy to do once you get used to the necessary controls.
The one thing I wish we could do, though, would be to set up process triggers based on internal events (like, "run this process every time a user is created, updated or deactivated via any internal mechanism", which would negate the need for a timer in most cases). But alas, I don't anticipate that happening any time soon.
Sure, but I have a LOT of processes that just send some kind of email once per day, or every other Tuesday, or once per month, etc. Having to create two separate process models for that (and a Boolean flag to avoid firing an instance of the timer process when it's published) is a bit cumbersome, don't you think?
IF you really wanted to, you could potentially configure all (or most) of those use cases into one "daily launch" process model, which then calls various subprocesses (themselves not having any sort of timer), which could each do a double-check whether they should A) not fire "today" (and just exit), B) fire at a later time (wait at a timer node, then execute), or C) execute right away (stuff that should happen at 1 AM).
I mean, I suppose they could simplify it some, but then we'd likely lose some of the more complex capabilities we currently have.
Thanks for all of your suggestions. I'll file the user table one away for a rainy day.