The CSi IntelleDoc Solutions integration components are multi-tier .NET Remoting applications that include the Transaction Manager, Transaction Server, and Transaction Runner. They provide direct integration with the CSi IntelleDoc Solutions. They are suited for most Microsoft Windows server environments, from a single server to a multiple or distributed server environment employed wherever high-volume capacity is required, such as with a branch, financial institution, or a processing center.
For environments where direct .NET integration is not possible, Compliance Service provides a web services SOAP interface that acts as a bridge between the platform system and CSi’s .NET components.
This document is intended for partners who choose to integrate with the Compliance Service. This means the partner application will interface with CSi’s components using the methods and properties of the Compliance Service.
There are several advantages to using a web service:
Integrating with a web service isolates CSi code from the business partner’s application code.
CSi applications run on a separate computer so the partner may maintain physical isolation between its applications and CSi’s applications.
Web services allow applications not on a .NET platform to integrate with CSi IntelleDoc Solutions.
Since the Compliance Service relies on the Transaction Runner, Transaction Manager, and Transaction Server, this document also discusses the installation and configuration of these components. This document does not describe the Transaction Runner, Transaction Manager, or Transaction Server API. Partners who wish to interface directly with the Transaction Runner or Transaction Server should refer to the Transaction Runner Implementation Guide or the Transaction Server Implementation Guide provided with this release.
The Compliance Service is a .NET web service object with methods that instantiate the JobRunner object and invoke its Go method. It has two interfaces, Compliance Service and Compliance Service Simple, both of which support the methods.
There are advantages to using either interface. The Compliance Service interface is an object-oriented web service built around the Transaction Runner. The Compliance Service Simple interface is string-based rather than object oriented, and so is guaranteed to work for the widest range of clients. Partners integrating with the Compliance Service Simple must construct XML requests and parse XML responses in order to integrate with CSi’s IntelleDoc Solutions.
CSi recommends that partners planning integration with the Compliance Service first install and configure the software to support a proof-of-concept implementation. Such a proof-of-concept implementation allows partners to evaluate the practical implications associated with either a Compliance Service or Compliance Service Simple integration. The proof-of-concept implementation is not intended to develop code or make architectural decisions to guide actual integration efforts. Rather, it allows the partner to walk through the process of rendering a document with an integration between the partner system and the CSi IntelleDoc Solutions. This process includes the following phases:
Installation of the CSi components.
Configuration of the Transaction Manager.
Configuration of the Transaction Server.
Initialization of the command-line versions of the Transaction Manager and Transaction Server.
Selection of the web service to be used.
Configuration of the web service.
Set up of the web service in ISS.
Verification that the web service is running.
Verification that the components are communicating with each other correctly.
If you do not have the nuget command line, you can get that from www.nuget.org. You will want to find the “Install NuGet” button, and below that find a little text link “latest nuget.exe”. Use that.
I’ve used a version number of 7.7.109.3 and an output directory of C:\temp in the examples below. You’ll want to replace them with the latest-and-greatest version number. AND provide an output directory more to your liking.
For the initial proof of concept setup, run this commands from a DOS prompt.
C:\> nuget install csi.IntelleDoc.Services.ComplianceService.Integration \
-version 7.7.109.3 \
-outputdirectory C:\temp \
-source https://update.compliancesystems.com/nuget/
Then you will need to use NuGet to retrieve two (or all) of these packages:
You only need the console services or the windows service packages, depending on the type of service you’ll be running.
Make a note of where NuGet puts your executables (e.g. ComplianceService.dll, csi.Transaction.Manager.WindowsService.exe and csi.Transaction.Server.WindowsService.exe)
There will be a quiz later.
A number of fonts are distributed via the csi.IntelleDoc.Fonts nuget package. You’ll probably need that, too.
The IntelleDoc fonts must be installed on systems onto which CSi software integration components are redistributed. The installer does not automatically install them in order to make it clear upon which fonts the CSi software depends. Additionally, the CSi IntelleDocs Solutions rely upon the fonts Times New Roman and Courier New. These fonts are generally available on workstations using the Windows operating system. If they are not available on workstations using CSi IntelleDoc Solutions, then they must be installed.
Windows services have to be set up to run in the background of your system, and to start automatically when your system boots up. You have to
these Windows services from an Administrator command prompt.
Quiz: where did NuGet put the executables for the manager service and the server service described above?
C:\> sc create CSiTransactionManager binPath= <<QuizAnswer2>>
C:\> sc create CSiTransactionServer binPath= <<QuizAnswer3>>
C:\> sc config CSiTransactionManager start= auto
C:\> sc config CSiTransactionServer start= auto
C:\> sc start CSiTransactionManager
C:\> sc start CSiTransactionServer
The first two line tell Windows that you’re creating two new services. The middle two lines tell Windows you want them to start the next time your system reboots. The last two lines tell Windows to start them (because you don’t want to wait through a reboot to start working).
To verify your CSiTransactionManager and CSiTransactionServer services are running, you’ll want to either run
C:\> sc query CSiTransactionManager
C:\> sc query CSiTransactionServer
…or open the Services control panel from Administrative Tools.
If your IIS server is not already set up with a Server Role, add it now.
If you are installing this on a server that did not previously have .NET and IIS, you’ll need to run this from a command prompt:
C:\> C:
C:\> cd \Windows\Microsoft.NET\Framework64\v4.0.30319
C:\> aspnet_regiis -i
(Your mileage may vary if you’re running a 32-bit version of Windows or a different version of .NET.)
In the IIS Control Panel
Quiz #4: What is your license key?
Quiz #5: Where is your FXL directory?
Quiz #6: Where is your “temp” directory?
<complianceservicerequest>
<preferences>
<license>QuizAnswer4</license>
</preferences>
<documents>
<document>
<fxlfiles>
<file type="fxl">C:\QuizAnswer5\ClosingDisclosure.fxl</file>
</fxlfiles>
</document>
</documents>
<destination contenttype="unc" type="pdf">
<path>C:\QuizAnswer6\ClosingDisclosure.pdf</path>
</destination>
</complianceservicerequest>
Since this render request doesn’t supply any data, you should get a response that lists a lot of missing data elements. Though annoying, it does confirm to you that the Transaction Manager and Transaction Server processed your request correctly. Celebrate good times, come on!
The Transaction Manager must be configured to listen on a specific channel/port. Its configuration file, TransactionManager.exe.config or csi.Transaction.ManagerWindowsService.exe.config, located in C:\Program Files\Compliance Systems\CSi IntelleDoc Solutions SDK v7.00.0\Transaction Manager Console, is structured as follows:
Which configuration file you use depends on whether you use the Transaction Manager as a command-line application or a Windows Service. Transaction Manager and Transaction Server Services (on page 15) provides more information on which method best suits your needs.
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton" type="csi.Transaction.Manager.JobManager,csi.Transaction.Manager" objectUri="JobManager.rem" />
</service>
<channels>
<channel ref="tcp" port="7981" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
The salient detail here is that port=“7981” in the middle of the config.
The only configurable setting is the TCP port, in bold above. If this value is changed, the value of JobManagerUri in the Transaction Runner configuration file must also be changed to match it.
The Transaction Server must be configured to listen on a specific channel/port. Its configuration file, TransactionServer.exe.config or csi.Transaction.ServerWindowsService.exe.config, located in C:\Program Files\Compliance Systems\CSi IntelleDoc Solutions SDK v7.00.0\Transaction Manager Console, is structured as follows:
Which configuration file you use depends on whether you use the Transaction Manager as a command-line application or a Windows Service. Transaction Manager and Transaction Server Services[]{#H_29206 .anchor} (on page 15) provides more information on which method best suits your needs.
<configuration>
<appSettings>
<add key="**Key**" value="**Value**" />
<add key="**Key**" value="**Value**" />
…
</appSettings>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton" type="csi.Transaction.Server.JobServer, csi.Transaction.Server" objectUri="JobServer.rem" />
</service>
<channels>
<channel ref="tcp" port="**7982**"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
The appSettings section contains key/value pairs, which are described in the table below. The only other configurable setting is the TCP port, which defaults to 7982.
Key (All keys are a single text string without breaks) | Value |
---|---|
JobServerUri | The URI of this Transaction Server. This is used only when Transaction Server is used with Transaction Manager. The Transaction Manager uses this URI to communicate with this server. The default value is tcp://localhost:7982/JobServer.rem. The port number used here (7982) must be the same as the port number specified in the <channel> element. |
JobManagerUri | The URI of the Transaction Manager. This is used only when Transaction Server is used with the Transaction Manager. The default value is tcp://localhost:7981/JobManager.rem. The port number used here (7981) must be the same as the port number specified in TransactionManager.exe.config. |
renderedFilePath | The directory path where temporary copies of PDF files are written when OutputFileData.ContentType is StorageType.inline. This directory is relative to the current application directory. The default value is RenderedFiles. Within the directory, Transaction Server will create a subdirectory named with the current date. |
uncShareName | The remote path to a network share where output files are written when the JobTicket preferences specify RenderFormatType.pdfUnc or RenderFormatType.smartDocUnc. |
uncShareLocalPath | The local path to the directory specified in uncShareName. |
uriBasePath | The remote path to a URI where output files are written when the JobTicket preferences specify RenderFormatType.pdfUri or RenderFormatType.smartDocUri. |
uriBaseLocalPath | The local path to the directory specified in uriBasePath. |
formFileCacheCapacityDefault | The maximum number of FXL files that are cached in memory to improve performance. Files are retained in the cache based on the amount of time required to load them. Files that took the least time to load are removed from the cache first. |
extractedDxlPath | This setting is used for testing and debugging. It is not used in a production environment. |
repositoryFxlDir | The directory from which FXL files are read if a Transaction Server request specifies the ContentType as StorageType.fileName. |
repositoryOxlDir | The directory from which OXL files are read if a Transaction Server request specifies the ContentType as StorageType.fileName. |
repositoryMxlDir | The directory from which MXL files are read if a Transaction Server request specifies the ContentType as StorageType.fileName. |
maxConcurrentJobs | The maximum number of requests that a JobServer object will accept at any one time. |
TimeToRetainCompleted | The minimum time that a JobServer object will keep the results of a synchronous job. The default value is “00:00:30” (30 seconds). |
SynchronousJobs | |
TimeToRetainCompleted | The minimum time that a JobServer object will keep the results of an asynchronous job when results have not been retrieved. The default value is “00:05:00” (5 minutes). |
AsynchronousJobs | |
TimeToRetainsCompleted | The minimum time that a JobServer object will keep the results of an asynchronous job after the results are retrieved. The default value is “00:00:10” (10 seconds). |
AsynchronousJobsAfter | |
RetrievalOfResults | |
TimeBetweenJobListPurgeCheck | The time interval between successive checks for jobs whose results are ready to delete based on the TimeToRetain settings above. The default value is “00:01:00” (1 minute). |
When a render request references an FXL, OXL, or MXL file by name (e.g., StorageType.fileName), a relative path may be used to access a subdirectory of the file repository.
The repositoryFxlDir, repositoryOxlDir, and repositoryMxlDir settings designate the directory path to the library of files of that type (FXL, OXL, and MXL, respectively). A render request typically designates the name of the file in the library. However, there may be some situations where subdirectories are used to store particular documents—for example, custom documents for various customers. That subdirectory may be included in the render request in order to access the custom documents.
The Compliance Service, via the Transaction Runner, communicates with the Transaction Manager and Transaction Server via .NET Remoting. The remoting services are launched in one of two ways: command line and Windows Services.
Launching via the command line is typically used during development, although it may be used for production if desired. The service runs with the credentials of the current user.
Launching via Windows Service enables the Transaction Manager and Transaction Server to run with any designated user credentials and allows the service to remain active when no user is logged in.
Launching Transaction Manager and Transaction Server from the command line:
Install the Transaction Manager and Transaction Server on the required machines.
Set the configuration files as necessary.
Execute TransactionManager.exe which is installed in the Transaction Manager Console directory.
Execute TransactionServer.exe which is installed in the Transaction Manager Console directory.
Launching Transaction Manager and Transaction Server using Windows Service
Install the Transaction Manager and Transaction Server on the required machines.
Double-click ManagerWindowsServiceSetup.msi in the \CSi IntelleDoc Solutions SDK v7.00.0\Transaction Manager Service directory to launch the Setup Wizard.
Follow the steps provided by the Setup Wizard to install the Transaction Manager as a Windows Service.
Double-click ServerWindowsServiceSetup.msi in the \CSi IntelleDoc Solutions SDK v7.00.0\Transaction Server Service directory to launch the Setup Wizard.
Follow the steps provided by the Setup Wizard to install the Transaction Server as a Windows Service.
The Windows Service automatically starts when the system is restarted. To start the Transaction Manager and Transaction Server manually after the initial installation:
Open the Microsoft Management Services Console dialog by clicking Start>Control Panel>Administrative Tools>Services.
Select CSiTransactionManager from the list of local services.
Choose Action>Start.
Select CSiTransactionServer from the list of local services.
Click Action>Start.
The user account under which these services run is configured by opening the Properties dialog for the service in question:
Right-click on the service name and select Properties from the context menu.
View the Log On tab.
This setup is intended for partners who choose to integrate using the Compliance Service. Partners who choose to integrate using Compliance Service Simple should refer to Compliance Service Simple Setup (on page 18).
Copy the contents of the \CSi IntelleDoc Solutions SDK v7.00.0\Compliance Service folder to the C:\inetpub\wwwroot\ComplianceService folder.
In the Web.Config file that was just copied, find the JobManager URI (Uniform Resource Identifier) and set it to the machine where Job Manager will be running (i.e., <add key=“JobManagerUri” value=“tcp://192.168.0.182:7981/JobManager.rem” />).
Ensure that the following statement is entered in the web.config file:
<System.Web>
…
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
…
</System.Web>
To allow VNC access across machines, add the following to the web.config file:
<System.Web>
…
<identity impersonate="true" username="accountname" password="password" />
…
</System.Web>
The username must be a power user for all machines in the domain.
From the Start menu, click Control Panel > Administrative Tools > Internet Information Services (IIS) Manager.
Expand the [local computer name(local computer)].
Right-click on Sites and select Add Web Site from the context menu.
Enter a name for the web site, such as ComplianceService, in the Site name field.
Click the “…” button to the right of the Physical path field.
Browse to the folder containing the Compliance Service and click OK.
Enter an available port number in the Port field.
Make sure that the Start Web site immediately check box is selected.
Click OK.
If the port number you entered in step 7 is already in use, a warning message will appear asking if you are sure you want to add this duplicate binding. Click No and enter a different port number in the Port field. Then click OK.
Close the Internet Information Services (IIS) Manager.
To verify the web service is running, open a browser and browse to http://localhost:12345/complianceservice.asmx (replace “12345” with the port number you entered when setting up the web service).
If the web service is running, this displays a list of supported operations for the Compliance Service. Click on the Version link, then press the Invoke button. This will display the CSi IntelleDoc Solutions version number.
After installing and configuring the software, write a simple application to confirm that you have installed and configured it correctly. If you use .NET, you can use Visual Studio 2008 to do so. CSi can provide guidance to partners who are not operating in a .NET environment. The application you construct to validate installation and configuration of CSi software need be nothing more than a command line application. You should add a reference to the web service and construct a sample call.
You will receive training from CSi as part of the integration. Writing this simple application is part of the CSi training. After testing your integration with this application you may wish to reassess whether the Compliance Service or Compliance Service Simple best suits your needs.
After the Compliance Service is installed, configured, and tested, you can use the following methods to manage document selection and rendering.
SelectDocuments selects the required documents for a deposit or lending transaction.
RenderDocument initiates rendering of a single document.
RenderDocumentSet initiates rendering of a document set. This method is asynchronous and requires succeeding calls to CheckForResponse to determine when processing is complete and to retrieve the response data.
Transaction performs document selection and initiates rendering of a document or set of documents in a single step. This is an asynchronous method that requires succeeding calls to CheckForResponse to determine when processing is complete and retrieve the response data.
CombinePdfs combines a set of PDF files into a single PDF file. Input files may include those generated by IntelleDoc Solutions software along with any other non-protected PDF file.
GetDocumentInfo retrieves metadata for a document.
CheckForResponse retrieves the job status for asynchronous jobs and retrieves the results if the job is complete.
Version returns the Compliance Service version identification number.
This setup is intended for partners who choose to integrate using the Compliance Service Simple. Partners who choose to integrate using Compliance Service should refer to Compliance Service Setup (on page 16).
Copy the contents of the \CSi IntelleDoc Solutions SDK v7.00.0\Compliance Service Simple folder to the C:\inetpub\wwwroot\ComplianceServiceSimple folder.
In the Web.Config file of ComplianceServiceSimple, find the JobManager URI (Uniform Resource Identifier) and set it to the machine where Job Manager will be running (i.e., <add key=“JobManagerUri” value=“tcp://192.168.0.182:7981/JobManager.rem” />).
Ensure that the following statement is entered in the web.config file:
<System.Web>
…
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
…
</System.Web>
To allow VNC access across machines, add the following to the web.config file:
<System.Web>
…
<identity impersonate="true" username="accountname" password="password" />
…
</System.Web>
The username must be a power user for all machines in the domain.
From the Start menu, click Control Panel > Administrative Tools > Internet Information Services (IIS) Manager.
Expand the [local computer name(local computer)].
Right-click on Sites and select Add Web Site from the context menu.
Enter a name for the web site, such as ComplianceService, in the Site name field.
Click the “…” button to the right of the Physical path field.
Browse to the folder containing the Compliance Service and click OK.
Enter an available port number in the Port field.
Make sure that the Start Web site immediately check box is selected.
Click OK.
If the port number you entered in step 7 is already in use, a warning message will appear asking if you are sure you want to add this duplicate binding. Click No and enter a different port number in the Port field. Then click OK.
Close the Internet Information Services (IIS) Manager.
To verify the web service is running, open a browser and browse to http://localhost:12345/complianceservicesimple.asmx (replace “12345” with the port number you entered when setting up the web service).
If the web service is running, this displays a list of supported operations for the Compliance Service. Click on the Version link, then press the Invoke button. This will display the CSi IntelleDoc Solutions version number.
After Compliance Service Simple is installed, configured, and tested, you can use the following methods to manage document selection and rendering.
SelectDocuments selects the required documents for a deposit or lending transaction.
RenderDocument initiates rendering of a single document.
RenderDocumentSet initiates rendering of a document set. This method is asynchronous and requires succeeding calls to CheckForResponse to determine when processing is complete and to retrieve the response data.
Transaction performs document selection and initiates rendering of a document or set of documents in a single step. This is an asynchronous method that requires succeeding calls to CheckForResponse to determine when processing is complete and retrieve the response data.
CombinePdfs combines a set of PDF files into a single PDF file. Input files may include those generated by IntelleDoc Solutions software along with any other non-protected PDF file.
GetDocumentInfo retrieves metadata for a document.
CheckForResponse retrieves the job status for asynchronous jobs and retrieves the results if the job is complete.
CancelRequest cancels a previously submitted asynchronous request.
ValidateRequest validates any XML request against the Compliance Service Request schema to make sure the request conforms with the schema structure.
Version returns the Compliance Service Simple version identification number.
You will also use the following schemas.
ComplianceServiceRequest describes the XML structure used for all requests to the Compliance Service Simple.
ComplianceServiceResponse describes the XML structure for all responses that will be returned by the Compliance Service Simple.
High-volume deployments require multiple Transaction Servers running on a dedicated server. This may include multiple virtualized servers on a single piece of hardware as long as one or more processor cores are dedicated to each virtual server. A single Transaction Server can handle a peak throughput of approximately 1,000 documents per hour. This may vary depending upon the number and speed of CPU cores, available memory, and other processes running on the system.
This table provides guidelines for the recommended number of Transaction Servers based on the expected number of transactions per month. These guidelines assume uneven distribution of transaction requests over time, that each transaction may render two or three times, and that each transaction contains between 4 and 30 documents.
Transactions Per Month | Number of Physical Servers or Virtual Machines | Configuration |
---|---|---|
500 | 1 | Install Transaction Manager and Transaction Server on a single physical server. |
5,000 | 4 | Install one Transaction Manager and one Transaction Server on one server or virtual machine. Use 3 dedicated Transaction Servers on separate servers or virtual machines. |
10,000 | 9 | Install one Transaction Manager and one Transaction Server on one server or virtual machine. Use 8 dedicated Transaction Servers on separate servers or virtual machines. |
25,000 | 24 | Install 3 clusters, with each cluster comprised of: - One Transaction Manager and one Transaction Server on one server or virtual machine. - 7 dedicated Transaction Servers on separate servers or virtual machines. |
The Compliance Service uses several different input files.
FXL is the file format used by CSi IntelleDoc document files. It is an encrypted XML file that contains document content, content selection logic, and associated content metadata. It also includes data-processing logic for selecting documents and additional selection metadata. They perform two types of selection:
Document selection. FXL files may be used to generate a list of documents required to perfect a transaction.
Content selection. FXL files may be used to generate the text content of a document.
Multiple FXL files can be chained together in the Compliance Engine to enhance functionality. The Compliance Engine uses input transaction data and selects the appropriate documents or document content, returns errors if more information is needed, and renders documents. For example, partner and institution document-selection customization may be handled by chaining additional partner-specific and institution-specific FXL files behind a generic/general document selection FXL file.
OXL is the CSi file format used by overlay files which use XML to store document customization information.
An overlay is a field used to add additional elements to a CSi document. The element can be:
fixed text - a static text label that you define for the field. They may also hold variable datapoints inserted as part of the field text data.
mergable text - data from any datapoint that you define for the field.
images - contains a datapoint that specifies an image that is used for display in the field.
graphic shapes used to format the document or increase its readability. These can be lines, rectangles, or circular shapes.
TXL is the CSi data file format modeled on the CSi Data Schema. TXL is an XML file that supplies all of the information necessary to document a given transaction and may require multiple IntelleDocs to contain and present that information. Value elements in a TXL file may have a number of corresponding attributes that dictate their display characteristics.
DXL is the CSi file format for an IntelleDoc data file. It is an XML file that supplies to the Compliance Engine data values along with the associated layout directives for values that are displayed. A DXL file corresponds to a single IntelleDoc document. Data values that are displayed on an IntelleDoc document may have a number of corresponding attributes that dictate their display characteristics.
DXL files are supported by the Transaction Server for backward compatibility only. DXL is not supported in new integrations. TXL is preferred to DXL because it allows the processing of multiple documents at the same time in a single request.
CSi IntelleDoc Solutions provide several options for rendering a document. A partner can create PDF files with or without interactive form fields that allow the user to enter data through Acrobat Reader. In addition, the partner may send documents directly to a printer.
For each output option, you can produce one document at a time or combine a set of documents into a single PDF or print job.
MISMO (the Mortgage Industry Standards Maintenance Organization has developed SMART Docs as a method for representing mortgage documents in electronic format. CSi currently supports the output of its Adjustable Rate Note and Fixed Rate Note in the SMART Doc version 1.02 format, which is a version synchronous with MISMO version 2.3.
Optional feature settings are preferences that allow a business partner to optimize how documents are produced. Each business partner can change these feature settings to fit their specific business needs.
A blank field refers to a data/fill-in datapoint that is rendered on a dynamic document as an empty fill-in field. The dynamic documents are assembled based on customer and transaction-specific data creating a customized document with fully integrated compliance logic and knowledge. Blank fields are used in documents that are intended for completion later. For example, a notary datapoint may be left blank for later completion at another location. There may also be instances when the datapoint information is not known at the time the document is rendered.
A datapoint is designated as a blank field by setting its value to an empty string and setting its DXL/TXL EmptyValue attribute to blankField.
A blankable datapoint refers to a data/fill-in datapoint whose value may be empty without triggering the “form must be completed” margin message when EnableBlankFields is true.
Structural datapoints are not allowed to be blank, as they are required to render the document. The only datapoints that may be blank are:
When blank fields are enabled, a non-zero blank field width allows space representing the blank datapoint to be rendered in the document. When a blank field width of zero is used, no space for the datapoint is rendered in the document. Blank fields are enabled with the BlankFields property.
The presentation of blank datapoints is managed in several locations, with an order of precedence determining if a blank datapoint is expressed in the document as a blank space.
Location | Precedence (1 is highest) | Description |
---|---|---|
DXL file | 1 | emptyvalue attribute within the datavalue element. |
TXL file | 1 | emptyvalue attribute within a leaf node. |
FXL file | 2 | Cannot be modified. |
Transaction Runner | 3 | The Transaction Server sits behind the ComplianceService and ComplianceServiceSimple applications. Blank fields are enabled in the Transaction Server via the csi.Transaction.Shared.JobTicket class: |
using csi.Transaction.Shared;
…
JobTicket jobTicket = new JobTicket();
jobTicket.Prefs.FieldPrefs.EnableBlankFields = true;
jobTicket.Prefs.FieldPrefs.BlankHighlight =
DataFieldPreferences.BlankHighlightType.gray30;
// Not required, but helps readability of rendered document.
jobTicket.Prefs.FieldPrefs.RenderForDataCollection = true;
The background color of blank datapoints is managed with the BlankFieldsShading property.
The blankWidth attribute of DXL and TXL data elements indicates the character width of the field when it has an empty value.
If not set explicitly, a default width is used. The default for a specific datapoint may come from the datapoint dictionary of the FXL file being evaluated, or, if it is not provide there, the internal default of 10 is used.
Valid values include integers with a value of zero or greater. An empty data value with a blank width of zero is not rendered and will therefore not appear on the rendered document.
This property is ignored if the data value is not empty, or it is not designated as a blank field, or if blank fields are turned off.
For example, the following code segment sets the default blank width to 28:
using csi.Transaction.Shared;
…
JobTicket jobTicket = new JobTicket();
jobTicket.Prefs.FieldPrefs.BlankWidth = 28;
The preference setting takes precedence over the FXL file. If neither is defined, the hard-coded default of 10 is used.
The emptyValue attribute of DXL and TXL data elements indicates how an empty data value is treated when a document is rendered. Possible values include:
blankField | Indicates that, when blank fields are turned on, an empty value is rendered as a blank field according to the blankwidth value. When blank fields are turned off, an empty value is treated as an empty string. |
emptyString | Indicates that an empty value is treated as an empty string. This allows an empty value to be treated as an empty string, not a blank field. Datapoints with an emptyString value are generally not rendered, and therefore have limited utility. |
ignoreValue | Indicates that an empty value is ignored and treated as if no value was supplied for the datapoint. |
If not set explicitly, a default value is used. The default can be specified in the Job Ticket. If neither is defined, the internal default of ignoreValue is used.
For example, the following code segment sets the empty data default to blankField.
using csi.Transaction.Shared;
using csi.Utility.Datapoints;
…
JobTicket jobTicket = new JobTicket();
jobTicket.Prefs.FieldPrefs.EmptyDataValueDefault = DataValue.EmptyValueType.blankField;
Changing the default EmptyDataValueDefault preference must occur on a job-by-job basis.
If the jobticket preference setting is not set, the hard-coded default of ignoreValue is used.
To be backwards compatible (prior to February 2009), set EmptyDataValueDefault to blankField.
A feature that is important in some implementations involves setting the emptyvalue attribute to “ignoreValue”. This allows a TXL file to be generated (i.e., via XSLT) that contains a number of empty values, and those empty values will be ignored.
In the following sample data set, the middle name node will cause a blank field to be generated (assuming blank fields are enabled), and the name suffix node will be ignored regardless of whether blank fields are enabled.
<TransactionValues>
<Entities>
<Entity id="Borrower\_1">
<Roles>
<Role>Borrower</Role>
</Roles>
<Name>
<First>Will</First>
<Middle blankwidth="10" emptyvalue="blankField"></Middle>
<Last>Badger</Last>
<Suffix emptyvalue="ignoreValue"></Suffix>
</Name>
</Entity>
</Entities>
</TransactionValues>
In the following sample data value set, the form will render as follows (assuming that blank fields are enabled):
dp_01 will render as a blank field with a width of 10 characters.
dp_02 will not render because blankwidth is zero.
dp_03 will not render because emptyvalue is emptyString.
dp_04 will render as a “Apollo”, blankwidth and emptyvalue are ignored.
<datavalues>
<datavalue name="dp_01" blankwidth="10" emptyvalue="blankField"/>
<datavalue name="dp_02" blankwidth="0" emptyvalue="blankField" />
<datavalue name="dp_03" blankwidth="10" emptyvalue="emptyString"/>
<datavalue name="dp_04" blankwidth="10" emptyvalue="blankField">Apollo</datavalue>
</datavalues>
When a license key is close to its expiration date, the software generates a warning indicating how many days are left. This warning is generated upon each request to the software during the last 30 days of the licensing period.
To detect this warning programmatically, search the status messages returned from the job request for a warning with a code of “licenseKeyExpire”. Following is some code to illustrate what this might look like.
...
ComplianceService service = new ComplianceService();
JobTicket jobTicket = new JobTicket();
JobOutputData outputData;
...
JobStatusData status = service.RenderDocument( jobTicket, out outputData );
bool warningFound = false;
for( int i = 0; (i < status.MessageList.messages.Length) && !warningFound; i++ )
{
Message message = (Message)status.MessageList.messages[i];
warningFound = (message.level == i.Utility.Messaging.Message.LevelType.warning)
&& (message.code == "licenseKeyExpire" );
}
...
The settings required to combine a set of PDF files are minimal, as illustrated below.
All input information for a Compliance Service request is encapsulated in the JobTicket object. The JobTicket properties that must be set for a CombinePdfs request include:
Prefs.licenseKeyString | |
PdfCombineList | |
DstFile.type | Must be OutputFileType.pdf |
DstFile.pdfcombineproperties.contenttype | Expected to be unc or inline |
DstFile.pdfcombineproperties.encoding | |
DstFile.pdfcombineproperties.InsertBlankPagesForDuplexPrinting | Default is false |
DstFile.path |
The Compliance Service Simple elements that are expected in a CombinePdfs request include:
preferences/license | |
pdfcombinefiles/file | Two or more instances are expected |
destination/@type | Must be pdf |
destination/@contenttype | Expected to be unc or inline |
destination/@encoding | |
destination/properties/insertblankpagesforduplexprinting | Default is false |
destination/path
When digital signatures are enabled, special Acrobat fields are generated to allow a digital signature to be attached to each signature location.
To enable digital signature, the service request adds the following additional PDF properties.
destination/properties/digitalsignature\provider | Specifies how the PDF and XML signature mapping file is generated. Possible values are eOriginal and imm. |
destination/properties/security/partnermodify\password | PDFs are encrypted and this password must be supplied during the signing ceremony to decrypt the PDF. |
To identify the individual whose signature will be collected during the signing ceremony, a signer ID will be attributed to the datafield associated with each signature. These are specified as a JSON format for which the signer attribute is required:
{"Signer":"12flfsu"}
Depending on the digital signing service provider, additional JSON values like FirstName, Lastname may be required.
In DXL files the attribute will be specified in the datavalue field:
<datavalue name="dp\_01" >{"Signer":"12flfsu"}</datavalue>
In a TXL the signer attribute are supplied in the Entity/Individual/Signature/DigitalSignatureImage field:
<DigitalSignatureImage>{"Signer":"SIGNER\_FOUR"}</DigitalSignatureImage>
When any datafield comprising a concatenated string is locked, the entire concatenated value is locked. For example, if Last is locked in the concatenated string First, Middle, Last, then the consolidated value made from First, Middle, and Last is locked.
Similarly, the attributes backcolor, blankwidth, emptyvalue, forecolor, and alignment are now cascaded through a concatenated value string so that the first attribute defined is given precedence over subsequent attributes assigned in the string. For example, setting the forecolor attribute for First to blue will set the forecolor attribute for Middle and Last to blue as well, even if Middle and Last have different forecolor attributes.
CSi IntelleDoc Solutions uses the log4net library to handle logging services. The Compliance Engine configuration file csi.Engine.Configuration.dll.config handles logging directives for nearly all CSi IntelleDoc Solutions API assemblies.
The easiest way to reduce log file size is to set the log level to WARN or ERROR, thus suppressing all DEBUG and INFO level messages. For example:
<log4net>
<level value="WARN" />
<appender-ref ref="RollingLogFileAppender" />
</log4net>
The logging level for specific assemblies can be set as well. For example, the following configuration logs warnings and errors for the csi.Transaction.Server assembly, but only errors for everything else:
<configuration>
<log4net>
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</log4net>
<logger name="csi.Transaction.Server">
<level value="WARN" />
</logger>
</configuration>
Another way to limit the size of the log file is to designate a maximum size. In the following example, the file will roll once it reaches 1000 KB and up to 10 old files will be kept.
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file
value="\${APPDATA}\\CSi IntelleDoc Solutions Software\\IntelleDoc Visualizer\\engine.log"
/>
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1000KB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date \[%thread\] %-5level %logger \[%ndc\] - %message%newline" />
</layout>
</appender>
Log files can be rolled by date as well. Here, the file will roll every day.
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file
value="\${APPDATA}\\CSi IntelleDoc Solutions Software\\IntelleDoc Visualizer\\engine.log"
/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" /> <!-- roll every day -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date \[%thread\] %-5level % logger \[%ndc\] - %message%newline" />
</layout>
</appender>
Other configuration options are available. Detailed information can be found at
http://logging.apache.org/log4net/release/manual/configuration.html.
Technology | Workstation Applications: Custom Document Editor IntelleDoc Viewer IntelleDoc Advisor IntelleDoc Visualizer |
Web Server Components: Transaction Manager Transaction Runner Transaction Server Compliance Engine |
Server Components: Compliance Service |
---|---|---|---|
Processor | 1.8 GHz Intel | 2.0 GHz Intel Core 2 Duo equivalent or better | 2.0 GHz Intel Core 2 Duo equivalent or better |
RAM | 1 GB (minimum) 2 GB (minimum) for Windows 7 |
2 GB (minimum). | 2 GB (minimum). |
Hard Drive | 100 MB free space or more space or more for software. | 100 MB free space or more for software Up to 1 GB free space for document library. |
10 MB free space or more for software Up to 1 GB free space for document library. |
LAN | TCP/IP 100 Mbps Applicable only when the documents being read/written are stored on the network. | TCP/IP 100 Mbps or better. | TCP/IP 100 Mbps or better. |
Internet or WAN | NA | 2.4 Mbps or better. Applicable only when components or document library are accessed via internet or WAN. | 2.4 Mbps or better. |
Operating Systems | Windows Server 2003 - all editions, latest service pack. Windows Server 2008 - all editions, latest service pack. Windows 7 - latest service pack. Windows 8 - latest service pack. |
Windows Server 2003 - all eitions, latest service pack. Windows Server 2008 - all editions, latest service pack. Windows 7 - latest service pack. Windows 8 - latest service pack. |
Windows Server 2003 - all editions, latest service pack. Windows Server 2008 - all editions, latest service pack. Windows 7 - latest service pack. Windows 8 - latest service pack. |
.NET Runtime | 4.6.2. | 4.6.2. | 4.6.2. |
Internet Information Services (IIS) | NA | NA | V6.0 or better. |
Fonts | Times New Roman Courier New |
Times New Roman Courier New |
Times New Roman Courier New |
A dynamic datapoint approved by CSi to have the data entered manually by the end user after the document is printed.
A CSi IntelleDoc Solutions™ assembly that evaluates input transaction data and selects appropriate documents or document content based on a given data set, returns error messages if more information is needed, and renders the documents. These documents are rendered on screen as well as output as PDF, printed copy, or image files.
The Compliance Service is a web service that provides access to CSi IntelleDoc Solutions™ functionality through a web service interface.
An integrated solution suite of dedicated compliance modules delivered as .NET-managed code. It is dedicated to the production of CSi’s document library in both static and dynamic formats.
A datapoint usage type designating a datapoint that may be required, depending on the values supplied for one or more other datapoints. If the datapoint is required and not supplied, the Compliance Engine displays and prints the document with the warning message Form must be completed at the top.
A datapoint usage type designating a datapoint as required in order for the document to be legally compliant. If such a datapoint is not supplied, the Compliance Engine displays and prints the document with the warning message Form must be completed at the top.
The location on an eDoc form for the variable data associated with a datapoint. There can be many datafields associated with a single datapoint.
A CSi variable data placeholder used to populate a document with transaction-specific information. Datapoints may have an associated data type for data validation. Datapoint names are not case sensitive.
The use of dynamic datapoints is indicated by one of the following: structural_required; structural_conditional; structural_optional; data_required; data_conditional; and optional. A structural_required or structural_conditional datapoint is generally part of a logic question that drives document creation.
An eDoc data file. An XML file that contains data values along with the associated layout directives for values that are displayed. It is used to aid processing of FXL files. It is equivalent to a DAT file.
An overlay field that holds static text labels. They may also hold variable datapoints inserted as part of the field text data.
An eDoc file. It is an XML file that contains coded file information as well as metadata about its form and contents. It is equivalent to an FAO file.
An overlay field that holds an image specified as the datapoint for the field.
A dynamic document supporting financial transactions that is assembled based on transaction-specific information.
An object that packages all information related to the document request for the Transaction Manager, including the transaction data, preferences information defining document setup, and custom overlay information.
An overlay field that can hold any single datapoint.
A datapoint usage type that designates a datapoint that is not required. If a value is supplied, the Compliance Engine includes this value in the document. If no value is supplied, the Compliance Engine displays and prints the document with no warning or error messages.
A field used to add additional elements to an existing CSi eDoc or to a custom document.
The file format used by overlay files, which store overlay information for the document as XML.
An acronym for Portable Document Format, a file format developed by Adobe Systems that captures the text, graphics, and formatting of a file so that it may be viewed and printed correctly without the original authoring software. Adobe Reader is distributed by Adobe Systems as freeware to display or print PDF files.
An overlay field used as the standard for controlling the properties and layout of other overlay fields.
A realized datapoint name is one that has been populated with suffix data values (for datapoints with suffixes), as opposed to the generic “.i” suffix placeholder value.
An overlay field that derives its properties and layout on the document from a primary overlay.
An acronym for Simple Object Access Protocol, SOAP is a protocol for exchanging XML-based messages over computer networks, normally using HTTP/HTTPS.
A datapoint usage type designating a datapoint as potentially required, depending on the values supplied for one or more other datapoints. If the datapoint is required and not supplied, the Compliance Engine displays a black screen with an error message.
A datapoint usage type designating a datapoint that is not required for a document to be considered complete, but affecting the structure of the document if values are supplied to it.
A datapoint usage type designating a datapoint as required to render the document. If such a datapoint is not supplied, the Compliance Engine displays a black screen with an error message.
A datapoint style that allows a single datapoint name to reference multiple values. It continues to render as long as data is sent to it. For example, if eight signatures are required on a document, a suffixed signature datapoint renders eight times so that all eight signers are listed on the document.
The Transaction Manager is a component within the Transaction Manager Suite. It assigns job IDs to Job Tickets brought by the Transaction Runner and selects a server URI for job processing based on a load-balancing algorithm.
The Transaction Runner is a transaction support system and serves as a means for managing document processing requests from client applications with CSi IntelleDoc Solutions™ technology. The Transaction Runner receives data for a given transaction from client applications, then processes the data into document selection and document rendering for those client applications.
The Transaction Server is a .NET assembly that processes Job Ticket data into document selection and document rendering for the client applications. It translates input data into multiple Compliance Engine transactions, if necessary, and executes the Compliance Engine. The Transaction Server also reports job status and performance informationto the Transaction Manager.
An XML data file based on the CSi Data Schema containing all of the transaction data necessary to document a given transaction.
An unrealized datapoint is one that is not yet populated with suffix data values (for datapoints with suffixes), and uses the generic “.i” suffix placeholder value.