Skip to content

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 SegmentId returning the literal "ISA" (BR-020).
  • Fixes ISA01/ISA03 to "00", ISA02/ISA04 to ten blank spaces, and ISA05/ISA07 to "ZZ" on Build(), and right-pads SenderId/ReceiverId to 15 characters at ISA06/ISA08 (BR-038).
  • Formats BatchDate as yyMMdd/HHmm at ISA09/ISA10, and emits ControlNumber as a fixed nine-digit string at ISA13 via ToString("D9") (BR-038).
  • Encodes AcknowledgementRequest as "1"/"0" at ISA14 on Build(), and on Fill() 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