attachment(非attachmentSimple)相关的附件组件如何实现物理删除

附件组件的删除默认是逻辑删除只是把附件组件关联的业务字段中的json信息删除了,SA_docNode中的数据和服务器上的文件都没有删除 如果要同时把SA_docNode中的数据和服务器上的文件都删除,需要实现物理删除 attachmentPC组件提供了源码可以直接修改组件源码实现,或者在.w功能页面中实现 attachement没有提供源码只能在.w功能页面中实现 要删除服务器上的文件需要调用action操作 平台默认的/SA/doc/logic/action下定义的有此操作的action,因此需要在业务功能的BIZ层process文件同级的model.config.xml中引用/SA/doc/logic/action .w功能页面中实现参考如下: 1.在model的构造函数中定义一个实例变量用来存储删除的附件的docID var Model = function() { this.callParent(); this.docIDs = []; }; 2.在附件组件的onDelete事件中获取删除的附件的docID存储到实例变量中 Model.prototype.attachmentPC5Delete = function(event) { //保存到文档服务器的文件删除时记录删除的docID var fileID = event.source.$activeDoc.get().fileID.get(); if(fileID){ this.docIDs.push(event.data.docID); } }; [...]

.j中请求action如何获取返回数据

.j中请求action用的是com.justep.biz.client.ActionEngine中提供的invokeAction相关的API API中有一个String类型的accept参数,设置期望返回数据的格式,一般情况下设置为 json格式的:com.justep.biz.client.ActionUtils.JSON_CONTENT_TYPE xml格式的:com.justep.biz.client.ActionUtils.XML_CONTENT_TYPE invokeAction相关的API调用action返回的结果是com.justep.biz.client.ActionResult,下面代码中的ar就是定义的ActionResult类型的变量 如: ActionResult ar = ActionEngine.invokeAction(bytes, accept, contentType, bsessionID, language, null); ActionResult中提供的有getContent()API可以获取整个返回结果,因此获取返回数据可以使用这个API 当设置的accept为ActionUtils.JSON_CONTENT_TYPE是,获取返回数据如下: JSONObject content = (JSONObject)ar.getContent(); 当设置的accept为ActionUtils.XML_CONTENT_TYPE是,获取返回数据如下: Document arDocument = (Document)ar.getContent(); arDocument.asXML();

流转对话框如何给任务的扩展字段赋值

SA_Task中提供了以sESField、sEDField、sETField、sEIField、sEBField、sENField开头,关系类型为String、DateTime、Text、Integer、Blob、Decimal的一组扩展字段 可以根据自己需要跟扩展字段赋值把一些业务数据等存到SA_Task中 流转对话框中要给扩展字段赋值,需要自己扩展流转对话框 某个具体流程功能的流转对话框可以参考http://docs.wex5.com/bex5-process-question-list-10008/ 所有的功能都需要可以通过扩展空间的方式修改/UI2/system/service/process/dialog下的processDialog相关的.w和js文件 本例是在PC端流转对话框中添加了一个input框,把input框中的输入信息存储到sESField7中,修改的是processDialog.w和processDialog.m.js 1.在model的添加一个data,添加两个列,并设置data为自动新增 <div autoLoad="false" autoNew="true" component="$UI/system/components/justep/data/data" idColumn="rowid" xid="data1_3" xui:parent="model" xui:update-mode="insert"> <column name="rowid" type="String" xid="xid1_3"/> <column name="sESField07" type="String" xid="xid2_3"/> <rule xid="rule1_3"> <col name="rowid" xid="ruleCol1_3"> <defaultValue xid="default1_3"> <expr xid="default2_3">justep.UUID.createUUID()</expr> </defaultValue> </col> [...]

两个结构相同的概念,如何通过执行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 [...]

list的onAfterRender事件中如何获取每行的html组件

list关联的data有多条记录时,list中的组件就会生成多个,简单通过xid获取就会获取到多个 在onAfterRender中可以获取到当前计算行的索引,可以通过索引获取当前行的组件 获取html组件可以用jquery的方式 如下在onAfterRender中获取list中的a标签: Model.prototype.mainListAfterRender = function(event){ var index = event.$object.index();//获取行索引 $("a[xid=a1]")[event.$object.index()];//获取a标签 };

如何禁用操作日志

操作日志的基本原理: 是以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这个表的数据可以定时清除的,对系统不会有什么影响

attachmentSimple删除文件时如何实现物理删除

attachmentSimple组件删除上传的文件时,默认只是把业务字段中存储的json传中的信息删除 ,而服务器上存储的文件并没有删除 如果要在删除的时候把服务器的上文件也删除需要通过.j或者BIZ层定义action的方法操作服务器 本例是用.j实现的,.j(名字是attachmentSimpleDelete.j)的代码具体如下: import java.io.File; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.justep.ui.JustepConfig; public class AttachmentSimpleDelete extends com.justep.ui.impl.JProcessorImpl { protected void doGet(HttpServletRequest request, HttpServletResponse response) [...]

企业版如何配置数据源

企业版默认没有打开发工具studio,因此不能直接通过studio配置数据源,平台默认的数据源配置文件是apache-tomcat\conf\context.xml 简便的方法就是在开发版中配置数据源,然后把文件拷贝到企业版中 也可以直接手动到这个文件中配置(就是tomcat标准的数据源配置Resource节点) 或者运行平台版本中默认带的“配置初始化其它数据库.bat”批处理文件,需要注意的是这个只能配置doc、system和demo数据源名,如果应用设置了自己的数据源名还需到文件中手动配置 在执行这个批处理文件的时候如果不需要重新初始化数据库,请注意配置时选项的控制,默认是初始化的 当然还有简便的方法就是在开发版中配置数据源,然后把apache-tomcat\conf\context.xml文件拷贝到企业版中