You can find out who initiates the process by checking the Task->User's ID.
Double click your xfaForm variable. Under Advance Settings open the Render Service tab.
The render service you are using is probably the "Sample - Form/Render PDF Form" which contains 4 input variables: formURL, inDocData, targetURL and userAgent.
You could create another input variable for that process called "Initiator" to which you could pass Task -> User's ID.
Then your render service could do whatever it needs to do with that ID before rendering the form.
If you just want to fill the AWS_Assigner_ID, then in your render service add a Process Management/Form Augmenter/Insert Workflow XFO Data operation.
Set the Input Form Data Document to the input data variable (probably inDataDoc), Submit Target URL to the target URL variable (probably targetURL) and Assigner User ID to the variable that contains the user id.
This should populate your AWS_Assigner_ID field.
I just tried that, but it's still empty.
I put the "Insert Workflow XFO Data" in between the "set params for Forms" and "render Form", is that the right place to put it?
And the "Initiator" variable has a type of "string", correct?
How come we need to do this? I consider AWS_ fields Adobe's system fields that we don't mess around. Shouldn't ES populate them automatically like what previous versions of LiveCycle have done?
What I am looking for is a way to do something like this:
The technique described in that document works in LC-7. Shouldn't it also work in the ES? If not, what's the technique?
ES is different than 7.x. The AWS_* fields are only really needed for offline and email based procesess. Otherwise you don't need to worry about them.
In fact the only thing you need to put on your form is a submit button.
If you want to prepopulate information for a user based on ID, then what you can do is use the same technique to pass the User ID to the render service. Then make a database call to get the information you need for that ID.
Then format the data into xml and populate the inDataDoc variable with that xml so that LC Forms merges it with your template when it renders it back to the client. That way your form is going to be populated.
Is that what you're trying to achieve.
The Email and Offline don't seem to work either, but that's another topic.
But yes, what I am trying to achieve is the PrePopulate functionality.
Can you post your modified Render Form service somewhere? because I tried that but failed.
appreciate your help.
one last picky comment is: the Designer ES Help doc is not quite correct. It says Assigned_ID field contains the user ID, it doesn't say that we need to do all this extra work.
From James Dee:
I figured out why I didn't get the user ID into the "assigned ID" field... it's my mistake in configuring that "get xfo" task.
So, the current situation is, I got the "AWS_assigned_id" field populated with the correct data.
But I can't get the rest of the user data (in the database) onto the form.
I looked at the "Prepop_UserID" service that you sent me, but couldn't see how you manipulate that input ID variable... don't know how to merge the database output into the input Document. Could you explain how is it done?
I also tried the LC-7's method (because I got the assigned_id field populated). I created a service that query the MySQL database, and created a WSDL connection on the form, and made a "connectionSet.myds.execute " call at the Form Ready event. But got no result. It returned something like "error reading the wsdl file" error message. I checked that query service in AdminUI, the service didn't get the call it seemed (looked like it's not invoked at all). Nothing's stalled either. Any suggestion on what might have caused this?
thanks in advance for your help
If you populate the AWS_assigned_id, then you're right, we are kind o back with the same technique as 7.x. You can call a web service to populate the form. One thing you need to make sure if that the web service can be called anonymously. Otherwise, it won't work because. You can set that under adminui/Archive Administration/Service Management, click on your service and under the Security tab set the Security Option to disabled.
If you use the other technique, then you get the ID in your process the same way but then you are responsible to build an xml that will merge properly with you form. You can build it manually. If the info is in the database, you can use the "Query for Multiple Rows as XML" which will return XML. Then you pass that xml in a Document variable to the Form Data property of the render operation.
Paul G. took a look at my service/form and noticed that my process/service was defined as "Long-Lived" (which was the default value in this per-release version) and that was problem. After I changed it to short-lived, the LC-7.x technique worked in the ES.
thanks to both, Jasmin and Paul.
It seems that the AWS_ASSIGNED_ID field value, along with 3 other AWS_ fields are used in the "Process Management -- Complete Task" service.
After a user processes a User task that's assigned to him, I assume something would call this "Complete Task" service, am I correct?
So, maybe when we Render the XDP form, we should always add that "Insert Workflow XFO Data" operation, such that the workflow can function properly??
I think the "Default Render" service sets proper values into those "AWS_" fields, but why the "Sample Form - Render PDF Form" doesn't ?? maybe this is the root cause of some of the problems that I have seen so far...
any comments on this observation?
A quick note to all the participants on this topic.
If you're wanting to take any of the UserID fields and convert them to something meaningful, like first/last name, email, or login, then you can use our recently released UserLookup component.
Ok I have a question -
I have created a two variables and two text fields in my render service called userIDname and testValue. when I render the form for the firt time teh userIDname gets prepopulated which is fine. when I go to the next stage I want the testValue to be populated with the second stages users value...if I furthu g to the third stage the testValue shoul have the user who loogied in the third stage.
So what I have done is I have added another setvalue (which goes to the second time route) to the render service and said - processdata/xmldata/fform/testValue = processdata/currentuser (current user is the variable) .
I get the same value always (originator valuve) irrespective of which stage i am in ..in the testValue box. but what I need is the current user info.
how can this be done?
Thansk for ur help!
If you go to the Default Render process, you will see a process variable (defined as an input) called: assignedUserId
This is the variable that contains the ID of the current user.
You will need to use UserLookup step to convert this internal UserID into other information about the user.
You can either use Adobe's Lookup User, or Avoka's.
Download here: http://www.avoka.com/avoka/escomponents.shtml