Skip to content

Smooks Templates

Purpose

Transforms files using Smooks templates. Only EDI input is supported.

Methods

Binding name: p6.smooks


Method: String transform(String mode, String ediTextUri, String smooksTemplate)

Transform the given EDI using the supplied Smooks template into XML.

Note

mode: optional : the Smooks reader configurator ‘edi’(default) or ‘edifact’.

Examples

SmooksTemplate

<?xml version="1.0" encoding="UTF-8"?>
<medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.0.xsd">

    <medi:description name="DVD Order" version="1.0" />

    <medi:delimiters segment="&#10;" field="*" component="^" sub-component="~" />

    <medi:segments xmltag="Order">

        <medi:segment segcode="HDR" xmltag="header">
            <medi:field xmltag="order-id" />
            <medi:field xmltag="status-code" />
            <medi:field xmltag="net-amount" />
            <medi:field xmltag="total-amount" />
            <medi:field xmltag="tax" />
            <medi:field xmltag="date" />
        </medi:segment>

        <medi:segment segcode="CUS" xmltag="customer-details">
            <medi:field xmltag="username" />
            <medi:field xmltag="name">
                <medi:component xmltag="firstname" />
                <medi:component xmltag="lastname" />
            </medi:field>
            <medi:field xmltag="state" />
        </medi:segment>

        <medi:segment segcode="ORD" xmltag="order-item" maxOccurs="-1">
            <medi:field xmltag="position" />
            <medi:field xmltag="quantity" />
            <medi:field xmltag="product-id" />
            <medi:field xmltag="title" />
            <medi:field xmltag="price" />
        </medi:segment>

    </medi:segments>

</medi:edimap>

Test.edi

HDR*1*0*59.97*64.92*4.95*Wed Nov 15 13:45:28 EST 2006
CUS*user1*Harry^Fletcher*SD
ORD*1*1*364*The 40-Year-Old Virgin*29.98
ORD*2*1*299*Pulp Fiction*29.99
def smooksTemplate = p6.resource.get('SmooksTemplate')

def xml = p6.smooks.transform('edi', 'file:${P6_DATA}/resources/Test.edi', smooksTemplate)
println xml