Data::EDI::X12 - EDI X12 Processing for Perl
my $x12 = Data::EDI::X12->new({ spec_file => 'edi.yaml', new_lines => 1, truncate_null => 1 }); my $data = $x12->read_record(...); print $x12->write_record($data);
my $x12 = Data::EDI::X12->new({ spec_file => 'edi.yaml', new_lines => 1, truncate_null => 1 });
my $record = $x12->read_record($string);
my $string = $x12->write_record($record);
850: structure: header: - BEG - DTM - N9 - N1 detail: - PO1 - PID footer: - CTT segments: BEG: definition: - name: purpose_codse min: 2 max: 2 - name: type_code min: 2 max: 2 - name: order_number min: 1 max: 22 - type: filler - name: date min: 8 max: 8 DTM: definition: - name: qualifier min: 3 max: 3 - name: date min: 8 max: 8 N9: definition: - name: qualifier min: 2 max: 3 - name: identification min: 1 max: 50 N1: definition: - name: identifier min: 2 max: 3 - name: name min: 1 max: 60 - name: identification_code_qualifier min: 1 max: 2 - name: identification_code min: 2 max: 80 PO1: definition: - type: filler - name: quantity min: 1 max: 15 - name: unit_of_measure min: 2 max: 2 - name: unit_price min: 1 max: 17 - type: filler - name: id_qualifier min: 2 max: 2 - name: product_id min: 1 max: 48 - name: id_qualifier_2 min: 2 max: 2 - name: product_id_2 min: 1 max: 48 - name: id_qualifier_3 min: 2 max: 2 - name: product_id_3 min: 1 max: 48 PID: definition: - name: type - type: filler - type: filler - type: filler - name: description min: 1 max: 80 CTT: definition: - name: total_items min: 1 max: 6 - name: hash_total min: 1 max: 10
use Data::EDI::X12; my $string = q[ISA*00* *00* *01*012345675 *01*987654321 *140220*1100*^*00501*000000001*0*P*>~ GS*PO*012345675*987654321*20140220*1100*000000001*X*005010~ ST*850*0001~ BEG*00*KN*1136064**20140220~ DTM*002*20140220~ N9*ZA*0000010555~ N1*ST*U997*92*U997~ PO1**1*EA*1.11**UC*000000000007*PI*000000000000000004*VN*113~ PID*F****Test Product 1~ PO1**1*EA*2.22**UC*000000000008*PI*000000000000000005*VN*114~ PID*F****Test Product 2~ CTT*4*4~ SE*12*0001~ GE*1*000000001~ IEA*1*000000001~ ]; my $x12 = Data::EDI::X12->new({ spec_file => 't/spec.yaml', new_lines => 1, truncate_null => 1 }); my $record = $x12->read_record($string); my $out = $x12->write_record($record);
Both implicit and explicit loop segments are also supported by this module. Please review the loops test for an example.
This module was authored for Bizowie.
Bizowie
Copyright (C) 2014, 2015, 2016 Bizowie
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.
To install Data::EDI::X12, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::EDI::X12
CPAN shell
perl -MCPAN -e shell install Data::EDI::X12
For more information on module installation, please visit the detailed CPAN module installation guide.