write a stored function that takes the multi-select values, parses them out, run query (use dynamic sql if you have to) and place the results into a cursor which you loop through and build your return string. (ie. 'val1#@#val2#@#val3' for hidden and 'val1; val2; val3' for visible)
Here is how I ended up solving this, in case anyone else is interested:
It required a generic function (listed below) to create a list of delimited values from a multi-row query.
In our case, the trigger field is a multi-select of Organization Units. We have an org unit user data field that contains the uid/name of the Senior Architect for that org unit.
When the user selects the org unit(s) the rule populates another field with the matching Senior Architect(s), returning them in the list format 'val1#@#val2#@#val3' for hidden and 'val1; val2; val3' for visible values.
select join(cursor(select USER_DATA1 as names from KRSC_ORG_UNITS where ',' || replace('[REQD.VP.P_OTHER_IT_ORGS]','; ',',') || ',' like '%,' || to_char(ORG_UNIT_NAME) || ',%'),'#@#') as P, join(cursor(select VISIBLE_USER_DATA1 as names from KRSC_ORG_UNITS where ',' || replace('[REQD.VP.P_OTHER_IT_ORGS]','; ',',') || ',' like '%,' || to_char(ORG_UNIT_NAME) || ',%'),';') as VP from dual
CREATE FUNCTION JOIN ( p_cursor sys_refcursor, p_del varchar2 := ',' ) return varchar2 is l_value varchar2(32767); l_result varchar2(32767); begin loop fetch p_cursor into l_value; exit when p_cursor%notfound; if l_result is not null then l_result := l_result || p_del; end if; l_result := l_result || l_value; end loop; return l_result; end join; /
This is actually a question about another thread that you replied to but the only way to contact you I could find. It has to do with the pdf you posted about approving workflow steps via email. Do you have a copy of the jar file that the document refers to? Also, did you ever attempt to get it working?
No I don't have the jar. I think you have to pay HP PSO for the solution, and I have also heard that it doesn't work with 7.1. But I am still exploring how we could do it as it seems like great functionality.