Module: Stupidedi::Contrib::TwoThousandOne::Guides

Defined in:
lib/stupidedi/contrib/002001/guides.rb,
lib/stupidedi/contrib/002001/guides/FA997.rb,
lib/stupidedi/contrib/002001/guides/PO830.rb,
lib/stupidedi/contrib/002001/guides/SH856.rb

Constant Summary collapse

GuideBuilder =

GuideBuilder = Stupidedi::Guides::TwoThousandOne::GuideBuilder SegmentReqs = Stupidedi::Guides::TwoThousandOne::SegmentReqs ElementReqs = Stupidedi::Guides::TwoThousandOne::ElementReqs

Stupidedi::Guides::FortyTen::GuideBuilder
SegmentReqs =
Stupidedi::Guides::FortyTen::SegmentReqs
ElementReqs =
Stupidedi::Guides::FortyTen::ElementReqs
FA997 =

Response to a Load Tender

b.build(t::FA997,
          d::TableDef.header("Heading",
            b::Segment(10, s::ST, "Transaction Set Header",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Transaction Set Identifier Code"),
b::Element(e::Required,    "Transaction Set Control Number")),

            b::Segment(20, s::AK1, "Functional Group Response Header",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Situational, "Functional Identifier Code"),
b::Element(e::Required,    "Group Control Number")),

            d::LoopDef.build("AK2", d::RepeatCount.bounded(999999),
b::Segment(30, s::AK2, "Transaction Set Response Header",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Transaction Set Identifier Code"),
  b::Element(e::Required,    "Transaction Set Control Number")),

d::LoopDef.build("AK3", d::RepeatCount.bounded(999999),
  b::Segment( 40, s::AK3, "Data Segment Note",
    r::Situational, d::RepeatCount.bounded(1),
    b::Element(e::Required,    "Segment ID Code"),
    b::Element(e::Required,    "Segment Position in Transaction Set"),
    b::Element(e::Situational, "Loop Identifier Code"),
    b::Element(e::Situational, "Segment Syntax Error Code")),

  b::Segment( 50, s::AK4, "Data Element Note",
    r::Situational, d::RepeatCount.bounded(99),
    b::Element(e::Required,    "Position in Segment",
        b::Element(e::Required,    "Element Position in Segment"),
        b::Element(e::Situational, "Component Data Element Position in Composite")),
    b::Element(e::Situational, "Data Element Reference Number"),
    b::Element(e::Required,    "Data Element Syntax Error Code"),
    b::Element(e::Situational, "Copy of Bad Data Element"))),

b::Segment( 60, s::AK5, "Transaction Set Response Trailer",
  r::Required, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Transaction Set Acknowledgment Code"),
  b::Element(e::Situational, "Transaction Set Syntax Error Code"),
  b::Element(e::Situational, "Transaction Set Syntax Error Code"),
  b::Element(e::Situational, "Transaction Set Syntax Error Code"),
  b::Element(e::Situational, "Transaction Set Syntax Error Code"),
  b::Element(e::Situational, "Transaction Set Syntax Error Code"))),

            b::Segment( 70, s::AK9, "Functional Group Response Trailer",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Functional Group Acknowledge Code"),
b::Element(e::Required,    "Number of Transaction Sets Included"),
b::Element(e::Required,    "Number of Received Transaction Sets"),
b::Element(e::Required,    "Number of Accepted Transaction Sets"),
b::Element(e::Situational, "Functional Group Syntax Error Code"),
b::Element(e::Situational, "Functional Group Syntax Error Code"),
b::Element(e::Situational, "Functional Group Syntax Error Code"),
b::Element(e::Situational, "Functional Group Syntax Error Code"),
b::Element(e::Situational, "Functional Group Syntax Error Code")),

            b::Segment( 80, s::SE, "Transaction Set Trailer",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Number of Included Segments"),
b::Element(e::Required,    "Transaction Set Control Number"))))
PO830 =

t = Contrib::FortyTen::TransactionSetDefs

830 Material Release for Manufacturing

b.build(t::PO830,
          d::TableDef.header("Header",
            b::Segment(10, s:: ST, "Transaction Set Header",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Transaction Set Identifier Code", b::Values("830")),
b::Element(e::Required,    "Transaction Set Control Number")),
            b::Segment(20, s::BFR, "Beginning Segment for Planning Schedule",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Transaction Set Purpose Code", b::Values("00","04","05")),
b::Element(e::NotUsed,     "BFR02"),
b::Element(e::Required,    "Release Number"),
b::Element(e::Required,    "Schedule Type Qualifier", b::Values("DL")),
b::Element(e::Required,    "Schedule Quantity Qualifier", b::Values("A")),
b::Element(e::Required,    "Date - Horizon Start"),
b::Element(e::Required,    "Date - Horizon End"),
b::Element(e::Required,    "Date - Release Generation"),
b::Element(e::NotUsed,     "BFR09"),
b::Element(e::Situational, "Contract Number - Nissan Facility ID", b::Values("CP","DP","SP")))),

          d::TableDef.header("Detail",
            d::LoopDef.build("N1 - LOOP1", d::RepeatCount.bounded(1),
b::Segment(90, s:: N1, "Name - Supplier Code",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Entity Identifier Code", b::Values("SU")),
  b::Element(e::NotUsed,     "N102"),
  b::Element(e::Situational, "Identification Code Qualifier", b::Values("92")),
  b::Element(e::Situational, "Identification Code - Supplier Code assigned by Nissan"))),

            d::LoopDef.build("N1 - LOOP2", d::RepeatCount.bounded(1),
b::Segment(90, s:: N1, "Name - Nissan Analyst",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Entity Identifier Code", b::Values("MI")),
  b::Element(e::Situational, "Identification Code Qualifier", b::Values("Nissan")),
  b::Element(e::NotUsed,     "N103"),
  b::Element(e::NotUsed,     "N104")),
b::Segment( 140, s::PER, "Administrative Communications Contact - Nissan Release Sr Analyst",
  r::Situational, d::RepeatCount.bounded(3),
  b::Element(e::Required,    "Contact Function Code", b::Values("OD")),
  b::Element(e::Situational, "Name - PER02"),
  b::Element(e::Situational, "Communication Number Qualifier", b::Values("TE")),
  b::Element(e::Situational, "Communication Number"),
  b::Element(e::NotUsed,     "PER05"),
  b::Element(e::NotUsed,     "PER06"),
  b::Element(e::NotUsed,     "PER07"),
  b::Element(e::NotUsed,     "PER08"),
  b::Element(e::NotUsed,     "PER09"))),

            d::LoopDef.build("LIN", d::RepeatCount.bounded(10000),
b::Segment( 300, s::LIN, "Item Identification",
  r::Required, d::RepeatCount.bounded(1),
  b::Element(e::NotUsed,     "LIN01"),
  b::Element(e::Required,    "Product/Service ID Qualifier - LIN02", b::Values("BP")),
  b::Element(e::Required,    "Product/Service ID - Part Number assigned by Nissan"),
  b::Element(e::Situational, "Product/Service ID Qualifier - LIN04", b::Values("PO")),
  b::Element(e::Situational, "Product/Service ID - Purchase Order Number assigned By Nissan"),
  b::Element(e::NotUsed,     "LIN06"),
  b::Element(e::NotUsed,     "LIN07"),
  b::Element(e::NotUsed,     "LIN08"),
  b::Element(e::NotUsed,     "LIN09"),
  b::Element(e::NotUsed,     "LIN10"),
  b::Element(e::NotUsed,     "LIN11"),
  b::Element(e::NotUsed,     "LIN12"),
  b::Element(e::NotUsed,     "LIN13"),
  b::Element(e::NotUsed,     "LIN14"),
  b::Element(e::NotUsed,     "LIN15"),
  b::Element(e::NotUsed,     "LIN16"),
  b::Element(e::NotUsed,     "LIN17"),
  b::Element(e::NotUsed,     "LIN18"),
  b::Element(e::NotUsed,     "LIN19"),
  b::Element(e::NotUsed,     "LIN20"),
  b::Element(e::NotUsed,     "LIN21"),
  b::Element(e::NotUsed,     "LIN22"),
  b::Element(e::NotUsed,     "LIN23"),
  b::Element(e::NotUsed,     "LIN24"),
  b::Element(e::NotUsed,     "LIN25"),
  b::Element(e::NotUsed,     "LIN26"),
  b::Element(e::NotUsed,     "LIN27"),
  b::Element(e::NotUsed,     "LIN28"),
  b::Element(e::NotUsed,     "LIN29"),
  b::Element(e::NotUsed,     "LIN30"),
  b::Element(e::NotUsed,     "LIN31")),
b::Segment( 310, s::UNT, "Unit of Measure",
  r::Required, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Unit or Basis for Measurement Code", b::Values("EA"))),
b::Segment( 330, s::J2X, "Item Description",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::NotUsed,     "J2X01 - ITEM DESC QUALIFIER"),
  b::Element(e::Situational, "Item Description Type", b::Values("F")),
  b::Element(e::Required, "Lading Liability Code - Nissan's Part Description")),
b::Segment( 450, s::PER, "Administrative Communications Contact - Nissan Parts Order Analyst",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Contact Function Code", b::Values("EX")),
  b::Element(e::Situational, "Name - PER02"),
  b::Element(e::Situational, "Communication Number Qualifier", b::Values("TE")),
  b::Element(e::Situational, "Communication Number"),
  b::Element(e::NotUsed,     "PER05"),
  b::Element(e::NotUsed,     "PER06"),
  b::Element(e::NotUsed,     "PER07"),
  b::Element(e::NotUsed,     "PER08"),
  b::Element(e::NotUsed,     "PER09")),

d::LoopDef.build("N1", d::RepeatCount.bounded(1),
  b::Segment(510, s:: N1, "Name - Dock Location",
    r::Situational, d::RepeatCount.bounded(1),
    b::Element(e::Required, "Entity Identifier Code", b::Values("ST")),
    b::Element(e::NotUsed,  "Name - Dock Location"),
    b::Element(e::NotUsed,  "N103"),
    b::Element(e::NotUsed,  "N104"))),

d::LoopDef.build("SDP", d::RepeatCount.bounded(104),
  b::Segment( 580, s::SDP, "Ship/Delivery Pattern",
    r::Required, d::RepeatCount.bounded(1),
    b::Element(e::Required,    "Ship/Delivery or Calendar Pattern Code", b::Values("B","Y")),
    b::Element(e::Required,    "Ship/Delivery or Calendar Pattern Code", b::Values("F","Y"))),
  b::Segment( 590, s::FST, "Forecast Schedule",
    r::Required, d::RepeatCount.bounded(104),
    b::Element(e::Required,    "Quantity"),
    b::Element(e::Required,    "Forecast Qualifier", b::Values("C","Z","D")),
    b::Element(e::Required,    "Forecast Timing Qualifier", b::Values("D","F")),
    b::Element(e::Required,    "Date - FST04"),
    b::Element(e::Situational, "Date - FST05"),
    b::Element(e::Situational, "Date/Time Qualifier", b::Values("002")),
    b::Element(e::Situational, "Time - FST07"),
    b::Element(e::Situational, "Reference Number Qualifier", b::Values("DO")),
    b::Element(e::Situational, "Reference Number - RAN"))),

b::Segment(610, s::ATH, "Resource Authorization",
  r::Situational, d::RepeatCount.bounded(2),
  b::Element(e::Required,    "Resource Authorization Code", b::Values("FI","MT")),
  b::Element(e::Situational, "Date - Authorization Through Date"),
  b::Element(e::Situational, "Quantity - Required"),
  b::Element(e::NotUsed,     "ATH04"),
  b::Element(e::Situational, "Date - ATH05")),

b::Segment(650, s::TD5, "Carrier Details (Routing Sequence/Transit Time)",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Routing Sequence Code", b::Values("B")),
  b::Element(e::NotUsed,     "TD02"),
  b::Element(e::NotUsed,     "TD03"),
  b::Element(e::Situational, "Transportation Method/Type Code", b::Values("M")),
  b::Element(e::NotUsed,     "TD05")),

b::Segment(680, s::MAN, "Marks and Numbers",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required, "Marks and Numbers Qualifier", b::Values("PB")),
  b::Element(e::Required, "Marks and Numbers")))),

          d::TableDef.header("Summary",
            b::Segment(690, s::CTT, "Transaction Totals",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required, "Number of Line Items"),
b::Element(e::NotUsed,  "CTT02"),
b::Element(e::NotUsed,  "CTT03"),
b::Element(e::NotUsed,  "CTT04"),
b::Element(e::NotUsed,  "CTT05"),
b::Element(e::NotUsed,  "CTT06"),
b::Element(e::NotUsed,  "CTT07")),
            b::Segment(700, s:: SE, "Transaction Set Trailer",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required, "Number of Included Segments"),
b::Element(e::Required, "Transaction Set Control Number"))))
SH856 =

Ship Notice/Manifest

b.build(t::SH856,
          d::TableDef.header("Heading",
            b::Segment(10, s:: ST, "Transaction Set Header",
              r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Transaction Set Identifier Code", b::Values("856")),
              b::Element(e::Required,    "Transaction Set Control Number")),
            b::Segment(20, s::BSN, "Beginning Segment for Ship Notice",
              r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Transaction Set Purpose Code", b::Values("00")),
              b::Element(e::Required,    "Shipment Identification"),
              b::Element(e::Required,    "Category - Ship Notice Date"),
              b::Element(e::Situational, "Subcategory - Ship Notice Time"),
              b::Element(e::NotUsed,     "Hierarchical Structure Code"),
              b::Element(e::NotUsed,     "Transaction Type Code"),
              b::Element(e::NotUsed,     "Status Reason Code")),
            b::Segment(40, s::DTM, "Date/Time/Period",
              r::Situational, d::RepeatCount.bounded(10),
              b::Element(e::Required,    "Date/Time Qualifier", b::Values("011")),
              b::Element(e::Situational, "Date - Ship Date"),
              b::Element(e::Situational, "Time - Ship Time"),
              b::Element(e::NotUsed,     "Time Code"),
              b::Element(e::NotUsed,     "Century"),
              b::Element(e::NotUsed,     "Date Time Period Format Qualifier"),
              b::Element(e::NotUsed,     "Date Time Period"))),

          d::TableDef.detail("Detail",
            d::LoopDef.build("HL", d::RepeatCount.bounded(1),
              b::Segment(50, s:: HL, "Hierarchical Level - Shipment Level",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Hierarchical ID Number", b::Values("1")),
b::Element(e::NotUsed,     "Hierarchical Parent ID Number"),
b::Element(e::Situational, "Hierarchical Level Code", b::Values("S")),
b::Element(e::NotUsed,     "Hierarchical Child Code")),
              b::Segment(130, s::MEA, "Measurements",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Measurement Reference ID Code", b::Values("PD")),
b::Element(e::Required,    "Measurement Qualifier", b::Values("G")),
b::Element(e::Situational, "Measurement Value - Gross Weight"),
b::Element(e::Required,    "Unit or Basis for Measurement Code", b::Values("LB")),
b::Element(e::Situational, "Range Minimum", b::Values("0")),
b::Element(e::Situational, "Range Maximum", b::Values("0"))),
              b::Segment(160, s::TD1, "Carrier Details (Quantity and Weight)",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Situational, "Packaging Code"),
b::Element(e::Situational, "Lading Quantity"),
b::Element(e::NotUsed,     "Commodity Code Qualifier"),
b::Element(e::NotUsed,     "Commodity Code"),
b::Element(e::NotUsed,     "Lading Description"),
b::Element(e::NotUsed,     "Weight Qualifier"),
b::Element(e::NotUsed,     "Weight"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Volume"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code")),
              b::Segment(180, s::TD3, "Carrier Details (Equipment)",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Equipment Description Code"),
b::Element(e::Situational, "Equipment Initial - SCAC code"),
b::Element(e::Situational, "Equipment Number - Trailer Number")),
             b::Segment( 200, s::REF, "Reference Numbers",
r::Situational, d::RepeatCount.bounded(200),
b::Element(e::Required,    "Reference Number Qualifier", b::Values("BM","PK")),
b::Element(e::Situational, "Reference Number - Bill Of Lading Number"),
b::Element(e::NotUsed,     "Description"),
b::Element(e::NotUsed,     "Reference Identifier")),

              # b::Segment(200, s::REF, "Reference Numbers",
              #   r::Situational, d::RepeatCount.bounded(2),
              #   b::Element(e::Required,    "Reference Number Qualifier", b::Values("BM","PK")),
              #   b::Element(e::Situational, "Reference Number - Bill Of Lading Number"),
              #   b::Element(e::Situational, "Description"),
              #   b::Element(e::Situational, "Reference Identifier"))

              d::LoopDef.build("N1", d::RepeatCount.bounded(200),
b::Segment(270, s:: N1, "Name -Supplier",
  r::Situational, d::RepeatCount.bounded(1),
  b::Element(e::Required,    "Entity Identifier Code", b::Values("SU")),
  b::Element(e::Situational, "Name - Supplier Name"),
  b::Element(e::Situational, "Identification Code Qualifier", b::Values("92")),
  b::Element(e::Situational, "Identification Code - Supplier Code")))),

            d::LoopDef.build("HL", d::RepeatCount.bounded(199999),
              b::Segment( 50, s:: HL, "Hierarchical Level - Tare Level",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Hierarchical ID Number"),
b::Element(e::Situational, "Hierarchical Parent ID Number"),
b::Element(e::Situational, "Hierarchical Level Code", b::Values("T")),
b::Element(e::Situational, "Hierarchical Child Code", b::Values("0","1"))),
              b::Segment( 200, s::REF, "Reference Numbers",
r::Situational, d::RepeatCount.bounded(200),
b::Element(e::Required,    "Reference Number Qualifier", b::Values("LS")),
b::Element(e::Situational, "Reference Number - Mixed or Master Label Serial Number", b::Values("4S","5S","M","G","S")),
b::Element(e::NotUsed,     "Description"),
b::Element(e::NotUsed,     "Reference Identifier"))),

            d::LoopDef.build("HL", d::RepeatCount.bounded(199999),
              b::Segment( 50, s:: HL, "Hierarchical Level - Item Level",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Hierarchical ID Number"),
b::Element(e::Situational, "Hierarchical Parent ID Number"),
b::Element(e::Situational, "Hierarchical Level Code", b::Values("I")),
b::Element(e::Situational, "Hierarchical Child Code", b::Values("0","1"))),
              b::Segment( 60, s::LIN, "Item Identification",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Product/Service ID Qualifier", b::Values("BP")),
b::Element(e::Situational, "Product/Service ID - Nissan Part Number"),
b::Element(e::Situational, "Product/Service ID Qualifier", b::Values("ON")),
b::Element(e::Situational, "Product/Service ID - Receipt Authorization Number (RAN)"),
b::Element(e::Situational, "Product/Service ID Qualifier", b::Values("SN")),
b::Element(e::Situational, "Product/Service ID - Coil Number"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier"),
b::Element(e::NotUsed,     "Product/Service ID"),
b::Element(e::NotUsed,     "Product/Service ID Qualifier")),
              b::Segment( 80, s::SN1, "Item Detail (Shipment)",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::NotUsed,     "Assigned Identification"),
b::Element(e::Required,    "Number of Units Shipped"),
b::Element(e::Situational, "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Quantity Shipped to Date"),
b::Element(e::NotUsed,     "Quantity Ordered"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Returnable Container Load Make-Up Code"),
b::Element(e::NotUsed,     "Line Item Status Code")),
              b::Segment(110, s::PO4, "Item Physical Details",
r::Situational, d::RepeatCount.unbounded,
b::Element(e::Situational, "Pack"),
b::Element(e::Situational, "Size"),
b::Element(e::Situational, "Unit or Basis for Measurement Code")),
              b::Segment(200, s::REF, "Reference Identification",
r::Situational, d::RepeatCount.bounded(12),
b::Element(e::Required,    "Reference Identification Qualifier", b::Values("LS")),
b::Element(e::Situational, "Reference Number - Label Serial Number"),
b::Element(e::NotUsed,     "Description"),
b::Element(e::NotUsed,     "Reference Identifier"))),

            d::LoopDef.build("HL", d::RepeatCount.bounded(199999),
              b::Segment( 50, s:: HL, "Hierarchical Level -Pack Level",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Hierarchical ID Number"),
b::Element(e::Situational, "Hierarchical Parent ID Number"),
b::Element(e::Situational, "Hierarchical Level Code", b::Values("P")),
b::Element(e::Situational, "Hierarchical Child Code", b::Values("0"))),
              b::Segment( 80, s::SN1, "Item Detail (Shipment)",
r::Situational, d::RepeatCount.bounded(1),
b::Element(e::NotUsed,     "Assigned Identification"),
b::Element(e::Required,    "Number of Units Shipped"),
b::Element(e::Required,    "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Quantity Shipped to Date"),
b::Element(e::NotUsed,     "Quantity Ordered"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Returnable Container Load Make-Up Code"),
b::Element(e::NotUsed,     "Line Item Status Code")),
              b::Segment(200, s::REF, "Reference Numbers",
r::Situational, d::RepeatCount.bounded(200),
b::Element(e::Required,    "Reference Number Qualifier", b::Values("LS")),
b::Element(e::Situational, "Reference Number - Label Serial Number."),
b::Element(e::NotUsed,     "Description"),
b::Element(e::NotUsed,     "Reference Identifier")))),

          d::TableDef.header("Summary",
            d::LoopDef.build("CTT", d::RepeatCount.bounded(1),
              b::Segment(380, s::CTT, "Transaction Totals",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Number of Line Items"),
b::Element(e::Situational, "Hash Total"),
b::Element(e::NotUsed,     "Weight"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Volume"),
b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
b::Element(e::NotUsed,     "Description")),
              b::Segment(390, s:: SE, "Transaction Set Trailer",
r::Required, d::RepeatCount.bounded(1),
b::Element(e::Required,    "Number of Included Segments"),
b::Element(e::Required,    "Transaction Set Control Number")))))