Skip to main content

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.

Agent Examples in the INI Right-Click Menu

The example commands insert settings at the cursor. Insert or select the appropriate [PreBatch] or [PostBatch] section first. Replace sample URLs, credentials, and paths with your own values. Where an example shows alternatives such as C:\YourFolder\Output\Customers.csv or jnLastCSVFileName, enter one real path or one variable.

Menu example Available section Notes
Simple HTTPS GET [PreBatch] and [PostBatch] Inserts a WebCall GET example with a URL, timeout, and accepted response code.
Run/Call a BAT/CMD/EXE File with Parameters [PreBatch] and [PostBatch] Inserts a BatCmdExe example with program arguments, executable path, timeout, and accepted exit codes.
Call an API with Manually Entered JSON as Body [PreBatch] and [PostBatch] Inserts a WebCall POST example using kkBody, JSON content type, and headers. The template uses jnStatusExitCode to include the current batch exit code in the request body; for example, kkBody={"reportId":"4815","rrExitCode":"jnStatusExitCode"}.
Call an API with JSON File as Body [PreBatch] and [PostBatch] Inserts a WebCall PUT example using kkBodyFile.
CSV-to-JSON web call with automatic column names [PostBatch] Inserts a CSV-conversion web-call example with kkCSVHeaders=Auto and kkBodyFile={{CSVJSON}}.
CSV-to-JSON web call using first-row headers [PostBatch] Inserts a CSV-conversion example with kkCSVHeaders=FirstRow and an optional JSON wrapper configured through prefix/suffix files.
CSV-to-JSON web call with manually entered column names [PostBatch] Inserts a CSV-conversion example with a sample field-name list such as kkCSVHeaders=Customer,Error,Amount.
Run/Call a BAT/CMD/EXE with generated JSON as argument 2 [PostBatch] Inserts a CSV-conversion program example. The entire kkParameters value is argument 1, and the generated JSON path is argument 2 (%1 and %2 in a BAT/CMD file).

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

Menu item Actual inserted text
Bold <b> </b>
Italics <i> </i>
Image <img src="http://reportrunner.com/images/menu/jnsharelogosmall45.png" height="45" width="45">
Hyperlink <a href="https://reportrunner.com" target="_blank"> www.reportrunner.com </a>
Break <br />
Paragraph <p> followed by a blank line and </p>

These HTML snippets are most useful when MailFormat=HTML is active. In text mail they may appear as literal tags rather than formatting.