Skip to Content

Appian ACD200: How to Optimize Appian Interface Performance for Faster Customer Record Loading?

Learn the most effective techniques to reduce load times when retrieving customer records with many transactions in Appian. Discover how to prefetch data and use functions like displayvalue() to significantly speed up your interfaces.

Table of Contents

Question

Users are experiencing slow load times when retrieving customer records with many transactions.

After using performance monitoring tools, you discover that the following interface definition is responsible for the majority of page load time:

After using performance monitoring tools, you discover that the following interface definition is responsible for the majority of page load time.

Additionally, both queries (rule!APP_GetTransactionsWithFilters and rule!APP_GetTransactionTypeWithFilters) take approximately 25 milliseconds each to execute when you test them using the expression editor.

Which action would result in the greatest reduction in the load time for this interface component?

A. Prefetch transaction types and use the displayvalue() function to display the Transaction Type for each transaction.
B. Use a synced record for Transactions to improve the query response time for the query performed on line 6.
C. Avoid fetching the total count when getting transactions.

Answer

A. Prefetch transaction types and use the displayvalue() function to display the Transaction Type for each transaction.

Explanation

The best approach to improve the load time of this interface component would be to prefetch the transaction types and then use the displayvalue() function to display the Transaction Type for each transaction.

Currently, the interface is retrieving the transaction type for each individual transaction by calling the rule!APP_GetTransactionTypeWithFilters query within the a!gridColumn. This means that for every transaction row, an additional query needs to be executed to fetch its corresponding transaction type. With a large number of transactions, this will result in many queries and significantly slow down the interface.

By prefetching all the needed transaction types upfront with a single query, we can avoid executing rule!APP_GetTransactionTypeWithFilters repeatedly. The transaction types can be stored in a local variable as a dictionary, with the transaction type ID as the key.

Then, within the a!gridColumn, instead of querying for the transaction type, we can simply use the displayvalue() function to retrieve the appropriate transaction type name from the prefetched dictionary, passing in the transaction’s .transactionTypeId.

This eliminates the need for an extra query per transaction, resulting in much faster load times, especially for customer records with a high volume of associated transactions. The interface will just make the initial two queries (one for transactions, one for transaction types) and then populate the grid without further database calls.

Appian ACD200 certification exam assessment practice question and answer (Q&A) dump including multiple choice questions (MCQ) and objective type questions, with detail explanation and reference available free, helpful to pass the Appian ACD200 exam and earn Appian ACD200 certification.