The script for synchronizing users from ITSM to DWC could be improved, especially the check for other running instances. Currently, if the script fails because the ITSM server was unreachable for whatever reason (or another error was thrown), a value remains in the sb.lock file and the script cannot be run again until the the sb.lock file is cleared manually. I think the script could be modified so that it clears the sb.lock file in such cases. This way the script will run properly during the next scheduled execution.
Another option is for the script to check when the sb.lock file was last modified and clear it if it was last modified like two or three days ago. I do not think there is a real case in which the script would run for that long, so if the sb.lock file has not been modified for a few days, it is clear that the script failed for some reason during its last execution. In this case it would be better if the sb.lock file is cleared automatically and user synchronization is performed properly, instead of users not getting synchronized until the sb.lock file is cleared manually.
In addition to everything I have written above, there is not an easy way for finding out that the script failed. We usually understand about a failure when a new user logs in DWP and they do not see any content from Digital Workplace Catalog. In this case they report an issue and we check the user synchronization script.
Apart from the check for other running instances, I think the logging of the user synchronization script could also be improved. Currently, the log file is so basic that it does not even contain timestamps for the log entries. This is really bad for troubleshooting because you cannot easily see when the script was last executed.
EDIT: It turned out that the check for other running instances of the script was improved in version 18.11. Please see Hugh Fairfield's comment below.
I am leaving this idea open because of the suggested improvement related to the logs that the user synchronization script generates.