Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Digital Signatures in multi step processes

Avatar

Level 2
I have a form with several digital signatures, so I am passing the form around using a xfaForm variable. So, after user1 fills out the form, signs it and then send it back to the process. The process creates a task for user2 with the same form. If user2 opens the task in his workspace the signature of user1 is missing. I think I have to use another variable type for the form. But what type? I have played around with the different types but it comes always to errors. What type of variable should I use for the form? Or is there any example for such a process?



I found one sample (http://www.adobe.com/devnet/livecycle/articles/preserve_dig_sig_multisteps.html) but it is for version 7.x



Thanks in advance,



Michael
9 Replies

Avatar

Level 10
The signature is missing on step 2 because when you use a xfaForm variable for the second user it'll call the render service again and re-render the form.



If you want to preserve the signatures, you'll have to do a few things.



First, on your submit button (on the xdp), make sure you submit the whole PDF and not just the data. You need the full PDF to preserve the signatures.



Create a DocumentForm variable (Doc1) and select your xdp and use the same render service as the one you had for the xfaForm variable.



Create a second DocumentForm (Doc2) variable and leave the URL and render service blank.



Put a setValue operation between the two users and assign the content submitted from user 1 to the second variable. Something like /process_data/Doc2/object/@document = process_data/Doc1/object/@document



Use the Doc2 variable for the data mapping on the second user. Since there is no render service on that second DocumentForm variable, it won't re-render the PDF. I'll just use whatever was submitted.



Jasmin

Avatar

Level 2
Hi Jasmin!



Thanks for your hints. I've tried your solution but I have a problem:



My Process now has two variables:



Doc1 (DocumentForm) Input

Doc2 (DocumentForm)



and two operations:



1. setValue

/process_data/Doc2/object/@document =

/process_data/Doc1/object/@document



2. Assign Task

Input form variable: /process_data/Doc2

Output form data: /process_data/Doc2



If I start the process the task is created. But if I open the task in the workspace the blue circle is running endless.



In the adminui everything looks good: setValue:complete, AssignTask: running. Also the log looks fine:



2008-05-13 10:35:27,372 INFO [STDOUT] 13.05.2008 10:35:27 com.adobe.workspace.tasks.TaskItemResult initialize

INFO: *** Content type from this document service is application/vnd.adobe.xdp+xml; charset=utf-8 ***



Any idea?



Thanks again,



Michael

Avatar

Level 10
It's basically saying the content type is vnd.adobe.xdp+xml which is essentially xml.



Are you sure you changed the submit button in your xdp to submit PDF and not XDP.



Jasmin

Avatar

Level 2
Your right, I have used the "Process fields" object. Now I have removed these fields and added an submit button. The process works fine now!



Thank you very much for your support!



Michael

Avatar

Level 10
Just as a note. You can stil use the "Process Fields".



The visible submit button (AWS_SUBMIT) calls a hidden submit button (FSSubmit_) to do the submision. If you change the property of the FSSubmit_ button and set it to submit PDF, it'll work.



Jasmin

Avatar

Former Community Member
Jasmin,



I have followed the directions you have above but I am receiving some sort of invocation error. Here is the error:



ALC-DSC-003-000: com.adobe.idp.dsc.DSCInvocationException: Invocation error.

at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.java:210)

at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor.java:134)

at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:44)

at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:74)

at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTransactionCMTAdapterBean.java:336)

at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(EjbTransactionCMTAdapterBean.java:212)

at sun.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.jboss.invocation.Invocation.performCall(Invocation.java:345)

at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)

at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:154)

at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:54)

at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)

at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:363)

at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)

at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)

at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)

at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)

at org.jboss.ejb.Container.invoke(Container.java:873)

at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)

at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)

at $Proxy171.doSupports(Unknown Source)

at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvider.java:104)

at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInterceptor.java:72)

at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:44)

at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateInterceptor.java:37)

at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:44)

at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterceptor.java:80)

at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:44)

at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.invoke(ServiceEngineImpl.java:113)

at com.adobe.idp.dsc.routing.Router.routeRequest(Router.java:95)

at com.adobe.idp.dsc.provider.impl.base.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:88)

at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:210)

at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:57)

at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)

at com.adobe.workflow.engine.PEUtil.invokeAction(PEUtil.java:553)

at com.adobe.workflow.engine.ProcessEngineBMTBean.continueBranchAtAction(ProcessEngineBMTBean.java:2851)

at com.adobe.workflow.engine.ProcessEngineBMTBean.asyncInvokeProcessCommand(ProcessEngineBMTBean.java:634)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.jboss.invocation.Invocation.performCall(Invocation.java:345)

at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)

at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:54)

at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)

at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:158)

at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)

at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:154)

at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)

at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)

at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)

at org.jboss.ejb.Container.invoke(Container.java:873)

at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)

at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)

at $Proxy204.asyncInvokeProcessCommand(Unknown Source)

at com.adobe.workflow.engine.ProcessCommandControllerBean.doOnMessage(ProcessCommandControllerBean.java:145)

at com.adobe.workflow.engine.ProcessCommandControllerBean.onMessage(ProcessCommandControllerBean.java:94)

at sun.reflect.GeneratedMethodAccessor516.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.jboss.invocation.Invocation.performCall(Invocation.java:345)

at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)

at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)

at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:335)

at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)

at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)

at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)

at org.jboss.ejb.Container.invoke(Container.java:873)

at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)

at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)

at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)

at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)

at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)

at org.jboss.mq.SpySession.run(SpySession.java:333)

at org.jboss.jms.asf.StdServerSession.run(StdServerSession.ja

Avatar

Former Community Member
Part 2 of error:



at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)

at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)

at java.lang.Thread.run(Thread.java:595)

Caused by: com.adobe.idp.jobmanager.common.JobManagerException: java.io.NotSerializableException: java.beans.PropertyDescriptor

at com.adobe.idp.jobmanager.service.JobManagerService.serializeObject(JobManagerService.java:191)

at com.adobe.idp.jobmanager.service.JobManagerService.createJob(JobManagerService.java:73)

at sun.reflect.GeneratedMethodAccessor594.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.java:181)

... 87 more

Caused by: java.io.NotSerializableException: java.beans.PropertyDescriptor

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)

at java.util.ArrayList.writeObject(ArrayList.java:569)

at sun.reflect.GeneratedMethodAccessor262.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)

at java.util.ArrayList.writeObject(ArrayList.java:569)

at sun.reflect.GeneratedMethodAccessor262.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)

at java.util.ArrayList.writeObject(ArrayList.java:569)

at sun.reflect.GeneratedMethodAccessor262.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)

at java.util.HashMap.writeObject(HashMap.java:1039)

at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)

at com.adobe.idp.jobmanager.service.JobManagerService.serializeObject(JobManagerService.java:185)

... 92 more

Avatar

Former Community Member
Here is my process:



Custom render that populates the form with user login data when they open it in Workspace. I changed the submit button to Submit As: PDF, it was XML Data Package (XDP).

After the user completes the form the process uses a webservice to get the manager's id to use for routing. Then it goes to an Set Value to set the initial form, visa_application, to Doc2. Then the rest is just like Michael described in a previous posting above.



Any thoughts? I can send the lca file if need be.



Thanks,



John

Avatar

Level 10
I'm not sure. Send me the lca at livecycle8@gmail.com



Jasmin