©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 231 
Silent Unattended Failure Option 
When Visual CUT processes a report it may encounter various problems such as missing 
destination e-mail address, non-existing or invalid report file names, and missing export file 
names.  Such cases halt the execution and trigger an appropriate message box. 
If you want to ensure that Scheduled/Unattended processing doesn’t stop when encountering 
such cases, open DataLink Viewer.ini (located where you installed Visual CUT and 
automatically created the 1
time you run Visual CUT) and specify the following option: 
This allows silent  logging and skipping of any failure and avoiding message boxes.  The details 
about each failure get logged into a text file (Failure.Log) located where you installed 
Visual CUT.  Here is an example of failure messages in this file: 
Note:  If you turn on this option and you have a multi-line batch file that invokes processing of 
multiple reports, you may want, within your batch file, to have branching logic based on the 
success or failure of each line.  In order to respond (for example via Batch File IF THEN logic) 
to Success or Failure of Visual CUT processing, you can check for the existence of Success.txt 
(in the same directory where Visual CUT is installed) after each invocation of Visual CUT 
processing via a command line.   
You turn on this option by opening DataLink Viewer.ini (located where you installed Visual 
CUT and automatically created the 1
time you run Visual CUT) and specifying the following 
Pdf fill form - C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#.net, ASP.NET, MVC, WinForms, WPF
Online C# Tutorial to Automatically Fill in Field Data to PDF
pdf add signature field; convert pdf to fillable form online
Pdf fill form - VB.NET PDF Form Data fill-in library: auto fill-in PDF form data in vb.net, ASP.NET, MVC, WinForms, WPF
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data in vb.net, ASP.NET, MVC, WinForms, WPF
create fillable form pdf online; create a fillable pdf form from a pdf
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 232 
Silent Attended Failure Option 
This option is identical to the Silent Unattended Failure option discussed in the previous section.  
The difference is that it applies to cases where Visual CUT processing is invoked interactively 
(by pressing the START button).  This is particularly useful in cases when the processing takes a 
long time and the user doesn’t want to be tied to the screen. 
When Visual CUT processes a report it may encounter various problems such as missing or 
invalid destination e-mail address, non-existing or invalid report file names, and missing export 
file names. Such cases halt the execution and trigger an appropriate message box. 
If you want to ensure that Attended (interactive) processing doesn’t stop when encountering such 
cases, open DataLink Viewer.ini (located where you installed Visual CUT and automatically 
created the 1
time you run Visual CUT) and specify the following option: 
When this option is turned on, any errors (e.g., one of the Groups didn’t have an e
-mail address 
associated with it) are recorded in Failure.log (a plain text file) instead of halting the execution 
with a message box.  See previous section for an example of what this log file looks like.   
Here is an example of such an error message in the Failure.log:   
An attempt to send e-mail failed for the following reason(s): No Recipient E-mail Address Specified 
C:\Program Files\Visual CUT\Visual_CUT_with_Deliberate_Email_Problems.rpt: 4/9/2003 1:06:43 
VB.NET PDF Password Library: add, remove, edit PDF file password
passwordSetting.IsAnnot = True ' Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = True ' Add password to PDF file.
pdf fillable forms; attach file to pdf form
C# PDF Password Library: add, remove, edit PDF file password in C#
passwordSetting.IsAnnot = true; // Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = true; // Add password to PDF file.
create a pdf form to fill out and save; pdf create fillable form
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 233 
Avoiding Duplicate Processing   
Imagine you need to email "Order Received" (or "Order Shipped") confirmations to your 
customers.  You use Visual CUT to schedule bursting of a report grouped by Order_ID, selecting 
all orders that were received in the current day.  You wish to run the report every 30 minutes 
without repeating emails. 
To solve this problem, you can use a command line argument that instructs Visual CUT to skip 
processing if the target export file already exists and was created less than N minutes ago. 
For example, using the following scheduling string (or batch file): 
"C:\Program Files\Visual CUT\Visual CUT.exe" -e "C:\Program Files\Visual 
CUT\Visual_CUT.rpt" "Skip_Recent:2880" 
would cause Visual CUT to start processing the Visual CUT.rpt and burst the first group value 
("Competition").  However, Visual CUT would skip this bursting step (and continue to the next 
group value) if the target export file exists and was created in the last 48 hours (2880 minutes).  
In your 'Order Received' notification, you may not need to export and attach any file to the email 
notification.  However, in order to use the Skip_Recent functionality, you would instruct Visual 
CUT to export in each bursting step to a file name containing the Order_ID.  This file would then 
be used by the Skip_Recent logic, even though you will not attach the file to the email message. 
Non-Bursting Scenario: 
You can take advantage of this functionality even in cases where no bursting is taking place by 
having the exported file name reflect the count or  maximum record number in a table. Using the 
Skip_Recent command line argument, you can then ensure that unless a new record has been 
added to the table (and hence the target export file name is new) Visual CUT processing would 
be aborted. 
Alternative Approaches: 
As alternatives to using Skip_Recent you can:  
1.  Turn on the option to log Visual CUT processing using the functionality described in: 
"Record Processing to an ODBC Database" and, in your report, outer join to the 
MS_Log table to check if the current group value has already been successfully 
Use After_Success_SQL to generate an UPDATE sql statement to set the value of a 
"Processed" or "Date Sent" column.    
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Text box. Click to add a text box to specific location on PDF page. Line color and fill can be set in properties. Copyright © <2000-2016> by <RasterEdge.com>.
adding a signature to a pdf form; convert word form to pdf with fillable
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Text box. Click to add a text box to specific location on PDF page. Line color and fill can be set in properties. Copyright © <2000-2016> by <RasterEdge.com>.
convert pdf to pdf form fillable; change font size pdf fillable form
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 234 
Avoiding Too Many Active Visual CUT Instances (Queuing)  
Many Visual CUT users have increased their use of the tool to the point where several instances 
of Visual CUT may be actively processing reports at any given time.  In most cases, you can 
reduce the number of concurrent instances by simply combining multiple command lines into a 
single batch file.  In other cases, you can control the maximum number of active Visual CUT 
instances using the following DataLink_Viewer.ini entry: 
When launching a new Visual CUT instance, if the number of active Visual CUT instances 
reached that maximum number, the new instance is placed into sleep. It "wakes up" every 5 
seconds to check if it can launch. Once the number of active instances drops below the maximum 
allowed level, the new instance is allowed to launch. 
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
on PDF page. Outline width, outline color, fill color and transparency are all can be altered in properties. Drawing Tab. Item. Name. Description. 7. Draw free
change pdf to fillable form; change font pdf fillable form
C# HTML5 PDF Viewer SDK to annotate PDF document online in C#.NET
on PDF page. Outline width, outline color, fill color and transparency are all can be altered in properties. Drawing Tab. Item. Name. Description. 7. Draw free
add fillable fields to pdf; converting a word document to a fillable pdf form
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 235 
Job Status Functionality 
During unattended/scheduled processing, Visual CUT generates a job status text file, located in 
the Visual CUT application folder and named: 
VC_Job_Status_N.txt (containing the error message) if a failure occurred  
- or -   
VC_Job_Status_Y.txt if processing was successful.   
Visual CUT erases these files (if they exist) at the start of each unattended processing.   
Other applications that trigger Visual CUT processing via a command line call can check for the 
existence of these job status files as an indicator for processing status.  For example, a web 
application can use this option to invoke Visual CUT processing (e.g., an export to a PDF file 
with bookmarks) and then keep checking for one of the job status file names before continuing. 
If the success file (VC_Job_Status_Y.txt
) is found, redirect the user’s browser to the resulting 
PDF file 
if the failure file is found (VC_Job_Status_N.txt), present the user with the error 
message inside that text file.   
In order to support job status monitoring in cases where multiple instances of Visual CUT may 
be processing report requests at the same time, your application can specify a unique job status 
file name for each call to Visual CUT .   
For example, if your command line invocation of Visual CUT is:  
"C:\Program Files\Visual CUT\Visual CUT.exe" 
then the resulting job status file for that call would be 4523_Y.txt or 4523_N.txt 
A DataLink_Viewer.ini file option (Job_Status_Path) under a [File_Locations] section allows 
you to override the default location (Visual CUT application folder) for the Job Status indicator 
files.  For example: 
This is useful in situations where a web application (PHP, ColdFusion, ASP.NET…) is not 
allowed read access to the Visual CUT application folder. 
Note: this functionality is disabled if the Generate Success.txt file option is turned off. 
C#: XDoc.HTML5 Viewer for .NET Online Help Manual
Click to open edited file in web browser in PDF form which can be PDF and Word (.docx). with customized style, like setting shape outline, shape fill and shape
create pdf fillable form; convert pdf to fillable form
VB.NET PDF Form Data Read library: extract form data from PDF in
RasterEdge .NET PDF SDK is such one provide various of form field edit functions. Demo Code to Retrieve All Form Fields from a PDF File in VB.NET.
convert word document to fillable pdf form; convert word form to fillable pdf form
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 236 
Failure Alerts via Email 
The Visual CUT Option dialog allows you to specify an email address that should receive a 
message whenever Visual CUT encounters a processing failure. Here is an example of such a 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 237 
Record Processing to an ODBC Database 
In order to log processing to an ODBC database, you must create a table called MS_Log in the 
target database. This can be in MS Access, SQL Server, Oracle, etc. 
MS Access Database Sample 
Above is the table structure required for this table, when implemented under MS Access: A 
sample MS Access database is available for download. That sample database contains a form 
(with a subform) showing how you can view processing information, including bursting steps: 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 238 
SQL Server Instructions 
Here is a script for creating the table in SQL Server: 
CREATE TABLE [dbo].[MS_Log] ( 
[Parent_LogN] [int] NULL ,  
[Rpt_Path_Name] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Proc_Start] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Proc_End] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Group_1_Value] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Status] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Failure_Reason] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Warning] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Export_File_Name] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Email_To] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Email_Subject] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Command_Line] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[User_ID] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[PC_ID] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL  
SQL Server notes: 
for recent versions of SQL Server, replace [nvarchar] (40000) with [nvarchar] (MAX
To ensure the User ID you use can access that table, make that user a member of the 
dbo_owner group in SQL Server. 
You can create Crystal reports against this table.  You can even schedule these reports in Visual 
CUT to alert you about bad email addresses, failing, and slow (using the Proc_Start and 
Proc_End columns) reports.    
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 239 
Process Logging Settings in Options Dialog 
The following Visual CUT Options dialog allows you to specify the ODBC Data Source Name 
(DSN) where the MS_Log table resides and the User ID & Password (stored encrypted), if the 
data source requires a login.   
Checkboxes allow you to control whether logging should occur only for processing triggered via 
command line, only for processing triggered interactively (user clicks the START button), both, 
or neither.   
You can also specify whether records of successful processing should automatically be deleted 
(in cases where you wish to record only failures). 
Note that Warning messages will not be logged to the database if the "Log Warnings" option is 
turned off.  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 240 
Update a Database After Success (After_Success_SQL) 
After Visual CUT successfully exported, printed, or emailed a report, you may want to update 
your database to reflect that information. For example, after bursting invoices to customers, you 
may want to update the records for these jobs to reflect the date of invoicing or the fact that an 
invoice was emailed. Besides providing useful information, these columns may also be used to 
avoid duplicate processing by incorporating them into the record selection formula in your 
To update a database after successful processing, you use the After_Success_SQL command 
line argument. The argument structure is as follows: 
"After_Success_SQL:Type>>ODBC DSN>>User ID>>Password>>SQL Statement" 
or to trigger multiple statements (each using a different ODBC DSN) repeat the 5 elements after 
^^^^ delimiter:  
Type>> DSN2>>User2>>Pass2>>SQL2"
The parameters (after the ":") are separated by a ">>" and are as follows: 
1.   Type: the type of success step: Burst or Whole. Any other text (Skip) skips processing. 
10. ODBC DSN: The ODBC DSN providing access to the target database.  Note that the target 
database doesn’t have to be the same 
as the one used for the report. 
11. User ID: Leave blank if no user id is needed to connect to the ODBC DSN 
12. Password: Leave blank if no password is needed to connect to the ODBC DSN 
13. SQL Statement: the SQL statement to execute.  This typically include embedded references 
to fields/formulas that Visual CUT would replace with their dynamic values. 
NOTE 1: if the SQL statement is blank, it simply gets skipped (no failure message). 
Note 2: to specify multiple statements simply separate them with a ''  
For example, the following command line argument 
… "After_Success_SQL:Burst>>xTreme>>>>>>Update "JOBS" SET 
"Processed" = True, "Date Processed" = Date() WHERE "Job Name" = 
Would trigger a SQL statement through the xTreme ODBC DSN, without user id and password, 
every time a bursting step is completed successfully. The statement would find the matching 
record in the JOBS table by comparing the Job Name column to the value of a {@Job} formula 
in the report. If one or more matching records are found, their "Processed" column is set to 
TRUE, and their "Date Processed" column is set to the current date.   
Note that the syntax above conforms to MS Access.  For other databases you may need to adjust 
the syntax.  For example, MS Access provides a Date() function.  MS Access also requires 
enclosing table and column names with double quotes, and literal strings with single quotes (as 
done around the value of the {@Job} reference). 
Documents you may be interested
Documents you may be interested