一人多岗并同时有同一个功能的权限和不同的数据权限,从功能菜单中打开功能时如何默认执行主岗的数据权限

一人多岗,并且多个岗位有同一个功能的功能权限,但是不同的岗位同一个action设置了不同的数据权限 平台默认的从功能菜单中打开功能时,是把所有岗位的数据权限按照and的方法拼接起来的,但是功能的当前执行者是主岗,如果需要数据权限也是主岗的参考下面的方案实现 1.在/BIZ/system/config/interceptor.config.m中定义一个拦截器 <item name="initExecutor" value="/system/logic/code,InitExecutor,before"/> 定义在其他拦截器的上面,如下: 2.在/BIZ/system/logic/code/dsrc下创建一个java类InitExecutor,注意要生成对应的class文件,具体实现如下: import java.lang.reflect.Field; import org.apache.log4j.Logger; import com.justep.common.SystemUtils; import com.justep.system.action.Interceptor; import com.justep.system.context.ActionContext; import com.justep.system.context.ContextHelper; //对于非登录的action, 如果executor没有指定或为*时,强制修改为当前人员成员 public class InitExecutor implements Interceptor{ public static Logger logger = [...]

概念下的”从已定义关系中选择”和”添加新关系”的区别

从已定义关系中选择:在同一个模块或者引用的ontolgoy模块中已经定义了所需的关系,可以直接选择使用不用重新定义 添加新关系:在同一个模块或者引用的ontolgoy模块中没有定义所需的关系,需要新添加一个来使用 这个“添加新关系”自动完成了两件事: 1.在左侧的“关系”列表下新建了一个关系 2.把刚新建的关系包含到当前概念下 通过ontolgoy文件头部菜单栏中的“添加关系”只是在左侧的“关系”列表下新建了一个关系,如果概念中需要,需要通过“从已定义关系中选择”选择 因此对于没有定义的关系通过“添加新关系”操作相当于执行了“添加关系”和“从已定义关系中选择”

如何创建一个所有模块都可以引用的action

默认的要引用其他模块的action,需要在process文件同级的model.config.xml添加action所在模块的引用 如果是大部分功能模块都需要引用一个一个添加太麻烦,可以参考如下两种方案 方案一: 自己不创建模块,通过平台默认提供的模块创建action实现 可以通过扩展空间的方式对system/action进行扩展,并在其扩展空间下创建action,并把action设置为全局action 方案二: 自己创建模块,创建action实现 在其他模块需要引用action的模块根目录下创建一个model.config.xml文件,并在文件中用include的方式引用自己创建模块的action目录,并且需要把action设置为全局action 设置为全局action是为了不用在每个process文件的动作设置中再添加一次

java中如何通过Process的完整路径获取该流程的所有环节

环节activity是在Process上的,因此要获取activity要先获取到Process对象 com.justep.model.ModelUtils中提供了getProcess(String fullName)方法可以获取到Process对象 其中参数String fullName,需要是process的全路径 如:process文件的路径为:/BIZ/demo/misc/process/order/orderProcess.process.m 那么process的全路径就是:/demo/misc/process/order/orderProcess Process对象中提供了getActivities()获取所有的环节 ,返回类型是List,可以自己遍历list 因此完整的获取方法是: com.justep.model.ModelUtils.getProcess(String fullName).getActivities()

两个结构相同的概念,如何通过执行select后调用BizData.save方法操作数据库中记录

com.justep.system.data.BizData中提供的save方法可以通过传table和概念,把table中内容保存到概念对应的数据库表中 两个结果相同的概念,其中一个通过执行select返回table后可以修改关系语义信息,把table保存到另一个概念中 具体代码实现如下: //AP_Test1和AP_Test2结构相同,获取AP_Test1给AP_Test2赋值 public static void bizDataSave(){ String ksql = "select test1.* from AP_Test1 test1"; Table table1 = KSQL.select(ksql,null,"/appdemo/test/data",null); TableMetaData tableData = table1.getMetaData();//获取Table的定义元信息 //通过列名获取列定义信息,并设置设置列关联的语义信息为AP_Test2中的信息 tableData.getColumnMetaData("test1").setDefine("AP_Test2"); tableData.getColumnMetaData("version").setDefine("AP_Test2.version"); tableData.getColumnMetaData("fCode").setDefine("AP_Test2.fCode"); tableData.getColumnMetaData("fName").setDefine("AP_Test2.fName"); Iterator<Row> it = table1.iterator(); while [...]

如何禁用操作日志

操作日志的基本原理: 是以action为单位进行记录的, 及针对某个action可以设置其关闭或打开日志功能,打开日志功能就会向SA_Log中插入数据 平台默认记录的action日志(比如openActivityAction, closeActivityAction, loginAction, logoutAction等等)在/BIZ/system/logic/action/opm.action.m 和/BIZ/system/logic/action/system.action.m中设置的 可以根据项目需要自己在action定义中关闭日志功能(action的“启用日志”勾选去掉),并且重启tomcat。 组织机构相关的日志平台默认关闭的,在/BIZ/SA/OPM/log/log.config.m中配置的: <config name="opm.api.log.enabled" value="false" /> 如果操作日志有组织机构相关的日志确认是不是这个配置改为true了 另外:SA_Log这个表的数据可以定时清除的,对系统不会有什么影响

引用其他模块后报错”模块间不允许循环引用”

BIZ层常用的模块引用参考http://bbs.wex5.com/forum.php?mod=viewthread&tid=40985 引用了其他模块如果报错: com.justep.model.exception.ModelException: 编码: JUSTEP151057; 提示: 模块间不允许循环引用" 说明模块出现了循环引用,如A模块引用了B模块,B模块又引用了A模块 出现这样需要相互引用的可以创建一个公共的模块如common,在common模块下创建A和B都需要的资源 然后A和B都引用common模块

java中如何创建文档中心的目录

java中实现上传文件到文档服务器,可以参考http://bbs.wex5.com/forum.php?mod=redirect&goto=findpost&ptid=40457&pid=164967541 链接中只有上传文件的实现,如果要先创建目录后然后把文件上传到新创建的目录下,需要先调用API创建目录,并且获取到创建目录的docID的值 在调用addDoc的时,把获取的docID的值做参数传递即可 创建目录并获取docID的具体实现参考如下: public static void createDocDir() throws UnsupportedEncodingException, DocumentException, Exception{ Docs docs = new Docs(); docs.addDirs("defaultDocNameSpace", "归档中心/180808/文件");//创建目录 Table table = docs.getTable(); Iterator it = table.iterator(); String docDirID = ""; while (it.hasNext()){ Row [...]