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