Appian Community and Appian Academy are being upgraded. From July 24–August 3, the Appian Community will be in read-only mode. During this time, the site will be read-only and user registration will be disabled. We apologize for any inconvenience this may cause, but a more secure, stable, and performant Community experience is coming soon!

The new Appian Community launches August 3, followed by Appian Academy on August 7. During the migration, Appian Community Edition, Appian Academy, Documentation, Certifications, Instructor-led Customer Training, Partner Sales Training & Accreditation, and Forum (for Appian Partners and Customers only) will remain available.

Displaying a Loading Banner While a Background Process Fetches a Document

I have a Rich Text Icon component that is used to download a PDF document. When the user clicks the download link, a background process is triggered using a!startProcess() to fetch the document based on a primary key. The process takes approximately 5–10 seconds to retrieve the document and return it to the interface.

During this processing time, I would like to display a banner message above the icon, such as:

"Your document is being fetched. Please wait until the download icon appears."

I attempted to implement this using a local variable and a Dynamic Link. In the saveInto, I included both a!startProcess() and an a!save() to update a local flag variable that controls the banner visibility. However, I observed that the local variable is not updated immediately when the link is clicked. Instead, it gets updated only after the process started by a!startProcess() completes.

Is there an alternative approach or recommended pattern in Appian to display a loading or processing message immediately when the user initiates the document fetch, while the background process continues to run?

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    I suggest using a ButtonWidget() instead of a Rich Text Link for the part that will generate / retrieve the document - with ButtonWidget you simply set "loadingIndicator" to TRUE, and once clicked, the button will display the "spinning" animation until the process called is complete.  It doesn't exactly show a plaintext message like you said, but it sends the same message (and you can add mouseover text to the original button prompting the user to expect this).  After the loading is finished, you can then show a document download link i.e. right below the button containing the user's download.

Reply
  • 0
    Certified Lead Developer

    I suggest using a ButtonWidget() instead of a Rich Text Link for the part that will generate / retrieve the document - with ButtonWidget you simply set "loadingIndicator" to TRUE, and once clicked, the button will display the "spinning" animation until the process called is complete.  It doesn't exactly show a plaintext message like you said, but it sends the same message (and you can add mouseover text to the original button prompting the user to expect this).  After the loading is finished, you can then show a document download link i.e. right below the button containing the user's download.

Children
  • Thank you, Mike Schmitt. This solution looks good and I appreciate the suggestion. Although it does not exactly align with my original requirement of displaying a banner message while the document is being fetched, using a `ButtonWidget()` with `loadingIndicator: true` appears to be a good alternative approach to provide user feedback during processing. If I am unable to achieve the expected behavior with the current implementation, I will definitely proceed with this approach.