Skip to content

GsSegment

GsSegment models the X12 GS functional group header, the envelope segment that opens a functional group of one or more transaction sets within an EDI interchange. It fixes the responsible agency code to "X" and formats the batch date/time as yyyyMMdd/HHmm on output (BR-040), pairing with a GeSegment trailer to bound the group.

Purpose

  • Represents the GS segment identity via SegmentId returning the literal "GS" (BR-020).
  • Carries FunctionalCode, SenderId, ReceiverId, BatchDate, ControlNumber, and VersionControlNumber, the fields identifying the group's sender/receiver, timing, and content type.
  • Fixes GS07 (responsible agency code) to the literal "X" on Build(), and formats BatchDate as yyyyMMdd/HHmm across elements 4-5 (BR-040).
  • Reads VersionControlNumber back from element 8 on Fill(), skipping the fixed agency-code element 7 entirely.

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 "GS".
FunctionalCode string FunctionalCode { get; set; } The functional identifier code for the group's content type (GS01), element 1.
SenderId string SenderId { get; set; } The application sender's identifier (GS02), element 2.
ReceiverId string ReceiverId { get; set; } The application receiver's identifier (GS03), element 3.
BatchDate DateTime BatchDate { get; set; } The group's creation date/time, formatted as yyyyMMdd (element 4) and HHmm (element 5) on Build() (BR-040).
ControlNumber long ControlNumber { get; set; } The group control number (GS06), element 6, matched by the paired GeSegment.ControlNumber.
VersionControlNumber string VersionControlNumber { get; set; } The version/release/industry identifier code (GS08), element 8.
Build IEdiSegment Build() Creates a SegmentBuilder("GS"), adds FunctionalCode, SenderId, ReceiverId, the split BatchDate, ControlNumber, the fixed literal "X" at element 7, and VersionControlNumber at element 8, returning the built segment (BR-040).
Fill void Fill(IEdiSegment segment) Reads elements 1-3 via GetChildValue, combines elements 4-5 via DateMaker.MakeDateTime into BatchDate, converts element 6 to long for ControlNumber, and reads element 8 into VersionControlNumber (element 7 is not read back).
Parse static GsSegment Parse(IEdiSegment segment) Instantiates a new GsSegment, calls Fill(segment) on it, and returns it.

Sources

  • Common\SAIF.Common.Files\Edi\Segments\GsSegment.cs