AX2221

Behavior notes for file processing

This section details how certain features behave during file processing. It is important to understand this behavior so that you can set up file processing appropriately.

Refreshing Axiom queries during file processing

When you perform file processing, the file is refreshed before the processing action occurs. If you are using multipass processing, the file is refreshed for each pass of the multipass operation.

Axiom queries have several different refresh options that dictate when they are refreshed. These options are configured in the Refresh behavior section for the query on the Control Sheet. The following details which Axiom queries are refreshed as part of file processing.

  • When the file is opened, any queries set to Refresh on file open are run. This occurs before file processing begins.

    NOTE: When performing file processing, the file is not closed and reopened for each pass. If you open a file and then initiate file processing, the "refresh on open" queries are not run again because the file is not being opened again. For more information on how file processing is executed, see Dynamic settings for multipass processing.

  • If multipass processing is being performed, then any queries set to Refresh once before multipass processing are run. This occurs before the file processing begins.

  • When the file processing begins, any queries set to Refresh during document processing are run. If non-multipass processing is performed, then this refresh occurs once, before the file processing action. If multipass processing is performed, then the refresh occurs for each pass, before the file processing action is performed for that pass.

These refresh options are configured independently—multiple options can be enabled for a single query. So if a query is set to refresh on open and to refresh during document processing, then it will be refreshed multiple times when the file is processed—once when the file is opened, and then one or more times during file processing (depending on whether you are performing multipass processing or not). If you have a query that is set to refresh on open or to refresh before multipass processing, and you do not want that query to run again during processing, then you should disable refresh during document processing for that query.

NOTE: File processing does not support the ability to run Axiom queries in parallel. If a Batch Number is specified for an Axiom query, it will be ignored during file processing and the queries will be processed in sequential order as normal.

How email is delivered for file processing

When you select to email the output file for file processing, the email operation is handled by Axiom Software Scheduler. This means:

  • Email is processed by the SMTP Message Delivery task set up in Scheduler for the current Axiom Software system. This task must be configured to point to a valid SMTP server and set up to run at regular intervals, or else email will not be delivered.
  • The email resulting from file processing will be delivered the next time the message delivery task is run by Scheduler.

The email client on the local machine is not used and will not open when file processing is initiated.

When you define the email settings for file processing, you specify whether to send the email as the Current User (the user initiating the file processing), or as the System User. The system user is the user defined as the default "From" address for Scheduler, in the system configuration settings for the database.

You may want to use the system user so that it is clear that the emails are coming from Axiom Software, regardless of which user happens to perform the file processing.

If you use the current user, the email address is the address defined for that user in Axiom Software security.

Considerations for using file processing in plan files

File processing can be used in plan files. In the plan file environment, the primary use case is standard (non-multipass) processing, for the purposes of snapshot file delivery.

It is very important to understand that file processing always performs a full refresh of the file, including refreshing all enabled Axiom queries. If plan files are being used for typical financial planning purposes, such as budgeting and forecasting, the files may be designed so that after the plan files are initially created, the files are not intended to be refreshed again. Or, they may be designed to be refreshed by administrators at specific intervals, such as after a new month of actuals has been imported into the database.

If your plan files are designed this way, then you should not set up plan files to use file processing, because the act of file processing will refresh the file and may update data that is intended to remain static, such as a YTD value.

Plan files are extremely flexible and can be used for many different purposes. With other plan file designs, it may be perfectly fine to refresh the file periodically. If your plan files are designed to accommodate ongoing data refreshes, then you can use file processing in those files if desired.

Considerations for using feature tags with file processing

Axiom Software supports several features that are defined using tags in a sheet. You may want to use some of these features in conjunction with file processing, such as:

  • Action codes
  • Print views
  • Sheet views

When file processing is initiated, Axiom Software checks the worksheets for any instances of the primary tags for these features (for example, the ActionCodes tag or the View tag). If these tags are not found, Axiom Software does not check for them again during the file processing. This is to optimize the performance of file processing.

This means that primary tags cannot be inserted into the sheet by use of Axiom queries, because Axiom Software will not check for them again after failing to find them initially. However, once Axiom Software has found the primary tags, the system knows to continue to scan the sheet for tags during file processing, so supporting row and column tags such as Copy and HideRow can be brought in by Axiom query.

In most cases, primary tags are "hard-coded" into the sheet and do not need to be brought in by Axiom query. However, if you have a setup where this is required, and you want these features to be applied during file processing, you can set up "dummy" tags in the file, for the sole purpose of forcing Axiom Software to continue to scan for the "real" tags during file processing.

Considerations for using refresh variables with file processing

Refresh variables are ignored during file processing and therefore cannot be used to impact file processing data. However, you may have a report that you want to set up for both end user access ("on-demand reporting") and for use with file processing. If you use refresh variables in a report that is also enabled for file processing, you need to be careful to configure the report to handle both use cases.

For example, imagine that you have a refresh variable that prompts the user to select a region. The Axiom query in the report is then filtered by the user's selected region. If a user runs the report, selects a region, and then saves the report, that region filter is now saved in the Axiom query settings.

This isn't an issue for the "on-demand reporting" use case, because the next time a user opens the file and refreshes it, the refresh dialog will prompt the user to select a region. The previous region will be selected by default, but the user can still select any region they want at this point. However, the file processing use case is broken now. The region filter that got saved in the file from use of the refresh variable will now be applied during file processing. When performing multipass file processing, every pass of the process will now be filtered by that region filter (in addition to the automatically applied filter for the current pass).

To prevent this situation, you can use the function IsRunningMultipass to "toggle" the refresh variable filter on and off depending on whether multipass file processing is being performed. For example, the data filter for the Axiom query could be defined using a formula like the following:

=IF(IsRunningMultipass()=True,"",Variables!C3)

Where Variables!C3 indicates the location in the file where the result of the refresh variable is used to construct a filter.

When the file is refreshed by an end user, IsRunningMultipass will return False, so the value in Variables!C3 will be used to define the Axiom query filter. When multipass file processing is being performed, IsRunningMultipass will return True, which means that the Axiom query filter will be left blank (thereby ensuring that no additional unintended filter will be appended to the automatic multipass filter).

NOTE: IsRunningMultipass only returns True for multipass file processing. If you process the file using non-multipass file processing, then IsRunningMultipass will return False, which in this example means the refresh variable filter would still be applied. Currently there is no way to toggle between all three use cases (end user refresh, non-multipass file processing, and multipass file processing).