dsntk-examples 0.3.0

ÐecisionToolkit | Examples
Documentation
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions namespace="http://www.actico.com/spec/DMN/0.1.0/0031-user-defined-functions"
             name="0031-user-defined-functions"
             id="_2729c10a-9344-49d4-9b79-a8e2401fa447"
             xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/"
             xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/"
             xmlns:dmndi="https://www.omg.org/spec/DMN/20191111/DMNDI/"
             xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/">
    <itemDefinition name="tFnLibrary" id="_fKdL0IDJEee-MeWXoLgrYg">
        <itemComponent name="sumFn" id="_gtkkYIDJEee-MeWXoLgrYg"/>
        <itemComponent name="subFn" id="_pRj-sIDJEee-MeWXoLgrYg"/>
        <itemComponent name="multiplyFn" id="_l_GGYIDfEee-MeWXoLgrYg"/>
        <itemComponent name="divideFn" id="_pOrn0IDfEee-MeWXoLgrYg"/>
    </itemDefinition>
    <itemDefinition name="tFnInvocationPositionalResult" id="_xuQ0YIJtEee4zOLdFxCBaA">
        <itemComponent name="sumResult" id="_GDzKIIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="divisionResultPositional" id="_IpHmkIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="multiplicationResultPositional" id="_OmarcIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
    </itemDefinition>
    <itemDefinition name="tFnInvocationNamedResult" id="_0BpzUIJtEee4zOLdFxCBaA">
        <itemComponent name="subResult" id="_Ua9c8IJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="subResultMixed" id="_XCUgwIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="divisionResultNamed" id="_XKOfkIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="multiplicationResultNamed" id="_afyGIIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
    </itemDefinition>
    <itemDefinition name="tFnInvocationComplexParamsResult" id="_1O2mQIJtEee4zOLdFxCBaA">
        <itemComponent name="functionInvocationLiteralExpressionInParameter" id="_fTiwEIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="functionInvocationInParameter" id="_fb73EIJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
        <itemComponent name="circumference" id="_fdbr4IJuEee4zOLdFxCBaA">
            <typeRef>number</typeRef>
        </itemComponent>
    </itemDefinition>
    <decision name="fn library" id="_q2qzIH6LEeePe9Zmt-encA">
        <variable typeRef="tFnLibrary" name="fn library" id="_mRL98YDJEee-MeWXoLgrYg"/>
        <context id="_zl1isH6LEeePe9Zmt-encA">
            <contextEntry>
                <variable name="sumFn" id="_tc5HIH6OEeePe9Zmt-encA"/>
                <literalExpression id="_tc5HIX6OEeePe9Zmt-encA">
                    <text>function(a,b) a+b</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="subFn" id="_2WC5IH6OEeePe9Zmt-encA"/>
                <literalExpression id="_oUtvYIDeEee-MeWXoLgrYg">
                    <text>function(a,b) a-b</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="multiplyFn" id="_8_UCEIDREee-MeWXoLgrYg"/>
                <functionDefinition id="_vB1ssID0Eeehqsf_bU54Lw">
                    <formalParameter typeRef="number" name="a" id="_vqaIkID0Eeehqsf_bU54Lw"/>
                    <formalParameter typeRef="number" name="b" id="_vqaIkYD0Eeehqsf_bU54Lw"/>
                    <literalExpression id="_vHGAJYD0Eeehqsf_bU54Lw">
                        <text>a*b</text>
                    </literalExpression>
                </functionDefinition>
            </contextEntry>
            <contextEntry>
                <variable name="divideFn" id="_SgHREIDSEee-MeWXoLgrYg"/>
                <literalExpression id="_kG65QIDeEee-MeWXoLgrYg">
                    <text>function(a,b) if b = 0 then null else a/b</text>
                </literalExpression>
            </contextEntry>
        </context>
    </decision>
    <decision name="fn invocation positional parameters" id="_AfhOEH6QEeePe9Zmt-encA">
        <variable typeRef="tFnInvocationPositionalResult" name="fn invocation positional parameters" id="_rwrh8YDIEee-MeWXoLgrYg"/>
        <informationRequirement id="f1a77547-c863-4c5c-8c40-c7118c9c56a7">
            <requiredDecision href="#_q2qzIH6LEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="dca29f13-f7aa-45a6-8744-0cb9615c11b5">
            <requiredInput href="#_48BAYH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="_1080c15e-bc84-4473-99f3-1b8ea7d12e61">
            <requiredInput href="#_5eBhQH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <context id="_JvSJQX6QEeePe9Zmt-encA">
            <contextEntry>
                <variable name="sumResult" id="_TEHYYH6VEeePe9Zmt-encA"/>
                <literalExpression id="_TEHYYX6VEeePe9Zmt-encA">
                    <text>fn library.sumFn(inputA,inputB)</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="multiplicationResultPositional" id="_6AipMIDkEee-MeWXoLgrYg"/>
                <literalExpression id="_6AipMYDkEee-MeWXoLgrYg">
                    <text>fn library.multiplyFn(inputA,inputB)</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="divisionResultPositional" id="_ML3Y4IDfEee-MeWXoLgrYg"/>
                <literalExpression id="_ML3Y4YDfEee-MeWXoLgrYg">
                    <text>fn library.divideFn(inputA, inputB)</text>
                </literalExpression>
            </contextEntry>
        </context>
    </decision>
    <decision name="fn invocation named parameters" id="_yHl3UIDhEee-MeWXoLgrYg">
        <variable typeRef="tFnInvocationNamedResult" name="fn invocation named parameters" id="_eApsUYDjEee-MeWXoLgrYg"/>
        <informationRequirement id="_821bbeda-972a-489b-9467-9bdefd14b793">
            <requiredInput href="#_5eBhQH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="_27388fbc-fcc5-42f8-8746-21e32ff59cc2">
            <requiredInput href="#_48BAYH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="_763526d2-0b83-40c0-81cf-faf961f3e2ab">
            <requiredDecision href="#_q2qzIH6LEeePe9Zmt-encA"/>
        </informationRequirement>
        <context id="_zq6EMYDhEee-MeWXoLgrYg">
            <contextEntry>
                <variable name="subResult" id="_zq6rRYDhEee-MeWXoLgrYg"/>
                <literalExpression id="_zq6rR4DhEee-MeWXoLgrYg">
                    <text>fn library.subFn(a:inputA,b:inputB)</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="multiplicationResultNamed" id="_zq6rTYDhEee-MeWXoLgrYg"/>
                <literalExpression id="_zq6rT4DhEee-MeWXoLgrYg">
                    <text>fn library.multiplyFn(a:inputA,b:inputB)</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="subResultMixed" id="_zq6rUYDhEee-MeWXoLgrYg"/>
                <literalExpression id="_zq6rU4DhEee-MeWXoLgrYg">
                    <text>fn library.subFn(a:inputB, b:inputA)</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="divisionResultNamed" id="_zq6rWYDhEee-MeWXoLgrYg"/>
                <literalExpression id="_zq6rW4DhEee-MeWXoLgrYg">
                    <text>fn library.divideFn(a:inputA, b:inputB)</text>
                </literalExpression>
            </contextEntry>
        </context>
    </decision>
    <decision name="fn invocation complex parameters" id="_b-gD0IDiEee-MeWXoLgrYg">
        <variable typeRef="tFnInvocationComplexParamsResult" name="fn invocation complex parameters" id="_vU2_EYDjEee-MeWXoLgrYg"/>
        <informationRequirement id="_9c0d7e05-550b-4b5d-a99f-455c098509f5">
            <requiredInput href="#_48BAYH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="_7e19ca95-b730-48ee-9731-b53e9ffd3835">
            <requiredInput href="#_5eBhQH6PEeePe9Zmt-encA"/>
        </informationRequirement>
        <informationRequirement id="ebeebf51-f5bd-4dd0-972c-f964100c6f0d">
            <requiredDecision href="#_q2qzIH6LEeePe9Zmt-encA"/>
        </informationRequirement>
        <knowledgeRequirement id="_548a994a-9a94-4df4-8245-eaefde56cb58">
            <requiredKnowledge href="#_8xmTAIDNEee-MeWXoLgrYg"/>
        </knowledgeRequirement>
        <context id="_eA6AcYDiEee-MeWXoLgrYg">
            <contextEntry>
                <variable name="functionInvocationInParameter" id="_eA6Aj4DiEee-MeWXoLgrYg"/>
                <literalExpression id="_eA6AkYDiEee-MeWXoLgrYg">
                    <text>fn library.multiplyFn(fn library.sumFn(inputA,inputA), fn library.sumFn(a:inputB, b:inputB))</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="functionInvocationLiteralExpressionInParameter" id="_eA6Ak4DiEee-MeWXoLgrYg"/>
                <literalExpression id="_eA6AlYDiEee-MeWXoLgrYg">
                    <text>fn library.multiplyFn(inputA * inputA, if fn library.subFn(inputA,inputB) in [0..10] then 5 else 10 )</text>
                </literalExpression>
            </contextEntry>
            <contextEntry>
                <variable name="circumference" id="_MrFpgID1Eeehqsf_bU54Lw"/>
                <literalExpression id="_MrFpgYD1Eeehqsf_bU54Lw">
                    <text>Circumference(inputA+inputB)</text>
                </literalExpression>
            </contextEntry>
        </context>
    </decision>
    <businessKnowledgeModel name="Circumference" id="_8xmTAIDNEee-MeWXoLgrYg">
        <variable name="Circumference"/>
        <encapsulatedLogic id="_92KuYIDNEee-MeWXoLgrYg">
            <formalParameter typeRef="number" name="radius" id="_3xWKkIDgEee-MeWXoLgrYg"/>
            <literalExpression typeRef="number" id="_92KuYYDNEee-MeWXoLgrYg">
                <text>(2*3.141592) * radius</text>
            </literalExpression>
        </encapsulatedLogic>
    </businessKnowledgeModel>
    <inputData name="inputA" id="_48BAYH6PEeePe9Zmt-encA">
        <variable typeRef="number" name="inputA" id="_XMnoAIDIEee-MeWXoLgrYg"/>
    </inputData>
    <inputData name="inputB" id="_5eBhQH6PEeePe9Zmt-encA">
        <variable typeRef="number" name="inputB" id="_Y5qYoYDIEee-MeWXoLgrYg"/>
    </inputData>
    <dmndi:DMNDI>
        <dmndi:DMNDiagram id="_pKGjoH6LEeePe9Zmt-encA_D1">
            <dmndi:Size height="650.0" width="1094.0"/>
            <dmndi:DMNShape dmnElementRef="_q2qzIH6LEeePe9Zmt-encA" id="_pKGjoH6LEeePe9Zmt-encA_s1">
                <dc:Bounds height="61.0" width="154.0" x="150.0" y="331.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_AfhOEH6QEeePe9Zmt-encA" id="_pKGjoH6LEeePe9Zmt-encA_s2">
                <dc:Bounds height="61.0" width="154.0" x="150.0" y="150.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_yHl3UIDhEee-MeWXoLgrYg" id="_pKGjoH6LEeePe9Zmt-encA_s3">
                <dc:Bounds height="61.0" width="154.0" x="364.0" y="150.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_b-gD0IDiEee-MeWXoLgrYg" id="_pKGjoH6LEeePe9Zmt-encA_s4">
                <dc:Bounds height="61.0" width="154.0" x="578.0" y="150.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_8xmTAIDNEee-MeWXoLgrYg" id="_pKGjoH6LEeePe9Zmt-encA_s5">
                <dc:Bounds height="61.0" width="154.0" x="790.0" y="331.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_48BAYH6PEeePe9Zmt-encA" id="_pKGjoH6LEeePe9Zmt-encA_s6">
                <dc:Bounds height="60.0" width="153.0" x="364.0" y="331.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNShape dmnElementRef="_5eBhQH6PEeePe9Zmt-encA" id="_pKGjoH6LEeePe9Zmt-encA_s7">
                <dc:Bounds height="60.0" width="153.0" x="577.0" y="331.0"/>
            </dmndi:DMNShape>
            <dmndi:DMNEdge dmnElementRef="f1a77547-c863-4c5c-8c40-c7118c9c56a7" id="_pKGjoH6LEeePe9Zmt-encA_e1">
                <di:waypoint x="227.0" y="331.0"/>
                <di:waypoint x="227.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="dca29f13-f7aa-45a6-8744-0cb9615c11b5" id="_pKGjoH6LEeePe9Zmt-encA_e2">
                <di:waypoint x="440.0" y="331.0"/>
                <di:waypoint x="227.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_1080c15e-bc84-4473-99f3-1b8ea7d12e61" id="_pKGjoH6LEeePe9Zmt-encA_e3">
                <di:waypoint x="653.0" y="331.0"/>
                <di:waypoint x="227.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_821bbeda-972a-489b-9467-9bdefd14b793" id="_pKGjoH6LEeePe9Zmt-encA_e4">
                <di:waypoint x="653.0" y="331.0"/>
                <di:waypoint x="441.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_27388fbc-fcc5-42f8-8746-21e32ff59cc2" id="_pKGjoH6LEeePe9Zmt-encA_e5">
                <di:waypoint x="440.0" y="331.0"/>
                <di:waypoint x="441.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_763526d2-0b83-40c0-81cf-faf961f3e2ab" id="_pKGjoH6LEeePe9Zmt-encA_e6">
                <di:waypoint x="227.0" y="331.0"/>
                <di:waypoint x="441.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_548a994a-9a94-4df4-8245-eaefde56cb58" id="_pKGjoH6LEeePe9Zmt-encA_e7">
                <di:waypoint x="867.0" y="331.0"/>
                <di:waypoint x="655.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_9c0d7e05-550b-4b5d-a99f-455c098509f5" id="_pKGjoH6LEeePe9Zmt-encA_e8">
                <di:waypoint x="440.0" y="331.0"/>
                <di:waypoint x="655.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="_7e19ca95-b730-48ee-9731-b53e9ffd3835" id="_pKGjoH6LEeePe9Zmt-encA_e9">
                <di:waypoint x="653.0" y="331.0"/>
                <di:waypoint x="655.0" y="211.0"/>
            </dmndi:DMNEdge>
            <dmndi:DMNEdge dmnElementRef="ebeebf51-f5bd-4dd0-972c-f964100c6f0d" id="_pKGjoH6LEeePe9Zmt-encA_e10">
                <di:waypoint x="227.0" y="331.0"/>
                <di:waypoint x="655.0" y="211.0"/>
            </dmndi:DMNEdge>
        </dmndi:DMNDiagram>
    </dmndi:DMNDI>
</definitions>