Skip to content

Commit 7ee94e9

Browse files
authored
Merge pull request #51 from codingapi/dev
Dev
2 parents f4d622c + 6e356ae commit 7ee94e9

76 files changed

Lines changed: 1698 additions & 602 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

designs/groovy-script/DESiGN.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Groovy Script 脚本设计规范
2+
3+
## 脚本的实例写法如下
4+
```
5+
def run(request){
6+
return "Hello, ${request.name}!"
7+
}
8+
```
9+
10+
## 脚本规范
11+
request对象,根据脚本的不同,起传递的request对象也不同。
12+
return语句,return语句根据脚本的不同,起返回的对象也不同。
13+
14+
## 开发规范
15+
为了让脚本可以更好的呈现和使用,脚本的配置分为两种模式,一种是可视化配置模式,一种是代码配置模式。
16+
17+
* 代码配置模式
18+
代码配置模式的脚本中,将会通过注释的方式添加一行@CUSTOM_SCRIPT,来标识这是一个自定义脚本,这样在编辑器中就会以代码的形式展示出来。
19+
```
20+
// @CUSTOM_SCRIPT
21+
def run(request){
22+
return "Hello, ${request.name}!"
23+
}
24+
```
25+
26+
* 可视化配置模式
27+
可视化配置模式的脚本中,没有@CUSTOM_SCRIPT的注释标识,这样在编辑器中就会以可视化的形式展示出来。
28+
```
29+
def run(request){
30+
return "Hello, ${request.name}!"
31+
}
32+
```
33+
34+
## 脚本展示标题
35+
为了让脚本在在展示时可以更好的展示脚本的作用,所以在脚本中支持通过@SCRIPT_TITLE的注释来标识脚本的展示标题,这样在编辑器中就会以这个标题来展示脚本。
36+
37+
```
38+
// @SCRIPT_TITLE 这是一个示例脚本
39+
def run(request){
40+
return "Hello, ${request.name}!"
41+
}
42+
```
43+
上述的脚本在编辑器中就会以“这是一个示例脚本”来展示,而不是以代码的方式来展示。

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/ConditionScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99
@AllArgsConstructor
1010
public class ConditionScript {
1111

12-
public static final String SCRIPT_DEFAULT = "def run(request){return true}";
12+
public static final String SCRIPT_DEFAULT = """
13+
// @SCRIPT_TITLE 默认条件(允许执行)
14+
def run(request){
15+
return true;
16+
}
17+
""";
1318

1419
@Getter
1520
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/ErrorTriggerScript.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,19 @@
1313
public class ErrorTriggerScript {
1414

1515

16-
public static final String SCRIPT_NODE_DEFAULT = "def run(request){ return $bind.createErrorThrow(request.getStartNode()); }";
17-
18-
public static final String SCRIPT_OPERATOR_DEFAULT = "def run(request){ return $bind.createErrorThrow(request.getCreatedOperator()); }";
16+
public static final String SCRIPT_NODE_DEFAULT = """
17+
// @SCRIPT_TITLE 回退至开始节点
18+
def run(request){
19+
return $bind.createErrorThrow(request.getStartNode());
20+
}
21+
""";
22+
23+
public static final String SCRIPT_OPERATOR_DEFAULT = """
24+
// @SCRIPT_TITLE 指定用户到流程发起者
25+
def run(request){
26+
return $bind.createErrorThrow(request.getCreatedOperator());
27+
}
28+
""";
1929

2030
@Getter
2131
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/NodeTitleScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@
1212
@AllArgsConstructor
1313
public class NodeTitleScript {
1414

15-
public static final String SCRIPT_DEFAULT = "def run(request){return '你有一条待办'}";
15+
public static final String SCRIPT_DEFAULT = """
16+
// @SCRIPT_TITLE 你有一条待办
17+
def run(request){
18+
return '你有一条待办'
19+
}
20+
""";
1621

1722
@Getter
1823
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/OperatorLoadScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@
1515
@AllArgsConstructor
1616
public class OperatorLoadScript {
1717

18-
public static final String SCRIPT_CREATOR = "def run(request){return [request.getCreatedOperator()]}";
18+
public static final String SCRIPT_CREATOR = """
19+
// @SCRIPT_TITLE 流程创建者
20+
def run(request){
21+
return [request.getCreatedOperator()]
22+
}
23+
""";
1924

2025
@Getter
2126
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/OperatorMatchScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
@AllArgsConstructor
1212
public class OperatorMatchScript {
1313

14-
public static final String SCRIPT_ANY = "def run(operator){return true}";
14+
public static final String SCRIPT_ANY = """
15+
// @SCRIPT_TITLE 任意用户
16+
def run(request){
17+
return true
18+
}
19+
""";
1520

1621
@Getter
1722
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/RouterNodeScript.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import lombok.Getter;
77

88
/**
9-
* 异常触发脚本
9+
* 路由触发脚本
1010
*/
1111
@AllArgsConstructor
1212
public class RouterNodeScript {
1313

14-
1514
public static final String SCRIPT_NODE_DEFAULT = """
15+
// @SCRIPT_TITLE 发起节点
1616
def run(request){
1717
return request.getStartNode().getId();
1818
}

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/SubProcessScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@
1313
@AllArgsConstructor
1414
public class SubProcessScript {
1515

16-
public static final String SCRIPT_DEFAULT = "def run(session){ return session.toCreateRequest() }";
16+
public static final String SCRIPT_DEFAULT = """
17+
// @SCRIPT_TITLE 创建当前流程
18+
def run(request){
19+
return request.toCreateRequest()
20+
}
21+
""";
1722

1823
@Getter
1924
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/TriggerScript.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
@AllArgsConstructor
1212
public class TriggerScript {
1313

14-
public static final String SCRIPT_DEFAULT = "def run(session){ print('hello trigger node.') }";
14+
public static final String SCRIPT_DEFAULT = """
15+
// @SCRIPT_TITLE 示例触发节点(打印触发日志)
16+
def run(request){
17+
print('hello trigger node.');
18+
}
19+
""";
1520

1621
@Getter
1722
private final String script;

flow-engine-framework/src/main/java/com/codingapi/flow/script/request/BaseGroovyRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public abstract class BaseGroovyRequest {
2222
/**
2323
* 当前操作人ID
2424
*/
25-
protected Integer operatorId;
25+
protected long operatorId;
2626

2727
/**
2828
* 是否流程管理员

0 commit comments

Comments
 (0)