天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2641|回复: 12

[其他] 如何用脚本往一个表单插入一条记录

[复制链接]
派活园 发表于 2013-9-10 16:20:05 | 显示全部楼层 |阅读模式
本帖最后由 kimi 于 2014-2-27 15:50 编辑

如题,用脚本实现网一个表单插入一条记录~
sophie 发表于 2013-9-10 16:23:07 | 显示全部楼层
您好,您可以参考该帖子实现:http://teemlink.com/bbs/viewthre ... hlight=%B2%E5%C8%EB。您先尝试,有问题再沟通。
 楼主| 派活园 发表于 2013-9-11 15:41:52 | 显示全部楼层
回复 2# sophie


    有问题,出现无法创建文档的提示~~
sophie 发表于 2013-9-11 15:47:20 | 显示全部楼层
您好,能否提供详细一些的信息呢?方便我们这边定位问题,谢谢。或是远程看一下您的操作。
ps 号:1797595452
 楼主| 派活园 发表于 2013-9-11 15:49:37 | 显示全部楼层
回复 4# sophie


    就用脚本插入往表单插入记录的时候,出现文档不能创建提示,没有了~
sophie 发表于 2013-9-11 15:51:08 | 显示全部楼层
请您找一下我
 楼主| 派活园 发表于 2013-9-11 16:01:26 | 显示全部楼层
回复 6# sophie

附保存按钮执行前脚本:
    #include "mylib";
var joins = getParameterAsText("checkItem");
println("joins:"+joins);
var j_array = splitText(joins,";");
var document = getCurrentDocument();
for(var i=0;i<j_array.length;i++){
var process = getDocumentProcess();
var process1 = getDocumentProcess();
var formProcess = getFormProcess();
var formObj = formProcess.doView("11e1-93fd-4eb5c69a-8351-d7a26c74ffc3");
var doc = process.doNew(formObj,getWebUser(),createParamsTable());
doc.addStringItem("applier",document.getItemValueAsString("applier"));
doc.addStringItem("name",document.getItemValueAsString("name"));
doc.addStringItem("itemType",j_array);
doc.addStringItem("mobile",document.getItemValueAsString("mobile"));
doc.addStringItem("contactPerson",document.getItemValueAsString("contactPerson"));
doc.addStringItem("address",document.getItemValueAsString("address"));
doc.addStringItem("telephone",document.getItemValueAsString("telephone"));
doc.addStringItem("arriveTime",getToday());
doc.addStringItem("state","01");
var matter = getMatterByID(j_array);
var documentType = matter.get("item_fw_bj_type");
var promiseDay = matter.get("item_fw_cn_timelimit");
var deptId = matter.get("item_fw_department");
doc.addStringItem("documentType",documentType);
doc.addStringItem("promiseDay",promiseDay);
doc.addStringItem("jtype","20");
var depprocess=getDepartmentProcess();
var dep=depprocess.doView(deptId);
var deptCode=dep.getCode();
var sn = countNext2(deptCode,true,true,true,5);
doc.addStringItem("id",sn);
doc.addStringItem("receiveDepartment",deptId);
doc.addStringItem("joint_start_id",document.getId());
println(doc);
var process1 = getDocumentProcess();
process1.doCreate(doc);
}
kimi 发表于 2013-9-11 16:04:39 | 显示全部楼层
您好:请问您对应的表单是否绑定了流程,如果绑定了流程,麻烦您确认下当前登录用户是否有对应流程第一个节点的权限。
sophie 发表于 2013-9-11 17:52:50 | 显示全部楼层
这个问题远程与客户调试,脚本上没有什么错误,现在的做法是让客户先不要一下子插入那么多字段,先验证doCreate(doc);这个方法是ok的,所以你先调试一下,只插入一个字段如name字段看能否插入成功,如果可以那应该是插入字段类型的问题,你就一个一个去添加,如果 是数字类型则用.addIntItem() 如果是大文本字段则用text 另外 我们建议你不采用doc.addStringItem方式插入数据,建议你使用doc.findItem("字段名").setValue() 的方式插入数据 。目前客户在调试,后期会跟进。
 楼主| 派活园 发表于 2013-9-12 17:15:05 | 显示全部楼层
回复 9# sophie


    这个这两天我们会尽快按照你们的建议去调试,有问题会再提~

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 03:01

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表