创建表单并启动流程.
第一种办法.
var doc=getCurrentDocument();
var webUser=getWebUser().getId();
var docProcess = getDocumentProcess();
var formProcess = getFormProcess();
var nForm = formProcess.doViewByFormName("到账",getApplication()); //必须的
var nDoc = docProcess.doNew(nForm,getWebUser(),createParamsTable()); //必须的
nDoc.setParent(newDocId);
nDoc.setId(记录id); //这个id可以不加入.直接使用系统默认生成<不添加这个set即可>
nDoc.setAuthor(webUser);
nDoc.setState("");
nDoc.setStateInt(256);
nDoc.setIstmp(false);
nDoc.setApplicationid(getApplication());
nDoc.setDomainid(getWebUser().getDomainid());
nDoc.setStateLabel("部门收入员认领到账");
//内容添加
nDoc.addDateItem("到账日期",doc.getItemValueAsDate("到账日期"));
nDoc.addDoubleItem("到账金额",doc.getItemValueAsDouble("到账金额"));
nDoc.addStringItem("付款单位",doc.getItemValueAsString("付款单位"));
//创建表单
docProcess.doCreate(nDoc);
var params=createParamsTable();
params.setParameter("_flowid","11e4-adc4-fb24905a-b517-695d7f9ea8d3");//流程id 去系统表 t_bL....查询
//根据记录id获取文档对象
var noDoc=findDocument(记录id);
把对象注入当前环境.
var sessionid = $WEB.getParamsTable().getParameterAsString("sessionid");
var currDocJsUtil = new Packages.cn.myapps.core.macro.util.CurrDocJsUtil(noDoc);
var scriptRunner = Packages.cn.myapps.core.macro.runner.JavaScriptFactory.
getInstance(sessionid, getApplication());
scriptRunner.declareBean("$CURRDOC", currDocJsUtil, currDocJsUtil.getClass());
//保存并启动流程.
docProcess.doStartFlow(noDoc,params,getWebUser()); 第二个节点
//保存并启动流程
docProcess.doStartFlowOrUpdate(noDoc,params,getWebUser());//启动流程 在第一个节点
把对象还原.
var sessionid = $WEB.getParamsTable().getParameterAsString("sessionid");
var currDocJsUtil = new Packages.cn.myapps.core.macro.util.CurrDocJsUtil(doc);
var scriptRunner = Packages.cn.myapps.core.macro.runner.JavaScriptFactory.
getInstance(sessionid, getApplication());
scriptRunner.declareBean("$CURRDOC", currDocJsUtil, currDocJsUtil.getClass());
另外一种生成表单的方式.
//生成流程代办!
var webUser=getWebUser();
var docProcess = getDocumentProcess();
随机生成id
var sequence=createObject("cn.myapps.util.sequence.Sequence");
var newDocId=sequence.getSequence();
var nDoc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
nDoc.setFormid("11e3-3f7f-6be939a0-91cc-5120eb2e5dd3"); //必须的
nDoc.setFormname("JSPTPD OA System/项目管理/到账/到账"); //必须的
nDoc.setId("记录id"); //必须使用随机生成id,插入此id,否者出错.
nDoc.setAuthor(webUser.getId());
nDoc.setState("");
nDoc.setStateInt(256);
nDoc.setIstmp(false);
nDoc.setApplicationid(getApplication());
nDoc.setDomainid(webUser.getDomainid());
nDoc.setStateLabel("部门收入员认领到账");
//内容添加
nDoc.addDateItem("钱","1亿");
nDoc.addStringItem("name","name");
var params=createParamsTable();
params.setParameter("_flowid","11e4-adc4-fb24905a-b517-695d7f9ea8d3");//到帐认领流程id
docProcess.doStartFlow(nDoc,params,webUser);
流程启动的时候要注意一点,那就是启动流程的人必须在第一个节点内.请注意
文档更新时间: 2023-09-16 04:05 作者:admin