Many customers are shocked by the amount of work and effort it takes to create or modify the SSRS reports used within Microsoft Dynamics AX. Simply adding a column on a sales invoice, uploading a company logo, or modifying the layout of a check can take upwards of 40 hours-worth of work and may require some X++ programming.
To address these types of complexities, there is a product called PrecisionForms for document management in Dynamics AX. This product, by Bottomline Technologies, can be used to not only speed up the process but also allow the granularity and design flexibility that would otherwise be difficult to accomplish.
A simple sales invoice form that would normally render in SSRS …
One of the biggest advantages I find with this product is that you don’t need to be a bonafide X++ developer to get these types of results.
My intent in this writing is to guide you through not only installing the software but some tips and tricks when it comes to design, process, and workflow. This four-part blog will overview the following areas:
- Step 1 – Terminology and Architecture
- Step 2 – Installing the PrecisionForms Server
- Step 3 – Installation and configuration of the PrecisionForms model and AX components
- Step 4 – Report design and configuration
Step 1 – Terminology and Architecture
PrecisionForms contains multiple program elements, which make up the application suite:
- PrecisionForms Server – The main server component of PrecisionForms that is responsible for the overall management and execution of print jobs and print queues. PrecisionForms Server associates and combines the incoming report print jobs with a created form project and creates an output file (PDF, text, HTML, etc.) for delivery via print, fax, email, or archive.
- PrecisionForms Director – A workflow designer/business rules processor tool that tells PrecisionForms Server what to do when it receives a print job. If you get an email print job, do this. If you get a print job, do that. It allows a great level of control and customization of the overall document handling process.
- PrecisionForms Designer – The tool that actually creates the form projects. Think of it as “Photoshop for forms.” Designer is going to give you the ability to create a document using some demo data, add fields here, remove fields there, and customize the look and feel of your form project.
- PrecisionForms Email Server – Handles the outgoing email jobs that are generated through PrecisionForms Server by integrating with your SMTP or VIM server.
- PrecisionForms Fax Server – Handles the outgoing fax jobs that are generated by PrecisionForms Server by integrating with your RightFax, GeniFax or ZetaFax appliances.
- PrecisionForms Transform – Allows you to transform the report data into other formats. This involves taking the report data and “transforming” it into a data file (CSV, TXT, etc.) for uses such as uploading into another system.
The architecture of a traditional PrecisionForms installation can be thought of as the following:
There are two main components of a PrecisionForms installation, the AX components and the PrecisionForm server components. A user access Microsoft Dynamics AX through the AX Client. A model from Bottomline is installed in the Dynamics environment to add functionality to output the report using PrecisionForms. This job is sent out using the AX Connector Components, which consist of the model file (mentioned earlier), label files, and an XPO. The print spooler on the PrecisonForms server intercepts the print job created from Dynamics and uses the Director application to decide what to do with it. The Director finds the corresponding form project that was created for that type of report (built by PrecisionForms Designer), merges it with the input data, and outputs it (email, print, fax, etc.) based on what was selected in Dynamics.
Within the elements, there is some additional terminology to consider:
- Form project – The file that specifies the design, look, feel, and logic around the data that gets fed into it from Microsoft Dynamics.
- Input file – Every form project within PrecisionForms is built on top of the data source that is feeding it. You’re not simply creating a blank form and selecting data to be inserted into it, you’re actually building the form on top of the data and its data structure. Therefore, the input file is your data source.
- DataMap – The DataMap records how the input data or your input file is structured. This may be in the form of XML, CSV, TXT, etc. As form projects are built on top of the data, it’s important for PrecisionForms to know which parts of your input file is a header record, a line, or metadata. Therefore, a DataMap is defined for every project.
- Set – Think of a Set as a group of related items, data, and pages in a job. For example, a set could be:
- All the pages of a single output of a sales invoice (ex: 3 pages of an invoice is a set)
- A sales order in a batch
- A group of invoices for a single customer
- A group of invoices in a run, grouped by order number
- Section – A section is a node or group of repeated data in the input file. If the input file is XML, this could be the parent node signifying a new line on the form. If the input file is a CSV file, each row would correlate to a section as the data is in a “flat file” format.
Although there are many more terms that will come into play but these are ones that are going to be used most often and frequently throughout the writing.
Step 2 – Installing the PrecisionForms server.
The first step of the PrecisionForms installation is the PrecisionForms server itself. As mentioned earlier, this PrecisionForms server is the central workhouse in charge of handling incoming print jobs, correlating them to a form project, and sending them on their way. We recommend installing PrecisionForms on its own Windows server not being used for other purposes.
One prerequisite to installation is to create a network user that PrecisionForms will run under. As the server will be running whether an admin is logged in or not, we need an authenticated user created in AD. This user should have administrator rights and the ability to log on as a service:
We will now install the PrecisionForms server.
1. From the PrecisionForms installation media, double-click the index.html document and choose Install:
2. Select PrecisionForms Server
3. The PrecisionForms Server installer will open. Click Next
4. Specify the application install directory and click Next
5. Specify the resource directory location. This is the location in which the project resources, fonts, and files are saved. I usually save this to C:\Bottomline\PrecisionForms. Click Next
6. Specify the work directory (WorkDir) folder location. This is where the form projects, elements, and DataMaps are saved. I usually save this to C:\Bottomline\PrecisionForms\WorkDir. Click Next
7. Specify the installation type. Choose Custom and click Next
8. Depending on your business needs, you may need additional elements installed such as support for Asian fonts or barcodes. I usually install the Barcodes, manuals, and AX Test Project elements. Make these selections here and click Next
9. Leave the Program Folder defaults and click Next
10. Installation will now begin. After a few minutes, you should be prompted with a confirmation that installation was successful.
Next, we will install PrecisionForms Director which handles the workflow for incoming print jobs.
1. On the PrecisionForms installer web page, click PrecisionForms Director
2. Choose the same Application and Workdir installation directories we chose earlier
3. Choose Custom installation and install the Sample Files:
4. Accept the Program folder defaults and finish the installation.
So far, we’ve installed the PrecisionForms Server and Director application. As we chose the AX Director Generic option when installing Director, we need to copy the Director_Generic_V4_0 file to our WorkDir folder (C:\Bottomline\PrecisionForms\WorkDir). We will use this file later when specifying which Director project to use for our workflow.
Now we will configure the PrecisionForms server.
1. Navigate to Start > All Programs > Bottomline Technologies > PrecisionForms server
2. Well, here it is. Not a whole lot to look at yet, is there?
3. First step is to input our license keys to enable functionality. Navigate to Tools > License keys
4. Click the Create button and enter in your license key
5. Once completed, click Exit
6. Next, navigate to Tools > Windows Identity
7. Enter the credentials created earlier for the PrecisionForms user and click OK
As PrecisionForms Server runs whether a user is logged in or not, this account will be used to run the service.
8. We now see that PrecisionForms server is populated with printers that I have loaded on my machine.
9. Now we will create the Director printer for use with PrecisionForms. This printer will handle the incoming printer jobs from Microsoft Dynamics which I will cover in the next blog post. Navigate to Control Panel > Devices and Printers
10. Click Add a printer and choose The printer that I want isn’t listed
11. Choose Add a local printer or network printer with manual settings
12. Create a new local port and name it PF_Director
13. When prompted for a driver, choose the manufacturer Generic and the Generic / Text Only printer driver:
14. Name the printer PF_Director and click Next
15. Make sure the printer is shared and click Next
16. Click Finish when done.
17. Now that our new printer is added, there are some settings that need to be changed. Right-click the new PF_Director printer and choose Printer Properties
18. On the Sharing tab, uncheck Render print jobs on client computers:
19. On the Advanced tab, click the Start printing after last page is spooled and uncheck the Enable advanced printing features checkbox:
20. On the Security tab, add two users with full access: the account that Microsoft Dynamics AX runs under, our PrecisionForms User, and the NETWORK SERVICE account.
21. Click OK when finished.
22. Going back to PrecisionForms server, we can see that PF_Director is now part of our queue list. Double click on the PF_Director printer and enable the queue for form processing.
23. Choose the Director_Generic_v4_0 Default project and check the Use Director project first option. Click OK when done.
24. You will be prompted to restart the Windows Printer Spooler service. Once restarted, you will notice that the PF_Director printer now has a green checkmark next to it. This signifies that it has been enabled for PrecisionForms.
Lastly, we will install PrecisionForms email to enable print output to be delivered via email.
1. On the PrecisionForms installer web page, click PrecisionForms Email
2. Choose the defaults to complete the installation. Once completed, click Finish
3. Navigate to Start > All programs > Bottomline Technologies > PrecisionForms Email
4. When PrecisionForms Email opens, navigate to Administration > Configure Email. Enter in your SMTP or VIM credentials.
5. Click OK when finished.
And that’s it! We’ve installed PrecisionForms Server, Director, and Email. In my next blog, we will go over the Microsoft Dynamics AX components and configuration to enable PrecisionForms for forms. Stay tuned!