About facts

Facts are name-value-pairs that contain information about routing channels, active routes, and the files being routed. Some facts are specified during route provision, others are intrinsic to the route, and still others are determined from the producer file name. A fact is a named piece of known information for or about a routing channel, for example:
  • A part of a file name
  • The time a message arrived from the producer
  • The name of the producer
  • A user who is associated with the producer
  • The name of the consumer
  • A user who is associated with the consumer

When a fact becomes known it is frozen. During route execution, facts never lose their value or change values. A different route can have different values for the same facts.

Sterling File Gateway provides system facts and supports the specification of file name facts and provisioning facts during routing channel template creation. Provisioning facts and most system facts can be used in the pattern for mailboxes and producer and consumer file structures in the routing channel template. Provisioning facts are given their values at the point of routing channel creation. System facts are given their value at the point of routing channel creation or during route execution. File name facts are given their values during route execution.

Use system facts as follows:
Fact Name Description When Derived Where Used
ConsumerName The name of the consumer partner Derived:
  • During routing channel identification
  • As the result of a consumer identification business process
  • When associated to a file name regular expression parenthetic grouping
Producer Mailbox, Consumer Mailbox, Producer File Structure, Consumer File Structure
ConsumerCode The code of the consumer partner Derived:
  • During routing channel identification
  • As the result of a consumer identification business process
  • When associated to a file name regular expression parenthetic grouping
Producer Mailbox, Consumer Mailbox, Producer File Structure, Consumer File Structure
ProducerFilename The name of the file that the producer sent During early routing channel identification Consumer Mailbox, Consumer File Structure
ProducerName The name of the producing partner During early routing channel identification Producer Mailbox, Consumer Mailbox, Producer File Structure, Consumer File Structure
ProducerCode The code of the producing partner During early routing channel identification Producer Mailbox, Consumer Mailbox, Producer File Structure, Consumer File Structure
RoutingTimestamp Date and time when the producer file was received by the consumer. A 17-digit string consisting of a 4-digit year, 2-digit month, 2-digit day, 3-digit minute, 3-digit second, and 3-digit millisecond. For example,
20090813142111920
Producer file arrival time Consumer Mailbox, Consumer File Structure
ConsumerPgpExtension The extension of a file based on the consumer's PGP preferences.
Value=
  • .pgp - consumer is getting a PGP file
  • .asc - consumer is getting an ASCII encoded pgp file
  • (blank) - consumer is not getting a PGP file
Only available for the PGP file layer type.
PGP layer packaging time

Consumer File Structure

When using system facts in the producer and consumer mailbox or in the consumer file structure, certain notations are required:

Notation Description
${factname} Replaced with the value of factname
${fmt:factname} Replaced with the value of factname, formatted according to fmt. The fmt string can be any format string supported by java.util.Formatter or a Timestamp value.
${x:y:z} Any use of more than one colon is an error and is rejected at RCT creation time.
${factname An unclosed reference is an error and is rejected.
$${ Produces a literal ${
{factname} Is not an error, but produces a literal {factname} and is not replaced with the value of factname.
Example formats and results are:
  • No format - For most facts, this option results in the unchanged value. For RoutingTimestamp, produces an 8-digit string, For example, 20100821 (year, month, and date) for August 21, 2010.
  • s - The value of the fact
  • S - The value of the fact mapped to all uppercase
  • .5s - the value of the fact right truncated to five-characters

Formats for RoutingTimestamp use the Java™ Formatter class formats with an enhancement that allows multiple formats to be specified for one value. Essentially, either a ‘t' or ‘T' followed by multiple time format specifiers. ‘T' forces the results to uppercase. In addition pieces of literal text can be included in ‘ characters.

Examples of RoutingTimestamp are:
  • tYmd - An 8-digit string consisting of a 4-digit year, 2-digit month, and 2-digit day of the month. For example, 20080201 (default).
  • tHMS - A 5-digit Hour, Minute, Second value using a 24-hour clock. For example, 053027.
  • tlMSp - A 5-or 6-digit Hour, Minutes, Seconds value using a 12-hour clock. For example, 53027am.
  • TlMS' ‘p - Like t1MSp, but in uppercase with an embedded space. For example, 53027 AM.
  • Ta'-‘b'-‘d'-‘Y - Textual date, in uppercase. For example, FRI-APR-21-2008.
  • tYmdHMSL - A 17-digit string consisting of a 4-digit year, 2-digit month, 2-digit day, 3-digit minute, 3-digit second, and 3-digit millisecond. For example,
    20090813142111920
Note: For more information about the Java Formatter class formats, see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html:

In addition to using system facts, you can create your own facts in the producer file structure. User-created facts must be prefixed with the string my to clearly delineate between custom and system facts. Custom facts can be used in the consumer mailbox pattern (for mailboxes created on demand), and in the consumer file structure.

System facts and custom facts are searchable on the Advanced Search page. Facts can be used to enforce policy where the fact values must match when used in more than one layer.