9 Replies Latest reply on Jun 17, 2008 4:53 AM by Jasmin Charbonneau

    Digital Signatures in multi step processes

    MichaelDeiss
      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
        • 1. Re: Digital Signatures in multi step processes
          Jasmin Charbonneau Level 4
          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
          • 2. Re: Digital Signatures in multi step processes
            MichaelDeiss Level 1
            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
            • 3. Re: Digital Signatures in multi step processes
              Jasmin Charbonneau Level 4
              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
              • 4. Re: Digital Signatures in multi step processes
                MichaelDeiss Level 1
                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
                • 5. Re: Digital Signatures in multi step processes
                  Jasmin Charbonneau Level 4
                  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
                  • 6. Re: Digital Signatures in multi step processes
                    johnqdaily Level 1
                    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.jav a:210)
                    at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:134)
                    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
                    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(Transa ctionInterceptor.java:74)
                    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTr ansactionCMTAdapterBean.java:336)
                    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(Ej bTransactionCMTAdapterBean.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(StatelessSessionConta iner.java:214)
                    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.java:149)
                    at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstance Interceptor.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(EjbTransactionProvi der.java:104)
                    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInt erceptor.java:72)
                    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
                    at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateIntercep tor.java:37)
                    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
                    at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterc eptor.java:80)
                    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.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(AbstractMessage Receiver.java:88)
                    at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:21 0)
                    at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.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(ProcessEngineBMTBea n.java:2851)
                    at com.adobe.workflow.engine.ProcessEngineBMTBean.asyncInvokeProcessCommand(ProcessEngineBMT Bean.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(StatelessSessionConta iner.java:214)
                    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.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:1 58)
                    at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
                    at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstance Interceptor.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(ProcessCommandControll erBean.java:145)
                    at com.adobe.workflow.engine.ProcessCommandControllerBean.onMessage(ProcessCommandController Bean.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.j ava:475)
                    at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.java:149)
                    at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterc eptor.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(JMSContainerI nvoker.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
                    • 7. Re: Digital Signatures in multi step processes
                      johnqdaily Level 1
                      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.jav a: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
                      • 8. Re: Digital Signatures in multi step processes
                        johnqdaily Level 1
                        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
                        • 9. Re: Digital Signatures in multi step processes
                          Jasmin Charbonneau Level 4
                          I'm not sure. Send me the lca at livecycle8@gmail.com

                          Jasmin