实体行为脚本
执行实体行为脚本包含行为执行前脚本、行为执行后脚本。在脚本代码中可根据数据、上下文、视图参数执行特殊业务逻辑。
参数
名称 | 类型 | 描述 |
---|---|---|
context | IApiContext | 当前视图上下文 |
params | IApiParams | 当前视图参数 |
data | IApiData[] | IApiData | undefined | 当前业务数据 |
targetName | string | 部件名称 |
view | IApiViewController | 当前视图 |
ctrl | IApiControlController | 当前部件 |
document | Document | 当前文档对象 |
selector | (className: string) => HTMLCollectionOf<Element> | 元素选择器 |
env | IEnvironment | 当前环境对象 |
appSession | IApiData | 当前应用会话对象 |
topViewSession | IApiData | 当前顶级视图会话对象 |
viewSession | IApiData | 当前视图会话对象 |
viewParam | IApiParams | |
app | IApiAppHubController | 当前应用 |
topView | IApiViewController | 当前顶级视图 |
parentView | IApiViewController | undefined | 当前父视图 |
parent | IApiViewController | undefined | 当前父视图 |
util | { message: IApiMessageUtil, notification: IApiNotificationUtil,modal: IApiModalUtil,confirm: IApiConfirmUtil,openView: IApiOpenViewUtil} | 工具集 |
调用示例
基于视图参数或业务数据调整当前上下文数据
typescript
// 基于业务数据调整当前上下文数据
context.aaa = data.field1;
// 基于视图参数调整当前上下文数据
context.bbb = viewParam.field2;
调用指定实体行为
typescript
// 获取当前应用对象
const app = ibiz.hub.getApp(context.srfappid);
// 调用实体标识为plmweb.xxx的实体行为compute_details并获取结果,其中plmweb.xxx表示实体标识(必填),compute_details表示实体行为(必填),context表示上下文对象(必填),{"xxx":data.id,"yyy":context.work_item,"zzz":context.project}表示要提交的数据(选填)
const res = await app.deService.exec( 'plmweb.xxx', 'compute_details', context, {"xxx":data.id,"yyy":context.work_item,"zzz":context.project});
基于当前数据附加其他业务逻辑
typescript
// 设置当前要处理的工作项操作向导标识
context.class_wizard = data.id;
// 获取当前应用对象
const app = ibiz.hub.getApp(context.srfappid);
// 组装数据请求并调用工作项向导操作服务计算子项
const res = await app.deService.exec( 'plmweb.work_item_wizard', 'compute_details', context, {"work_item_wizard":data.id,"work_item":context.work_item,"project_id":context.project});
const details = res.data.details;
// 基于返回的子项数据调用工作项向导操作详情服务创建子项
await app.deService.exec( 'plmweb.work_item_wizard_detail', 'Create', context, details);