1. 系统代码库
- document函数
- 根据字段值获取包含该值的document
- 根据字段拆分document
- 获取webservice适配器返回值
- 创建以root为根节点的document
- 获取document根节点
- 创建Element节点
- 获取Element所有子节点
- 根据名称获取Element子节点
- 设置Element的值
- 获取Element的值
- 根据xml生成document
- 合并document
- 根据名称获取参数值
- 添加参数
- 根据字段值获取row集合
- 根据xml文件创建document
- 获取FormData数据(3.1+)
- 获取REST适配器返回值(3.1+)
- 转换表字段为List(3.1SP2+)
- 转换document为Map(3.1SP2+)
- 根据XPath获取一个字段值(3.1SP2+)
- 根据XPath获取一列字段值(3.1SP2+)
- 根据XPath设置一个节点值(3.1SP2+)
- 数据源函数
- 开发高级函数
- 调试函数
- 时间函数(3.1+)
- 字符串操作函数(3.1+)
- 数学计算(3.1+)
- 日志管理(3.1+)
1.1. document函数
1.1.1. 根据字段值获取包含该值的document
方法签名:
getDocByVal(document,name,val)
简要描述:
- 根据某个字段的值获取包含该值的Document
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
document | 是 | object | Document对象 |
name | 是 | string | 字段名 |
val | 是 | string | 字段值 |
参数传入示例
document:
<root>
<b count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
name: b2
val:a
函数调用示例
Document doc = getDocByVal(document,"b2","a");
return doc; //该操作将替换原有docment内容
函数返回说明
参数名 | 类型 | 说明 |
---|---|---|
document | object | Document对象 |
返回示例
<root>
<b>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
</b>
</root>
备注
- 无
1.1.2. 根据字段拆分document
方法签名:
splitDocByName(document, name)
简要描述:
- 根据某个字段的拆分document
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
document | 是 | object | document对象 |
name | 是 | string | 字段名 |
参数传入示例
document:
<root>
<b count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
name: b2
函数调用示例
import java.util.List;
List<Document> docList = splitDocByName(document,"b2");
函数返回说明
类型 | 说明 |
---|---|
List | 返回拆分为多个document的list对象 |
返回示例
docList.get(0):
<root>
<b>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
</b>
</root>
docList.get(1):
<root>
<b>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
备注
- 无
1.1.3. 获取webservice适配器返回值
方法签名:
getWsResult(document)
简要描述:
- 使用了Webservice适配器以后,如果返回值不满足格式不能被合并到document中,那么可以使用该方法获取Webservice适配器的返回值
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前document对象,脚本中内置了当前任务的document对象,一般不需要变动,可以直接使用 |
返回值说明
类型 | 说明 |
---|---|
Object | 返回Webservice适配器返回值,一般为String数据类型 |
使用例子
//事先的Webservice适配器调用后返回了字符串“hello world”
String wsResult = getWsResult(document);
println wsResult;
输出结果
hello world
备注
- 无
1.1.4. 创建以root为根节点的document
方法签名:
buildDoc()
简要描述:
- 快速生成以root为根节点的document
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
参数传入示例
函数调用示例
Document doc = buildDoc();
return doc; //此操作将把当前document对象替换为doc
函数返回说明
类型 | 说明 |
---|---|
object | 空document对象 |
返回示例
<root dee_isNull=true>
</root>
备注
- 无
1.1.5. 获取document根节点
方法签名:
getRootElement(document)
简要描述:
- 获取document根节点
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
document | 是 | object | document对象 |
参数传入示例
document:
<root>
<b count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
函数调用示例
Element root = getRootElement(document);
if(root != null){
for(Element e:root.getChildren()){
if(e == null) continue;
println "表名:"+e.getName(); //循环打印根节点下的所有表名
}
}
函数返回说明
类型 | 说明 |
---|---|
Element | 根节点对象 |
返回示例
备注
- 无
1.1.6. 创建Element节点
方法签名:
buildElement(document, name)
简要描述:
- 创建Element节点
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
document | 是 | object | document对象 |
name | 是 | string | 节点名 |
参数传入示例
document:
<root>
<b count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
name: table1
函数调用示例
Element e = buildElement(document, "table1");
if(e != null){
println "节点信息:"+e.toString(); //打印返回节点信息
}
函数返回说明
类型 | 说明 |
---|---|
Element | 节点名为table1的节点对象 |
返回示例
<table1 dee_isNull="true"></table1>
备注
- 无
1.1.7. 获取Element所有子节点
方法签名:
getAllChildOfElement(element)
简要描述:
- 获取element的所有子节点
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
element | 是 | object | Element对象 |
参数传入示例
element:
<root>
<b count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</b>
</root>
函数调用示例
Element root = getRootElement(document); //获取document的根节点
if(root != null){
List<Element> chds = getAllChildOfElement(root); //获取root节点的子节点
for(Element e:chds){
if(e == null) continue;
println "节点信息"+e.toString();
}
}
函数返回说明
类型 | 说明 |
---|---|
List | 返回节点的子节点集 |
返回示例
备注
- 无
1.1.8. 根据名称获取Element子节点
方法签名:
getChildByName(element, name)
简要描述:
- 根据名称获取element的子节点
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
element | 是 | object | Elementt对象 |
name | 是 | string | 节点名 |
参数传入示例
element:
<root>
<t1 count=2 totalCount=2>
<row>
<b2>a</b2>
<b1>1</b1>
</row>
<row>
<b2>b</b2>
<b1>1</b1>
</row>
</t1>
<t2 count=1 totalCount=1>
<row>
<b2>c</b2>
<b1>2</b1>
</row>
</t2>
</root>
name: t2
函数调用示例
Element root = getRootElement(document);
if(root != null){
Element e = getChildByName(root, "t2"); //获取根节点下节点名为t2的子节点
if(e != null){
println "节点"+e.toString();
}
}
函数返回说明
类型 | 说明 |
---|---|
Element | 返回对应子节点对象 |
返回示例
示例中e:
<t2 count=1 totalCount=1>
<row>
<b2>c</b2>
<b1>2</b1>
</row>
</t2>
备注
- 无
1.1.9. 设置Element的值
方法签名:
setVal2Element(element, value)
简要描述:
- 设置Element对象的value
参数:
参数名 | 类型 | 说明 |
---|---|---|
element | com.seeyon.v3x.dee.Document.Element | Element对象 |
value | Object | Element的value |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
Element id = document.getRootElement().getChild("table").getChild("row").getChild("id");//获取名称为id的Element节点
setVal2Element(id, "yangyu");//设置名称为id的Element节点的value为“yangyu”
使用方法之前输出结果
<root>
<table count=1 totalCount=1>
<row>
<name>a</name>
<id>1001</id>
</row>
</table>
</root>
输出结果
<root>
<table count=1 totalCount=1>
<row>
<name>a</name>
<id>yangyu</id>
</row>
</table>
</root>
备注
- 无
1.1.10. 获取Element的值
方法签名:
getElementValue(element)
简要描述:
- 获取Element对象的value值
参数:
参数名 | 类型 | 说明 |
---|---|---|
element | com.seeyon.v3x.dee.Document.Element | Element对象 |
返回值说明
类型 | 说明 |
---|---|
Object | Element对象的value |
使用例子
Element id = document.getRootElement().getChild("table").getChild("row").getChild("id");//获取名称为id的Element节点
println getElementValue(id);//打印名称为id的Element节点的value
输出结果
1001
备注
- 无
1.1.11. 根据xml生成document
方法签名:
createDocByXml(xml)
简要描述:
- 根据xml字符串生成document对象
参数:
参数名 | 类型 | 说明 |
---|---|---|
xml | String | XML结构的字符串 |
返回值说明
类型 | 说明 |
---|---|
com.seeyon.v3x.dee.Document | Document对象 |
使用例子
String xml = "<root><table><row><name>yangyu</name></row></table></root>";//xml格式的字符串
createDocByXml(xml);//生成document
输出结果
<?xml version=1.0 encoding=UTF-8?>
<root>
<table>
<row>
<name>yangyu</name>
</row>
</table>
</root>
备注
- 无
1.1.12. 合并document
方法签名:
mergeDoc(document1,document2)
简要描述:
- 将两个不同的document合并为一个document
参数:
参数名 | 类型 | 说明 |
---|---|---|
document1 | com.seeyon.v3x.dee.Document | 第一个document |
document2 | com.seeyon.v3x.dee.Document | 第二个document |
返回值说明
类型 | 说明 |
---|---|
com.seeyon.v3x.dee.Document | 合并后的Document对象 |
使用例子
String xml = "<root><table><row><name>yangyu</name></row></table></root>";
Document doc1 = createDocByXml(xml);//创建第一个document
String xml1 = "<root><table2><row><sex>男</sex></row></table2></root>";
Document doc2 = createDocByXml(xml1);//创建第二个document
mergeDoc(doc1,doc2);//将两个document合并
输出结果
<root>
<table count=1 totalCount=1>
<row>
<name>yangyu</name>
</row>
</table>
<table2 count=1 totalCount=1>
<row>
<sex>男</sex>
</row>
</table2>
</root>
备注
- 无
1.1.13. 根据名称获取参数值
方法签名:
getParaByName(document,name)
简要描述:
- 根据指定名称获取参数值
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的document,一般情况下不需要变动 |
name | String | 需要取值的参数名称 |
返回值说明
类型 | 说明 |
---|---|
Object | 指定名称参数的value |
使用例子
setParam(document, "myName", "yangyu");//设置参数
println getParaByName(document,"myName");//获取参数值
输出结果
yangyu
备注
- 无
1.1.14. 添加参数
方法签名:
setParam(document, name, value)
简要描述:
- 向当前DEE任务的参数容器中添加参数,添加了参数以后,后续的任何适配器都可以使用该参数
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的document,一般情况下不需要变动 |
name | String | 参数名称 |
value | Object | 参数value |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
setParam(document, "myName", "yangyu");//添加了名称为“myName”的参数
println getParaByName(document,"myName");//获取参数值
输出结果
yangyu
备注
- 无
1.1.15. 根据字段值获取row集合
方法签名:
getRowListByVal(document, name, val)
简要描述:
- 根据指定的字段名称、字段值,获取document包含该字段并且值相同的数据行集合
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的document,一般情况下不需要变动 |
name | String | 字段名称 |
value | Object | 字段值 |
返回值说明
类型 | 说明 |
---|---|
List | 数据行集合,也就是名称为“row”的Element对象集合 |
使用例子
List<Element> rows = getRowListByVal(document, "name", "yangyu");//获取所有包含“name”字段,并且值为“yangyu”的数据行集合
for(Element row : rows){//循环并打印集合内容
println getChildByName(row, "id").getValue();
}
document数据内容
<root>
<table>
<row>
<name>yangyu</name>
<id>111</id>
</row>
<row>
<name>yangyu</name>
<id>222</id>
</row>
<row>
<name>yangyu</name>
<id>333</id>
</row>
</table>
</root>
输出结果
111
222
333
备注
- 无
1.1.16. 根据xml文件创建document
方法签名:
createDocByFile(path)
简要描述:
- 根据文件创建document,但要求文件内容必须是XML格式的数据
参数:
参数名 | 类型 | 说明 |
---|---|---|
path | String | 文件绝对路径 |
返回值说明
类型 | 说明 |
---|---|
com.seeyon.v3x.dee.Document | 返回Document对象 |
使用例子
createDocByFile("/Users/yangyu/Downloads/dee.xml");//读取dee.xml中的数据,并且生成document
文件内容
<root><table><row><name>yangyu</name><sex>nan</sex></row></table></root>
输出结果
<?xml version=1.0 encoding=UTF-8?>
<root>
<table>
<row>
<name>yangyu</name>
<sex>nan</sex>
</row>
</table>
</root>
备注
- 无
1.1.17. 获取FormData数据(3.1+)
方法签名:
formDataToDoc()
简要描述:
- 直接将A8开发高级中传过来的FormData参数转换成为Document对象
- 如果该任务用于A8开发高级调用,A8开发高级会将表单数据传入DEE任务的参数容器中,名称为“FormData”
- 通过该方法,可以直接将参数容器中的“FormData”数据转换为Document对象,供后续适配器使用
参数:
参数名 | 类型 | 说明 |
---|---|---|
无 |
返回值说明
类型 | 说明 |
---|---|
com.seeyon.v3x.dee.Document | 返回Document对象 |
使用例子
formDataToDoc();//将FormData参数转换成为Document对象
输出结果
<?xml version=1.0 encoding=UTF-8?>
<root formName=表单名>
<formmain_0012>
<row>
<id>4937605540874345548</id>
<state>1</state>
<start_member_id>901373261631474415</start_member_id>
<start_date>2016-12-13 13:36:06.5</start_date>
<approve_member_id>0</approve_member_id>
<approve_date>2016-12-13 13:36:10.642</approve_date>
<finishedflag>0</finishedflag>
<ratifyflag>0</ratifyflag>
<ratify_member_id>0</ratify_member_id>
<ratify_date/>
<sort>0</sort>
<modify_member_id>901373261631474415</modify_member_id>
<modify_date>2016-12-13 13:36:06.0</modify_date>
<field0001 display=编号>123</field0001>
<field0002 display=填写日期>123</field0002>
<field0003 display=姓名>123</field0003>
<field0004 display=部门>123</field0004>
<field0005 display=岗位职务>123</field0005>
<field0006 display=印章名称-公章>123</field0006>
<field0007 display=印章名称-合同专用章>123</field0007>
<field0008 display=印章名称-法人代表名章>123</field0008>
<field0009 display=印章名称-财务专用章>123</field0009>
<field0010 display=印章名称-发票专用章>123</field0010>
<field0011 display=用印文件名称>123</field0011>
<field0012 display=用印文件数量>123</field0012>
<field0013 display=用印文件电子文档>123</field0013>
<field0014 display=用印文件重要程度>123</field0014>
<field0015 display=用印文件用途>123</field0015>
<field0016 display=部门负责人意见>123</field0016>
<field0017 display=行政部门意见>123</field0017>
<field0018 display=部门分管领导意见>123</field0018>
<field0019 display=总经理意见>123</field0019>
<field0020 display=印章使用记录-用印日期>123</field0020>
<field0021 display=印章使用记录-文件份数>123</field0021>
<field0022 display=印章使用记录-用印数量>123</field0022>
<field0023 display=印章使用记录-操作人>123</field0023>
<field0024 display=印章使用记录-说明>123</field0024>
</row>
</formmain_0012>
</root>
备注
- 无
1.1.18. 获取REST适配器返回值(3.1+)
方法签名:
getRestResult(document)
简要描述:
- 获取REST适配器返回值
- REST会尝试将返回值转换成为Document对象,如果返回值不符合Document对象格式,那么就需要使用该方法来获取返回值
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
返回值说明
类型 | 说明 |
---|---|
Object | REST适配器返回值 |
使用例子
getRestResult(document);//直接获取REST适配器返回值
输出结果
备注
- 无
1.1.19. 转换表字段为List(3.1SP2+)
方法签名:
docToListMapByTable(document,tableName)
简要描述:
- 将document内的表字段转化为List集合
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
tableName | String | document中的表名称 |
返回值说明
类型 | 说明 |
---|---|
List | List集合 |
使用例子
List<Map<String, String>> list = docToListMapByTable(document,"person");
输出结果
[[name:tom, id:1], [name:may, id:2]]
备注
- 无
1.1.20. 转换document为Map(3.1SP2+)
方法签名:
docToListMapByAll(document)
简要描述:
- 将document内的所有表转化为Map集合
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
返回值说明
类型 | 说明 |
---|---|
Map | Map集合 |
使用例子
Map<String, List<Map<String, String>>> map = docToListMapByAll(document);
输出结果
[person:[[name:tom, id:1], [name:may, id:2]]]
备注
- 无
1.1.21. 根据XPath获取一个字段值(3.1SP2+)
方法签名:
getValByXPath(document,path)
简要描述:
- 根据XPath路径获取document的某个字段值(必须指定行号)
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
path | String | 格式类似/root/tableName/row[行号]/fieldName的XPath字符串 |
返回值说明
类型 | 说明 |
---|---|
String | 对应的字段值 |
使用例子
String id = getValByXPath(document,"/root/person/row[1]/id");
输出结果
1
备注
- 无
1.1.22. 根据XPath获取一列字段值(3.1SP2+)
方法签名:
getValByXPath(document,path)
简要描述:
- 根据XPath路径获取document的某个字段这一列的值
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
path | String | 格式类似/root/tableName/row/fieldName的XPath字符串 |
返回值说明
类型 | 说明 |
---|---|
List | List集合 |
使用例子
List<String> ids = getListByXPath(document,"/root/person/row/id");
输出结果
[1, 2]
备注
- 无
1.1.23. 根据XPath设置一个节点值(3.1SP2+)
方法签名:
setValByXPath(document,path,val);
简要描述:
- 根据XPath路径设置document的某个字段的值(必须指定行号)
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 当前DEE任务的Document对象,脚本中已经内置该参数,一般不需要改变 |
path | String | 格式类似/root/tableName/row[行号]/fieldName的XPath字符串 |
var | String | 需要设置的字段值 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
setValByXPath(document,"/root/person/row[1]/id", "test");
输出结果
备注
- 无
1.2. 数据源函数
1.2.1. 执行存储过程(3.1+)
方法签名:
exeProcedure(sourceName, procedureName, inMap, outMap)
简要描述:
- 使用该方法可以调用数据库存储过程
参数:
参数名 | 类型 | 说明 |
---|---|---|
sourceName | String | 数据源名称 |
procedureName | String | 存储过程名称,如果是oracle数据库需要加包名 |
inMap | Map | 分别表示参数位置和参数值 |
outMap | Map | 分别表示参数位置和参数名(oracle存储过程游标参数需要在参数位置+100,如<101, "out_course">) |
返回值说明
类型 | 说明 |
---|---|
无 | 会将执行存储过程获取的数据合并到当前任务的document中,输出参数将会以map形式存入参数 |
使用例子
def inMap = [1:"2"];
def outMap = [2:"count",103:"res"];
exeProcedure("oracle", "test_select", inMap, outMap);//调用名称为“test_select”的存储过程,传入输出参数:2,输出参数:count、res(游标输出参数位置+100所以位置设置的103)
输出结果
<root>
<form count=3 totalCount=3>
<row>
<name>22</name>
<id>2</id>
</row>
<row>
<name>22</name>
<id>3</id>
</row>
<row>
<name>test</name>
<id>1</id>
</row>
</form>
</root>
备注
上述结果的输出参数count结果可以在document的Parameters获取,参数名:proceduresOutParms。
下面为上面调用的oracle存储过程:
CREATE OR REPLACE procedure test_select(i_id in varchar, o_count out number, o_cur out sys_refcursor) as begin select count(*) into o_count from "test"; open o_cur for select * from "test"; end;
1.2.2. 根据名称获取数据源
方法签名:
getDsByName(name)
简要描述:
- 根据名称获取数据源
参数:
参数名 | 类型 | 说明 |
---|---|---|
name | String | 数据源名称 |
返回值说明
类型 | 说明 |
---|---|
com.seeyon.v3x.dee.resource.DbDataSource | 数据源对象 |
使用例子
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;
import com.seeyon.v3x.dee.resource.DbDataSource;
DbDataSource ds = getDsByName("local"); //获取数据源
Connection connection = ds.getConnection();//获取连接
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from test";//sql
try {
stmt = connection.createStatement();
rs = stmt.executeQuery(sql);//执行sql,并获取返回值
while(rs.next()){
println( rs.getObject("id"))//打印返回值中所有“id”字段的值
}
} catch (SQLException e) {
throw e;
}finally{//释放资源,必须要做
rs.close();
stmt.close();
connection.close();
}
输出结果
1001
1002
1003
1004
备注
- 无
1.2.3. 执行SQL语句(3.1SP2+)
方法签名:
excuteBySQL(sourceName, sql);
简要描述:
- 执行增删改类型的sql
参数:
参数名 | 类型 | 说明 |
---|---|---|
sourceName | String | 数据源名称 |
sql | String | sql语句 |
返回值说明
类型 | 说明 |
---|---|
int | 数据库受影响行数 |
使用例子
int num = excuteBySQL("local_mysql", "delete from person");
输出结果
2
备注
- 无
1.3. 开发高级函数
1.3.1. 设置开发高级字符串
方法签名:
setHighSetStr(document,status,ispop,reason,remark)
简要描述:
- 使用A8开发高级时,如果要使用阻塞模式,那么必须要使用此方法设置返回值
- 该方法用于控制A8表单调用DEE任务时是否弹窗阻塞流程或者不阻塞流程
参数:
参数名 | 类型 | 说明 |
---|---|---|
document | com.seeyon.v3x.dee.Document | 脚本中自带document对象,所以在没有需要使用自定义document的情况下,该参数不需要变动 |
status | String | DEE任务执行状态,取值为”T”不阻塞流程,”F”阻塞流程 |
ispop | String | A8是否需要弹窗,取值为”Y”弹窗,”N”不弹窗;当status取值为”F”时,A8默认必须弹窗 |
reason | String | A8弹出窗口中需要显示的信息 |
remark | String | 备注,暂时作为扩展字段,未启用 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
setHighSetStr(document,"F","Y","需要阻塞A8流程","");//这个列子就代表了需要弹窗并且阻塞A8流程,并且A8弹出窗口上显示的是“需要阻塞A8流程”
输出结果
<root>
<deeblockrtn count=1 totalCount=1>
<row>
<deestatus>F</deestatus>
<dialogispop>Y</dialogispop>
<reason>需要阻塞A8流程</reason>
<remark></remark>
</row>
</deeblockrtn>
</root>
可以看到输出的document中多了一张名叫deeblockrtn的表,而A8就是通过这张表的数据来判断是否需要阻塞流程
备注
- 无
1.4. 调试函数
1.4.1. 调试
方法签名:
debug(lineNum,name,val)
简要描述:
- 使用弹出窗口显示所调式变量在任务运行到调试函数时的值
- 该函数只有在DEE可视化配置工具中有效,在A8中运行时自动无效
参数:
参数名 | 类型 | 说明 |
---|---|---|
lineNum | String | 调试函数所在脚本函数,系统自动生成,不需要用户填写 |
name | String | 所需要调试的变量名称 |
name | Object | 所需要调试的变量 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
String str = "hello world";
debug("2","str",str);
str = "hello everyone";
输出结果
参数名称:str
脚本名称:script
参数行数:2
参数值:hello world
备注
- 无
1.4.2. 中断任务(3.1+)
方法签名:
interruptTask()
简要描述:
- 使用该函数以后,当前脚本执行完成后自动终止任务
参数:
参数名 | 类型 | 说明 |
---|---|---|
无 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
if(false){
println "成功";
}
else{
interruptTask();
}
println "ok";
输出结果
ok
备注
- 注意:设置该函数后,该脚本的后续代码块会继续执行。该脚本执行完后任务将终止后续的适配器不会执行。
1.4.3. 日志打印(3.1SP1+)
方法签名:
printlnLog(msg)
简要描述:
- 将信息记录到日志文件当中
参数:
参数名 | 类型 | 说明 |
---|---|---|
msg | String | 需要打印的信息 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
printlnLog(msg);
输出结果
备注
- 无。
1.4.4. FormData模拟数据(3.1+)
方法签名:
getTestFormData(sourceName, formId)
简要描述:
- 在使用开发高级时,数据都是A8通过FormData这个参数传递进DEE里面
- 而在DEE可视化配置工具中配置任务时,无法得到该参数
- 而在后续需要使用到FormData的时候,不知道该格式是什么样子
- 所以提供模拟函数,模拟A8将FormData放入DEE中,方便在DEE可视化配置工具中调试任务
- 该方法只在DEE可视化配置工具中生效,在A8运行环境中不生效
- 所以使用该方法后,在将任务导入到A8当中,A8开发高级会传入带有正确数据的FormData
参数:
参数名 | 类型 | 说明 |
---|---|---|
sourceName | String | A8数据源名称 |
formId | String | 表单id,该id在A8数据库表FORM_DEFINITION中可查到 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值,但会将FormData模拟数据放入当前document参数中 |
使用例子
getTestFormData("a8", "-8848292964178769632");//模拟FormData数据,数据源名称为“a8”,表单id为“-8848292964178769632”
输出结果
会看到DEE参数中多了一个FormData参数
备注
- 无
1.5. 时间函数(3.1+)
1.5.1. 当前时间
方法签名:
date_now()
简要描述:
- 获取当前系统时间
参数:
参数名 | 类型 | 说明 |
---|---|---|
无 |
返回值说明
类型 | 说明 |
---|---|
String | 时间字符串,格式为yyyy-MM-dd HH:mm:ss |
使用例子
println(date_now());
输出结果
2016-12-26 14:38:53
备注
- 无
1.6. 字符串操作函数(3.1+)
1.6.1. 分割字符串
方法签名:
str_split(str,separator)
简要描述:
- 通过指定字符串分割原字符串
参数:
参数名 | 类型 | 说明 |
---|---|---|
str | String | 原字符串 |
separator | String | 分割字符串 |
返回值说明
类型 | 说明 |
---|---|
String | 字符串数组 |
使用例子
String str = "hello#world#everyone";
String[] stringList = str_split(str,"#");
for(String s : stringList){
println(s);
}
输出结果
hello
world
everyone
备注
- 无
1.6.2. 截取字符串
方法签名:
str_sub(str,fromIndex,toIndex)
简要描述:
- 截取指定长度,任意位置的字符串
参数:
参数名 | 类型 | 说明 |
---|---|---|
str | String | 原字符串 |
fromIndex | int | 开始位置 |
toIndex | int | 结束位置 |
返回值说明
类型 | 说明 |
---|---|
String | 所截取字符串 |
使用例子
String str = "hello world";
int length = str.length();
println(str_sub(str,0,0)); //两个值相同,那么返回值固定为“”
println(str_sub(str,0,length));//截取所有
println(str_sub(str,0,5));//截取0到5的字符,不包含第5个字符
输出结果
//第一个截取为“”
hello world //截取所有
hello //截取0到5
备注
- 无
1.6.3. 字符串是否为空
方法签名:
str_isEmpty(str)
简要描述:
- 判断字符串是否为空
参数:
参数名 | 类型 | 说明 |
---|---|---|
str | String | 指定需要判断的字符串 |
返回值说明
类型 | 说明 |
---|---|
boolean | 当参数为null,或者字符串为“”时都会放回true,否则返回false |
使用例子
String str = "";
println(str_isEmpty(str));
输出结果
true
备注
- 无
1.6.4. 是否以指定字符串开头
方法签名:
str_startWith(str,prefix,isIgnoreCase)
简要描述:
- 是否以指定字符串开头
参数:
参数名 | 类型 | 说明 |
---|---|---|
str | String | 指定需要判断的字符串 |
prifix | String | 判断的前缀 |
isIgnoreCase | boolean | 判断时是否忽略大小写 |
返回值说明
类型 | 说明 |
---|---|
boolean | 返回true或者false |
使用例子
String str = "Hello world";
String prefix = "hello";
println(str_startWith(str,prefix,true));
输出结果
true
备注
- 无
1.7. 数学计算(3.1+)
1.7.1. 数字金额大小写转换
方法签名:
math_digitUppercase(number)
简要描述:
- 将数字的金额转换为中文大写数字
参数:
参数名 | 类型 | 说明 |
---|---|---|
number | 数字类型 | 数字类型的参数 |
返回值说明
类型 | 说明 |
---|---|
String | 返回中文大写数字 |
使用例子
println(math_digitUppercase(33333));
输出结果
叁万叁仟叁佰叁拾叁元整
备注
- 无
1.7.2. 加法
方法签名:
math_add(number1, number2)
简要描述:
- 加法算数运算,不丢失精度
参数:
参数名 | 类型 | 说明 |
---|---|---|
number1 | 数字类型 | 加数1 |
number2 | 数字类型 | 加数2 |
返回值说明
类型 | 说明 |
---|---|
数字类型 | 运算结果 |
使用例子
println math_add(11.333, 22.444);
输出结果
33.777
备注
- 无
1.8. 日志管理(3.1+)
1.8.1. 日志清理
方法签名:
clearLogs(day)
简要描述:
- 用于清理指定天数前的日志
参数:
参数名 | 类型 | 说明 |
---|---|---|
day | int | 清理多少天前的日志 |
返回值说明
类型 | 说明 |
---|---|
void | 没有返回值 |
使用例子
int day = 30;
clearLogs(30); //会清理30天前的日志
备注
- 无