|
next
|
 Subject: Splitting EDIFACT files pipeline issue Author: Ivan Pedruzzi Date: 16 Sep 2020 02:06 PM
|
You need to switch to XQuery. The code below is a good starting point.
Ivan Pedruzzi
Stylus Studio Team
declare variable $isa := /X12[1]/ISA[1];
declare variable $gs := /X12[1]/GS[1];
declare variable $prefix_uri := replace(document-uri(/), 'converter:EDI\?', '');
for $msg at $pos in /X12[1]/*[starts-with(local-name(.), "TS_")]
let $uri := concat($prefix_uri, '.', $pos)
let $document := <X12>{$isa,$gs,$msg}<GE/><IEA/></X12>
return(
$uri,' ',
ddtek:serialize-to-url($document, $uri, "method=EDI")
)
|
top
|
 Subject: Splitting EDIFACT files pipeline issue Author: Bruce Cantor Date: 22 Sep 2020 08:49 AM
|
Thank you Ivan
The code ended up like this, I needed to create a unique dispatch ID for every EDIFACT ORDRSP:
declare variable $unb := /EANCOM/UNB;
declare variable $UNB01 := /EANCOM/UNB/UNB01;
declare variable $UNB02 := /EANCOM/UNB/UNB02;
declare variable $UNB03 := /EANCOM/UNB/UNB03;
declare variable $UNB04 := /EANCOM/UNB/UNB04;
declare variable $UNB05 := substring(/EANCOM/UNB/UNB05,3);
(:converter:EDI:doc=no:field=no:)
declare variable $prefix_uri := replace(document-uri(/), 'converter:EDI:decimal=.:field=no', '');
for $msg at $pos in /EANCOM/DESADV
let $uri := concat($prefix_uri, '.', $pos, '.edi')
let $document := <EANCOM><UNB>{$UNB01,$UNB02,$UNB03,$UNB04}<UNB05>{ $UNB05 }{ $pos }</UNB05><UNB10>V3</UNB10></UNB>{ $msg }<UNZ/></EANCOM>
return ($uri, ' ', ddtek:serialize-to-url($document, $uri, "method=EDI:decimal=."))
|
|
|