当前位置: 首页 > 工具软件 > iScript > 使用案例 >

MyApps 4.4 IScript 脚本示例

壤驷英叡
2023-12-01


前言

不定时更新,欢迎投稿
专注于MyApps脚本分享
感谢各位粉丝的关注不忘初心,方得始终

创建用户示例

(function(){
var name = "callTest"; 
var loginno = "callTest1"; 
var loginpwd = "123456";
var Base64Pwd ="";        
var Base64 = new Packages.cn.myapps.common.util.Base64Util();
var LOGINPWDSBase = new Packages.java.lang.String(loginpwd);
var bytes = LOGINPWDSBase.getBytes();    
var encoded = Base64.encode(bytes);    
if(encoded.length()>2){     
	var lp = encoded.substring(0,2);     
	var rp = encoded.substring(2,encoded.length());     
	Base64Pwd = rp+lp;     
}

var email = "email@qq.com"
var status =1; 
var domainid=getDomainid(); //域id
var telephone = "18379855594"; 
var deptid="";
var department = "总经办"; 
var rolename = "员工";
var process = getDepartmentProcess();
var depts=  process.getDepartmentByName(department,getDomainid());
for(var it=depts.iterator();depts!=null && it.hasNext();){
    var dept = it.next();
    deptid=dept.getId();
  	break;
}
var UserVO = new Packages.cn.myapps.common.model.user.UserVO();//实例化一个用户对象
var uuid = new Packages.cn.myapps.util.sequence.Sequence().getSequence();//创建UUID
UserVO.setId(uuid);
UserVO.setName(name);              
UserVO.setLoginno(loginno);        
UserVO.setLoginpwd(Base64Pwd);       
UserVO.setEmail(email);
UserVO.setStatus(status);
UserVO.setDomainid(domainid);
UserVO.setTelephone(telephone);
UserVO.setDefaultDepartment(deptid);
var roleid = getRoleIdByName(rolename);
var uprocess = getUserProcess();
var userDepartmentRoleSet = new Packages.cn.myapps.common.model.user.UserDepartmentRoleSet(uuid,deptid,roleid);
var list = new Packages.java.util.HashSet();
list.add(userDepartmentRoleSet);
UserVO.setUserDepartmentRoleSets(list);
uprocess.doCreate(UserVO);
})()

调用用户添加接口 添加用户

(function () {
    var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();
    var applicationId = getApplication();
    var domainid = getDomainid()
    var outputStr = "{\n" +
        "\n" +
        "    \"name\": \"ekko\",\n" +
        "\n" +
        "    \"loginno\": \"ekko\",\n" +
        "    \n" +
        "    \"loginpwd\":\"IzNDU2MT\",\n" +
        "\n" +
        "    \"email\": \"email@teemlink.com\",\n" +
        "\n" +
        "    \"emailPublic\": true,\n" +
        "\n" +
        "    \"telephone\": \"13192286346\",\n" +
        "\n" +
        "    \"telephonePublic\": true,\n" +
        "\n" +
        "    \"calendarType\": \"i7xj207zBMEwBp8aATE\",\n" +
        "\n" +
        "    \"calendarTypeName\": \"夜班日历\",\n" +
        "\n" +
        "    \"telephone2\": \"13192286349\",\n" +
        "\n" +
        "    \"telephonePublic2\": true,\n" +
        "\n" +
        "    \"reportTree\": \"\",\n" +
        "\n" +
        "    \"superiorid\": \"\",\n" +
        "\n" +
        "    \"proxyUserid\": \"\",\n" +
        "\n" +
        "    \"remarks\": \"\",\n" +
        "\n" +
        "    \"startProxyTime\": \"\",\n" +
        "\n" +
        "    \"endProxyTime\": \"\",\n" +
        "\n" +
        "    \"permissionType\": \"public\",\n" +
        "\n" +
        "    \"lockFlag\": 1,\n" +
        "    \n" +
        "    \"status\":1,\n" +
        "\n" +
        "    \"dimission\": 1,\n" +
        "\n" +
        "    \"defaultDepartment\": \"BFMzxTaCTWI6TbWLKXT\",\n" +
        "\n" +
        "\n" +
        "    \"_userRoleDepartmentJson\":'[{\"roleId\":\"UELSgsHXdMcRKv8s1DW\",\"departmentId\":\"BFMzxTaCTWI6TbWLKXT\",\"applicationId\":\"" + applicationId + "\",\"isDefaultDepartment\":\"true\"}]',\n" +
        "\n" +
        "    \"_userKMRoleJson\": '[]',\n" +
        "\n" +
        "    \"_kmRoleJson\":'[]',\n" +
        "\n" +
        "    \"_kmRole\": '[]'\n" +
        "\n" +
        "}";
    var HostUrl = "http://localhost:8080/obpm/authtime/domain/" + domainid + "/user";
    var JSONString = URLConnector.post(HostUrl, outputStr);
    println("JSONString--->" + JSONString);
    var accessToken = JSONString.get("errmsg");
    var docProcess = getDocumentProcess();
    var formProcess = getFormProcess();
    var Sequence = new Packages.cn.myapps.util.sequence.Sequence();
    var uuid = Sequence.getSequence();
    var newForm = formProcess.doViewByFormName("用户添加", getApplication());
    var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
    newDoc.addStringItem("测试字段", accessToken);
    newDoc.setId(uuid);
    docProcess.doCreate(newDoc);
})()

视图SQL示例

(function(){
	var doc = getCurrentDocument();//获取查询头doc对象
	var PurchaseOrderNumber = doc.getItemValueAsString("PurchaseOrderNumber")//获取查询头对应字段的值
	var sql="select domainid,id,formid,item_PurchaseOrderNumber from tlk_Number where 1=1";
	if(PurchaseOrderNumber!="" && PurchaseOrderNumber != null){
		sql+=" and item_PurchaseOrderNumber like '%"+PurchaseOrderNumber+"%'";
	}
	
	return sql;
})();

校验函数库示例

/**
身份证号合法性验证 支持15位和18位身份证号、支持地址编码、出生日期、校验位验证
**/ 
function IdentityCodeValid(code) {
   var code = getItemValue(code);
   var city = {
       11: "北京",
       12: "天津",
       13: "河北",
       14: "山西",
       15: "内蒙古",
       21: "辽宁",
       22: "吉林",
       23: "黑龙江",
       31: "上海",
       32: "江苏",
       33: "浙江",
       34: "安徽",
       35: "福建",
       36: "江西",
       37: "山东",
       41: "河南",
       42: "湖北",
       43: "湖南",
       44: "广东",
       45: "广西",
       46: "海南",
       50: "重庆",
       51: "四川",
       52: "贵州",
       53: "云南",
       54: "西藏",
       61: "陕西",
       62: "甘肃",
       63: "青海",
       64: "宁夏",
       65: "新疆",
       71: "台湾",
       81: "香港",
       82: "澳门",
       91: "国外"
   };
   var tip = "";
   var pass = true;
   //验证身份证格式(6位地区编码,8位出生日期,3位顺序号,1位校验位)
   if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
       tip = "身份证号格式错误";
       return tip;
       pass = false;
   } else if (!city[code.substr(0, 2)]) {
       tip = "地址编码错误";
       pass = false;
       return tip;
   } else {
       //18位身份证需要验证最后一位校验位
       if (code.length == 18) {
           code = code.split('');
           //∑(ai×Wi)(mod 11)
           //加权因子
           var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
           //校验位
           var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
           var sum = 0;
           var ai = 0;
           var wi = 0;
           for (var i = 0; i < 17; i++) {
               ai = code[i];
               wi = factor[i];
               sum += ai * wi;
           }
           var last = parity[sum % 11];
           if (parity[sum % 11] != code[17]) {
               tip = "校验位错误";
               pass = false;
               return tip;
           }
       }
   }

}

获取提交时填写的意见显示在表单中

/**
STARTNODEID 流程节点Id 可以通过查看流程源码获取
**/
(function(){
    var sql = "";
    var doc = getCurrentDocument();
    var state = doc.getStateLabel();
    sql = "SELECT DISTINCT '" + getDomainid() + "' AS DOMAINID,NAME AS ITEM_NAME,PROCESSTIME AS ITEM_PROCESSTIME,ATTITUDE AS ITEM_ATTITUDE,SIGNATURE AS ITEM_SIGNATURE FROM T_ACTORHIS T WHERE DOC_ID='" + getId() + "' AND EXISTS( SELECT 1 FROM T_RELATIONHIS WHERE STARTNODEID='1583766936149' AND ID=T.NODEHIS_ID) ORDER BY PROCESSTIME ASC ";
    var count = countBySQL(sql);
    if (count == 0) {
        sql = "SELECT DISTINCT '" + getDomainid() + "' AS DOMAINID,NAME AS ITEM_NAME,PROCESSTIME AS ITEM_PROCESSTIME,ATTITUDE AS ITEM_ATTITUDE,SIGNATURE AS ITEM_SIGNATURE FROM t_flowhistory T WHERE DOC_ID='" + getId() + "' AND STARTNODEID='1583766936149' ORDER BY PROCESSTIME ASC ";
    }
    var str = "";
    var datas = queryBySQL(sql);
    if (datas != null && datas.size() > 0) {
        for (var iter = datas.iterator(); iter.hasNext(); ) {
            var data = iter.next();
            var name = data.getItemValueAsString("NAME");
            var processtime = data.getItemValueAsString("PROCESSTIME");
            var attitude = data.getItemValueAsString("ATTITUDE");
            var signature = data.getItemValueAsString("SIGNATURE");
            if (!isNotNull(attitude)) {
                attitude = "已阅。"
            }
            str += "<div>" + name + "于" + processtime + "填写意见:" + attitude;
            if (isNotNull(signature)) {
                var jsonObject = Packages.net.sf.json.JSONObject.fromObject(signature);
                var imgBase64Code = jsonObject.get("data");
                str += ",手签意见:<img src='data:image/jpg;base64," + imgBase64Code + "' style='height: 70px;'/>";
            }
            str += "</div>"
        }
    }
    return str;
})();

下拉框选项脚本示例

(function(){
 var opts=createOptions();
 opts.add("显示值","真实值");
 opts.add("显示值","真实值",true); //true 表示默认选中该选项
return opts;
})()

(function(){
	var opts=createOptions();
	opts.add("","");
	var sql="select pay.* from tlk_支付方式管理 as pay where pay.ITEM_付款类型 = '测试'";
	println(sql);
	var datarts=queryBySQL(sql);
	if(datarts!=null && datarts.size() > 0){
		println("counttt" + payment);
		for(var iter=datarts.iterator();iter.hasNext();){
			var docone=iter.next();
			println(docone.getItemValueAsString("支付方式"));
			opts.add(docone.getItemValueAsString("支付方式"),docone.getItemValueAsString("支付方式"));
		}
	}
return opts;
})()

流程审批人脚本示例

(function(){
	var doc = getCurrentDocument();
	var user = doc.getItemValueAsString("用户选择框"); //表单用户选择框字段
	var docids = splitText(user, ";");
	var userlist = createObject("java.util.ArrayList");
	for (var i = 0; i < docids.length; i++) {
		if(docids != null) {
		   var userVO = getUserById(docids[i]);
			userlist.add(userVO);
		}
	}
return userlist;
})()

(function(){
	var doc = getCurrentDocument();
	var user = doc.getItemValueAsString("用户选择框"); //表单用户选择框字段
	var userVO = getUserById(user);
return userVO;
})()

智能搜索框获取数据脚本示例

(function(){
	var ProjectNumber = getParentDocument().getItemValueAsString("项目编号");
	var i = getParameter("_keyword");//获取输入的值
	var opts=createOptions();
	var sql="select a.domainid,b.item_分部分项工程 from tlk_甲方清单申请表  as a inner join tlk_清单明细表 as b on a.id = b.parent where a.item_项目编号='"+ProjectNumber+"'  and b.item_分部分项工程 like'%"+i+"%'";
	var datarts=queryBySQL(sql);
	if(datarts!=null){
		for(var iter=datarts.iterator();iter.hasNext();){
			var docone=iter.next();
			var name=docone.getItemValueAsString("分部分项工程");
			var loginno=docone.getItemValueAsString("分部分项工程");
			opts.add(name,loginno);
		}
	}
	return opts;
})()

获取登录用户所有部门

(function(){
	var value = "";//部门名称
	var user = getWebUser();
	var depts = user.getDepartments();
	for(var iter = depts.iterator(); iter.hasNext();) {
		var dept = iter.next();
		value += dept.getName();
	}
return value;
})()

获取视图选择框选中的数据插入包含元素示例

(function(){
    var curDoc = getCurrentDocument();
    var docid = curDoc.getId();
    var selectId = getParameterAsText("_selects");
    var docProcess = getDocumentProcess();
    var formProcess = getFormProcess();
    var newForm = formProcess.doViewByFormName("领用明细信息", getApplication());
    var sel = selectId.replace(";", "','");
    sel = "('" + sel + "')";
    if (selectId != null || selectId.length > 0) {
        var sql = "select * from tlk_材料信息表 where ID in " + sel;
        var datas = queryBySQL(sql);
        if (datas != null || datas.size() > 0) {
            for (var iter = datas.iterator(); iter.hasNext(); ) {
                var data = iter.next();
                var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
                newDoc.setParent(docid);
                newDoc.setApplicationid(getApplication());
                newDoc.setDomainid(getWebUser().getDomainid());
                newDoc.addStringItem("材料编号", data.getItemValueAsString("材料编号"));
                docProcess.doCreate(newDoc);
            }
        }
    }
})()

根据表单的流程状态来判断对表单行的隐藏或显示

//以下代码支持pc端
(function(){ 
 	var doc=getCurrentDocument();  
 	var statelabel=doc.getStateLabel(); 
 	var html = " <script type=\"text/javascript\">"; 
 	html += "$(document).ready(function(){"; 
 	if("印章保管员审核".equals(statelabel) || "归档".equals(statelabel)){ 
 		html+="jQuery(\".yc1\").css(\"display\",\"\");"; 
 	}else{ 
 		html+="jQuery(\".yc1\").css(\"display\",\"none\");"; 
 	} 
 	html+= "});"; 
 	html+=" </script>"; 
 	return html; 
})();
//以下代码支持手机端
//控件的ID需要隐藏多个时使用;隔开
(function(){ 
  var doc=getCurrentDocument();  
  var html = ""; 
  var opcation =getItemValueAsString("opcation"); 
  if('选项A'.equals(opcation)){ 
  html+="<o-action action-type='documentshowhidden' documenthidden='控件的ID' documentshow=''>hidden</o-action>"; 
  }else{ 
  html+="<o-action action-type='documentshowhidden' documenthidden='' documentshow='控件的ID'>show</o-action>"; 
  } 
  return html; 
})();

获取当前节点审批人

(function(){
    var AuditorList = getCurrentDocument().getAuditorList();
    var AuditorListjson = AuditorList.substring(AuditorList.indexOf("[") + 2, AuditorList.indexOf("]") - 1);
    var arr = splitString(AuditorListjson, '","');
    var name = "";
    for (var i = 0; i < arr.length; i++) {
       
        var userVO = getUserById(arr[i]);
        if (i == arr.length - 1) {
            name += userVO.getName();
        } else {
            
            name += userVO.getName() + ";";
        }
    }
    
    return name;
})()

二维码回调脚本

(function(){            
   var msg="";      
   var flag = true;      
   var WebUser = getWebUser();      
   var Userid = WebUser.getId();      
   var doc = getCurrentDocument();      
   var dept = WebUser.getDefaultDepartment();      
   var docid = doc.getId();      
   var starttime = format(getToday(),"yyyy-MM-dd HH:mm:ss");      
   var number = doc.getItemValueAsString("会议编号");                   
   var sql = "select * from tlk_会议室签到s where item_会议编号 = '"+number+"' and item_用户 = '"+Userid+"'";            
   var t_count = countBySQL(sql);            
   if(t_count>0){      
   		msg = "签到失败,你已经签到了";             
   }else{        
	   var process = getDocumentProcess();       
	   var formProcess = getFormProcess(); //申明表单业务处理类        
	   var newForm = formProcess.doViewByFormName("会议室签到s",getApplication());     
	   var doc1 = process.doNew(newForm,WebUser,createParamsTable());//创建记录       
	   doc1.addStringItem("用户",Userid );   
	   doc1.addStringItem("签到时间",starttime);   
	   doc1.addStringItem("会议编号",number);   
	   process.doCreate(doc1);      
	   msg = "签到成功!";      
   }      
   return msg;            
   })()

创建HashMap示例

(function() {  
      var HashMap = new Packages.java.util.HashMap();  
      HashMap.put("key", "value");  
      HashMap.put("key1", "value1");  
      var setList = HashMap.keySet();  
      for (var iter = setList.iterator(); iter.hasNext(); ){  
          var map = iter.next();  
          println("map--->"+map);//获取全部key 
         println("value-->"+HashMap.get(map));//获取全部key对应的值 
      }  
  })()

查询登录用户所属部门对应tlk表单的数据示例

   (function(){
    var user = getWebUser();
    var desId = user.getDefaultDepartment(); //获取登录用户默认部门
    var desIdList = user.getDepartments(); //获取登录用户配置的部门,返回的是部门id的集合
    var sql = "select * from tlk_resignationapplication";
    var userVo = getUserProcess(); //根据部门id返回部门下所有用户
    var UserList = userVo.getDatasByDept(desId);
    var deptIDs = "(";
    for(var it = UserList.iterator(); UserList != null && it.hasNext(); ) {
        var dept = it.next();
        deptIDs += "'" + dept.getId() + "',";
    }
    deptIDs = deptIDs.substring(0, deptIDs.length - 1)
    deptIDs += ")";
    sql += " where author in " + deptIDs;
    return sql;
})()

获取审批意见

//只能在操作类型为流程处理使用, 判断审批意见是否必须
(function(){
	var attitude=getParameter("attitude");//获取审批意见
	var flowType = getParameter("_flowType");//获取流程状态 80提交 81回退
	var signature = getParameter("_signature");//获取手签意见
	var rtn="";
	if("80".equals(flowType) && (attitude==null || attitude.trim().length()<=0)){
	   rtn = "审批意见必须填写!";
	}
	return rtn;
})()

创建表单数据并启动流程

(function () {
    var msg = "";
    var flag = true;
    var WebUser = getWebUser();
    var Userid = WebUser.getId();
    var doc = getCurrentDocument();
    var dept = WebUser.getDefaultDepartment();
    var Sequence = new Packages.cn.myapps.util.sequence.Sequence();
    var uuid = Sequence.getSequence();
    var docid = doc.getId();
    var starttime = format(getToday(), "yyyy-MM-dd HH:mm:ss");
    var number = doc.getItemValueAsString("会议编号");
    var process = getDocumentProcess();
    var formProcess = getFormProcess(); //申明表单业务处理类
    var newForm = formProcess.doViewByFormName("会议室签到", getApplication());
    var doc1 = process.doNew(newForm, WebUser, createParamsTable()); //创建记录
    doc1.setId(uuid);
    doc1.addStringItem("用户", Userid);
    doc1.addStringItem("签到时间", starttime);
    doc1.addStringItem("会议编号", number);
    //process.doCreate(doc1);
    var flowid = "_xxxxx"; //流程id 可以去后台你画的流程哪里 对应的id  就是流程id
    var params = createParamsTable(); //创建指定类对象
    params.setParameter("_flowid", flowid) //value为对应的流程Id.
    process.doStartFlowOrUpdate(doc1, params, WebUser); //启动流程并创建数据
})()

判断包含元素的是否为空

(function () {
    var rtn = "";
    var doc = getCurrentDocument();
    var childs2 = doc.getChilds("订单明细");
    var count2 = childs2.size();
    if (count2 <= 0) {
        rtn = "订单明细必须填写";
    }

    return rtn;
})()

获取包含元素的数据

(function () {
    var user_name = "";
    var doc = getCurrentDocument();
    var childs = doc.getChilds("kf_mobilemeter");
    println("childs ===" + childs);
    if (childs != null && childs.size() > 0) {
        for (var it = childs.iterator(); it.hasNext(); ) {
            var subdoc = it.next();
            user_name = subdoc.getItemValueAsString("user_name");
        }
    }
    return user_name;
})()

获取网格视图时数据

/**
	因为网格视图编辑数据后需要点击保存才会存到数据库 使用getChilds("订单明细"); 获取出来的数据是从数据库查询出来的
	网格视图时获取填写的记录
**/
(function(){    
 var doc = getCurrentDocument();      
 var subDomcument = doc.getSubDocuments();    
 if(subDomcument!=null && subDomcument.size() > 0){    
	for(var dom=subDomcument.iterator();dom.hasNext();){    
		var subdoc=dom.next();    
		println("name--->"+subdoc.getItemValueAsString("name"));    
	}    
 }    
})()

获取当前流程状态值

//只能在流程处理类型中使用
(function(){    
     var flowType = getParameter("_flowType");//获取流程状态值 80提交 81回退
})()

获取提交时填写的审批意见

(function(){    
     var attitude=getParameter("attitude");//获取审批意见
	 println("attitude--->"+attitude);
})()

调用存储过程示例

(function(){    
	var ParamsTable = getParamsTable();                                             
	var Domainid = getDomainid();                                                                 
	var docProcess = getDocProcess(getApplication());                                    
	var in_id = '__igFO8h02HIepU3gNr8J';
	var  dpg = docProcess.queryByProcedure("call out_test(String:"+in_id+",out:package)",getParamsTable(),1,2,Domainid);              
	println("dpg:"+dpg);            
	println("dpg.datas:"+dpg.datas);              
	println("dpg.datas.size:"+dpg.datas.size());            
	for(var i = 0;i<dpg.datas.size();i++){              
		var map = dpg.datas.get(i).getItemMap();                
		println("map:"+map);           
		println("map.OID:"+map.get("OID"));   
	}
})()

判断用户登录设备

(function(){
	var user = getWebUser();
	var isMobileVisit=user.getEquipment();
	//isMobileVisit 返回0 来访设备-电脑
	//isMobileVisit 返回1 来访设备-手机
	//isMobileVisit 返回2 来访设备-平板
	
})()

获取登陆用户的角色

(function(){
	var user = getWebUser();
	var roles = user.getRoles();
	var rtn="";        
      for(var its = roles.iterator();roles!=null && its.hasNext();){        
        var role = its.next();        
        println("roleName--->"+role.getName());        
      }    
	
})()

获取登陆用户的默认部门Id

(function(){
	var user = getWebUser();
	var DepartmentId = user.getDefaultDepartment();  
})()

判断指定的用户在指定部门是否具有指定的角色

/**
 *判断指定的用户在指定部门是否具有指定的角色
 *roleCode:角色编号   department:部门id
 *userId:用户ID
 */
function isTheUserOwenTheDeptRolesByCode(userId, roleCode, department) {
    var doc = getCurrentDocument();
    var flag = false;
    var process = new Packages.cn.myapps.designtime.role.service.RoleServiceImpl();
    var role = process.findByRoleNo(roleCode, doc.getApplicationid());
    var roleId = role.getId();
    var sql = "select  '" + getDomainid() + "'AS DOMAINID , userid as item_userid from " + DATASOURENAME + ".t_user_department_role_set where departmentid='" + department + "' and roleid='" + roleId + "' and userid='" + userId + "' ";
    var count = countBySQL(sql);
    if (count > 0) {
        flag = true;
    }
    return flag;
};

根据角色编码判断当前用户是否具有下列角色

/**
 *根据角色编码判断当前用户是否具有下列角色(可以传多个角色编码)
 *roleCode:角色编码	传多个角色编码用";"隔开
 */
function isOwenTheRolesByRoleCodes(roleCode) {
    var applicationid = getApplication();
    var flag = false;
    var process = new Packages.cn.myapps.runtime.role.service.RoleServiceImpl();
    if (roleCode != null && !"".equals(roleCode)) {
        if (roleCode.indexOf(";") >= 0) {
            var roleCodes = roleCode.split(";");
            if (roleCodes != null && roleCodes.length > 0) {
                for (var i = 0; i < roleCodes.length; i++) {
                    var roleCodeI = roleCodes[i];
                    var role1 = process.findByRoleNo(roleCodeI, applicationid);
                    if (role1 != null) {
                        var crRoleId = role1.getId();
                        if (crRoleId != null && !"".equals(crRoleId)) {
                            var roles = getWebUser().getRoles();
                            for (var it = roles.iterator(); roles != null && it.hasNext(); ) {
                                var role = it.next();
                                var roleId = role.getId();
                                if (crRoleId.equals(roleId)) {
                                    flag = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        } else {
            var role1 = process.findByRoleNo(roleCode, applicationid);
            if (role1 != null) {
                var crRoleId = role1.getId();
                if (crRoleId != null && !"".equals(crRoleId)) {
                    var roles = getWebUser().getRoles();
                    for (var it = roles.iterator(); roles != null && it.hasNext(); ) {
                        var role = it.next();
                        var roleId = role.getId();

                        if (crRoleId.equals(roleId)) {
                            flag = true;
                            break;
                        }
                    }
                }
            }
        }
    }
    return flag;
}

调用Redis示例

//将值存入到Redis到缓存中
new Packages.cn.myapps.util.cache.MemoryCacheUtil.putToPrivateSpace("key", "value", getWebUser());  

//获取存入到Redis缓存中的值
var type = new Packages.cn.myapps.util.cache.MemoryCacheUtil.getFromPrivateSpace("key", getWebUser());

获取指定部门指定角色的人员

/**
 *获取指定部门指定角色的人员,返回list
 *roleNames:角色名称   department:部门id
 *
 */
function getUsersByDeptAndRoles(roleName, department) {
    var userList = createObject("java.util.ArrayList");
    var roleid = getRoleIdByName(roleName);
    var sql = "select  '" + getDomainid() + "'AS DOMAINID , userid as item_userid from " + DATASOURENAME + ".t_user_department_role_set where departmentid='" + department + "' and roleid='" + roleid + "'";
    var datas = queryBySQL(sql);
    if (datas != null) {
        for (var iter = datas.iterator(); iter.hasNext(); ) {
            var data = iter.next();
            var userid = data.getItemValueAsString("userid");
            userList.add(userid);
        }
    }
    return userList;
}

下拉框考虑历史数据

/**
 *	考虑历史数据:获取通用主数据类型返回Options
 *	table:当前表名  docId:当前docID  valueName:当前字段名  type:通用主数据的类型
 */
function getDatatype(table, docId, valueName, isNull) {
    var opts = $TOOLS.createOptions();
    var sql1 = "select * from " + table + " where id='" + docId + "' ";
    var data = findBySQL(sql1);
    var value1 = "";
    if (data != null) {
        value1 = data.getItemValueAsString(valueName);
    }
    var sql = "select * from obpm_crm_new.tlk_客户状态 where item_status='有效' order by item_类别名称";
    if (value1 != null && !"".equals(value1)) {
        sql = "select * from obpm_crm_new.tlk_客户状态 where (item_status='有效') or (item_status='无效' and item_类别名称='" + value1 + "') order by item_类别名称";
    }
    if (isNull) {
        opts.add("", "");
    }
    var query = queryBySQL(sql);
    if (query != null && query.size() > 0) {
        for (var it = query.iterator(); it.hasNext(); ) {
            var doc = it.next();
            var value = doc.getItemValueAsString("类别名称");
            var name = doc.getItemValueAsString("类别名称");
            opts.add(name, value);
        }
    }
    return opts;
}

根据用户id返回WebUser对象

/*
	根据用户id返回cn.myapps.core.user.action.WebUser
 */
function getWebUserById(USERID) {
    var UserProcessBean = new Packages.cn.myapps.authtime.user.service.UserProcessBean();
    var UserVO = UserProcessBean.doView(USERID);
    var WebUser = new Packages.cn.myapps.base.web.WebUser(UserVO);
    return WebUser;
}

a or o-acation 超级标签

//因大部分用户反馈在Good皮肤中使用1.6/4.0+的H5皮肤跳转脚本无效,
主要是由于Good皮肤中更新了跳转的方法,
只需要在链接中加入对应属性即可生效,
更方便大家拼接链接使用
a标签只支持PC端 o-action标签支持pc端和手机端。
//表单类型
//action-type='opendocument' (opendocument为表单、openview为视图)
//打开方式
//open-type='open-eject' (open-present为当前页打开、open-eject为弹出层打开、open-tab为标签页打开、open-blank为新窗口打开)
//是否刷新表单
//reflash-on-close='reflash-on-close' (注:刷新表单暂未实现)
//参数
//exparams = '&_isJump=1' (参数值为固定值或者通过脚本获取其他值)
//具体例子参考如下:
//拼接参数
var ts1=doc.getItemValueAsString("字段一"); //参数值一
var ts2=doc.getItemValueAsString("字段二"); //参数值二
var exparams = "&ts1="+ts1+"&ts2="+ts2+""; //拼接参数

//参数使用
var btn="<a action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-eject' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>弹出表单</a>";

//参数获取
//在视图或者表单处点击鼠标右键查看框架源码获取框架源码后将view-source:部分去掉,view-source:http://192.168.88.161/Z016Y/portal/good/html/form.html?appId=MHR5k0XvJ6zqQgdepcj&docid=__nM6wAtLyXdUXA5ApJB6&formId=__2KhuwiEaRIwNdmoecoD&isScript=true&ts1=chain&ts2=001

//弹出层打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一"); //参数值一
	var ts2=doc.getItemValueAsString("字段二"); //参数值二
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";  //拼接参数
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<a action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-eject' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>弹出层打开表单</a>";
	return btn;                                      
})();

//当前页打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<a action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-present' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>当前页打开表单</a>";
	return btn;                                      
})();

//标签页打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<a action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-tab' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>标签页打开表单</a>";
	return btn;                                      
})();

//新窗口打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<a action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-blank' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>新窗口打开表单</a>";
	return btn;                                      
})();

//弹出层打开视图
(function() {         
	var doc=getCurrentDocument();      
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();  
	var viewId="__7OK04NzW3w2zFBKoW7I";
	var btn="<a action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-eject' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>弹出层打开视图</a>"
	return btn;                                      
})();
//当前页打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<a action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-present' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>当前页打开视图</a>"
    return btn;                                      
})();
//标签页打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<a action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-tab' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>标签页打开视图</a>"
    return btn;                                      
})();
//新窗口打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<a action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-blank' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>新窗口打开视图</a>"
    return btn;                                      
})();

//o-action 标签支持手机端和PC端
//弹出层打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一"); //参数值一
	var ts2=doc.getItemValueAsString("字段二"); //参数值二
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";  //拼接参数
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<o-action action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-eject' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>弹出层打开表单</o-action>";
	return btn;                                      
})();
//当前页打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<o-action action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-present' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>当前页打开表单</o-action>";
	return btn;                                      
})();
//标签页打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<o-action action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-tab' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>标签页打开表单</o-action>";
	return btn;                                      
})();
//新窗口打开表单
(function() {         
	var doc=getCurrentDocument();
	var docId=doc.getId();
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();
	var formid="__2KhuwiEaRIwNdmoecoD";
	var btn="<o-action action-type='opendocument' formid='"+formid+"' docid='"+docId+"' appid='"+appId+"' open-type='open-blank' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px' exparams='"+exparams+"'>新窗口打开表单</o-action>";
	return btn;                                      
})();
//弹出层打开视图
(function() {         
	var doc=getCurrentDocument();      
	var ts1=doc.getItemValueAsString("字段一");      
	var ts2=doc.getItemValueAsString("字段二");     
	var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
	var appId=getApplication();            
	var domainid=getDomainid();  
	var viewId="__7OK04NzW3w2zFBKoW7I";
	var btn="<o-action action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-eject' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>弹出层打开视图</o-action>"
	return btn;                                      
})();
//当前页打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<o-action action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-present' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>当前页打开视图</o-action>"
    return btn;                                      
})();
//标签页打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<o-action action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-tab' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>标签页打开视图</o-action>"
    return btn;                                      
})();
//新窗口打开视图
(function() {         
    var doc=getCurrentDocument();      
    var ts1=doc.getItemValueAsString("字段一");      
    var ts2=doc.getItemValueAsString("字段二");     
    var exparams = "&ts1="+ts1+"&ts1="+ts1+"";      
    var appId=getApplication();            
    var domainid=getDomainid();  
    var viewId="__7OK04NzW3w2zFBKoW7I";
    var btn="<o-action action-type='openview' viewId='"+viewId+"' appId='"+appId+"' open-type='open-blank' exparams='"+exparams+"' reflash-on-close='reflash-on-close' dialog-width='1000px' dialog-height='600px'>新窗口打开视图</o-action>"
    return btn;                                      
})();

调用登录接口生成Token

/*
LOGINNO   账号
LOGINPWD  密码
DOMAINNAME 域名称 //就是你域后台新建域时填写的名称
var loginApiUrl="http://office.teemlink.com:60161/signon/runtime/login/loginWithCiphertext2";  http://office.teemlink.com:60161 修改成你们的域名或者Ip
*/
function getAccessToken(LOGINNO,LOGINPWD,DOMAINNAME){     
     	var loginApiUrl="http://office.teemlink.com:60161/signon/runtime/login/loginWithCiphertext2";     
     	var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();     
     	var jsonObj = new Packages.com.alibaba.fastjson.JSONObject();     
     	var Base64Pwd ="";     
     	var AccessToken ="";    
    	var Base64 = new Packages.cn.myapps.common.util.Base64Util();
    	var LOGINPWDS = new Packages.java.lang.String(LOGINPWD);
     	var bytes = LOGINPWDS.getBytes();    
    	var encoded = Base64.encode(bytes);    
     	if(encoded.length()>2){     
     		var lp = encoded.substring(0,2);     
     		var rp = encoded.substring(2,encoded.length());     
     		Base64Pwd = rp+lp;     
     	}      
     	jsonObj.put("username",LOGINNO);     
     	jsonObj.put("password",Base64Pwd);     
     	jsonObj.put("remember","0");     
     	jsonObj.put("debug","false");     
     	jsonObj.put("domainName",DOMAINNAME);     
     	jsonObj.put("checkcode","");     
     	jsonObj.put("language","CN");     
     	var JSONString = URLConnector.post(loginApiUrl,jsonObj.toString());     
     	AccessToken = JSONString.get("accessToken");     
     	return AccessToken;     
}

根据用户Id生成Token

(function(){
var accessToken = new Packages.cn.myapps.common.util.Security().getToken("__hOWxtM5Q3fKoNuwH90K");//传入用户id返回对应的accessToken 2小时有效
})()

其他脚本示例

/**
var viewsApiUrl="http://office.teemlink.com:60161/obpm/runtime/__K9VSEQ0wOlXNnorkeWI/views/__39uCuMTrmO6tiYQEgDp/documents?parentId=&sortCol=&sortStatus=&_currpage=1&lines=1000&accessToken="+AccessToken;  

http://office.teemlink.com:60161 修改成你们的域名或者Ip
__K9VSEQ0wOlXNnorkeWI 软件Id 可以使用IScript脚本getApplication() 获取
_currpage=1 分页 直接传1即可
lines=1000 每页显示多少条数据 根据你该表1年的数据量来传 建议写大点 

**/
#include "MethodLibrary"        
(function(){ 
 var doc = getCurrentDocument();         
 var LOGINNO = doc.getItemValueAsString("LOGINNO");         
 var LOGINPWD = doc.getItemValueAsString("LOGINPWD");         
 var DOMAINNAME = doc.getItemValueAsString("DOMAINNAME");               
 var AccessToken = getAccessToken(LOGINNO,LOGINPWD,DOMAINNAME);   
 var Sequence = new Packages.cn.myapps.util.sequence.Sequence();   
 var viewsApiUrl="http://office.teemlink.com:60161/obpm/runtime/__K9VSEQ0wOlXNnorkeWI/views/__39uCuMTrmO6tiYQEgDp/documents?parentId=&sortCol=&sortStatus=&_currpage=1&lines=1000&accessToken="+AccessToken;       
 var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();       
 var jsonObj = new Packages.com.alibaba.fastjson.JSONObject();       
 var JSONString = URLConnector.post(viewsApiUrl,"");        
 var errmsg = JSONString.get("errmsg");       
 if("ok".equals(errmsg)){       
 var docProcess = getDocumentProcess();    
 var formProcess = getFormProcess();       
 var newForm = formProcess.doViewByFormName("BOM清单",getApplication());   
 var newDoc = docProcess.doNew(newForm,getWebUser(),createParamsTable());    
 var dataArray = JSONString.get("data").get("data");       
 if(dataArray!=null || dataArray.size()>0){       
 	for(var iter = dataArray.iterator();iter.hasNext();){       
 		var jsonData = iter.next();    
 		var jsonitem = jsonData.get("items");    
 		var iterator = jsonitem.entrySet().iterator();       
 		while(iterator.hasNext()){       
 			var entry = iterator.next();   
 			if(entry!=null){   
 				var uuid = Sequence.getSequence();   
 				var entryValue = entry.getValue();   
 				newDoc.setId(uuid);   
 				var name = entryValue.get("name");   
 				if("物料类型".equals(name)){   
 					newDoc.addStringItem("物料类型",entryValue.get("value"));   
 				} 
 				if("PTSP".equals(name)){   
 					newDoc.addStringItem("PTSP",entryValue.get("value"));   
 				} 
 				if("SAP物料编码".equals(name)){   
 					newDoc.addStringItem("SAP物料编码",entryValue.get("value"));   
 				} 
 				if("工厂".equals(name)){   
 					newDoc.addStringItem("工厂",entryValue.get("value"));   
 				} 
 				if("改变零件编码".equals(name)){   
 					newDoc.addStringItem("改变零件编码",entryValue.get("value"));   
 				} 
 				if("计量单位".equals(name)){   
 					newDoc.addStringItem("计量单位",entryValue.get("value"));   
 				} 
 				if("零件属性".equals(name)){   
 					newDoc.addStringItem("零件属性",entryValue.get("value"));   
 				} 
 				if("零件属性2".equals(name)){   
 					newDoc.addStringItem("零件属性2",entryValue.get("value"));   
 				} 
 				if("维护人员".equals(name)){   
 					newDoc.addStringItem("维护人员",entryValue.get("value"));   
 				} 
 				 
 				if("标准价格".equals(name)){   
 					newDoc.addDoubleItem("标准价格",entryValue.get("value"));   
 				} 
 				if("物料描述".equals(name)){   
 					newDoc.addDoubleItem("物料描述",entryValue.get("value"));   
 				} 
 				if("备注".equals(name)){   
 					newDoc.addDoubleItem("备注",entryValue.get("value"));   
 				} 
 				  
 			}  
 						 
 		}
	docProcess.doCreate(newDoc); 		
 	}  		   
 }       
 }       
 })()
 类似资料: