IsaSegment¶
IsaSegment models the X12 ISA interchange header, the fixed-format outermost envelope segment that opens every EDI interchange. Build() fixes several elements to constant values required by the X12 standard — "00" authorization/security qualifiers, ten-space authorization/security fields, "ZZ" interchange-id qualifiers, and 15-character right-padded sender/receiver ids — while formatting the batch date/time and control number, and encoding the acknowledgement-request flag as "1"/"0" (BR-038, BR-039).
Purpose¶
- Represents the ISA segment identity via
SegmentIdreturning the literal"ISA"(BR-020). - Fixes ISA01/ISA03 to
"00", ISA02/ISA04 to ten blank spaces, and ISA05/ISA07 to"ZZ"onBuild(), and right-padsSenderId/ReceiverIdto 15 characters at ISA06/ISA08 (BR-038). - Formats
BatchDateasyyMMdd/HHmmat ISA09/ISA10, and emitsControlNumberas a fixed nine-digit string at ISA13 viaToString("D9")(BR-038). - Encodes
AcknowledgementRequestas"1"/"0"at ISA14 onBuild(), and onFill()sets it to true only when the parsed value is exactly"1"(BR-039).
Context¶
- Namespace:
SAIF.Common.Files.Edi.Segments - Assembly/package:
SAIF.Framework.Common.Files
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| SegmentId | string SegmentId { get; } |
Returns the literal X12 segment identifier "ISA". |
| SenderId | string SenderId { get; set; } |
The interchange sender's identifier, right-padded to 15 characters at ISA06 on Build() (BR-038). |
| ReceiverId | string ReceiverId { get; set; } |
The interchange receiver's identifier, right-padded to 15 characters at ISA08 on Build() (BR-038). |
| BatchDate | DateTime BatchDate { get; set; } |
The interchange date/time, formatted as yyMMdd/HHmm at ISA09/ISA10 on Build() and combined via DateMaker on Fill(). |
| RepetitionSeparator | string RepetitionSeparator { get; set; } |
The repetition separator character (ISA11), element 11. |
| ControlVersionNumber | string ControlVersionNumber { get; set; } |
The interchange control version number (ISA12), element 12. |
| ControlNumber | long ControlNumber { get; set; } |
The interchange control number, emitted as a fixed nine-digit string at ISA13 via ToString("D9") on Build(), matching the paired IeaSegment.ControlNumber (BR-038, BR-043). |
| AcknowledgementRequest | bool AcknowledgementRequest { get; set; } |
Whether a functional acknowledgement is requested, encoded as "1"/"0" at ISA14 on Build() and read back true only for "1" on Fill() (BR-039). |
| UsageIndicator | string UsageIndicator { get; set; } |
The production/test usage indicator code (ISA15), element 15. |
| ComponentElementDelimiter | string ComponentElementDelimiter { get; set; } |
The component element separator character (ISA16), element 16. |
| Build | IEdiSegment Build() |
Creates a SegmentBuilder("ISA") and writes all 16 ISA elements, fixing ISA01-ISA05/ISA07 to constant values, padding sender/receiver ids, formatting the date/time and control number, and encoding AcknowledgementRequest, returning the built segment (BR-038, BR-039). |
| Fill | void Fill(IEdiSegment segment) |
Reads SenderId/ReceiverId from elements 6/8, combines elements 9-10 via DateMaker.MakeDateTime into BatchDate, reads elements 11-13/15-16, converts element 13 to long for ControlNumber, and sets AcknowledgementRequest to (element 14 == "1") (BR-039). |
| Parse | static IsaSegment Parse(IEdiSegment segment) |
Instantiates a new IsaSegment, calls Fill(segment) on it, and returns it. |
Sources¶
- Common\SAIF.Common.Files\Edi\Segments\IsaSegment.cs