Skip to main content

I1000

// Generated display declaration:
I1000 = 1000

// Effective Pascal Script type and value:
const I1000: String = '1000';

Example

procedure ScriptEvent(var Value: variant);
var
IssueCode: string;
IssueNum: integer;
begin
IssueCode := I1000; // '1000'
IssueNum := StrToInt(IssueCode); // 1000, for integer issue APIs
Value := IssueCode + ':' + IntToStr(IssueNum);
end;

Usage

Use I1000 when a script needs the Issue 1000 code as the text value '1000', for example when serialising or comparing an issue code. APIs that accept an integer issue number should receive the literal 1000 or an explicit StrToInt(I1000) conversion.

The constant only supplies the code; it does not create, log or save an issue. Call the appropriate issue function and provide a useful description when recording a problem. If processing depends on the issue severity, check the live VxData Issue configuration rather than assuming the fresh-install default.

Additional Technical Info

I1000 is the script-visible String constant '1000'. It identifies the default VxData Issue definition Not Set; it is not an integer constant and does not create, find, log or persist an issue by itself.

The generated Code Library index displays I1000 = 1000 without quotes. The product registration is more precise: it adds I1000 with type String and sets its value to '1000'. The example makes the conversion explicit and was source-reviewed, not executed against VxData.

Declaration and runtime value

PropertyDefault/source value
Script typeString
Exact text'1000'
Integer Issue key after conversion1000
Fresh-build Issue.Num / Issue.Code1000 / 1000
Fresh-build descriptionNot Set
Fresh-build Issue.Status0Not Set
Fresh-build AdminUrl/Dashboard/Search

What the constant does

  • Substitutes the immutable four-character script string '1000'.
  • Performs no VxData query and does not verify that an Issue row exists.
  • Does not change flow/log status, cancel processing, add a transaction issue, update a header or enqueue a notification event.
  • Carries no description, record key, application, partner or transaction context beyond the decimal code itself.

This member belongs to the general issue/status block. Its default row description is Not Set, and its stored status intentionally mirrors one of the common Velox status values.

String versus integer APIs

The native source states that the Ixxxx constants are for cases that need the issue number as text. Public issue functions such as GetIssueLevel and InvoiceIssue formally accept an integer issue number.

Use one of these deliberate forms:

TextCode := I1000; // String context
Level := GetIssueLevel(1000); // Preferred literal in integer context
Level := GetIssueLevel(StrToInt(I1000)); // Explicit conversion when sharing the constant

Do not rely on an undocumented implicit String-to-integer coercion. StrToInt(I1000) is safe for the source-defined value but still expresses a conversion that can raise if replaced with arbitrary text.

Default definition versus live configuration

The table above describes velox-data/1. Database/Table_Issue.sql, the fresh-build database source. At runtime, GetIssueLevel(1000) queries the current VxData Issue.Status value on every call. A customer database may have been upgraded or deliberately configured differently, so source defaults are not a substitute for inspecting the live Issue row when behavior depends on severity.

If the row is missing, GetIssueLevel returns 6 (Error); it does not return 0 from compiled source and does not create issue 1046. Database/query exceptions propagate. A configured Error row and a missing row are therefore indistinguishable through that function alone.

Current deferred transaction-issue aggregation keeps the greatest numeric status queued for one record, not a separately defined semantic priority.

Product use and implementation notes

This is the default Not Set Issue row. It is a real configured row whose severity is 0; do not confuse that valid result with an absent Issue row, because GetIssueLevel returns 6 for an absent row.

The reusable Scriptlet generally creates issues with numeric literals, not the Ixxxx String constants. Its local CreateIssue helper does not call GetIssueLevel: it always calls LogIssue, then inserts the supplied number and description into DIssue only when that dataset is assigned. Consequently, the Issue row's configured status does not select the immediate Scriptlet log method; later dataset handling belongs to the owning module.

The separate transaction issue API InvoiceIssue does query severity immediately, queue an in-memory issue and persist it later through the owning flow's issue-save lifecycle. Its page documents deferred inserts, header-status updates, notification events, rollback behavior and known queue-retention/multi-record defects.

Usage guidance

  • Use I1000 when serializing, comparing or displaying the exact code as text.
  • Use numeric literal 1000 or explicit StrToInt(I1000) for an integer issue parameter.
  • Supply a useful issue description separately; never assume the generic database description records the failed value.
  • Avoid secrets, credentials and unnecessary personal data in issue descriptions because they become transaction data and can appear in SQL logging.
  • Confirm the live Issue definition when custom severity affects processing or AdminUrl affects operator navigation.

Related entries

  • GetIssueLevel reads the live configured status and documents the missing-row fallback.
  • InvoiceIssue shows how an integer issue key is queued and later persisted.
  • Not Set is the default status constant corresponding to fresh-build status 0.

No Delphi or Free Pascal standard-library equivalent exists; this is a Velox-owned scripting identifier.

Created 2026-07-15