Skip to main content
hemantb0002
Known Participant
May 29, 2024
Question

Appian Design to Create Bulk PDF Files

  • May 29, 2024
  • 7 replies
  • 0 views

I have been asked to check feasibility to implement below requirement,

  • User will upload an excel file which can have records up to 2000. We have to read the parse the file and create separate pdf file for each of the record. The template of pdf file will be same for all.
  • In short we have to generate 2000 files in one go.
  • Once files are generated we need to display status of each record to user that file has been generated successfully or not.

I want to confirm if this is possible to generate 2000 files quickly. If yes then how to do it without getting performance issues.

7 replies

stefanhelzle0001
Brainy
May 29, 2024

This "quickly" depends on your expectations. Creating 2000 files will take more than just a few seconds. What would be an acceptable time?

Creating PDF files is easy: appian.rocks/.../

hemantb0002
Known Participant
May 29, 2024

Thanks for the response. As of now client is exploring all tools along with appian. I'll try to do PoC and find out how much time it's taking to produce pdfs using plugin suggested by you. If they are happy with the outcome with respect to time then we will go ahead with the implementation.  

shubhama926776
Brainy
May 29, 2024

You can achieve this using batching and asynchronous execution approach in shorter time.

I want to confirm if this is possible to generate 2000 files quickly. If yes then how to do it without getting performance issues.

But if you want the user to wait (chaining) until everything is completed, it will impact performance for the end user.
I would suggest, for a better user experience, that after the file is completed, you can generate a task for the user to review.

शुभम्
hemantb0002
Known Participant
May 29, 2024

yeah, i also thought of displaying result later on so that user doesn't need to wait till whole batch processing completed.

Anyways thanks for the response.

stewart.burchell
May 29, 2024

As others have already said, it depends on what you mean by "quickly". But generating 2000 files in Appian - even trivial ones - is going to take some time. 

There needs to be a balance between how quickly you want this done and managing the resources in your environment. So whilst you could create two instances of a process model, each of which runs an MNI node that creates the PDF documents (MNI is capped at 1000 instances) with each instance being spawned concurrently I don't think that's a very good idea for the health of your environment. You could also set up MNI to run "one at a time" but now the processing is serialized and will not be "quick" (I've just ran 1000 instances that create a PDF from a blank template and that took 10 minutes, and that's without doing any of the work required to populate a true template)

As others have alluded to...you could manage the User's expectations regarding the process by providing them a confirmation message like: "Thankyou for uploading the Excel file. We are processing this and will let you know when the processing has completed" and then send the user an email prompt when it is completed. Or, at the next level of sophistication, you can build a UI with a progress bar that is periodically refreshed, and only display the final results when the process is 100% complete. You could even generate the first 20 documents and then based upon the time taken so far extrapolate and provide an estimated completion time!

If the speed at which this can be completed in Appian isn't acceptable you could perhaps send the data to a document generation service outside of Appian that does provide the necessary performance, but even then you'd be subject to the marshalling of the request/response data between Appian and the service and for 2k records/documents this is still not going to be quick.

hemantb0002
Known Participant
May 29, 2024

Above context is helpful, Thanks. I agree, MNI is going to impact the our appian environment.

As suggested i'll work PoC ,  calculate the time and discuss with client.

stefanhelzle0001
Brainy
May 29, 2024

Yes, this needs a conversation. I try to implement applications that are process driven. So e.g. when you need to generate these files and send them to clients via email, no user needs to wait for this. It just happens in the background.

Some of our client's considerations are just coming from their old way of doing things. I try to catch this and transform it into something new and exciting.