NAME

Data::EDI::X12 - EDI X12 Processing for Perl

SYNOPSIS

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);

METHODS

new

my $x12 = Data::EDI::X12->new({ spec_file => 'edi.yaml', new_lines => 1, truncate_null => 1 });

read_record

my $record = $x12->read_record($string);

write_record

my $string = $x12->write_record($record);

EXAMPLES

SPEC FILE EXAMPLE

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

PERL EXAMPLE

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);

HISTORY

This module was authored for Bizowie's erp software.

AUTHOR

Bizowie

COPYRIGHT AND LICENSE

Copyright (C) 2014 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.