MyApps Iscript常用代码

1、数据查询

var dql1 = "select * from tlk_aa where istmp=0 ";
var datas1 = queryBySQL(dql1);						//
if(datas1!=null && datas1.size()>0){
	for(var iter1 = datas1.iterator();iter1.hasNext();){
		var doc1 = iter1.next();
	}
}

2、选项脚本

var opts=createOptions();
opts.add("","");
var dql1 = "select * from tlk_aa where istmp=0 ";
var datas1 = queryBySQLNoPage(dql1);						//
if(datas1!=null && datas1.size()>0){
	for(var iter1 = datas1.iterator();iter1.hasNext();){
    	var doc1 = iter1.next();
            opts.add(doc1.getItemValueAsString("AA") , doc1.getId())
	}
}
opts

3、部门

//当前人默认部门Id
getWebUser().getDefaultDepartment();

//根据部门id获取部门名称
var process = createProcess("cn.myapps.core.department.ejb.DepartmentProcess");//部门业务处理类
var dept=process.doView(id);//id为部门ID,获取部门对象
var name=dept.getName();//获取部门名称

4、获取当前人

var rtn = getItemValueAsString("申请人");
if(!isNotNull(rtn)){
    rtn = getWebUser().getName();
}
rtn;

5、获取当前日期

var retvar =getItemValueAsDate("Fd_Time");
if(retvar==null) {
    retvar = getToday();
}
format(retvar,"yyyy-MM-dd");

6、抄送角色和指定人员

#include "SystemRole"
var sp1 = getNewRoleIdByName2("董事会");
var sp2 = getCurrentDocument().getAuthor().getId();	//申请人
var allspr = sp1+";"+sp2
var arr = splitText(allspr,";");
var userlist = createObject("java.util.ArrayList");
for (var i=0;i<arr.length;i++){
    if(arr[i] != null && arr[i].trim().length() > 0){
		userlist.add(getUserById(arr[i]));
    }
}
userlist;

7、创建表单

//创建有流程的表单
var curdoc = getCurrentDocument();
var LXID = getItemValueAsString("LXID");
var bdid = curdoc.getId();
var Fd_ProjName = getDocItemValueAsString(LXID,"Fd_ProjName");
var process = getDocumentProcess();
var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
var flowid="11e9-f3cf-60c2ce60-b04c-6f92c4c166e6";
var form = formProcess.doViewByFormName("FMPM_DesiTaskCardBySign",getApplication());
var xmjl = curdoc.getItemValueAsString("Fd_RWXDR");

var user = getUserById(xmjl);
var tuser = new Packages.cn.myapps.core.user.action.WebUser(user);
var doc = process.doNew(form,tuser,new Packages.cn.myapps.base.action.ParamsTable());
doc.setFlowid(flowid); 
var params =new Packages.cn.myapps.base.action.ParamsTable();

doc.addStringItem("pid",LXID);
doc.addStringItem("Fd_ReQueMan",xmjl);
doc.addStringItem("Fd_ProjName",Fd_ProjName);
doc.addStringItem("QRDId",bdid);
params.setParameter("_flowid",flowid);
getDocumentProcess().doStartFlowOrUpdate(doc,params,tuser);

//创建普通表单
var user = getUserById(xmjl);
var tuser = new Packages.cn.myapps.core.user.action.WebUser(user);
var processfunc = getDocumentProcess();
var formProcessfunc = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
var arr = splitText(names, ",");
for (var i=0;i<arr.length;i++){
	if(!arr[i].equals("")){
		var form2 = formProcessfunc.doViewByFormName("Fm_ScoringEdit",getApplication());
		var doc2 = processfunc.doNew(form2,tuser,new Packages.cn.myapps.base.action.ParamsTable());
		doc2.addStringItem("GLID",pid);
		doc2.addStringItem("XMID",xmid);
		doc2.addDateItem("Fd_Stime",getToday());
		doc2.addDateItem("Fd_PlanEtime",etime);
		doc2.addStringItem("Fd_FormName",formnames);
		doc2.addStringItem("Fd_flowNames",flownames);
		doc2.addStringItem("Fd_Name",arr[i]);
		doc2.setParent(pid);
		processfunc.doCreate(doc2);
	}
}

8、表单链接

//弹出新表单连接:
getParamsTable().getContextPath()+"/portal/dynaform/document/new.action?_formid=11e8-bd41-118a72d5-82e3-b9c966406ea7&_isJump=1"

//弹出旧表单链接:
var url = getContextPath()+"/portal/dynaform/document/view.action?";
url += "_docid="+getCurrentDocument().getId()+"&_formid="+getCurrentDocument().getFormid();
url += "&application="+getApplication();

//弹出模板表单链接:
url += getContextPath()+"/portal/dynaform/document/view.action?";
url += "_docid="+getCurrentDocument().getId()+"&_formid="+getCurrentDocument().getFormid();
url += "&application="+getApplication()+"&_templateForm="+mudeID+"&isRelate=false";

9、Java函数的使用

var util = new Packages.cn.myapps.core.dynaform.custom.action.HuahanDataHelper;
util.updateProjectSpaceName("11e9-f3a4-98eebed7-b237-9b24b2212da4");

10、系统函数

//弹出对话框是否执行,和js的confirm一样
createConfirm("是否提交?")

11、JavaScript

//打开层方法
function OpenDiaDialog(url){
	var opener = window.top;//从哪个页面打开弹出框,例如:window本页面/window.parent父页面/top顶级页面...
	opener.JHKJ.dialog.show({
		refreshOpener: false,//是否刷新弹出框的打开页面
		refreshTrigger:false,//是否刷新触发弹出框的页面
		trigger: window,//传入触发弹出框的本页面,默认值无值时为打开弹出框的页面
		maximized: false,//是否允许弹出框最大化,默认不填则允许最大化
		width: '1500',//弹出框宽度
		height: '800',//弹出框高度,不能为百分比
		url: url,//弹出框的地址
		args: {},//传入弹出框的参数,这里的形式自己定义,可为数组/对象/字符串...
		title: '',//弹出框的标题
		close: function(rtVal) {//弹出框的回调函数,返回值
			dy_refresh("")
		}
	});
}
//普通打开
function openForms(url,backurl,target){
	if(backurl==""){
		backurl = window.location.href;
	}if(target==""){
		target = "_self";
	}
	if(url.indexOf("&")!=-1){
		window.open(url+"&_backURL="+encodeURIComponent(backurl),target)
	}else{
		window.open(url+"?_backURL="+encodeURIComponent(backurl),target)
	}
}

12、截取字符串

AA.substr(0,0)

13、HashMap的使用

var map = createObject("java.util.HashMap");
map.put("apple", "新鲜的苹果");      //向集合中添加对象
map.put("computer", "配置优良的计算机");
map.put("book", "堆积成山的图书");
var key = "book"; 
map.containsKey(key);//map是否包含了某个key
for(var iter2 = map.entrySet().iterator();iter2.hasNext();){
	var maps = iter2.next();
	var keyI = maps.getKey();	//key[员工编号]
}

map.size();	//数量

14、json的使用

//json例子
var content = '[{"类型":"项目负责人","姓名":"张三", "比例":"50"},{"类型":"项目负责人","姓名":"李四", "比例":"20"}]'
var json1 = createObject("net.sf.json.JSONArray");	//net.sf.json.JSONObject = = = = net.sf.json.JSONArray
var jsonArray = json1.fromObject(content);
for(var i = 0 ; i < jsonArray.size() ; i++){
	var jsonObject = jsonArray.getJSONObject(i);
	//println("啊啊啊啊啊啊啊啊啊啊啊啊:"+jsonObject.get("姓名"))
}

15、视图选择框缺陷处理

var rtn = getItemValueAsString("Fd_Mark");
rtn = replaceString(rtn,"\r","");	//视图选择框要去掉换行符,否则无法选择
rtn = replaceString(rtn,"\n","");	//视图选择框要去掉换行符,否则无法选择
rtn

16、数据库操作

//设置密码为a
update t_user set loginpwd = '0ceb614c418d06e3b9b1ee4c2fc43685'

//多个审批环节的时候删除某个
SELECT * FROM t_flow_intervention WHERE docid="11e9-5ab1-b2a9947f-b41b-fd2e1f293e2e"
#流程状态
SELECT * FROM t_flowstatert WHERE docid="11e8-0700-ed8c9dce-bad4-558174c9ae7c"
#流程节点信息表
SELECT * FROM t_nodert WHERE docid="11e9-5ab1-b2a9947f-b41b-fd2e1f293e2e"
#表单信息表
SELECT id,statelabel FROM tlk_xxx WHERE id="11e9-5ab1-b2a9947f-b41b-fd2e1f293e2e"
#文档信息表
SELECT id,statelabel FROM t_document WHERE id="11e9-5ab1-b2a9947f-b41b-fd2e1f293e2e"

//数据库操作:设置流程管理【挂起】
UPDATE t_nodert SET ISSUSPEND = 1 WHERE  docid='11e9-5a76-45242c17-b41b-fd2e1f293e2e'

//删除多余的数据
var sql = " DELETE FROM tlk_Fm_AttendaceResult WHERE ";
sql += " id NOT IN ( ";
sql += " SELECT dt.maxID FROM( SELECT MAX(id) AS maxID FROM tlk_Fm_AttendaceResult GROUP BY item_recdate , item_Fd_UserName) dt ";
sql += " ) ";
deleteByDSName("huahangl",sql)

17、流程

//流程设计的表结构
t_flowstatert 是存储当前文档流程状态的表 通过docid 与t_document 表关联
t_t_nodert 存储的是文档流程状态下的所处的节点信息 通过 flowstatert_id 与t_flowstatert关联
t_actorrt 储存的是文档流程状态所处的某个节点的处理人信息 通过 nodert_id与t_t_nodert 关联

18、底层

HttpSession session = request.getSession();
//获取application
String appid = (String) session.getAttribute(Web.SESSION_ATTRIBUTE_APPLICATIONID);
//获取当前登录人
WebUser webUser = (WebUser) session.getAttribute(Web.SESSION_ATTRIBUTE_FRONT_USER);

19、流程BUG用iscript修复

//iscript修复【暂无审批人】,然后在流程管理调整审批环节即可。
var OneSequence2 = createObject("cn.myapps.util.sequence.Sequence");
var thisId = OneSequence2.getSequence();
var flowName = "设计院/中心";
var noderId = "1515059436718";
var flowId = "11e9-f0a9-061e780a-a3b8-c7065e657909";
var docId = "11ec-7e4b-f5d3fb96-b469-e326b91ec60d"
var FLOWSTATERT_ID = "11ec-7e4b-f6217f10-b469-e326b91ec60d";	//找到对应的t_flowstatert的id
var domainId = "11e6-b837-4a81a076-8be2-bb4bf4ae2c4b";
var applicationId = getApplication();
var parentNoderId = "1515057330427";
var DEADLINE = format(getToday() , "yyyy-MM-dd HH:mm:ss");

var sql22 = " insert into t_nodert (ID,NAME,NODEID,FLOWID,DOCID,FLOWSTATERT_ID,SORTID,NOTIFIABLE,DOMAINID,APPLICATIONID,STATELABEL,FLOWOPTION,SPLITTOKEN,PASSCONDITION,PARENTNODERTID,DEADLINE,ORDERLY,APPROVAL_POSITION,STATE,LASTPROCESSTIME,REMINDER_TIMES,ISSUSPEND,RETRACEMENT) values ('"+thisId+"','"+flowName+"','"+noderId+"','"+flowId+"','"+docId+"','"+FLOWSTATERT_ID+"',null,'','"+domainId+"','"+applicationId+"','"+flowName+"','80','','0','"+parentNoderId+"','"+DEADLINE+"',null,null,null,'0000-00-00 00:00:00',null,0,null)";
insertByDSName("apcegl",sql22);

20、数据库表单信息

表名

描述

T_APPLICATION

应用信息表

T_ACTORRT

流程角色信息表

T_ACTIVITY

按钮信息表

T_ACTORHIS

流程处理人的历史信息表

T_APPVALIDATE

阿里软件的入口验证信息表

T_BILLDEFI

定制流程信息表

T_COMMONINFO

公共数据信息表

T_COMPONENT

组件信息表

T_CROSSREPORT

交叉信息表

T_CALENDAR

日历信息表

T_COUNTER

计数信息表

T_COLUMNMAPPING

列配置信息表

T_DEPARTMENT

部门信息表

T_DYNAFORM_FORM

动态保存表信息表

T_DOCUMENT

文档对象信息表

T_DATAPREPARE

预备日期信息表

T_DATASOURCE

数据源信息表

T_DOMAIN

域信息表

T_DOMAINLEVEL

域等级信息表

T_FLOWSTATERT

流程状态信息表

T_HELPER

帮助信息表

T_HOMEPAGE

主页信息表

T_IMAGEREPOSITORY

图片库信息表

T_MODULE

模块信息表

T_MAPPINGCONFIG

Excel的导入配置表

T_MULTILANGUAGE

多语言信息表

T_NODERT

流程节点信息表

T_PANDING

待办信息表

T_PAGE

页信息表

T_PERMISSION

角色和菜单的权限信息表

T_QUERY_PARAMETER

报表查询范围信息表

T_QUERY

报表查询信息表

T_RELATIONHIS

流程审批历史信息表

T_PERSONALMESSAGE

站内邮件信息表

T_ROLE

角色信息表

T_RESOURCE

菜单信息表

T_REMINDER

提醒信息表

T_REMOTESERVERT

运程配置表

T_REPOSITORY

报表信息表

T_REPORTCONFIG

报表配置信息表

T_SUPERUSER

超级管理员信息表

T_SHORTMESSAGE_RECEIVED

收到短信信息表

T_SHORTMESSAGE_SUBMIT

发送短信信息表

T_SQLSENTENCE

Sql语句保存表

T_STYLEREPOSITORY

样式库的信息表

T_STATELABEL

流程状态信息表

T_SPECIALDAY

特殊日期信息表

T_STANDARDDAY

标准日期信息表

T_TASK

定时任务信息表

T_TASK_DAYSOFWEEK

定时任务运行天数信息表

T_USER

用户信息表

T_VALIDATEREPPSOTPRY

验证库数据信息表

T_VIEW

视图信息表

T_APPLICATION_SUPERUSER_SET

对多关联表(t_application && t_superuser)

T_REPORT_MAPPING_SET

对多关联表(t_reportconfig && t_mappingconfig)

T_DOMAIN_APPLICATION

对多关联表(t_application && t_domain)

T_DOMAIN_SUPERUSER_SET

对多关联表(t_domain && t_superuser)

T_USER_DEPARTMENT

对多关联表(t_Department && t_user)

T_USER_ROLE_SET

对多关联表(t_user && t_role)

T_PENDING_ACTOR_SET

对多关联表(t_pending && t_actorrt)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值