<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<template xmlns="http://www.aristaflow.de/adept2/processmodel"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          id="5b23a932-908f-4b0b-acfb-c0a64870047a"
          version="16"
          xsi:schemaLocation="http://www.aristaflow.de/adept2/processmodel template.xsd http://www.w3.org/2000/09/xmldsig# xmldsig-core-schema.xsd">
   <name>json</name>
   <description/>
   <processType/>
   <supervisorAgent>
      <agentID>-1</agentID>
      <agentName>supervisor</agentName>
      <orgPositionID>-1</orgPositionID>
      <orgPositionName>supervisor</orgPositionName>
   </supervisorAgent>
   <version/>
   <nodes>
      <node id="n0">
         <name>Start</name>
         <description/>
         <staffAssignmentRule/>
         <autoStart>false</autoStart>
      </node>
      <node id="n1">
         <name>End</name>
         <description/>
         <staffAssignmentRule/>
         <autoStart>false</autoStart>
      </node>
      <node id="n2">
         <name>To JSON</name>
         <description/>
         <staffAssignmentRule>Role(name='Automatic Client')</staffAssignmentRule>
         <executableBusinessProcess>
            <activity id="fb253d97-2215-4ec9-bc08-117ecfee36d3">
               <ecName>de.aristaflow.tools.Scripting</ecName>
               <operationName>executeScript</operationName>
               <name>executeScript</name>
               <description origin="OPERATION"/>
               <implementationClass origin="ECD">de.aristaflow.adept2.extensions.scripting.component.ScriptingComponent</implementationClass>
               <classLoaderUsage origin="ECD">SHARE_EXECUTABLE_COMPONENT</classLoaderUsage>
               <systemComponent origin="ECD">AQ==</systemComponent>
               <guiContextID origin="ECD">NullContext</guiContextID>
               <executionControlProperties origin="ECD">
                  <isSuspensible>false</isSuspensible>
                  <isResettable>false</isResettable>
                  <isClosable>false</isClosable>
               </executionControlProperties>
               <supportsViewOnly origin="OPERATION">false</supportsViewOnly>
               <supportsTestExecution origin="OPERATION">false</supportsTestExecution>
               <configuration>
                  <configurationEntry fixed="false" name="Script">// https://groovy-lang.org/json.html&#xD;
import groovy.json.JsonOutput&#xD;
&#xD;
$json = JsonOutput.toJson([name: $name, age: $age])</configurationEntry>
                  <configurationEntry fixed="false" name="ScriptEngine">groovy</configurationEntry>
               </configuration>
               <testConfiguration>
                  <configurationEntry fixed="false" name="ScriptEngine">groovy</configurationEntry>
               </testConfiguration>
               <parameterChangePolicy>GENERIC</parameterChangePolicy>
               <inputParameters>
                  <inputParameter>
                     <name>age</name>
                     <description/>
                     <type>INTEGER</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </inputParameter>
                  <inputParameter>
                     <name>name</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </inputParameter>
               </inputParameters>
               <outputParameters>
                  <outputParameter>
                     <name>json</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </outputParameter>
               </outputParameters>
            </activity>
         </executableBusinessProcess>
         <autoStart>false</autoStart>
         <connectorParameterMappings>
            <connectorParameterMapping accessType="READ" connector="1" parameterName="age"/>
            <connectorParameterMapping accessType="READ" connector="2" parameterName="name"/>
            <connectorParameterMapping accessType="WRITE" connector="0" parameterName="json"/>
         </connectorParameterMappings>
      </node>
      <node id="n3">
         <name>From JSON</name>
         <description/>
         <staffAssignmentRule>Role(name='Automatic Client')</staffAssignmentRule>
         <executableBusinessProcess>
            <activity id="fb253d97-2215-4ec9-bc08-117ecfee36d3">
               <ecName>de.aristaflow.tools.Scripting</ecName>
               <operationName>executeScript</operationName>
               <name>executeScript</name>
               <description origin="OPERATION"/>
               <implementationClass origin="ECD">de.aristaflow.adept2.extensions.scripting.component.ScriptingComponent</implementationClass>
               <classLoaderUsage origin="ECD">SHARE_EXECUTABLE_COMPONENT</classLoaderUsage>
               <systemComponent origin="ECD">AQ==</systemComponent>
               <guiContextID origin="ECD">NullContext</guiContextID>
               <executionControlProperties origin="ECD">
                  <isSuspensible>false</isSuspensible>
                  <isResettable>false</isResettable>
                  <isClosable>false</isClosable>
               </executionControlProperties>
               <supportsViewOnly origin="OPERATION">false</supportsViewOnly>
               <supportsTestExecution origin="OPERATION">false</supportsTestExecution>
               <configuration>
                  <configurationEntry fixed="false" name="Script">// https://groovy-lang.org/json.html&#xD;
import groovy.json.JsonSlurper&#xD;
&#xD;
def jsonSlurper = new JsonSlurper()&#xD;
def person = jsonSlurper.parseText($json)&#xD;
&#xD;
$name = person.name&#xD;
$age = person.age</configurationEntry>
                  <configurationEntry fixed="false" name="ScriptEngine">groovy</configurationEntry>
               </configuration>
               <testConfiguration>
                  <configurationEntry fixed="false" name="ScriptEngine">groovy</configurationEntry>
               </testConfiguration>
               <parameterChangePolicy>GENERIC</parameterChangePolicy>
               <inputParameters>
                  <inputParameter>
                     <name>json</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </inputParameter>
               </inputParameters>
               <outputParameters>
                  <outputParameter>
                     <name>age</name>
                     <description/>
                     <type>INTEGER</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </outputParameter>
                  <outputParameter>
                     <name>name</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                  </outputParameter>
               </outputParameters>
            </activity>
         </executableBusinessProcess>
         <autoStart>false</autoStart>
         <connectorParameterMappings>
            <connectorParameterMapping accessType="READ" connector="0" parameterName="json"/>
            <connectorParameterMapping accessType="WRITE" connector="1" parameterName="age"/>
            <connectorParameterMapping accessType="WRITE" connector="2" parameterName="name"/>
         </connectorParameterMappings>
      </node>
      <node id="n4">
         <name>Data Input</name>
         <description/>
         <staffAssignmentRule>Agent() EXCEPT (Role(name='Automatic Client') OR Role(name='Event Manager') OR OrgPosition(name='automaticclient') OR OrgPosition(name='eventmanager'))</staffAssignmentRule>
         <executableBusinessProcess>
            <activity id="c38760c9-c2e7-4b22-8191-1f0e2f1d8c39">
               <ecName>de.aristaflow.form.Form</ecName>
               <operationName>User Form</operationName>
               <name>User Form</name>
               <description origin="OPERATION">This activity generates an user centric form from the given input and output parameters.</description>
               <implementationClass origin="ECD">de.aristaflow.adept2.extensions.generatedforms2.view.multilinetextform.MultilineTextFormEnvironment</implementationClass>
               <classLoaderUsage origin="ECD">NON_SHARED</classLoaderUsage>
               <systemComponent origin="ECD">AQ==</systemComponent>
               <guiContextID origin="ECD">SWTContext</guiContextID>
               <executionControlProperties origin="ECD">
                  <isSuspensible>true</isSuspensible>
                  <isResettable>true</isResettable>
                  <isClosable>true</isClosable>
               </executionControlProperties>
               <supportsViewOnly origin="OPERATION">true</supportsViewOnly>
               <supportsTestExecution origin="OPERATION">false</supportsTestExecution>
               <parameterChangePolicy>GENERIC</parameterChangePolicy>
               <outputParameters>
                  <outputParameter>
                     <name>ageIn</name>
                     <description/>
                     <type>INTEGER</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                     <userAttributes>
                        <userAttribute name="fromParameterTemplate">Default</userAttribute>
                     </userAttributes>
                  </outputParameter>
                  <outputParameter>
                     <name>nameIn</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                     <userAttributes>
                        <userAttribute name="fromParameterTemplate">Default</userAttribute>
                     </userAttributes>
                  </outputParameter>
               </outputParameters>
            </activity>
         </executableBusinessProcess>
         <autoStart>false</autoStart>
         <connectorParameterMappings>
            <connectorParameterMapping accessType="WRITE" connector="0" parameterName="ageIn"/>
            <connectorParameterMapping accessType="WRITE" connector="1" parameterName="nameIn"/>
         </connectorParameterMappings>
      </node>
      <node id="n5">
         <name>Show Data</name>
         <description/>
         <staffAssignmentRule>Agent() EXCEPT (Role(name='Automatic Client') OR Role(name='Event Manager') OR OrgPosition(name='automaticclient') OR OrgPosition(name='eventmanager'))</staffAssignmentRule>
         <executableBusinessProcess>
            <activity id="c38760c9-c2e7-4b22-8191-1f0e2f1d8c39">
               <ecName>de.aristaflow.form.Form</ecName>
               <operationName>User Form</operationName>
               <name>User Form</name>
               <description origin="OPERATION">This activity generates an user centric form from the given input and output parameters.</description>
               <implementationClass origin="ECD">de.aristaflow.adept2.extensions.generatedforms2.view.multilinetextform.MultilineTextFormEnvironment</implementationClass>
               <classLoaderUsage origin="ECD">NON_SHARED</classLoaderUsage>
               <systemComponent origin="ECD">AQ==</systemComponent>
               <guiContextID origin="ECD">SWTContext</guiContextID>
               <executionControlProperties origin="ECD">
                  <isSuspensible>true</isSuspensible>
                  <isResettable>true</isResettable>
                  <isClosable>true</isClosable>
               </executionControlProperties>
               <supportsViewOnly origin="OPERATION">true</supportsViewOnly>
               <supportsTestExecution origin="OPERATION">false</supportsTestExecution>
               <parameterChangePolicy>GENERIC</parameterChangePolicy>
               <inputParameters>
                  <inputParameter>
                     <name>ageOut</name>
                     <description/>
                     <type>INTEGER</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                     <userAttributes>
                        <userAttribute name="fromParameterTemplate">Default</userAttribute>
                     </userAttributes>
                  </inputParameter>
                  <inputParameter>
                     <name>nameOut</name>
                     <description/>
                     <type>STRING</type>
                     <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
                     <isOptional>false</isOptional>
                     <userAttributes>
                        <userAttribute name="fromParameterTemplate">Default</userAttribute>
                     </userAttributes>
                  </inputParameter>
               </inputParameters>
            </activity>
         </executableBusinessProcess>
         <autoStart>false</autoStart>
         <connectorParameterMappings>
            <connectorParameterMapping accessType="READ" connector="1" parameterName="ageOut"/>
            <connectorParameterMapping accessType="READ" connector="0" parameterName="nameOut"/>
         </connectorParameterMappings>
      </node>
   </nodes>
   <dataElements>
      <dataElement id="d0">
         <type>STRING</type>
         <name>json</name>
         <description/>
         <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
         <isPublic>false</isPublic>
      </dataElement>
      <dataElement id="d1">
         <type>INTEGER</type>
         <name>ageOut</name>
         <description/>
         <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
         <isPublic>false</isPublic>
      </dataElement>
      <dataElement id="d2">
         <type>STRING</type>
         <name>nameOut</name>
         <description/>
         <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
         <isPublic>false</isPublic>
      </dataElement>
      <dataElement id="d3">
         <type>INTEGER</type>
         <name>ageIn</name>
         <description/>
         <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
         <isPublic>false</isPublic>
      </dataElement>
      <dataElement id="d4">
         <type>STRING</type>
         <name>nameIn</name>
         <description/>
         <identifierID>ffffffff-ffff-ffff-8000-000000000000</identifierID>
         <isPublic>false</isPublic>
      </dataElement>
   </dataElements>
   <edges>
      <edge destinationNodeID="n1" edgeType="ET_CONTROL" sourceNodeID="n5">
         <edgeType>ET_CONTROL</edgeType>
      </edge>
      <edge destinationNodeID="n2" edgeType="ET_CONTROL" sourceNodeID="n4">
         <edgeType>ET_CONTROL</edgeType>
      </edge>
      <edge destinationNodeID="n3" edgeType="ET_CONTROL" sourceNodeID="n2">
         <edgeType>ET_CONTROL</edgeType>
      </edge>
      <edge destinationNodeID="n4" edgeType="ET_CONTROL" sourceNodeID="n0">
         <edgeType>ET_CONTROL</edgeType>
      </edge>
      <edge destinationNodeID="n5" edgeType="ET_CONTROL" sourceNodeID="n3">
         <edgeType>ET_CONTROL</edgeType>
      </edge>
   </edges>
   <dataEdges>
      <dataEdge connectorID="0"
                dataEdgeType="WRITE"
                dataElementID="d0"
                nodeID="n2">
         <dataEdgeType>WRITE</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="1"
                dataEdgeType="READ"
                dataElementID="d3"
                nodeID="n2">
         <dataEdgeType>READ</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="2"
                dataEdgeType="READ"
                dataElementID="d4"
                nodeID="n2">
         <dataEdgeType>READ</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="0"
                dataEdgeType="READ"
                dataElementID="d0"
                nodeID="n3">
         <dataEdgeType>READ</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="1"
                dataEdgeType="WRITE"
                dataElementID="d1"
                nodeID="n3">
         <dataEdgeType>WRITE</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="2"
                dataEdgeType="WRITE"
                dataElementID="d2"
                nodeID="n3">
         <dataEdgeType>WRITE</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="0"
                dataEdgeType="WRITE"
                dataElementID="d3"
                nodeID="n4">
         <dataEdgeType>WRITE</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="1"
                dataEdgeType="WRITE"
                dataElementID="d4"
                nodeID="n4">
         <dataEdgeType>WRITE</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="0"
                dataEdgeType="READ"
                dataElementID="d2"
                nodeID="n5">
         <dataEdgeType>READ</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
      <dataEdge connectorID="1"
                dataEdgeType="READ"
                dataElementID="d1"
                nodeID="n5">
         <dataEdgeType>READ</dataEdgeType>
         <isOptional>false</isOptional>
      </dataEdge>
   </dataEdges>
   <startNode>n0</startNode>
   <endNode>n1</endNode>
   <structuralData>
      <structuralNodeData nodeID="n0">
         <type>NT_STARTFLOW</type>
         <topologicalID>0</topologicalID>
         <branchID>0</branchID>
         <correspondingBlockNodeID>n1</correspondingBlockNodeID>
      </structuralNodeData>
      <structuralNodeData nodeID="n1">
         <type>NT_ENDFLOW</type>
         <topologicalID>5</topologicalID>
         <branchID>0</branchID>
         <correspondingBlockNodeID>n0</correspondingBlockNodeID>
      </structuralNodeData>
      <structuralNodeData nodeID="n2">
         <type>NT_NORMAL</type>
         <topologicalID>2</topologicalID>
         <branchID>1</branchID>
         <splitNodeID>n0</splitNodeID>
         <correspondingBlockNodeID>n0</correspondingBlockNodeID>
      </structuralNodeData>
      <structuralNodeData nodeID="n3">
         <type>NT_NORMAL</type>
         <topologicalID>3</topologicalID>
         <branchID>1</branchID>
         <splitNodeID>n0</splitNodeID>
         <correspondingBlockNodeID>n0</correspondingBlockNodeID>
      </structuralNodeData>
      <structuralNodeData nodeID="n4">
         <type>NT_NORMAL</type>
         <topologicalID>1</topologicalID>
         <branchID>1</branchID>
         <splitNodeID>n0</splitNodeID>
         <correspondingBlockNodeID>n0</correspondingBlockNodeID>
      </structuralNodeData>
      <structuralNodeData nodeID="n5">
         <type>NT_NORMAL</type>
         <topologicalID>4</topologicalID>
         <branchID>1</branchID>
         <splitNodeID>n0</splitNodeID>
         <correspondingBlockNodeID>n0</correspondingBlockNodeID>
      </structuralNodeData>
   </structuralData>
</template>
