Example Parameters

Parameters Example: URI, Static, Dynamic, and Inheritance

Consider the following Plan layout:

Hierarchical-node plan, with Inheritance to child Action node in Config & Parms

Name: plan0
Description: planDesc
IsActive: true
Actions:
- Name: action0
  Handler:
    Type: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
    Config:
      Name: ConfigSet00
      Type: Xml
      Uri: file://C:/Synapse.UnitTests/Plans/Config/xml_in.xml
      Values:
        <CXmlDoc>
            <CNode0>CValue0_inline</CNode0>
            <CNode1>CValue1_inline</CNode1>
            <CNode3>
                <CNode3_1 CAttr3_1="CAValue3_1_inline">CValue3_1_inline</CNode3_1>
                <CNode3_2>CValue3_2_inline</CNode3_2>
            </CNode3>
        </CXmlDoc>
      Dynamic:
      - Source: cnode0Dynamic
        Target: /CXmlDoc[1]/CNode0[1]
      - Source: cnode2_1Dynamic
        Target: /CXmlDoc[1]/CNode2[1]/CNode2_1[1]
      - Source: cnode3_1Dynamic
        Target: /CXmlDoc[1]/CNode3[1]/CNode3_1[1]/@CAttr3_1
  Parameters:
    Name: ParamSet00
    Type: Xml
    Uri: file://C:/Synapse.UnitTests/Plans/Parms/xml_in.xml
    Values:
      <PXmlDoc>
          <PNode0 PAttr0="PAValue0_inline">PValue0_inline</PNode0>
          <PNode1>PValue1_inline</PNode1>
          <PNode3>
              <PNode3_1 PAttr0="PAValue0_inline">PValue3_1_inline</PNode3_1>
              <PNode3_2>PValue3_2_inline</PNode3_2>
          </PNode3>
      </PXmlDoc>
    Dynamic:
    - Source: pnode0Dynamic
      Target: /PXmlDoc[1]/PNode0[1]
    - Source: pnode2_1Dynamic
      Target: /PXmlDoc[1]/PNode2[1]/PNode2_1[1]
    - Source: pnode3_1Dynamic
      Target: /PXmlDoc[1]/PNode3[1]/PNode3_1[1]/@PAttr0
  Actions:
  - Name: action1
    Handler:
      Type: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
      Config:
        Name: ConfigSet01
        InheritFrom: ConfigSet00
        Type: Xml
        Values:
          <CXmlDoc>
              <CNode0>CValue0_inline_1</CNode0>
              <CNode3>
                  <CNode3_1 CAttr3_1="CAValue3_1_inline_1">CValue3_1_inline_1</CNode3_1>
              </CNode3>
          </CXmlDoc>
    Parameters:
      Name: ParamSet01
      InheritFrom: ParamSet00
      Type: Xml
      Values:
        <PXmlDoc>
            <PNode1>PValue1_inline_1</PNode1>
            <PNode3>
                <PNode3_1 PAttr0="PAValue0_inline_1" />
                <PNode3_2>PValue3_2_inline_1</PNode3_2>
            </PNode3>
        </PXmlDoc>

Where: Config/xml_in.xml and Parms/xml_in.xml contain:

Config:
<CXmlDoc>
    <CNode0 CAttr0="CAValue0_file">CValue0_file</CNode0>
    <CNode1>CValue1_file</CNode1>
    <CNode2>
        <CNode2_1>CValue2_1_file</CNode2_1>
        <CNode2_2>CValue2_2_file</CNode2_2>
    </CNode2>
</CXmlDoc>
Parms:
<PXmlDoc>
    <PNode0 PAttr0="PAValue0_file">PValue0_file</PNode0>
    <PNode1>PValue1_file</PNode1>
    <PNode2>
        <PNode2_1>PValue2_1_file</PNode2_1>
        <PNode2_2>PValue2_2_file</PNode2_2>
    </PNode2>
</PXmlDoc>

action0 Parameter Results

The resulting Config/Parms for action0, before any Dynamic data is applied, is:

Config:
<CXmlDoc>
  <CNode0 CAttr0="CAValue0_file">CValue0_inline</CNode0>
  <CNode1>CValue1_inline</CNode1>
  <CNode2>
    <CNode2_1>CValue2_1_file</CNode2_1>
    <CNode2_2>CValue2_2_file</CNode2_2>
  </CNode2>
  <CNode3>
    <CNode3_1 CAttr3_1="CAValue3_1_inline">CValue3_1_inline</CNode3_1>
    <CNode3_2>CValue3_2_inline</CNode3_2>
  </CNode3>
</CXmlDoc>
Parms:
<PXmlDoc>
  <PNode0 PAttr0="PAValue0_inline">PValue0_inline</PNode0>
  <PNode1>PValue1_inline</PNode1>
  <PNode2>
    <PNode2_1>PValue2_1_file</PNode2_1>
    <PNode2_2>PValue2_2_file</PNode2_2>
  </PNode2>
  <PNode3>
    <PNode3_1 PAttr0="PAValue0_inline">PValue3_1_inline</PNode3_1>
    <PNode3_2>PValue3_2_inline</PNode3_2>
  </PNode3>
</PXmlDoc>

The resulting Config/Parms for action0, after Dynamic data is applied, is:

//Key/Value pairs, as collected from an external source:
Dictionary<string, string> dynamicData = new Dictionary<string, string>();
dynamicData.Add( "cnode0Dynamic", "CValue0_dynamic" );
dynamicData.Add( "cnode2_1Dynamic", "CValue2_1_dynamic" );
dynamicData.Add( "cnode3_1Dynamic", "CValue3_1_dynamic" );
dynamicData.Add( "pnode0Dynamic", "PValue0_dynamic" );
dynamicData.Add( "pnode2_1Dynamic", "PValue2_1_dynamic" );
dynamicData.Add( "pnode3_1Dynamic", "PValue3_1_dynamic" );
Config:
<CXmlDoc>
  <CNode0 CAttr0="CAValue0_file">CValue0_dynamic</CNode0>
  <CNode1>CValue1_inline</CNode1>
  <CNode2>
    <CNode2_1>CValue2_1_dynamic</CNode2_1>
    <CNode2_2>CValue2_2_file</CNode2_2>
  </CNode2>
  <CNode3>
    <CNode3_1 CAttr3_1="CValue3_1_dynamic">CValue3_1_inline</CNode3_1>
    <CNode3_2>CValue3_2_inline</CNode3_2>
  </CNode3>
</CXmlDoc>
Parms:
<PXmlDoc>
  <PNode0 PAttr0="PAValue0_inline">PValue0_dynamic</PNode0>
  <PNode1>PValue1_inline</PNode1>
  <PNode2>
    <PNode2_1>PValue2_1_dynamic</PNode2_1>
    <PNode2_2>PValue2_2_file</PNode2_2>
  </PNode2>
  <PNode3>
    <PNode3_1 PAttr0="PValue3_1_dynamic">PValue3_1_inline</PNode3_1>
    <PNode3_2>PValue3_2_inline</PNode3_2>
  </PNode3>
</PXmlDoc>

action1 Parameter Results

The resulting Config/Parms for action1, which inherits from its config/parms from action0, is:

Config:
<CXmlDoc>
  <CNode0 CAttr0="CAValue0_file">CValue0_inline_1</CNode0>
  <CNode1>CValue1_inline</CNode1>
  <CNode2>
    <CNode2_1>CValue2_1_file</CNode2_1>
    <CNode2_2>CValue2_2_file</CNode2_2>
  </CNode2>
  <CNode3>
    <CNode3_1 CAttr3_1="CAValue3_1_inline_1">CValue3_1_inline_1</CNode3_1>
    <CNode3_2>CValue3_2_inline</CNode3_2>
  </CNode3>
</CXmlDoc>
Parms:
<PXmlDoc>
  <PNode0 PAttr0="PAValue0_inline">PValue0_inline</PNode0>
  <PNode1>PValue1_inline_1</PNode1>
  <PNode2>
    <PNode2_1>PValue2_1_file</PNode2_1>
    <PNode2_2>PValue2_2_file</PNode2_2>
  </PNode2>
  <PNode3>
    <PNode3_1 PAttr0="PAValue0_inline_1">PValue3_1_inline</PNode3_1>
    <PNode3_2>PValue3_2_inline_1</PNode3_2>
  </PNode3>
</PXmlDoc>