1. 程式人生 > >flowable6.4.1+springboot使用dmn

flowable6.4.1+springboot使用dmn

開發十年,就只剩下這套架構體系了! >>>   

resources/dmn/strings_1.dmn

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/DMN/20151101/dmn.xsd"
             id="simple" name="Simple" namespace="http://activiti.org/dmn">
    <decision id="decision" name="Simple decision">
        <decisionTable id="decisionTable">
            <input>
                <inputExpression id="inputExpression1" typeRef="string">
                    <text>input1</text>
                </inputExpression>
            </input>
            <output id="output1" label="Output 1" name="output1" typeRef="string" />
            <rule>
                <inputEntry id="inputEntry1">
                    <text><![CDATA[.startsWith('test')]]></text>
                </inputEntry>
                <outputEntry id="outputEntry1">
                    <text>'shareniu1'</text>
                </outputEntry>
            </rule>
            <rule>
                <inputEntry id="inputEntry2">
                    <text><![CDATA[.endsWith('test')]]></text>
                </inputEntry>
                <outputEntry id="outputEntry2">
                    <text>'shareniu2'</text>
                </outputEntry>
            </rule>
        </decisionTable>
    </decision>
</definitions>

Service.java

import org.flowable.dmn.api.DmnRepositoryService;
import org.flowable.dmn.api.DmnRuleService;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class TimerRedPacketService {

    @Autowired
    private DmnRuleService dmnRuleService;

    @Autowired
    private DmnRepositoryService dmnRepositoryService;

    public void redPacket(DelegateExecution execution) {
        dmnRepositoryService.createDeployment().name("secondDeployment").disableSchemaValidation()
                .addClasspathResource("dmn/strings_1.dmn").tenantId("testTenant")
                .deploy();

        Map<String, Object> processVariablesInput = new HashMap<>();
        processVariablesInput.put("input1", "Stringtest");
        List<Map<String, Object>> result = dmnRuleService.executeDecisionByKey("decision", processVariablesInput);
        System.out.println(result.get(0).get("output1"));
    }

}

resources/flowable.dmn.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dmnEngineConfiguration" class="org.flowable.dmn.engine.impl.cfg.StandaloneDmnEngineConfiguration">
        <property name="jdbcUrl" value="jdbc:mysql://130.51.23.249:3306/flowable" />
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUsername" value="flowable" />
        <property name="jdbcPassword" value="flowable" />
    </bean>

</beans>

pom.xml

		<dependency>
			<groupId>org.flowable</groupId>
			<artifactId>flowable-spring-boot-starter-dmn</artifactId>
			<version>${flowable.version}</version>
		</dep