批量授一种权限给用户程序 plm enovia
set context user DanielDai;
add program LUX_UserAssignment
java
execute immediate
code 'import com.matrixone.apps.domain.util.MqlUtil; import matrix.db.Context; import org.apache.commons.lang.StringUtils; import java.io.*; public class ${CLASSNAME} { public void assignRole(Context context, String[] args) throws Exception{ if(!StringUtils.isNotBlank(args[0])){ System.out.println("exit0:path is null"); return; } String path = args[0]; if(!StringUtils.isNotBlank(args[1])){ System.out.println("exit1:role is null"); return; } String role = args[1]; File file = new File(path); if(!file.exists()){ System.out.println("exist2:file no exist"); return; } InputStream inputStream = new FileInputStream(file); Reader reader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(reader); String line = null; while((line=bufferedReader.readLine())!=null){ String mql = "temp query bus Person * - where attribute[Email Address]==" + line + " ;"; String res = MqlUtil.mqlCommand(context,mql); if(!StringUtils.isNotBlank(res)){ String[] resS = res.split(","); String personName = resS[1]; mql = "modify Person " + personName + "assign role " + role + " ;"; MqlUtil.mqlCommand(context,mql); } } } } '
;
compile program LUX_UserAssignment force;
execute program LUX_UserAssignment -method assignRole '/opt/plm/MatrixWorkArea/daniel/UserList.csv' 'LUX_CAD_Download' ;
delete program LUX_UserAssignment;
1.UserList.csv 中必须是用户的邮箱列表,因为用户的邮箱唯一,并且区分大小写。
改变 assignRole method 后面的路径和权限名就可以了。
命令中的java 代码 格式化之后:
import com.matrixone.apps.domain.util.MqlUtil;
import matrix.db.Context;
import org.apache.commons.lang.StringUtils;
import java.io.*;
public class LUX_UserAssignment_mxJPO {
public void assignRole(Context context, String[] args) throws Exception{
if(!StringUtils.isNotBlank(args[0])){ System.out.println("exit0:path is null");
return;
}
String path = args[0];
if(!StringUtils.isNotBlank(args[1])){
System.out.println("exit1:role is null");
return;
}
String role = args[1];
File file = new File(path);
if(!file.exists()){
System.out.println("exist2:file does not exist");
return;
}
InputStream inputStream = new FileInputStream(file);
Reader reader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(reader);
String line = null;
while(StringUtils.isNotBlank(line=bufferedReader.readLine())){
String mql = "temp query bus Person * - where \"attribute[Email Address]==" + line + "\" ;";
String res = MqlUtil.mqlCommand(context,mql);
if(!StringUtils.isNotBlank(res)){
System.out.println("Warning:User with email(" + line + ") does not exist!");
continue;
}
if(StringUtils.isNotBlank(res)){
String[] resS = res.split(" ");
String personName = resS[1];
mql = "modify Person " + personName + " assign role " + role + " ;";
MqlUtil.mqlCommand(context,mql);
System.out.println(role + " is assigned to User " + personName + "(" + line + ")" + " successfully!");
}
}
}
}
批量授一种权限给用户程序 plm enovia的更多相关文章
- JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)
1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...
- java面向对象中四种权限(private,protected,public,友好型)详解
转自http://blog.csdn.net/a1237871112/article/details/50926975 及http://blog.csdn.net/blackmanren/articl ...
- Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner
Gitlab权限管理Gitlab用户在组中有五种权限:Guest.Reporter.Developer.Master.Owner Guest:可以创建issue.发表评论,不能读写版本库Reporte ...
- mybatis 批量update两种方法对比
<!-- 这次用resultmap接收输出结果 --> <select id="findByName" parameterType="string&qu ...
- mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样
Mybatis批量更新数据 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批 ...
- Java四种权限修饰符 在创建类中的使用
四种权限修饰符 Java中有四种权限修饰符 public > protected > (default) >private 同一个类(我自己) YES YES YES YES同一个包 ...
- java 基础 四种权限修饰符
/** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第6节 权限修饰符_6_四种权限修饰符
四种权限修饰符.从大到小 纵向再分成四种情况 同一个类 同一个类里面.private方式,可以访问到本类里面的 num成员变量 前面不写修饰符也能访问到 (default)就是不写的这种情况 受保护的 ...
- Java 四种权限修饰符
Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...
随机推荐
- 自定义的最简单的可回调的线程任务CallbackableFeatureTask(模仿google的ListenableFutureTask)
1.使该Task继承Callable,Runable import java.util.concurrent.Callable; import java.util.function.Consumer; ...
- ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址
摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...
- MySQLdb-python安装
安装很简单,步骤如下: 前期:yum -y install python-setuptools,或者自己网上找源码包安装 1. 下载安装包: #wget https://pypi.python.or ...
- 【串线篇】sql映射文件-分布查询(下)cellection的1-n
1.场景 一个门人手一把钥匙 1-n 一个Lock对应一个Key集合(collection自动整成list) Map不是collection的子接口或者实现类.Map是一个接口. JavaBean:p ...
- python实现简单接口
接口实现 import flask,json server=flask.Flask(__name__)#__name__代表当前的python文件.把当前的python文件当做一个服务启动 @serv ...
- python运行windows终端程序
其实是用python控制windows里的shell 1.windows有PowerShell,可以通过搜索打开,运行python不需要打开shell 2.用python里的subprocess函数, ...
- day15 python lambda函数 递归函数 二分法
day15 python 一.匿名函数 lambda 1.lambda函数 def func(n): #普通函数, 功能比较简单, 当函数多的时候, 起名也不 ...
- 人生苦短_我用Python_dict(字典)_003
# coding=utf-8 # 字典 {"key":"values"} 无序的 # dict 可以包含任何类型的数据 values可以是任何数据类型 key必 ...
- C#基础提升系列——C#委托
C# 委托 委托是类型安全的类,它定义了返回类型和参数的类型,委托类可以包含一个或多个方法的引用.可以使用lambda表达式实现参数是委托类型的方法. 委托 当需要把一个方法作为参数传递给另一个方法时 ...
- SSH配置与修改
ssh文件路径:/etc/ssh/ ssh的日志文件:/var/log/secure 端口修改:./sshd_config 服务启停: service sshd start/stop/restart ...