Skip to content

IDoc

Purpose

Transforms a flat IDoc into XML IDoc or vice-versa. The DSL requires a parser definition file for the converted IDoc.

Methods

Binding name: p6.idoc


loadDefinition

Load the IDoc definition given as a String. The String can in a pre-compiled XML format or will be compiled and loaded.

Syntax

void p6.idoc.loadDefinition(String idocDef, boolean isCompiledXml)
Example
// Load a MATMAS (Material Master) IDoc definition from the script resources
def definition = p6.resource.get('MATMAS05_Definition')
def idocDef = p6.idoc.loadDefinition(definition, false)

exportDefinitionAsXml

Exports a previously loaded IDoc definition in compiled XML format.

Syntax

String p6.idoc.exportDefinitionAsXml(IdocDefinition idocDefinition)
Example
// Load and compile a definition, then cache the compiled XML version
def idocDefinition = p6.idoc.loadDefinition(p6.resource.get('MATMAS05_Definition'), false)
def compiledXml = p6.idoc.exportDefinitionAsXml(idocDefinition)
p6.log.debug 'Compiled definition length: ' + compiledXml.length()

flatToXml

Transform a flat IDoc to XML IDoc.

Syntax

String p6.idoc.flatToXml(IdocDefinition idocDefinition, String flatIDOC)
Example
// Convert a flat MATMAS IDoc received from SAP to XML
def idocDefinition = p6.idoc.loadDefinition(p6.resource.get('MATMAS05_Definition'), false)
def flatIdoc = p6.pipeline.get('sapIdocContent')
def xmlIdoc = p6.idoc.flatToXml(idocDefinition, flatIdoc)
p6.log.debug 'Converted IDoc to XML, length: ' + xmlIdoc.length()

xmlToFlat

Transform an XML IOC to flat IDoc.

Syntax

String p6.idoc.xmlToFlat(IdocDefinition idocDefinition, String xmlIDOC)
Example
// Convert an XML IDoc back to flat format for sending to SAP
def idocDefinition = p6.idoc.loadDefinition(p6.resource.get('MATMAS05_Definition'), false)
def xmlIdoc = p6.pipeline.get('processedIdocXml')
def flatIdoc = p6.idoc.xmlToFlat(idocDefinition, xmlIdoc)
p6.log.debug 'Flat IDoc length: ' + flatIdoc.length()