BPMAXBPMAX
  • 快速入门
  • 核心概念
  • 管理员手册
  • 仿真和回放
  • 流程相关脚本
  • 表单相关脚本
  • 数据集相关脚本
  • 界面相关脚本
  • 系统相关脚本
  • 流程集成
  • 数据集
  • OpenAPI
  • 实体列表
  • 插件开发
  • 日志排查
  • 飞书平台

    • 同步组织架构
    • 同步团队组织架构
    • 一键拉群
    • 高级卡片消息
    • 服务台能力
  • 实用功能

    • 系统公告
    • 项目日历
    • 超时自动化
    • 报告自动生成
  • 文档更新记录
  • 系统更新说明
  • 快速入门
  • 核心概念
  • 管理员手册
  • 仿真和回放
  • 流程相关脚本
  • 表单相关脚本
  • 数据集相关脚本
  • 界面相关脚本
  • 系统相关脚本
  • 流程集成
  • 数据集
  • OpenAPI
  • 实体列表
  • 插件开发
  • 日志排查
  • 飞书平台

    • 同步组织架构
    • 同步团队组织架构
    • 一键拉群
    • 高级卡片消息
    • 服务台能力
  • 实用功能

    • 系统公告
    • 项目日历
    • 超时自动化
    • 报告自动生成
  • 文档更新记录
  • 系统更新说明
  • 流程相关脚本

    • 使用场景概览
    • 项目上下文数据

项目上下文数据

类型定义

interface ServerProjectContext extends ProjectContext {
  // 基础属性
  $CAN_EDIT: boolean;                    // 是否可编辑
  $CHILDREN: Array<Form>;                // 子表单列表
  $DELAY_LEVEL: DelayLevel;              // 延迟级别信息
  // @see /develop/entity/#enumerated-values
  $FLOW: FlowEntity;
  $META_FORM_FIELD: Record<string, any>; // 主表单字段值映射
  $META_FORM_FIELD_2_VALUE: Record<string, {  // 主表单字段值和类型映射
    value: any;
    type: string;
  }>;
  $META_FORM_RULE: Record<string, FormRule>;   // 主表单规则映射
  $META_FORM_TITLE: Record<string, any>;       // 主表单标题值映射
  $META_FORM_TITLE_2_VALUE: Record<string, {   // 主表单标题值和类型映射
    value: any;
    type: string;
  }>;
  $ORG_CFG: OrgConfig;                   // 组织配置信息
  $P: Record<string, boolean>;           // 权限判定方法集合
  $PARENTS: Array<Form>;                 // 父表单列表
  $PROJECT: ProjectEntity;                     // 项目信息
  $RELATED_FORMS: Array<Form>;           // 关联表单列表
  $STATUS: Record<string, any>;          // 流程状态信息
  $STEP_FORM_FIELD: Record<string, any>; // 步骤表单字段值映射
  $STEP_FORM_FIELD_2_VALUE: Record<string, {  // 步骤表单字段值和类型映射
    value: any;
    type: string;
  }>;
  $STEP_FORM_RULE: Record<string, FormRule>;  // 步骤表单规则映射
  $USER_INFO: UserInfo;                  // 用户信息
  $_: typeof lodash;                     // Lodash工具库

  // 模型操作
  model(name: string): Model;            // 获取指定模型实例
  $model(name: string): Model;           // 获取指定模型实例(同model)

  // 搜索操作
  $search(reportEsQuery: object): Promise<SearchResult>;  // 执行ES搜索查询

  // 服务操作
  $service(name: string): Service;       // 获取服务实例

  // 工具库
  $moment: typeof moment;                // moment日期处理库
  $lodash: typeof lodash;               // lodash工具库

  // 数据转换工具
  // Field转换
  $transformField2Value(values: Array<{field: string; value: any}>): Record<string, any>;
  $transformField2Rule(rule: Array<{field: string; rule: any}>, flat?: boolean): Record<string, any>;

  // Title转换
  $transformTitle2Value(values: Array<{title: string; value: any}>): Record<string, any>;
  $transformTitle2Rule(rule: Array<{title: string; rule: any}>, flat?: boolean): Record<string, any>;

  // Key转换
  $transformKey2Value(values: Array<{key: string; value: any}>): Record<string, any>;
  $transformKey2Rule(rule: Array<{key: string; rule: any}>, flat?: boolean): Record<string, any>;

  // 订阅相关
  $subscribe(table: string, id: number, option?: ResetProjectStepOwnerOption): Promise<void>;  // 订阅指定表的指定记录, 只在当前环节负责人分配脚本可用, 对应记录有变更操作时将会重新执行当前环节负责人分配脚本重新分配环节负责人
  $subScribeForm(form_id: number, option?: ResetProjectStepOwnerOption): Promise<void>;       // 订阅指定表单的记录, 只在当前环节负责人分配脚本可用, 对应记录有变更操作时将会重新执行当前环节负责人分配脚本重新分配环节负责人

  // // 用于识别是否由订阅事件触发的脚本,可以依据此标识避免一些函数副作用
  // trigger_by_subscription?: boolean;
}

interface ResetProjectStepOwnerOption {
  /** 是否全匹配, 为true 时删除掉老负责人数据中在新配置中不存在的人 */
  full_match?: boolean;
  /** 变更原因 */
  reason?: string;
  /** 操作批次,修改多个项目多个环节负责人可以共享一个批次 */
  batch_id?: string;
  /** 操作人id */
  user_id?: number;
  /** 是否对被修改的正在进行中的环节相关负责人发送通知 */
  send_message?: boolean;
}
Prev
使用场景概览