经常有碰到要用角色的ID的时候,但通常就只知道角色名称,如果要查就只能到服务器上找到角色文件,然后再一个个的查找才能找到.Windchill的角色文件存放的地址在:Windchill\wtCustom\wt\project目录下,一般至少有两个文件:RoleRB.rbInfo和RoleRB_zh_CN.rbInfo,这两个就是存放角色的文件,可直接打开.
文件内容如:
ResourceInfo.class=wt.tools.resource.EnumResourceInfo
# Entry Contents
APPROVER.value.translationSource.now=Approver
APPROVER.shortDescription.translationSource.now=Workflow Approver role
APPROVER.value=批准者
APPROVER.shortDescription=工作流批准者角色
APPROVER.order=10
...................
包含住信息太多,其实我只想要一个键:APPROVER和批准者,所以我就用java写了个方法把这两个值提取出来,
JAVA:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
public class WindchillRole
{
/**
* 将角色文件RoleRB_zh_CN.rbInfo里的角色产生到一个文件里形成键值对
* <br/><方法概述>
* <br/><方法详细概述>
* <br/><版本>
* <br/><作者> crf
* @throws IOException
*/
public static void productRoleMapFile() throws IOException{
String path="E:\\RoleRB_zh_CN.rbInfo";
String outputPath="E:\\PLM角色键值对.csv";
java.io.File file=new java.io.File(path);
java.io.File outFile=new java.io.File(outputPath);
InputStream in=new FileInputStream(file);
OutputStream out=new FileOutputStream(outFile);
InputStreamReader ir=new InputStreamReader(in,"GBK");
BufferedReader br=new BufferedReader(ir);
OutputStreamWriter ow=new OutputStreamWriter(out,"GBK");
BufferedWriter bw=new BufferedWriter(ow);
bw.write("角色ID,角色名称\n");
String result=br.readLine();
String str=".value=";
while(result!=null ){
if(result.indexOf(str)!=-1)
{
result=result.replace(str, ",");
bw.write(result);
bw.write("\n");
}
result=br.readLine();
}
bw.flush();
in.close();
out.close();
bw.close();
br.close();
}
public static void main(String[] args)
{
try
{
System.out.println("start change");
productRoleMapFile();
System.out.println("success end");
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这样就得到比较简单的键值文件了,如下:
角色ID | 角色名称 |
APPROVER | 批准者 |
APPROVER_LEVEL_1 | 批准者 - 级别 I |
APPROVER_LEVEL_2 | 批准者 - 级别 II |