|
近日我司从v12.9升级到v13.2版本,应用中心触发器按二开手册传输给前端的参数不生效了,下拉框控件无法生成选项。
原来参考的是v12应用中心脚本编写指南,在通达官网产品下载页的历史资料文档页面有一个内容几乎一致的文档。
(文档链接:https://cdndown.tongda2000.com/manual/2017/2017版全新应用中心使用手册(脚本编写指南).pdf )
可以认为从17年到24年,应用中心脚本编写的规范是没有大改动的。
文档1.4节 摘选内容如下
1.4 应用中心控件数据结构
新版应用中心采取前后端分离方式实现,前端和后端采取规定好的数据结构进行通信,因此用户自己编写脚本过程中读取和设置数据时要满足规定好的结构。应用中心各控件数据3结构说明如下:
......
单选框:选项值结构为:[[“code”,”name”]],code 为代码保存值,name 为代码显示值,例如:[[“code”=>”01”,”name”=>”男”],[“code”=>”02”,”name”=>”女”]];选定值为:选择后的代码 code 值,例如:01。多选框:选项值结构与单选框一样;选定值为:数组,数组里元素为选择后的代码 code值,例如:[“01”,”02”]。下拉选择:选项值结构与单选框一样;不支持多选的选定值结构与单选框一致,支持多选的选定值结构与多选框一致。
文档1.11节 示例代码摘选如下
- $PLUGIN_UTILS->setOptionValues($plugin_s_select, [["code"=>"","name"=>""],["code"=>"01","name"=>"自提 "],["code"=>"02","name"=>"邮寄"],["code"=>"03","name"=>"送达"]]);
复制代码
根据说明,在12.6版本,我写了一个触发器脚本,具体内容如下:- function generateOptions($PLUGIN_UTILS){
- $options=$PLUGIN_UTILS->getValueByName("用户可查询部门");
- $selectorGuid=$PLUGIN_UTILS->getItemGuidByName($PLUGIN_UTILS->getFormId(),"部门");
- $optionArray=explode(",",$options);
- $optionStructure=[];
- foreach($optionArray as $val){
- array_push($optionStructure,["code"=>$val,"name"=>$val]);
- }
- $PLUGIN_UTILS->setOptionValues($selectorGuid,$optionStructure);
- return json_encode($optionStructure,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
- }
复制代码
这个脚本读取前端表单名为“用户可查询部门”控件的值,这个值的内容一般为"部门1,部门2,部门3",每个部门名字用逗号分隔,然后解析为符合参数规范的数组,将这个数组用通达应用中心工具类$PLUGIN_UTILS的方法setOptionValues,使前端表单名为“部门”的控件渲染上三个下拉选项,分别为部门1,部门2,部门3。
该代码一直到12.9版本仍可正常运行,前端应用中心表单的下拉框也可以正确加载选项,升级到13.2版本后,经测试函数仍可正常返回,应用中心的日志也没有输出报错,但前端表单的下拉框选项一直没有渲染出来。请问技术是否更改了应用中心控件数据结构?如果更改了,请求说明,谢谢!
|
最后回复时间:2025-04-18 13:57:38通达OA官方人员回复
|