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
    document based on a primary key. The process takes approximately 5–10 seconds to retrieve the document and return it to the interface.

    If you are retrieving using primary key, then you should investiagte the reason behind 5-10 s in query. Ideally it should be in milliseconds so you should definitely optimise your query. 

    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

    saveInto executed saved in the order they appear within saveInto expression. Most likely your startProcess() is followed by the a!save() to update the local variable. Swap their order and it should resolve the execution order.

    an alternative approach or recommended pattern in Appian

    Generally user can download a document in two cliks on form itself. For example, Show a fetch button, when user clicks on it query and retrieve the doc id using primary key and save in in a local variable. When this local variable is populated, show a link 'Download' (and hide the 'Fetch' button) which allows user to download file having documentDownloadLink in backend()

  • I have already attempted to change the order of the actions within the saveInto parameter, placing the a!save() before and after the a!startProcess() call. However, this did not resolve the issue. The local variable still gets updated only after the process execution is completed, rather than immediately when the link is clicked.

Reply Children