Combining PDF Attachments with DDX, then send separately with Document of Record in AEM OSGi Workflow | Community
Skip to main content
Level 4
September 15, 2020
Solved

Combining PDF Attachments with DDX, then send separately with Document of Record in AEM OSGi Workflow

  • September 15, 2020
  • 22 replies
  • 10013 views

I have a dynamic number of pdf attachments as input from an adaptive form, and would like to merge all attached pdfs into a single pdf using DDX, then have it send separately with the Document of Record with the Send Email step. However I encountered an issue with the Send Email step with the following: 

 

Caused by: com.adobe.granite.workflow.WorkflowException: GetPropertyValue failed as value corresponding to VARIABLE:attachments for type class java.lang.Object is NULL

 

 

The DDX is as follows:

 

<DDX xmlns="http://ns.adobe.com/DDX/1.0/"> <PDF result="Attachments.pdf"> <PDF source="fileAttachment"/> </PDF> </DDX>

 

 

Input map for invoke ddx:

The "attachment" path matches the output attachment folder of the adaptive form

Output map:

The output document is saved into the "attachments" document variable

Send Email step with Document of Record and attachments document:

 

 I am unsure why the value for attachments is NULL. Any help on this is appreciated, thank you!

 

EDIT - testing workflowuser's process:

The following is the dynamic table with file attachments. The ordering is PDFs 1,2,3,4, but the resultant PDF from the process gives ordering 2,3,4,1. 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by GirishBedekar

please log a support ticket with Adobe if you are having problems with 20 or more attachments in the form

22 replies

Adobe Employee
September 15, 2020

are the form attachments getting assembled into one pdf?

techddxAuthor
Level 4
September 16, 2020
Hi workflowuser, i am open to using a custom osgi bundle, but would prefer to solve this with the out of the box features.
Adobe Employee
September 16, 2020

Deploy and start the custom bundle and do the following. in your workflow drop process step component.( this will replace the invoke DDX step) associate the process with Assemble Task Attachments. this code assembles the  PDF  attachments of the Adaptive Form and stores it in a file called assembled-pdf.pdf under the payload folder. Create a variable called assembledPDF of type Document. Use the Set Variable component to initialize the variable as shown in the screen shot . You can use this variable in your send email step

Let me know if you have trouble getting this to work

In the meantime, I will investigate why the invoke DDX step is not working

BTW the code also writes the assembledpdf to the folder of your aem installation

 

techddxAuthor
Level 4
September 16, 2020
Hi workflowuser, I tested your process locally and it works great. Is it possible to reorder the attachments? I currently have a dynamic table where each row has an attach file button. The first row is static and the following rows can be added dynamically. In the resultant PDF from the process, the ordering of the attachments prioritizes the dynamic rows over the first static row, when it should be the first row then the dynamic rows. I will add a screenshot to my original post to explain better.
Level 8
September 17, 2020

Hmm

let me check and get back to you 

this will require custom code as the invoke ddx step may not be able to do the ordering that you want

Level 8
September 17, 2020

Will your file names will always be the same?

either way this cannot be done without writing custom code 

you will have to create the ddx with the pdf source elements in the right order then use that ddx to assemble the documents

Level 8
September 17, 2020

I recommend you to use a panel and in that panel let your users add the attachment. One file only

make that panel repeatable 

so when the user submits the form  grab the data.xml That holds your submitted data and iterate through the panels and create your ddx accordingly 

Level 8
September 17, 2020

This document will help you get stated with creating your first OSGI bundle

https://docs.adobe.com/content/help/en/experience-manager-learn/forms/adaptive-forms/custom-process-step-aem-workflow.html

you will need to familiarize your self with DDX for creating the bundle to accomplish your task

also take a look at the xml file in your payload folder in the crx

techddxAuthor
Level 4
September 17, 2020
Hi Girish, thank you for all your help and advice. I will look into creating the bundle and post an update here.
Level 8
September 18, 2020

Let us know if you have problems creating your own bundle

Ii could give you the ready to use bundle but would be better for you to try creating the bundle

i can definitely help you with the code

Level 8
September 20, 2020

I have a solution. Let me test it a little more before Icanngive it to you 

Adobe Employee
September 21, 2020

 

the new bundle can be downloaded from here

https://documentcloud.adobe.com/link/track?uri=urn:aaid:scds:US:63e0e5ce-9099-42ca-ac0d-d4f9f764d2dd

Sample form

https://documentcloud.adobe.com/link/track?uri=urn:aaid:scds:US:f389a099-be09-4c9d-a612-5bd2063076e2

In the process step we can specify the order in which you want the attachments to be assembled.In this screenshot attachment added to the field called idcard will be the first pdf followed by attachments added to the bankstatements which is a field in a table that can grow

techddxAuthor
Level 4
September 21, 2020
Hi workflowuser, I tested the bundle and it works great! Is it possible to have another version of the bundle that doesn't generate the output pdf and ddx in the aem installation folder? Thank you!
Adobe Employee
September 21, 2020

here is the updated bundle

https://documentcloud.adobe.com/link/track?uri=urn:aaid:scds:US:a9005085-7f50-4876-af8a-49a25c81b69e

I also removed the system.out.println  statements and moved them to log.debug. If you want to see the logs you can enable debug logs for this bundle

techddxAuthor
Level 4
September 21, 2020
This is perfect, thank you!