eddy 0.8.1 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -4
  3. data/CHANGELOG.md +49 -1
  4. data/Gemfile.lock +8 -8
  5. data/README.md +2 -5
  6. data/data/code-lists/333.tsv +8 -0
  7. data/data/segments/amt.segment.yml +7 -0
  8. data/data/segments/bia.segment.yml +10 -0
  9. data/data/segments/cur.segment.yml +8 -0
  10. data/data/segments/dtm.segment.yml +1 -0
  11. data/data/segments/fob.segment.yml +8 -0
  12. data/data/segments/itd.segment.yml +13 -0
  13. data/data/segments/mtx.segment.yml +7 -0
  14. data/data/segments/n9.segment.yml +7 -0
  15. data/data/segments/per.segment.yml +13 -0
  16. data/data/segments/po1.segment.yml +6 -0
  17. data/data/segments/po3.segment.yml +13 -0
  18. data/data/segments/qty.segment.yml +10 -0
  19. data/data/segments/ref.segment.yml +1 -0
  20. data/data/segments/sac.segment.yml +4 -0
  21. data/data/segments/sch.segment.yml +7 -0
  22. data/data/segments/sdq.segment.yml +8 -0
  23. data/data/segments/txi.segment.yml +9 -0
  24. data/data/transaction_sets/810.edi.yml +93 -0
  25. data/data/transaction_sets/846.edi.yml +57 -0
  26. data/data/transaction_sets/850.edi.yml +73 -0
  27. data/data/transaction_sets/855.edi.yml +74 -0
  28. data/data/transaction_sets/856.edi.yml +54 -0
  29. data/eddy.gemspec +1 -1
  30. data/exe/eddy +1 -0
  31. data/lib/definitions/elements/generated/100.currency_code.rb +200 -0
  32. data/lib/definitions/elements/generated/146.shipment_method_of_payment.rb +65 -0
  33. data/lib/definitions/elements/generated/1551.message_text.rb +29 -0
  34. data/lib/definitions/elements/generated/280.exchange_rate.rb +29 -0
  35. data/lib/definitions/elements/generated/309.location_qualifier.rb +209 -0
  36. data/lib/definitions/elements/generated/310.location_identifier.rb +29 -0
  37. data/lib/definitions/elements/generated/311.shipment_type_code.rb +42 -0
  38. data/lib/definitions/elements/generated/322.load_empty_status_code.rb +40 -0
  39. data/lib/definitions/elements/generated/325.tax_identification_number.rb +29 -0
  40. data/lib/definitions/elements/generated/333.terms_basis_date_code.rb +44 -0
  41. data/lib/definitions/elements/generated/336.terms_type_code.rb +102 -0
  42. data/lib/definitions/elements/generated/338.terms_discount_percent.rb +29 -0
  43. data/lib/definitions/elements/generated/351.terms_discount_days_due.rb +30 -0
  44. data/lib/definitions/elements/generated/363.note_reference_code.rb +278 -0
  45. data/lib/definitions/elements/generated/364.communication_number.rb +29 -0
  46. data/lib/definitions/elements/generated/365.communication_number_qualifier.rb +77 -0
  47. data/lib/definitions/elements/generated/366.contact_function_code.rb +267 -0
  48. data/lib/definitions/elements/generated/369.free_form_description.rb +29 -0
  49. data/lib/definitions/elements/generated/370.terms_discount_due_date.rb +29 -0
  50. data/lib/definitions/elements/generated/371.change_reason_code.rb +67 -0
  51. data/lib/definitions/elements/generated/378.allowance_charge_percent_qualifier.rb +48 -0
  52. data/lib/definitions/elements/generated/386.terms_net_days.rb +30 -0
  53. data/lib/definitions/elements/generated/446.terms_net_due_date.rb +29 -0
  54. data/lib/definitions/elements/generated/522.amount_qualifier_code.rb +1510 -0
  55. data/lib/definitions/elements/generated/673.quantity_qualifier.rb +869 -0
  56. data/lib/definitions/elements/generated/755.report_type_code.rb +559 -0
  57. data/lib/definitions/elements/generated/954.percent.rb +29 -0
  58. data/lib/definitions/elements/generated/963.tax_type_code.rb +111 -0
  59. data/lib/definitions/segments/generated/amt.rb +56 -0
  60. data/lib/definitions/segments/generated/bia.rb +107 -0
  61. data/lib/definitions/segments/generated/cur.rb +73 -0
  62. data/lib/definitions/segments/generated/dtm.rb +17 -0
  63. data/lib/definitions/segments/generated/fob.rb +73 -0
  64. data/lib/definitions/segments/generated/hl.rb +90 -0
  65. data/lib/definitions/segments/generated/itd.rb +158 -0
  66. data/lib/definitions/segments/generated/mtx.rb +56 -0
  67. data/lib/definitions/segments/generated/n2.rb +56 -0
  68. data/lib/definitions/segments/generated/n9.rb +56 -0
  69. data/lib/definitions/segments/generated/per.rb +158 -0
  70. data/lib/definitions/segments/generated/po1.rb +102 -0
  71. data/lib/definitions/segments/generated/po3.rb +158 -0
  72. data/lib/definitions/segments/generated/qty.rb +73 -0
  73. data/lib/definitions/segments/generated/ref.rb +17 -0
  74. data/lib/definitions/segments/generated/sac.rb +68 -0
  75. data/lib/definitions/segments/generated/sch.rb +56 -0
  76. data/lib/definitions/segments/generated/sdq.rb +73 -0
  77. data/lib/definitions/segments/generated/txi.rb +90 -0
  78. data/lib/definitions/transaction_sets/manual/846/846.rb +122 -0
  79. data/lib/definitions/transaction_sets/manual/846/loops/lin.rb +155 -0
  80. data/lib/definitions/transaction_sets/manual/846/loops/n1.rb +107 -0
  81. data/lib/definitions/transaction_sets/manual/846/loops/qty.rb +75 -0
  82. data/lib/definitions/transaction_sets/manual/846/loops/sch.rb +59 -0
  83. data/lib/definitions/transaction_sets/manual/846/loops/sln.rb +59 -0
  84. data/lib/definitions/transaction_sets/manual/850/850.rb +108 -1
  85. data/lib/definitions/transaction_sets/manual/850/loops/ctp.rb +47 -0
  86. data/lib/definitions/transaction_sets/manual/850/loops/n1.rb +31 -10
  87. data/lib/definitions/transaction_sets/manual/850/loops/n9.rb +59 -0
  88. data/lib/definitions/transaction_sets/manual/850/loops/pid.rb +47 -0
  89. data/lib/definitions/transaction_sets/manual/850/loops/po1.rb +78 -10
  90. data/lib/definitions/transaction_sets/manual/850/loops/sac.rb +47 -0
  91. data/lib/eddy.rb +49 -3
  92. data/lib/eddy/build/transaction_set_builder.rb +1 -1
  93. data/lib/eddy/config.rb +0 -21
  94. data/lib/eddy/data.rb +0 -40
  95. data/lib/eddy/data/persistence/base.rb +5 -11
  96. data/lib/eddy/data/persistence/memory.rb +14 -22
  97. data/lib/eddy/errors.rb +13 -9
  98. data/lib/eddy/models/element/composite.rb +2 -0
  99. data/lib/eddy/models/element/id.rb +1 -1
  100. data/lib/eddy/models/element/r.rb +5 -3
  101. data/lib/eddy/models/functional_group.rb +3 -2
  102. data/lib/eddy/models/interchange.rb +6 -2
  103. data/lib/eddy/models/transaction_set.rb +10 -2
  104. data/lib/eddy/parse.rb +4 -56
  105. data/lib/eddy/parse/interchange.rb +58 -0
  106. data/lib/eddy/summary/loop.rb +1 -1
  107. data/lib/eddy/summary/segment.rb +2 -1
  108. data/lib/eddy/version.rb +1 -1
  109. metadata +78 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90e30433d3481cfb057ca31480ae6ee1e30ba06df8a58439fc20f28e9bf231b3
4
- data.tar.gz: 8f5e0429739292acc29f9a4135f945cee429e409d08321b6cffc3efdff841f2d
3
+ metadata.gz: 3d3995d8d9df765975441691c229cf9d627178b8778682d6380892a4e8faad6a
4
+ data.tar.gz: 2b6b6966807e89efcfa9f573aac6711e7d265b493f3a884cb8e1b7690caf9b93
5
5
  SHA512:
6
- metadata.gz: 26e9c3a97fba8c9e680ba924462f9cc9546616332808912bb2050901b7c6de07fe88664bd579dd5510b44f9e3a7e0f89482f86eb5386be90cf2530e7f1f34e68
7
- data.tar.gz: eed5bc960e5c8c7cdbe6deef40a194219dbe9ea98222113342fa4ed237f0a5c1eeeafa30637583e2526d27142ad93f0bc9841923d289a7be4a7560f3aba39a23
6
+ metadata.gz: 50ff6ca4371ff745dde2576bd5a1063fcf6fc81f54091f320db4d93feb5bb1680a3d4bdd1254870d18aa37aa05ba7e0a529199b93b7aa692c826c04f184cc6d9
7
+ data.tar.gz: 424bc054c7ae7a123c390773e25d895ffba111ad37ed8445f6f4754b5b4b400e9a32bc3ccc12aed93582635418337444fdbc543a6840425ba8c2b614f0adeb62
@@ -83,6 +83,10 @@ Naming/HeredocDelimiterNaming:
83
83
  Style/FormatString:
84
84
  EnforcedStyle: sprintf
85
85
 
86
+ Style/FormatStringToken:
87
+ # EnforcedStyle: template
88
+ Enabled: false
89
+
86
90
  # ==============================================================================
87
91
  # Numbers
88
92
  # ==============================================================================
@@ -107,10 +111,6 @@ Style/DefWithParentheses:
107
111
  Style/MethodCallWithoutArgsParentheses:
108
112
  Enabled: false
109
113
 
110
- # Only use braces if the function expects a hash argument. [different in Ruby 2.7+](https://blog.saeloun.com/2019/10/07/ruby-2-7-keyword-arguments-redesign.html)
111
- Style/BracesAroundHashParameters:
112
- Enabled: false
113
-
114
114
  Style/WordArray:
115
115
  EnforcedStyle: brackets
116
116
 
@@ -11,7 +11,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
  >
12
12
  > While the API is still changing, enough code exists that EDI documents can currently be written with Eddy (though I wouldn't recommend use in production environments yet).
13
13
 
14
- ## master (unreleased)
14
+ <!-- ## master (unreleased) -->
15
+
16
+ ## 0.9.1 (2020-07-23)
17
+
18
+ ### Fixed
19
+
20
+ - Fix incorrect element names in `TXI` segment.
21
+
22
+
23
+ ## 0.9.0 (2020-07-03)
24
+
25
+ ### Added
26
+
27
+ - New Transaction Set definition:
28
+ - 846
29
+ - New Segment definitions:
30
+ - BIA
31
+ - CUR
32
+ - PER
33
+ - QTY
34
+ - SCH
35
+ - SDQ
36
+ - TXI
37
+
38
+ ### Fixed
39
+
40
+ - Updated method call in `Eddy::Build::TransactionSetBuilder#build_loops`.
41
+
42
+ ## 0.8.4 (2020-01-15)
43
+
44
+ ### Changed
45
+
46
+ - Updated logic for generating functional group control numbers.
47
+
48
+ ## 0.8.3 (2020-01-15)
49
+
50
+ ### Changed
51
+
52
+ - Trim trailing newline from the return value of `Eddy::Models::Interchange#render` and `Eddy::Models::TransactionSet#render`.
53
+
54
+ ## 0.8.2 (2020-01-09)
55
+
56
+ ### Fixed
57
+
58
+ - Account for skipped segments when calculating `SE.NumberOfIncludedSegments`.
59
+
60
+ ### Changed
61
+
62
+ - Improve messages for `NotImplementedError` exceptions raised from `R` elements.
15
63
 
16
64
  ## 0.8.1 (2020-01-08)
17
65
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eddy (0.8.1)
4
+ eddy (0.9.1)
5
5
  ginny (~> 0.6.3)
6
6
  json_schemer (~> 0.2.8)
7
7
  thor (~> 1.0.1)
@@ -21,14 +21,14 @@ GEM
21
21
  tins (~> 1.6)
22
22
  docile (1.3.2)
23
23
  dry-inflector (0.2.0)
24
- ecma-re-validator (0.2.0)
24
+ ecma-re-validator (0.2.1)
25
25
  regexp_parser (~> 1.2)
26
26
  ginny (0.6.3)
27
27
  coolkit (~> 0.2.2)
28
28
  dry-inflector (~> 0.2.0)
29
- hana (1.3.5)
29
+ hana (1.3.6)
30
30
  json (2.3.0)
31
- json_schemer (0.2.8)
31
+ json_schemer (0.2.11)
32
32
  ecma-re-validator (~> 0.2)
33
33
  hana (~> 1.3)
34
34
  regexp_parser (~> 1.5)
@@ -45,8 +45,8 @@ GEM
45
45
  pry (0.12.2)
46
46
  coderay (~> 1.1.0)
47
47
  method_source (~> 0.9.0)
48
- rake (10.5.0)
49
- regexp_parser (1.6.0)
48
+ rake (13.0.1)
49
+ regexp_parser (1.7.1)
50
50
  ruby-progressbar (1.10.1)
51
51
  simplecov (0.16.1)
52
52
  docile (~> 1.1)
@@ -70,8 +70,8 @@ DEPENDENCIES
70
70
  minitest-focus (~> 1.1)
71
71
  minitest-reporters (~> 1.4)
72
72
  pry (~> 0.12.2)
73
- rake (~> 10.0)
73
+ rake (~> 13.0)
74
74
  simplecov (~> 0.16)
75
75
 
76
76
  BUNDLED WITH
77
- 2.0.2
77
+ 2.1.4
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  [travis-ci]: https://travis-ci.org/tcd/eddy
11
11
  [coveralls]: https://coveralls.io/github/tcd/eddy?branch=master
12
12
  [license]: https://github.com/tcd/eddy/blob/master/LICENSE.txt
13
- [docs]: https://www.rubydoc.info/gems/eddy/0.8.1
13
+ [docs]: https://www.rubydoc.info/gems/eddy/0.9.1
14
14
 
15
15
  ## Installation
16
16
 
@@ -50,6 +50,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
50
50
 
51
51
  ## Dependencies
52
52
 
53
+ - [erikhuda/thor](https://github.com/erikhuda/thor)
53
54
  - [tcd/ginny](https://github.com/tcd/ginny)
54
55
  - [tcd/coolkit](https://github.com/tcd/coolkit)
55
56
  - [dry-rb/dry-inflector](https://github.com/dry-rb/dry-inflector)
@@ -59,10 +60,6 @@ The gem is available as open source under the terms of the [MIT License](https:/
59
60
  - [tenderlove/hana](https://github.com/tenderlove/hana)
60
61
  - [hannesg/uri_template](https://github.com/hannesg/uri_template)
61
62
  - [ammar/regexp_parser](https://github.com/ammar/regexp_parser)
62
- - [erikhuda/thor](https://github.com/erikhuda/thor)
63
- - [piotrmurach/pastel](https://github.com/piotrmurach/pastel)
64
- - [piotrmurach/equatable](https://github.com/piotrmurach/equatable)
65
- - [piotrmurach/tty-color](https://github.com/piotrmurach/tty-color)
66
63
 
67
64
  ## Alternatives (in Ruby)
68
65
 
@@ -0,0 +1,8 @@
1
+ id definition
2
+ 1 Ship Date
3
+ 2 Delivery Date
4
+ 3 Invoice Date
5
+ 4 Specified Date
6
+ 5 Invoice Receipt Date
7
+ 6 Anticipated Delivery Date 7 Effective Date
8
+ 7 Effective Date
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: AMT
3
+ name: Monetary Amount Information
4
+ purpose: To indicate the total monetary amount.
5
+ elements:
6
+ - { ref: AMT01, id: '522', req: M }
7
+ - { ref: AMT02, id: '782', req: M }
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: BIA
3
+ name: Beginning Segment for Inventory Inquiry/Advice
4
+ purpose: To indicate the beginning of an Inventory Inquiry/Advice Transaction Set
5
+ elements:
6
+ - { ref: BIA01, id: '353', req: M }
7
+ - { ref: BIA02, id: '755', req: M }
8
+ - { ref: BIA03, id: '127', req: M }
9
+ - { ref: BIA04, id: '373', req: M }
10
+ - { ref: BIA05, id: '337', req: O }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: CUR
3
+ name: Currency
4
+ purpose: To specify the currency (dollars, pounds, francs, etc.) used in a transaction
5
+ elements:
6
+ - { ref: CUR01, id: '98', req: M }
7
+ - { ref: CUR02, id: '100', req: M }
8
+ - { ref: CUR03, id: '280', req: O }
@@ -5,3 +5,4 @@ purpose: To specify pertinent dates and times.
5
5
  elements:
6
6
  - { ref: DTM01, id: '374', req: M }
7
7
  - { ref: DTM02, id: '373', req: X }
8
+ - { ref: DTM03, id: '337', req: X }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: FOB
3
+ name: F.O.B. Related Instructions
4
+ purpose: To specify transportation instructions relating to shipment.
5
+ elements:
6
+ - { ref: FOB01, id: '146', req: M }
7
+ - { ref: FOB02, id: '309', req: X }
8
+ - { ref: FOB03, id: '352', req: O }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: ITD
3
+ name: Terms of Sale/Deferred Terms of Sale
4
+ purpose: To specify terms of sale.
5
+ elements:
6
+ - { ref: ITD01, id: '336', req: O }
7
+ - { ref: ITD02, id: '333', req: O }
8
+ - { ref: ITD03, id: '338', req: O }
9
+ - { ref: ITD04, id: '370', req: X }
10
+ - { ref: ITD05, id: '351', req: X }
11
+ - { ref: ITD06, id: '446', req: O }
12
+ - { ref: ITD07, id: '386', req: O }
13
+ - { ref: ITD12, id: '352', req: O }
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: MTX
3
+ name: Text
4
+ purpose: To specify textual data.
5
+ elements:
6
+ - { ref: MTX01, id: '363', req: O }
7
+ - { ref: MTX02, id: '1551', req: X }
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: N9
3
+ name: Extended Reference Information
4
+ purpose: To transmit identifying information as specified by the Reference Identification Qualifier.
5
+ elements:
6
+ - { ref: N901, id: '128', req: M }
7
+ - { ref: N903, id: '369', req: X }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: PER
3
+ name: Administrative Communications Contact
4
+ purpose: To identify a person or office to whom administrative communications should be directed
5
+ elements:
6
+ - { ref: PER01, id: '366', req: M }
7
+ - { ref: PER02, id: '93', req: O }
8
+ - { ref: PER03, id: '365', req: X }
9
+ - { ref: PER04, id: '364', req: X }
10
+ - { ref: PER05, id: '365', req: X }
11
+ - { ref: PER06, id: '364', req: X }
12
+ - { ref: PER07, id: '365', req: X }
13
+ - { ref: PER08, id: '364', req: X }
@@ -12,3 +12,9 @@ elements:
12
12
  - { ref: PO107, id: '234', req: X }
13
13
  - { ref: PO108, id: '235', req: X }
14
14
  - { ref: PO109, id: '234', req: X }
15
+ - { ref: PO110, id: '235', req: X }
16
+ - { ref: PO111, id: '234', req: X }
17
+ - { ref: PO112, id: '235', req: X }
18
+ - { ref: PO113, id: '234', req: X }
19
+ - { ref: PO114, id: '235', req: X }
20
+ - { ref: PO115, id: '234', req: X }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: PO3
3
+ name: Additional Item Detail
4
+ purpose: To specify additional item-related data involving variations in normal price/quantity structure.
5
+ elements:
6
+ - { ref: PO301, id: '371', req: M }
7
+ - { ref: PO302, id: '373', req: O }
8
+ - { ref: PO303, id: '236', req: X }
9
+ - { ref: PO304, id: '212', req: O }
10
+ - { ref: PO305, id: '639', req: X }
11
+ - { ref: PO306, id: '380', req: M }
12
+ - { ref: PO307, id: '355', req: M }
13
+ - { ref: PO308, id: '352', req: O }
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: QTY
3
+ name: Quantity Information
4
+ purpose: To specify quantity information
5
+ elements:
6
+ - { ref: QTY01, id: '673', req: M }
7
+ - { ref: QTY02, id: '380', req: X }
8
+ - { ref: QTY03, id: '355', req: M }
9
+ # - { ref: QTY03, id: 'C001', req: O }
10
+ # - { ref: QTY03-01, id: '355', req: M }
@@ -5,3 +5,4 @@ purpose: To specify identifying information.
5
5
  elements:
6
6
  - { ref: REF01, id: '128', req: M }
7
7
  - { ref: REF02, id: '127', req: X }
8
+ - { ref: REF03, id: '352', req: X }
@@ -8,6 +8,10 @@ elements:
8
8
  - { ref: SAC03, id: '559', req: X }
9
9
  - { ref: SAC04, id: '1301', req: X }
10
10
  - { ref: SAC05, id: '610', req: O }
11
+ - { ref: SAC06, id: '378', req: X }
12
+ - { ref: SAC07, id: '322', req: X }
13
+ - { ref: SAC12, id: '311', req: O }
14
+ - { ref: SAC15, id: '352', req: X }
11
15
  notes: |
12
16
  1.R0203 - At least one of SAC02 or SAC03 is required.
13
17
  2.P0304 - If either SAC03 or SAC04 is present, then the other is required.
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: SCH
3
+ name: Line Item Schedule
4
+ purpose: To specify the data for scheduling a specific line-item
5
+ elements:
6
+ - { ref: SCH01, id: '380', req: M }
7
+ - { ref: SCH03, id: '98', req: O }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: SDQ
3
+ name: Destination Quantity
4
+ purpose: To specify destination and quantity detail
5
+ elements:
6
+ - { ref: SDQ01, id: '355', req: M }
7
+ - { ref: SDQ02, id: '66', req: O }
8
+ - { ref: SDQ23, id: '310', req: O }
@@ -0,0 +1,9 @@
1
+ ---
2
+ id: TXI
3
+ name: Tax Information
4
+ purpose: To specify tax information.
5
+ elements:
6
+ - { ref: TXI01, id: '963', req: M }
7
+ - { ref: TXI02, id: '782', req: X }
8
+ - { ref: TXI03, id: '954', req: X }
9
+ - { ref: TXI09, id: '325', req: O }
@@ -0,0 +1,93 @@
1
+ ---
2
+ id: 810
3
+ functional_group: IN
4
+ name: Invoice
5
+ components:
6
+
7
+ - id: BIG
8
+ req: M
9
+ element_count: 5
10
+
11
+ - id: REF
12
+ req: O
13
+ element_count: 2
14
+
15
+ - loop_id: N1
16
+ repeat: 200
17
+ components:
18
+ - id: N1
19
+ req: O
20
+ max_use: 1
21
+ element_count: 3
22
+ elements:
23
+ - { ref: N101, id: '98', req: M }
24
+ - { ref: N103, id: '66', req: X }
25
+ - { ref: N104, id: '67', req: X }
26
+ - id: N3
27
+ req: O
28
+ max_use: 2
29
+ element_count: 2
30
+ elements:
31
+ - { ref: N301, id: '166', req: M }
32
+ - { ref: N302, id: '166', req: O }
33
+ - id: N4
34
+ req: O
35
+ max_use: 2
36
+ element_count: 3
37
+ elements:
38
+ - { ref: N401, id: '19', req: O }
39
+ - { ref: N402, id: '156', req: O }
40
+ - { ref: N403, id: '116', req: O }
41
+
42
+ - id: DTM
43
+ req: O
44
+ element_count: 2
45
+ elements:
46
+ - { ref: DTM01, id: '374', req: M }
47
+ - { ref: DTM02, id: '373', req: X }
48
+
49
+ - loop_id: IT1
50
+ repeat: 200000
51
+ components:
52
+ - id: IT1
53
+ req: O
54
+ element_count: 14
55
+ - id: CTP
56
+ req: O
57
+ element_count: 6
58
+ - loop_id: PID
59
+ repeat: 1000
60
+ req: M
61
+ components:
62
+ - id: PID
63
+ req: O
64
+ element_count: 2
65
+ - loop_id: SAC
66
+ repeat: 25
67
+ req: O
68
+ components:
69
+ - id: SAC
70
+ req: O
71
+ element_count: 3
72
+
73
+ - id: TDS
74
+ req: M
75
+ element_count: 1
76
+
77
+ - id: CAD
78
+ req: O
79
+ element_count: 1
80
+
81
+ - loop_id: SAC
82
+ repeat: 25
83
+ req: O
84
+ components:
85
+ - id: SAC
86
+ req: O
87
+ element_count: 3
88
+
89
+ - id: CTT
90
+ req: O
91
+ element_count: 1
92
+ elements:
93
+ - { ref: CTT01, id: '354', req: M }