Ad-hoc workflow and LDAP groups

Hi,

I have a client who is using LDAP groups to assign people to roles. They’ve kept it quite open, so rather than creating small groups of approvers there are hundreds of people in some of the groups. So they are running into difficulty when doing workflow notifications and assignments.

They want to use ad-hoc assignments (understandably given the size of groups), but the search tool is not pulling back any entries. As we discovered, the search is run by a system exit which undoubtedly does not go into the LDAP directory looking for user names.

So we think that we would need to re-write the exit to go searching deep into the LDAP directory. Has anyone done this already?

Thanks

Oliver

I’m having the same issue right now on a 6.7 system - I’ve enabled ad-hoc assignment and when searching for users no results are returned. Strangely if I start going into the returned xml after doing an ad-hoc user search it says "An exception occurred while processing the internal request handler call: sys_psxCms/contentStatus.xml " eg:

http ://localhost:9992/Rhythmyx/sys_ServerUserRoleSearch/rolelist.txt?sys_command=GetUsers&sys_role=Admin&namefilter=

returns

<?xml version=“1.0” encoding=“utf-8”?>
<rolelist contentid="" fromRoles="" id=“GetUsers” xml:lang=“en-us”>
<role name=“Admin”/>
<error>An exception occurred while processing the internal request handler call: sys_psxCms/contentStatus.xml</error>
</rolelist>

I can’t quite find where contentStatus.xml is being called in the user lookup or why it errors, I believe it may be within the sys_ServerUserRoleSearch exit, because I can’t get it to error when I call it with or without a sys_contentid parameter.

Any advice appreciated since otherwise I believe I’ll be customising the search XML to call my own custom app to return users instead, thus bypassing the system app that uses the user lookup exit entirely.

Definitely looks like exit sys_ServerUserRoleSearch does the erroneous call to sys_psxCms/contentStatus.xml according to the console log. Bypassing looks like the best option…

2012-10-08 15:20:02,052 ERROR [Exit:Java/global/percussion/usersearch/sys_ServerUserRoleSearch] An unexpected exception occurred. The reason was: An exception occurred while processing the internal request handler call: sys_psxCms/contentStatus.xml. Please consult the log for further information.
2012-10-08 15:20:53,152 INFO [PSServerLogHandler] appid: 0 type: 1 time: Mon Oct 08 15:20:53 BST 2012 msg: An internal error (end-condition) was encountered. An unexpected exception occurred:
An unexpected exception occurred. The reason was: An exception occurred while processing the internal request handler call: sys_psxCms/contentStatus.xml. Please consult the log for further information…
The call-stack was: com.percussion.data.PSInternalRequestCallException: An exception occurred while processing the internal request handler call: sys_psxCms/contentStatus.xml

Andrew,

Try the following to retrieve a non-erroneous response from this XML application:

http://your-server-address:9992/Rhythmyx/sys_ServerUserRoleSearch/rolelist.xml?sys_command=GetUsers&sys_role=Admin&sys_contentid=content-item-id

Replace your-server-address:9992 and content-item-id with valid values

Exactly the same error happens when I do that. The exit itself is, I believe, incorrectly calling the sys_psxCms/contentStatus.xml query resource… :frowning:

Try this:

http://your-server-address:9992/Rhythmyx/sys_ServerUserRoleSearch/rolelist.xml?sys_command=GetUsers&sys_role=Admin&fromRoles=1:2;

Looking at the original problem I don’t know if getting a successful xml result will provide a solution, but it is at least a point of reference.

Ah-ha, that gets a successful result! Suppose I need to work out what that fromRoles parameter is and why it’s not getting passed correctly. When I look in my initial ad-hoc transition form the fromRoles hidden paramater has the name of the role rather than the id, which could be it I guess - passing a non-numeric value probably causes an error.

input name=“fromRoles” type=“hidden” value=“Approver_PreASD:0;Approver_BusinessUnit:0;” etc

But looking at the xml of the initial ad-hoc transition call the role list only contains the role names, not ids.

Anyway, thanks for your help, I now get what it’s trying to do and why it’s not working for me!

Good luck. Let us know if you find a suitable solution.

Erm, always remember that if you decide to rename roles in the database, that you need to do so in both the NAME and NORMALNAME columns in PSX_ROLES.

D’oh.

Why anything keys on a name rather than an id is beyond me, but it does.