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.