Part 3 - Batch-Specific INI, Header, and Footer Settings Reference
This document covers the settings exposed by the right-click menus and additional batch-specific settings entered manually.
General notes:
- A setting ending in
= expects the user to type or paste a value.
Browse and Set... menu items insert only the selected path/name at the current cursor location; they do not insert the setting key.
- Most settings here are batch-specific overrides. When a setting is blank or missing, the app usually falls back to the matching global setting in
JNRRB.INI.
- The editor automatically encrypts these password settings on save if they exist:
[Options] ZipPassword, [Options] OverrideMailPassword, [PDF] PDFPassword, [PDF] PDFPasswordMaster, [XLS/XLSX] XLSPassword, and [XLS/XLSX] XLSPasswordMaster.
- The batch-specific INI file is stored beside the batch XML file and uses the same base name; for example,
Monthly.xml uses Monthly.ini.
- The editor also automatically encrypts
kkParameters, kkHeader, kkBody, and kkBodyFile in both [PreBatch] and [PostBatch]. It decrypts these values when reopening the editor and before execution. For kkBodyFile, the setting value is encrypted, not the contents of the referenced file. kkBodyBase64 is not automatically encrypted.
- Undo, Cut, Copy, and Paste are editor commands, not INI settings, so they are not listed below.
These settings are available when in the INI interface from the main Batch menu.
[Options]
Email Settings
| Setting |
Available values or inserted template |
Notes |
MailFormat |
HTML, TEXT |
Controls the message body format for batch emails. HTML allows HTML mail/header/footer content; invalid or blank values fall back to text-style handling. |
Subject |
blank, [REPORT DESCRIPTION] |
Sets the email subject for this batch. If blank, the app can fall back to global subject logic such as batch file name, report description, or JNRRB.INI MailSubject. |
FileAttachmentListOnOrOff |
ON, OFF |
Controls whether the email body includes the list of attached files. OFF suppresses the list for normal batch mail, though notification reports may still force it on. |
Priority |
HIGH, LOW |
Sets email priority. HIGH maps to high priority, LOW maps to low priority, and blank uses normal priority. |
From |
user-supplied |
Friendly sender/display name shown by the email client. If omitted, Report Runner falls back to the global mail name. |
FromAddress |
user-supplied |
Sender email address for this batch. If blank, the app can fall back to OverrideMailID, then the global mail account/from address. |
ReplyTo |
user-supplied |
Address replies should go to. If omitted, the app generally uses the final sender/from address as the reply-to address. |
CC1, CC2, CC3 |
user-supplied |
Carbon-copy recipients. These may contain special variables; multiple addresses should be separated with semicolons, and CC can also point to a file of addresses. |
BCC1, BCC2, BCC3 |
user-supplied |
Blind-copy recipients. These are not visible to normal recipients; multiple addresses can be separated with semicolons, and BCC can also point to a file of addresses. |
ReturnReceiptRequested |
YES |
Requests a read/return receipt on outgoing mail. Whether a receipt is actually returned depends on the mail server and recipient client. |
OverrideMailServer |
user-supplied |
Overrides the global SMTP/mail server for this batch only. Useful when one batch must send through a different relay. |
OverrideMailID |
user-supplied |
Overrides the global authentication/login ID for sending mail. If FromAddress is blank, this value may also become the sender address. |
OverrideMailPassword |
user-supplied |
Overrides the global mail password/token for this batch. Encrypted on save. |
OverrideMailPort |
user-supplied |
Overrides the global mail port, such as 25, 465, or 587, for this batch only. |
ZipOnMail |
YES, NO |
Controls whether emailed attachments are zipped before sending. This overrides the global ZipAttachmentsBeforeMailing behavior. |
ZipPassword |
user-supplied |
Password used when creating protected zip files. Encrypted on save and shared by mail/file/FTP zip logic. |
ZipAttachmentsFileName |
user-supplied |
Name of the zip file created for emailed attachments. Global defaults commonly use date/time tokens like reports_jn_MMDDYYHHMMSS.zip. |
DTStampMailOnOrOff |
ON, OFF |
Turns date/time stamping on or off for files sent by mail in this batch. This lets one batch differ from the global mail date-stamp setting. |
CleanAndFormat |
YES |
Cleans/formats email body text before sending. This is useful for report output that needs line cleanup or friendlier mail formatting. |
Printer Settings
| Setting |
Available values or inserted template |
Notes |
PaperSource |
Auto, Cassette, Envelope, EnvManual, FormSource, LargeCapacity, LargeFmt, Lower, Manual, Middle, SmallFmt, Tractor, Upper |
Selects the printer tray/source by friendly name. Use this when a batch must print from a specific tray instead of the printer default. |
PaperSourceCode |
user-supplied (numeric) |
Numeric override for printers where the friendly PaperSource names do not match the driver correctly. |
PaperOrientation |
Portrait, Landscape |
Forces print orientation for the batch. Useful when the report/printer default is not reliable. |
Duplex |
Simplex, Horizontal, Vertical |
Controls one-sided or two-sided printing. Horizontal/Vertical correspond to duplex binding direction supported by the printer driver. |
Output, Date Stamps, Encoding
| Setting |
Available values or inserted template |
Notes |
MakeJNUserXVarsGlobalInThisBatch |
YES |
Makes jnUser# formula variables carry across jobs in the same batch instead of resetting between jobs. Use with care because one job can affect later jobs. |
UseThisOutputFileNameForEverythingExceptFileDestinations |
user-supplied |
Forces a common output file name while still letting each job/destination decide where the file goes. Useful when several outputs should share a single predictable name. This setting overrides ALL output file names EXCEPT for File output. |
IgnorejnOutputFileFormulaInReport |
YES |
Ignores the jnOutputFile formula that would normally provide an (overriding) output file name. Use this when the batch INI or job setup should be the final authority for naming. |
DTStampFileOnOrOff |
ON, OFF |
Overrides date/time stamping for normal file output in this batch. This is separate from mail and FTP stamping. |
DTStampMailOnOrOff |
ON, OFF |
Overrides date/time stamping for email file output in this batch. |
DTStampFTPOnOrOff |
ON, OFF |
Overrides date/time stamping for FTP file output in this batch. |
DTStampSubtractXDays |
user-supplied number |
Shifts the date used by date/time stamping backward by this many days. This is useful for reports that run today but represent yesterday or a prior business day. |
SetFileExtensionsOnOrOff |
OFF |
Disables Report Runner automatically setting file extensions. Use only when you literally do not want a default file extension. |
LegacyCSVExportOnOrOff |
ON |
Enables older CSV export behavior. This setting is generally not used. It exists for very special cases involving foreign/special character handling. It utilizes an old/legacy export option. |
Encoding |
9999 |
Sets a specific text encoding/code page. The menu inserts 9999 as a template; replace it with the desired code page when needed. |
ForceTextEncodingToUTF8 |
YES |
Forces text output to UTF-8. Useful when downstream systems expect UTF-8 or when special characters are being misread. |
CrystalLanguageID |
selected from Crystal language picker |
Sets the Crystal export language/locale for this batch. The picker returns a label containing the numeric language ID. |
ThrottleBatchJobsSeconds |
numeric seconds |
Pauses between burst jobs; menu inserts 5. Useful for exterior applications (like email services) think your are spamming. |
Text Output Cleanup
| Setting |
Available values or inserted template |
Notes |
RemoveBlankLinesFromOutputFiles |
YES |
Removes blank/empty records from text-like output files. |
RemoveBlankLinesFromOutputFiles |
minimum record length |
Menu inserts comments plus RemoveBlankLinesFromOutputFiles=<minimum record length>. If a record/line's length is not equal to or greater than the minimum length set, it gets deleted. This affects all exported output files in the batch and is intended for text-based files such as TXT, CSV, and TSV. |
Zip / FTP Settings
| Setting |
Available values or inserted template |
Notes |
ZipOnFILE |
YES, NO |
Controls whether normal file output is zipped. This lets file output differ from mail and FTP zip behavior. |
ZipOnFTP |
YES, NO |
Controls whether FTP output is zipped before transfer. This can override the global ZipFTPFilesBeforeFTPing setting. |
ZipFTPFilesFileName |
user-supplied |
Zip file name for FTP files. Use a stable name if the target system expects one. |
ZipPassword |
user-supplied |
Also appears under email settings; encrypted on save. Used by zip creation when password protection is enabled. |
Bursting Settings
| Setting |
Available values or inserted template |
Notes |
NoFailOnBurst |
YES |
Allows a burst-related issue not to fail the entire batch. This is useful when you may have random missing email addresses. Use with caution. |
BurstMethod |
ONE-PASS, MULTI-PASS |
Selects how burst processing is performed. ONE-PASS is typically faster; MULTI-PASS is the best compatibility option when one-pass behavior is not working properly. MULTI-PASS is the default and recommended technique. Due to a bug in the Crystal runtime engine which we have no control over, ONE-PASS does not work for all reports. |
ReadLastRecordForVariables |
YES |
Uses the LAST record when resolving output variables. Useful when totals or final-record fields should drive names or messages. By default (and for speed), all variables come from the FIRST record in the report data. |
HTML / SmartHTML Export
| Setting |
Available values or inserted template |
Notes |
HTMLExportSetTitle |
user-supplied |
Sets the HTML <TITLE> value. If not supplied, the default is Report. |
HTMLExportAddMetaRefreshTag |
meta refresh tag |
Adds a custom meta refresh tag to exported HTML. The menu template refreshes every 600 seconds. |
SmartHTMLTitleRow |
user-supplied |
Identifies the title row in the exported report data used by Smart Auto-HTML. Enter a row number starting at 1; for example, SmartHTMLTitleRow=1 selects the first row. A blank or omitted value uses automatic title detection. The older SmartHTMLColumnTitleRow setting is accepted only when SmartHTMLTitleRow is absent; an explicitly blank current setting does not use the old value. |
SmartHTMLColumnHeaderRow |
user-supplied (numeric) |
Identifies which exported row should be treated as the column header row. |
SmartHTMLColumnHeaderFormat |
L, R, C per column |
Sets alignment for each SmartHTML column (Left, Right, Centered) |
SmartHTMLCustomCSSFileName |
user-supplied path |
Points SmartHTML output to a custom CSS file. If blank or invalid, the app uses the default SmartHTML CSS file. |
Batch Status, Database, Run Control
| Setting |
Available values or inserted template |
Notes |
ShowExternalBatchStatus |
YES, NO |
Controls whether the external batch status display is shown for this batch. If missing, the global JNRRB.INI option is used. |
OverrideDatabaseScheme |
user-supplied |
Overrides the database schema name for this batch. Useful when the a report is failing due to unique schema settings. |
IgnoreRecordCheckExceptionOnOrOff |
ON |
Tells the batch to ignore record-check exceptions. Use when record-count checks are causing reports to fail. Generally speaking, a report indicating no records should fail. This gives you a way to override if you believe the default behavior is incorrect. |
DoNotRunCalendar |
custom calendar name |
Names a custom "do not run" calendar from JNRRB.INI [Calendars]. If today is listed in that calendar, the batch is blocked/skipped. |
UseAlternateLoginMethod |
YES |
Menu inserts UseAlternateLoginMethod=YES. Enables the alternate Crystal Reports database login method for this batch. This setting enables a completely different database login technique (different code) if the base technique isn't working. There is not a NO setting, but there is a global setting in JNRRB.INI with UseAlternateLoginMethod=1. |
[PDF]
Non-Bursting PDF Settings
| Setting |
Available values or inserted template |
Notes |
PDFMerge |
YES |
Enables advanced PDF merge processing for the batch. This must be set to YES to enable all of the other settings to be active. |
PDFHeaderFileName |
user-supplied path |
PDF file placed at the beginning of the merged output. Special string variables are replaced before use. |
PDFTrailerFileName |
user-supplied path |
PDF file placed at the end of the merged output. Special string variables are replaced before use. |
PDFOverrideFileName |
user-supplied path |
Overrides the final merged PDF output name. Special string variables are replaced before use. |
PDFPassword |
user-supplied |
User/open password for the PDF. Encrypted on save and used for normal open-and-read protection. |
PDFEmailList |
user-supplied |
Sends the processed PDF to this recipient list. |
PDFEmailSubject |
user-supplied |
Sets the email subject when mailing the processed PDF. |
DeleteInputs |
YES |
Deletes PDF merge input files after processing, while preserving the final output/header/trailer where protected by the merge logic. Use caution with this setting. |
Bursting-Only PDF Settings
| Setting |
Available values or inserted template |
Notes |
PDFBurstMerge |
YES, ATTACH-ONLY, ATTACH-ONLY-BUT-DO-NOT-ADD-CURRENT-REPORT |
Controls how burst PDFs are combined with extra PDFs found in the burst merge directory. Attach-only modes add the related files as email attachments instead of building a merged output. |
PDFBurstMergeDirectory |
blank, sample path |
Directory searched for additional PDFs to merge/attach for each burst value. Special string variables are replaced, so jnBurstValue can drive the folder name. |
PDFBurstMergeFileNamePrefix |
jnBurstValue, jnUser1, whatever*.pdf |
File mask used to find matching PDFs in PDFBurstMergeDirectory. |
PDFHeaderFileName |
user-supplied path |
Optional header PDF for the burst merge output. Same setting as non-bursting PDF merge. |
PDFTrailerFileName |
user-supplied path |
Optional trailer PDF for the burst merge output. Same setting as non-bursting PDF merge. |
PDFOverrideFileName |
user-supplied path |
Optional output name override for the burst merge output. Special string variables can make this unique per burst. |
PDFPassword |
user-supplied |
User/open password for the burst PDF output; encrypted on save. |
PDFBurstMergeAppendCurrentReportFirstOrLast |
FIRST, LAST |
Chooses whether the current report PDF is added before or after the matching external PDFs. LAST is the default. |
Additional PDF Settings
| Setting |
Available values or inserted template |
Notes |
PDFReportBookmarkIDs |
YES |
Enables bookmark renaming/identification for merged PDFs. |
PDFDeleteAllSubBookmarks |
YES |
Removes child/sub-bookmarks from the PDF. Useful when source PDFs carry noisy bookmarks that should not appear in the final output. |
PDFPermissions |
8-digit 1/0 permission string |
Handler inserts explanatory comments and PDFPermissions=11111111. Bit order is CanPrint, CanCopy, CanChange, CanAddNotes, CanFillFields, CanCopyAccess, CanAssemble, CanPrintFull; Green edition enforces printing set to disabled (and this can not be overridden). |
PDFPasswordMaster |
user-supplied |
Owner/editing password for the PDF. Encrypted on save and only needed when someone should be able/allowed to edit/change protected PDFs in Acrobat. |
PDFFormFieldsScriptFileName |
user-supplied path |
Script file used when filling/updating PDF form fields. |
PDFLinearizeForFastWebView |
YES |
Linearizes/optimizes the PDF for faster web viewing. Use for PDFs that will be served from a website or portal and need to open/load fast. |
PDFCallExternalProcess |
full BAT/CMD path |
Runs an external BAT/CMD after PDF creation (and before continuing the batch; Report Runner Batch pauses while this executes). The PDF file path is passed as the first parameter. |
PDFCallExternalProcessParameters |
user-supplied |
Additional parameters passed to the external process after the PDF path. Use this for switches or secondary paths needed by the script. |
[XLS/XLSX]
| Setting |
Available values or inserted template |
Notes |
XLSMerge |
YES |
Enables advanced XLS/XLSX processing, including header/trailer files, override output name, passwording, and post-processing. |
XLSHeaderFileName |
user-supplied path |
Spreadsheet placed before the report output in an XLS merge. Special string variables are replaced before use. |
XLSTrailerFileName |
user-supplied path |
Spreadsheet placed after the report output in an XLS merge. Special string variables are replaced before use. |
XLSOverrideFileName |
user-supplied path |
Overrides the final XLS/XLSX output name. Special string variables are replaced, so this can be dynamic. |
XLSPassword |
user-supplied |
Password used to protect the spreadsheet. Encrypted on save. |
XLSEmailList |
user-supplied |
Sends the processed spreadsheet to this list. Multiple recipients are typically separated with semicolons. |
XLSEmailSubject |
user-supplied |
Overrides the subject when mailing the processed spreadsheet. |
DeleteInputs |
YES |
Deletes XLS/XLSX merge input files after processing, while preserving final output/header/trailer where protected by the merge logic. Use carefully. |
AutoSizeAll |
YES |
Auto-sizes worksheet columns after export/processing. Useful when the Crystal export creates cramped columns. |
| Column letter settings |
numeric width or HIDE |
Sets width or hides a specific column. Menu examples are A=999, A=HIDE, etc.; any spreadsheet column letter can be used. |
TabBurst |
YES |
Bursts a single XLS/XLSX output into multiple tabs using the report value/formula named jnTabBurst. |
AutoFilterAllColumns |
YES |
Adds Excel auto-filtering to all columns. Useful for recipient-facing worksheets that need sorting/filtering. |
SaveXLSAsXLSX |
YES |
Converts/saves XLS output as XLSX. The inserted note reminds that XLS output filenames should already end with .xlsx. |
[Files]
| Setting |
Available values or inserted template |
Notes |
|
|
FILE1 through FILE10 |
file path |
Additional files attached to every email in the batch. Use these for common cover sheets, terms, static PDFs, or supplemental documents. |
|
|
NoFailOnMissingFileAttachments |
YES |
Prevents a missing extra attachment from failing the batch. Useful for optional files, but it can hide a bad path if the attachment is required. |
|
|
[Newsletter]
| Setting or variable |
Available values or inserted template |
Notes |
jnTitle |
blank, [SUBJECT] |
Title value used by the newsletter template. [SUBJECT] reuses the resolved email subject. |
jnCustomString1 through jnCustomString10 |
user-supplied |
Template substitution values for newsletter layouts. Use these for customer-specific text, headings, promo lines, or other reusable placeholders. |
jnAddressAndPhone |
user-supplied |
Contact block used by the newsletter template. Usually company address, phone, or footer contact text. |
jnAttachment1 through jnAttachment10 |
user-supplied path |
Files attached with the newsletter output. Browse helper inserts a selected file path only. |
jnMessage |
automatic informational item |
Menu says [jnMessage] is always set from the entire report export in text format. No setting line is inserted because the value is generated by the report export. |
jnHeader |
automatic informational item |
Menu says [jnHeader] is always set from Mail Header settings. No setting line is inserted because it is supplied from the mail header editor/settings. |
jnFooter |
automatic informational item |
Menu says [jnFooter] is always set from Mail Footer settings. No setting line is inserted because it is supplied from the mail footer editor/settings. |
[SuperBatch]
| Setting |
Available values or inserted template |
Notes |
IfGoodRunTriggerThisBatch |
user-supplied batch XML path |
Runs another batch after this batch succeeds. Use this to chain dependent batches without external scheduling. |
IfBadRunTriggerThisBatch |
user-supplied batch XML path |
Runs another batch after this batch fails. Useful for failure notifications, cleanup, or recovery workflows. |
[PreBatch]
This section can contain the existing SQL setting below and one Known Keep Agent action. The Agent action runs before pre-batch SQL. A failed pre-batch Agent action stops normal report processing.
| Setting |
Available values or inserted template |
Notes |
RunSQLPreBatch |
user-supplied SQL name |
Runs a named global SQL entry before the batch starts. Use this for staging tables, audit rows, temp cleanup, or setup logic. |
[PostBatch]
This section can contain the existing SQL settings below and one Known Keep Agent action. The Agent action runs after post-batch SQL. Its eligibility uses the current result at that point, including any post-batch SQL failure. A failed post-batch Agent action marks the final batch result as failed.
| Setting |
Available values or inserted template |
Notes |
IfGoodRunSQLPostBatch |
user-supplied SQL name |
Runs a named global SQL entry after a successful batch. Common uses are audit updates, status flags, or post-run cleanup. |
IfBadRunSQLPostBatch |
user-supplied SQL name |
Runs a named global SQL entry after a failed batch. Common uses are error status updates, alerts, or retry queue setup. |
IfBadRunAgentPostBatch |
YES, NO (default) |
By default, a configured post-batch Agent action runs only after success or warning (exit code 0 or 2). YES also allows it after a failure. The menu inserts IfBadRunAgentPostBatch=YES. A kkCommand must still be configured in [PostBatch]; this setting does not enable an action by itself. |
Known Keep Agent Settings for [PreBatch] and [PostBatch]
Place the following settings in [PreBatch] or [PostBatch], depending on when the action should run. They are read only from the batch-specific INI file and do not fall back to JNRRB.INI. Blank optional values use the Agent defaults described below.
- Agent processing requires
Known Keep Agent\Known Keep Agent.exe beneath the folder containing the Report Runner executable.
- Processing order is pre-batch Agent, pre-batch SQL, batch reports, post-batch SQL, then post-batch Agent. Normal error handling and the post-batch eligibility settings still apply.
- Manual runs prompt before Agent processing. Pre-batch processing offers Run, Skip, or Cancel; post-batch processing offers Run or Skip. Scheduled and command-line runs use configured actions automatically.
- Report Runner waits for the Agent to finish. Accepted HTTP or program results are reported as success; configuration, execution, or required logging errors can make the action fail.
- Report Runner supplies
kkLogFile from the current log and kkTempFolder from the current run's temporary folder when CSV conversion is used. These are automatic values, not batch-specific INI overrides.
Common Agent Settings
| Setting |
Available values or inserted template |
Notes |
kkCommand |
WebCall, BatCmdExe |
Selects an HTTP/HTTPS request or a BAT, CMD, or EXE program. Configure one Agent action per section. A blank or missing kkCommand disables that section's Agent action. |
kkParameters |
Full HTTP/HTTPS URL for WebCall; program arguments for BatCmdExe |
For WebCall, include any query string in the URL; URL fragments are not supported. For ordinary BatCmdExe calls, enter the required program arguments and quotes; the value may be blank. With CSV conversion enabled, the entire value becomes argument 1 and the generated JSON path becomes argument 2. Encrypted on save. |
kkTimeout |
WebCall: 5 through 900 seconds; default 120. BatCmdExe: 5 through 3600 seconds; default 300. |
Whole seconds allowed for the HTTP operation or child program. A timeout makes the action fail. For a timed-out program, the Agent attempts to terminate the process and its child processes. |
kkGoodResponse |
WebCall: HTTP codes/ranges; default 200-299. BatCmdExe: comma-separated exit codes; default 0. |
Defines which results count as successful. HTTP examples: 200,201,202,204 or 200-299; HTTP codes must be within 100 through 599. Program example: 0,3010; program exit-code ranges are not supported. The Agent reports accepted HTTP or program results to Report Runner as success. |
WebCall Settings
These settings apply only when kkCommand=WebCall. Use no more than one body setting.
| Setting |
Available values or inserted template |
Notes |
kkMethod |
HTTP method, such as GET, POST, PUT, PATCH, or DELETE |
Defaults to GET without a body and POST when a body is supplied. An explicit method overrides that default. |
kkBody |
Literal request text |
Sends UTF-8 text. Encrypted on save. Use only one of kkBody, kkBodyBase64, or kkBodyFile. With CSV conversion configured, the current Agent can expand {{CSVJSON}} within this text. |
kkBodyBase64 |
Base64-encoded request bytes |
Decodes the supplied bytes before sending. Use only one body setting. This value is not automatically encrypted, and decoded content is not searched for Report Runner variables or {{CSVJSON}}. |
kkBodyFile |
Full existing file path, or {{CSVJSON}} |
Sends the file as the request body. kkBodyFile={{CSVJSON}} sends the complete generated JSON file and requires kkCSVToJSONFile. The current Agent also expands {{CSVJSON}} inside eligible text body files. The original body file is unchanged. Only the INI setting value is encrypted on save. |
kkHeader |
Header-Name: value; multiple headers separated by | |
Use one INI entry, for example kkHeader=Authorization: Bearer TOKEN | X-Customer: Contoso. Report Runner passes each header separately. Encrypted on save. Use kkContentType for the content type; Agent-managed headers such as Content-Type, Content-Length, and Host cannot be set here. |
kkContentType |
Body media type, such as application/json; charset=utf-8 |
Requires a body. Default: text/plain; charset=utf-8 for kkBody; application/octet-stream for Base64 or non-JSON files; application/json; charset=utf-8 for a .json body file. Set this explicitly when sending JSON entered through kkBody. Multipart content is not supported. |
kkFollowRedirects |
true (default), false |
Follows up to 10 redirects, limited to the original scheme, host, and port. With false, the original response is checked against kkGoodResponse. |
With kkCSVToJSONFile configured, the current Agent can expand {{CSVJSON}} in kkBody or an eligible text file referenced by kkBodyFile. In a JSON request, {"records":{{CSVJSON}}} inserts the generated data as JSON, while {"message":"Converted data: {{CSVJSON}}"} inserts it as escaped text inside the JSON string. Use kkContentType=application/json; charset=utf-8 for these JSON examples. An explicit binary content type without a charset, such as application/octet-stream, disables text-file expansion. The keyword is case-insensitive. kkBodyFile={{CSVJSON}} sends the entire generated JSON file directly.
BAT / CMD / EXE Settings
These settings apply only when kkCommand=BatCmdExe. Without CSV conversion, quote individual arguments containing spaces; for example, kkParameters="C:\Reports\Quarter 1.pdf" /publish. With CSV conversion, the entire kkParameters value is one argument, followed by the generated JSON path as the second argument.
| Setting |
Available values or inserted template |
Notes |
kkExecutable |
Full path to an existing .bat, .cmd, or .exe file |
Required for BatCmdExe. The Windows account running Report Runner must be able to access the program. This setting is not valid for WebCall. |
kkWorkingFolder |
Full existing directory; default is the running account's Windows %TEMP% |
Sets the program's working directory. Environment variables are expanded. An EXE can use an explicitly supplied UNC working directory. BAT/CMD execution falls back to local Windows TEMP when a UNC working directory is supplied, because CMD cannot use a UNC current directory. |
CSV-to-JSON Settings
CSV conversion is available with either Agent command. These options are most useful in [PostBatch] when processing a CSV file produced by the batch.
| Setting |
Available values or inserted template |
Notes |
kkCSVToJSONFile |
Full path to an existing .csv, or a variable such as jnLastCSVFileName |
Converts the CSV before running either Agent command. Writes a .json file beside the CSV with the same base name; an existing JSON output is replaced after successful conversion. The CSV remains. Without prefix/suffix wrapping, output is an array of objects, with CSV values represented as JSON strings. The generated JSON file remains after the Agent action. |
kkCSVHeaders |
FirstRow (default), Auto, or comma-separated field names |
Requires kkCSVToJSONFile. FirstRow uses the first row as field names and excludes it from data. Auto keeps every row as data and supplies Column1, Column2, etc. A custom list, such as Customer,Error,Amount, also keeps the first row as data. Field names must be nonempty, unique without regard to case, and match the column count. |
kkJSONPrefixFile |
Full path to an existing text file; omitted by default |
Requires kkCSVToJSONFile. Places the file's contents immediately before the generated JSON array, allowing an enclosing JSON object or another wrapper. |
kkJSONSuffixFile |
Full path to an existing text file |
Requires both kkCSVToJSONFile and kkJSONPrefixFile. Places the file's contents immediately after the array. If a prefix is supplied without a suffix, the default suffix is }. Without either setting, output is the array alone. |
INI Processing Variables
The [PostBatch] menu's Insert Variables commands insert the variable name at the cursor. Use the last-file variables in post-batch processing to refer to recorded outputs. They use File-destination output entries, excluding notification reports, and do not search email, FTP, or other destinations. Selection follows recorded order rather than file timestamps. The file's current existence is not checked. With Zip-on-FILE enabled, the recorded path is the ZIP file, so a CSV, PDF, or TXT variable may have no matching entry.
| Inserted value |
Notes |
jnStatus |
SUCCESS, FAIL, or WARNING for the current processing result. In post-batch Agent processing, this includes any preceding post-batch SQL result. |
jnStatusExitCode |
Current batch exit code: 0 for success, 1 for failure, or 2 for warning. In post-batch Agent processing, this includes any preceding post-batch SQL result. Use this variable when the receiving program or web service needs the numeric status value. |
jnShortBatchFileName |
Current batch filename including its extension, without the directory path. |
jnLastFileName |
Last nonblank file path recorded in the batch output list, regardless of extension. |
jnLastCSVFileName |
Last recorded path ending in .csv, or an empty value if there is no matching entry. |
jnLastTXTFileName |
Last recorded path ending in .txt, or an empty value if there is no matching entry. |
jnLastPDFFileName |
Last recorded path ending in .pdf, or an empty value if there is no matching entry. |
Report Runner replaces its variables as text in Agent setting values before execution. Ensure the resulting text has the quoting or escaping required by JSON, URLs, or program arguments. Report Runner does not expand jn... variables inside referenced body, prefix, or suffix files or inside decoded Base64 contents. The Agent's separate {{CSVJSON}} expansion is described above.
These settings are available when in the Header or Footer interface from the main Batch menu.
User Variables
| Inserted value |
Notes |
[jnUser1] through [jnUser30] |
User-defined values backed by report formulas {@jnUser1} through {@jnUser30}. Use these in headers/footers to include report-calculated values in the message text. |
Bursting Variables
| Inserted value |
Notes |
jn_BurstValue |
Current burst key/value. Useful for putting the recipient/customer/account/etc. being processed into the header or footer. |
jn_BurstUserValue |
Current bursting user-defined value backed by formula {@jnBurstUserValue} in the report. Use this when the displayed text should differ from the raw burst key. |
HTML Snippets
These HTML snippets are most useful when MailFormat=HTML is active. In text mail they may appear as literal tags rather than formatting.