扩展脚本中封装了两种上下文,插件上下文(pluginCtx)和方法上下文(methodCtx)。这两种上下文为系统内置,无需额外的声明或获取。
- pluginCtx主要存放当前执行环境的相关信息,比如服务端的Context,客户端的界面控件、界面状态、编辑对象等。
- methodCtx存放当前操作的相关信息,包含方法参数和方法返回值。
方法上下文
方法上下文存放了方法的相关信息,包括方法参数和方法返回值。方法上下文提供如下:
我们来看这个示例,删除主表记录时也删除对应表的纪录
//服务端更新单据状态
var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.eas.util.app);
with(imp){
var ctx = pluginCtx.getContext();
var billId = methodCtx.getParamValue(0);//获取参数
var isDone = methodCtx. getResultValue();//获取方法返回值是否成功执行
var status = 11;
var sql = "delete T_SD_SALEORDER WHERE FBillID = '"+billId+"'";
if(isDone){
DbUtil.execute(ctx, sql);
}
methodCtx.setResultValue(java.lang.Boolean.TRUE);//设置方法返回值
}
1.2.1获取方法参数
如果想获得方法的某个参数,比如delete(String pk)的参数,这可以通过methodCtx.getParamValue(0)来获得单据的pk。
示例中以var billId = methodCtx.getParamValue(0); 来获取参数需要删除单据的id
1.2.2获取方法返回值
描述:可以通过methodCtx.getResultValue()来获得方法的返回值。
用法:一般在后置脚本中使用,如示例代码中,通过状态方法是否成功执行来判断是否需要删除对于表的纪录:var isDone = methodCtx. getResultValue();
1.2.3设置方法返回值
设置方法的返回值必须通过methodCtx.setResultValue(value)来设置,不可以用类似方法返回值的方式写(return value)。
如示例代码中设置方法返回值为TRUE。methodCtx.setResultValue(java.lang.Boolean.TRUE)
1.2.4方法上下文常用方法
| 描述 | 方法 |
|---|---|
| 获取方法名 | String getName() |
| 获取方法别名 | String getAlias() |
| 获取方法参数类型 | String[] getParamTypes() |
| 获取方法某个参数的类型 | String getParamType(int index) |
| 获取方法参数值 | Object[] getParamValues() |
| 获取方法某个参数值 | Object getParamValue(int index) |
| 获取方法返回值类型 | String getResultType() |
| 获取方法返回值 | Object getResultValue() |
| 设置方法返回值 | void setResultValue(Object value) |
本文介绍了金蝶EAS DEP扩展脚本中的方法上下文(methodCtx),包括获取方法参数、返回值,设置返回值以及常用方法。methodCtx用于存储方法相关数据,例如参数和返回值,在处理业务逻辑时起关键作用。

被折叠的 条评论
为什么被折叠?



