金蝶EAS DEP脚本(2)—— 上下文之插件上下文(pluginCtx)

本文介绍了金蝶EAS DEP脚本中的插件上下文pluginCtx,包括服务端和客户端上下文。pluginCtx用于存储执行环境信息,如服务端Context和客户端界面详情。服务端通过pluginCtx.getContext获取上下文,客户端可通过pluginCtx直接访问界面实例。
       扩展脚本中封装了两种上下文,插件上下文(pluginCtx)和方法上下文(methodCtx)。这两种上下文为系统内置,无需额外的声明或获取。
  • pluginCtx主要存放当前执行环境的相关信息,比如服务端的Context,客户端的界面控件、界面状态、编辑对象等。
  • methodCtx存放当前操作的相关信息,包含方法参数和方法返回值。

插件上下文

       客户端和服务端的插件上下文存储的内容不一样,实现方式上,其分别对应于两个java类,com.kingdee.eas.ep.app.BeanParam和com.kingdee.eas.ep.client.UIParam。这两个类中的方法均可以在脚本中直接使用。
       上下文都存在get和put方法。脚本中直接使用get(key)获取值,put(key,value)设置值。

1.1.1服务端上下文

服务端通过pluginCtx.getContext()获取服务端上下文,比如:

//服务端更新单据状态
var imp = JavaImporter(); 
imp.importPackage(Packages.com.kingdee.eas.util.app); 
with(imp){
	//获取服务端上下文
	var ctx = pluginCtx.getContext();
	//获取方法参数
	var billId = methodCtx.getParamValue(0); 
	var sql = "update T_SD_SALEORDER SET FBASESTATUS = " + 
	status + " WHERE FID = '"+billId+"'";
	//执行sql,使用服务器端上下文
	DbUtil.execute(ctx, sql); 
}

服务器端上下文常见用法:

描述服务器端上下文用法
获取当前用户com.kingdee.eas.util.app.ContextUtil.getCurrentUserInfo(pluginCtx.getContext());
获取client端IPcom.kingdee.eas.util.app.ContextUtil.getClientIP(pluginCtx.getContext());
获取client端名称com.kingdee.eas.util.app.ContextUtil.getClientName(pluginCtx.getContext());
获取当前CUcom.kingdee.eas.util.app.ContextUtil.getCurrentCtrlUnit(pluginCtx.getContext());
获取当前财务组织(公司)com.kingdee.eas.util.app.ContextUtil.getCurrentFIUnit(pluginCtx.getContext());
获取当前行政组织com.kingdee.eas.util.app.ContextUtil.getCurrentAdminUnit(pluginCtx.getContext());
获取当前HR组织com.kingdee.eas.util.app.ContextUtil.getCurrentHRUnit (pluginCtx.getContext());
获取当前数据库类型com.kingdee.eas.util.app.ContextUtil.getDbType (pluginCtx.getContext());
获取当前组织单元com.kingdee.eas.util.app.ContextUtil.getCurrentOrgUnit(pluginCtx.getContext());

1.1.2客户端上下文

客户端插件上下文封装了部分常用的内容,具体如下:

描述获取客户端上下文
获取界面上下文java.util.Map getUIContext()
获取组织上下文com.kingdee.bos.Context getMainOrgContext()
获取界面状态,比如新增、编辑java.lang.String getOprtState()
获取当前编辑对象,编辑界面的editDatacom.kingdee.bos.dao.IObjectValue getDataObject()
获取界面绑定com.kingdee.bos.appframework.databinding.DataBinder getDataBinder()
获取规则处理com.kingdee.eas.framework.client.UILifeCycleHander getLifeCycleHander()
获取当前界面实例com.kingdee.bos.ui.face.IUIObject getUI()
获取组织pluginCtx.getUIContext().get(“sysContext”).getCurrentFIUnit()
获取界面状态pluginCtx.getUI().getOprtState();
获取界面ActionpluginCtx.getUI().getActionManager().getAction(“actionName”)

直接通过pluginCtx调用即可,比如pluginCtx.getUI即可获取当前界面实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值