Applies to X9Vision? | Applies to X9Validator? | Applies to X9Assist? | | | | Applies to X9.37? | Applies to ACH? | Applies to CPA005? |
No | No | Yes | | | | Yes | Yes | Yes |
Generate is a powerful data generation tool that allows you to create files from scratch to meet your specific testing requirements. File creation is typically a two step process, which consists of Make followed by Generate. Although these are often discussed as separate functions and topics, they are integrated into our Make function allowing them to be viewed and run as a single tool.
Make and Generate provide very different functions:
- Make is used to create items.
- Generate is used to wrap those items with the header and trailer records that are needed to build a valid file. For x9, this also consists of optionally drawing images that match the item level data, allowing CAR/LAR to be be run against the constructed file.
Remember that the input to Generate should be viewed as individual items which can be either debits or credits. Generate has a large number of parameters which allow you to tailor the data generation process to your specific requirements. We would like to hear from you about how this function can be improved. Your suggestions are welcome.
Generate Configurations
Over a period of time and as part of your testing processes, you will most certainly use Generate to manufacture different test data for varying purposes. Each of these may require different parameters to allow you to assign the appropriate data for the file header records, cash letter header records, and so forth.
Generate simplifies this process by allowing you to define and then save a Generate configuration. You can then restore and reuse this configuration in the future. This eliminates the need to repetitively enter information and also eliminates the potential for errors and omissions.
Input to Generate
Although Generate is design to work in combination with Make, it can also function independently. You can run Generate directly from the toolbar. When you do so, you will receive a prompt screen where you will identify the input file that should be used by Generate. This must be an Excel file (XLS or CSV) that contains the logical representation of your data records.
Generate will accept file (x9 and ach) and cash letter header (x9) records when they are present on the input CSV file. If you provide these record types, they will be used exactly as presented for file generation. If these record types are not present on the CSV input file, Generate instead creates these control records from the configuration parameters.
There are three types of inputs that can be processed by Generate:
Generate |
Applies to X9 ? |
Applies to ACH ? |
Description |
Output from Make. |
Yes |
Yes |
Items from Make flow into Generate. |
Output creation by your own internally developed applications. |
Yes |
Yes |
You can develop processes which create this same file format and then feed that input directly into Generate. This scenario is used when you want to build your own item based data generation system, and you want to leverage the Generate capabilities as part of your process. |
CSV files which are essentially in export format, structured as records and fields. |
Yes |
No |
CSV files that are specifically contain type 25 records (checks). If you are creating a deposit, then this file can also contain one or more type 61 credit reconciliation records. If type 61 records are present, they must precede their respective checks. The amounts on the type 61 credit reconciliation records can be specified as zero, allowing X9Assist to automatically calculate the credit amounts from the debits that follow. If you specify the credit amount on your type 61 record (it is not zero), then your amount will be used. You can have more than one type 61 record on your Excel file. When type 61 records are present, there must be at least one check that follows each credit. This check file can also optionally include a file header (type 01), cash letter header(s) (type 10), and the various check addendum records; when present, these user supplied record types will be used by Generate instead of being artificially created. |
New Batches / Bundles
Items will begin in a new bundle in one of several ways:
- The item count per bundle is exceeded (as defined in your generator).
- The item is a credit, and your generator indicates that credits should begin in a new bundle.
- You populate values in Bundle Cycle Number, Bundle User Field, or both of these columns. A new bundle is started automatically when these columns are populated and the value changes.
- You forcibly indicate that an item should begin in a new bundle. You can do this using the debit/credit indicator column, where you instead insert the keyword “Bundle” on a row by itself (since this row is a separator and will not contain an actual item). Doing so will force the subsequent item to begin in a new bundle.
- You insert a “Y” in the new bundle column as identified by your reformatter.
Dates
Generate utilizes various different dates when creating output x9 files. Default values are assigned to each of these dates, and you can also modify these assignments based on your requirements. The dates assignments are as follows:
- File create date/time (default value is assigned as current date/time).
- Business date (default value is assigned as a Mon-Fri that is one day before the current date).
- Secondary endorsement date (default value is assigned as a Mon-Fri that is one day before the business date).
- BOFD endorsement date (default value is assigned as a Mon-Fri that is one day before the secondary endorsement date).
- Beginning and ending dates for created check images. Dates are assigned sequentially (within your provided range) as virtual check images are created.
These above four dates are all currently exposed and modifiable through the Generate user interface, on the dates tab. For example, the type 50 record is generated with the BOFD endorsement date, and the type 52 is also generated with the BOFD endorsement date.
Generate – X9
Generate has a standard set of columns that is utilized by Make and can also be constructed by client specific applications. Be advised that this list of fields may change from release to release, so if you create an application that uses this interface, you should design it in such a manner that it can be updated in the future should changes be needed. Please reference the notes panel that is provided by Generate (from the tool bar) for a complete list of these fields.
Generate looks at the incoming Excel file and determines which of these three file types it is being presented with. This is determined based on the record types that are on the file and the number of fields (columns) that are actually present in the data. You do not need to tell Generate what type of file you have. But you do need to ensure that it follows the rules associated with these three file requirements.
Generate will create all of the items (checks) that are routed to it for processing. Your decision as to how many checks to generate must be made by the tool that you are using to create your input to Generate. For example, within Make, you can specify how many items that you want created which will control the number of checks that will ultimately be on the x9 file from Generate.
Obviously you can use other tools to create your Generate input file. The Generate input can come from the X9Assist Export function, but can also come from your tools that manufacture your own test cases or use Export output to build consolidated files that represent your specific testing requirements.
When Generate first starts, it will read the input file and extract the check information that is present. It will also assign default values to any data that is missing. For example, it must do this if you are providing an ICL extract since there will be several ICLR based fields that are not present in your input.
Generate will inform you of the number of checks it has found on the input file and the total dollar amount. You can double check this against your expectations before you actually generate your x9 file.
Optional CSV Record Types – X9
Generate allows you to provide certain record types on your incoming CSV file and can then optionally use these record types when the new file is constructed.
- File and cash letter headers
- Check addendum records
- Return addendum records
Use of this facility can allow you to utilize Generate for more complex situations and not have to revert to writing an application that feeds import. For example, if you need to use specific file and cash letter header records in your output file, you can cut and paste these records into your CSV file and then have Generate use those records. You can similarly do this with the check and return addendum records.
Use of these record types makes it possible to take Export output and then use that to easily create new files. You can export an existing file, remove various records from that file, and then have Generate use the resulting file with your defined Generate configuration.
Sample CSV Input File – X9
This is a sample CSV input file to generate that will create a deposit using a type 61 credit reconciliation format. The credit format (Metavante or DSTU) must be selected via the Generate parameters. Note that the credit amount is zero so it will be automatically calculated by X9Assist based on the credits that follow.
61,1234,””,555555550,”123456789/”,0,396408128,”G”,””,3,””,””,””
25,””,””,08777026,9,”97937649/8081″,0000010000,44000000,”G”,0,1,”Y”,03,0,”A”
25,””,””,02777001,2,”29801918/8856″,0000010002,44000001,”G”,1,1,”Y”,03,1,”B”
25,””,””,09777035,6,”22690809/1921″,0000010004,44000002,”G”,2,1,”Y”,03,2,”C”
25,””,””,09777068,6,”17789149/6202″,0000010006,44000003,”G”,3,1,”Y”,03,3,”D”
25,””,””,08777050,2,”67626401/5455″,0000010008,44000004,”G”,4,1,”Y”,03,0,”E”
Generation Parameters – X9
Generate parameters allow the creation of both x9 and ach files. These parameters control the batching of items and the values that are populated in file headers and trailers. Generate related parameters are provided on the “right” side tabs of the Make panel.
Generate parameters include the following:
- All file header field values can be assigned
- Credits can be automatically inserted to offset debits
- Addendums can be created
- Bundle size can be controlled
- Etc
Images – X9
Generate will dynamically create images from one of several available options:
Create missing image documents |
Images will be created from your defined “missing image” document. Note that this document can be customized as part of your X9Assist installation. Creating missing image documents is the fastest image generation option. This is because individual images do not need to be drawn and then converted into TIFF format (which is the most time consuming part of the image generation process). If you are doing repetitive x9 file creation as part of a testing process, you can consider initially inserting missing images until the x9 file is being created per your requirements. Once the x9 file is correct, you can then do the more time consuming process of generating individual images. |
Create missing image documents that include MICR lines |
Images will be created from your defined “missing image” document. Note that the missing image document can be customized as part of your X9Assist installation. The created missing image documents will include a MICR line that is drawn from the x9 data. |
Draw images using the generated MICR and amount information for the check |
Images will be drawn using the generated information that is being assigned to the type 25 check detail record. X9Assist will ensure that the image meets tiff standards. You can customize information regarding the drawn image on the “draft check” tab within program options. |
Image Templates – X9
The Image Templates tab is used to select the check artwork that will be used for image generation.
There are various categories that are used to store templates for image generation:
- business
- credits
- rcc
- retail
If a check has an Aux OnUs field, then Generate will attempt to use a template from the business category. If no templates have been selected from the business category, then Generate will fall back and utilize a retail template.
Addition points for consideration:
- Available formats are defined in folder / x9_assist / xml / checkFormats/. There is a templates file which lists all of the formats which are available, where each of those is stored in folders by category.
- You can remove any templates from templates.xml that you do not want to utilize.
- You can also add formats and use them to draw your checks checks. These definitions include the fonts and point sizes that are used to dynamically draw check images.
Transformations – ACH
Addenda transformations allow existing items files to be into automatically converted into more complex returns and notification of change files. This functionality will create new addendas based on your provided parameters. Using the transformation drop down, you can create files for returns, notifications of change, dishonored returns, contested dishonored returns, and refused notifications of change.
These transformations are purposefully designed to be as simple to use as possible. Via the transformation panel, you can provide a list of values in a CSV format, separated by commas) which will be applied to the generated addendums. These values are used on a circular (round-robin) basis, allowing specific data to be assigned within the created addendas. However, if you omit the transformation data, then generate will instead create the addendas using a variety of randomly assigned reason codes, change, codes, and information strings. This random assignment allows you to create a complex file in seconds.
When you first begin using the transformation function, you should omit the transformation data and allow generate to automatically construct the addenda records. This core functionality may be all that you need. For more advanced requirements, you can optionally assign the transformation data to be used, which will be saved with your generator for future reuse. The most basic value to be assigned is the return or change reason code(return reason, change reason, dishonored reason, contested reason, or refused change reason). This is a three character value (“Rxx” or “Cxx”) and applies to all transformations. This can be entered as a single value (eg, R01) or a list of values (R01,R02,R03). There are optionally more complex data formats, which are defined as follows:
- NOC data is formatted as “changeCode|changeData”.
- Dishonored returns data is formatted as “dishoneredReason|returnReason|addendaInformation”.
- Contested returns data is formatted as “contestedReason|dishoneredReason|returnReason”.
- Refused notification of change data is formatted as “refusedCode|changeData”.
These expanded data formats are optional and allow you to further tailor the constucted data to your specific requirements.
Although these system generated transformations are quick and easy, they are also a bit brute force in nature and do not always provide the granularity needed to satisfy more complex use case requirements. In those situations, you should instead consider using our Make function, where spreadsheet input can be provided on an item by item basis. Using Make is a much more detailed approach, where you fully define all contents, and hence allows you to take complete control over the entire data assignment process for each addenda record.
Generation
Use the “Generate” button to initiate file generation. This can be a lengthy process if you are drawing a large number of images. Once the output file is created, you will be placed in the viewer so you can browse results. You can also save the generated file for external use, allowing you to send files to your capture and downstream applications.