




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
KINGDEE K 3 BOS 开发指导手册 BOSBOSBOS 扩展服务说扩展服务说扩展服务说 明手册明手册明手册 金蝶软件 中国 有限公司 研发中心 K 3 BOS 系统开发部 BOS扩展业务服务说明手册 金蝶软件 中国 有限公司 研发中心 K 3 BOS 系统开发部 RaymondYao 2006 02 12 2 1 1 1 扩展业务服务 扩展扩展业务服务 扩展扩展业务服务 扩展扩展业务服务 扩展 ActionActionAction 1 11 11 1 名词解释名词解释名词解释名词解释 扩展业务服务扩展业务服务 独立 通用的业务处理函数 其参数 返回数据独立于单据 基础资 料 为了把业务处理函数和特定的单据绑定 必须在函数的配置界面进行参数配置 因此 一个完整的扩展业务服务包括参数配置组件和解析运行组件 扩展业务服务实现的功能等 同于 BOS 原有的 Action 函数 只是允许用户自行扩展 后文中扩展业务服务又称为扩展 Action 1 21 21 2 简介简介简介简介 K 3 BOS 除了内置的一些业务服务函数 Action 外 还支持用户开发自有的 Action 用户可以将自有的业务逻辑封装在这种 Action 中 并在需要的时候配置到单据的 字段 加载更新事件 值更新事件 保存规则 事件 操作事件和单据事件中 以实现自 定义的过程 K 3 BOS 目前支持的 Action 按照运行领域可以分为 客户端 Action 包含适用于单据的 Action 和序时簿的 Action 中间层 Action 按照触发条件可以分为 字段相关的 Action 操作相关的 Action 单据事件相关的 Action 同时还有一种特殊的 Action 简单业务 Action 1 2 11 2 11 2 1字段相关的字段相关的字段相关的字段相关的 ActionActionAction 字段相关的 Action 是指当单据字段的值发生改变时会触发的 Action 字段相关的 Action 包含了所有 BOS 内置的 Action 如 TakeBaseData Calculate UnitExchange LockByItemTrack SetDecimal SetEquation ShowHideField LockField Vertify LockUsed LockMenu VerifyUniquely TrigActio n 关于这些 Action 的使用 请参考相关手册 字段相关的 Action 需要在字段的加载更新事件加载更新事件 值更新事件值更新事件 保存规则保存规则中进行定义 3 目前 字段相关的 Action 都是客户端单据运行的 Action 1 2 21 2 21 2 2操作相关的操作相关的操作相关的操作相关的 ActionActionAction 操作相关的 Action 是指当 BOS 单据的指定操作被用户触发后会执行的 Action 操作相关的 Action 需要在 BOS 单据的操作管理操作管理中定义 目前操作相关的 Action 又包含 单据操作前置 Action 在插件 BOSBarClick 事件发生之后触发 单据操作 Action 在单据操作前置 Action 之后 BOS 内置处理过程 如果有的话 之前触发 单据操作后置 Action 在 BOS 内置处理过程 如果有的话 完成之后触发 序时簿操作前置 Action 在插件 BOSBarClick 事件发生之后触发 序时簿操作 Action 在序时簿操作前置 Action 之后 BOS 内置处理过程 如果有 的话 之前触发 序时簿操作后置 Action 在 BOS 内置处理过程 如果有的话 完成之后触发 操作相关的 Action 可以在客户端运行 也可以在中间层运行 1 2 31 2 31 2 3单据事件相关的单据事件相关的单据事件相关的单据事件相关的 ActionActionAction 单据事件相关 Action 是指 BOS 单据在执行某些特定事件时触发的 Action 单据事件相关的 Action 需要在 BOS 单据的 保存前事件保存前事件 保存后事件保存后事件 删除前事件删除前事件 删除后事件删除后事件 属性中定义 目前包含 单据保存前 在插件的 BeforeSave 事件后发生 单据保存后 在插件的 AfterSave 事件后发生 单据删除前 在插件的 BeforeDel 事件后发生 单据删除后 在插件的 AfterDel 事件后发生 操作相关的 Action 目前都是在中间层运行 1 2 41 2 41 2 4简单业务简单业务简单业务简单业务 ActionActionAction 所谓简单业务 Action 是指符合 BOS 简单业务规则定义的扩展 Action 这种 Action 可能是字段相关的 也可能是操作相关的 Action 可以在客户端运行 也可以在中间层运行 这种 Action 和其他扩展 Action 的区别在于 Action 的定义界面是由 BOS 提供的 4 1 31 31 3 扩展扩展扩展扩展 ActionActionAction 的基本属性的基本属性的基本属性的基本属性 所有的扩展 Action 应该具有以下属性 1 3 11 3 11 3 1运行时组件运行时组件运行时组件运行时组件 所有的所有的扩展 Action 都需要有一个运行时组件 在实现特定接口后完成 Action 的具体 操作过程 这个组件是一个标准的 Active Dll 组件 1 3 21 3 21 3 2配置时组件配置时组件配置时组件配置时组件 如果扩展 Action 希望在用户配置时 由用户设定一些选项 并完成定义公式的校验 就需要提供定义时组件 这个组件是一个标准的 ActiveX Control 组件 对于简单业务 Action 不需要提供这样的组件 但必须按照指定的参数编写公式 这 样 配置界面将由 BOS 按照公式提供 1 3 31 3 31 3 3接口接口接口接口 所有的扩展 Action 都必须实现下列接口 定义组件接口定义组件接口 函数函数 属性属性类型类型详细说明详细说明 Action属性可读 写 String 类型 用来设置 返回用户配置的 Action 表达式 m dctTableInfo属性只写 KFO Dictionary 类型 接受单据字段模板包 m Field属性只写 KFO Dictionary 类型 接受 Action 对应的当前字段模板 m vctClassTypeEntry属性只写 KFO Vector 类型 接受单据分录模板包 m dctClassType属性只写 KFO Dictionary 类型 接受单据属性数据包 GetAction函数String 类型 返回用户设置的 Action 表达式 Initial方法提供接口给调用者 由其触发配置界面初始化 FormulaCheck函数 Boolean 检查最终用户设置的表达式是否合法 合法则返回真 BOS 会接受用户的设置 不合法则应该返回假 BOS 不会接受用户的设置 下面是代码模版 Private m sAction As String Public Property Get Action As String Action m sAction End Property Public Property Let Action ByVal New Action As String m sAction New Action End Property 5 Public Property Set m dctTableInfo ByRef New TableInfo As Object End Property Public Property Set m Field ByRef New Field As Object End Property Public Property Set m vctClassTypeEntry ByRef New vctClassTypeEntry As Object End Property Public Property Set m dctClassType ByRef New dctClassType As Object End Property Public Function GetAction As String End Function Public Sub Initial 在这里添加 Action 界面的初始化代码 End Sub Public Function FormulaCheck As Boolean 在这里添加 Action 函数表达式语法检查 如果检查通过 返回 True 否则返回 False End Function 请注意 请注意 1 如果是客户端适用的 Action 其定义时组件和运行时组件 都应该安装在客户 端 2 如果是中间层适用的 Action 其定义时组件仍应该安装在客户端 而运行时组 件应安装在中间层 3 如果同时适用于客户端和中间层的 Action 其定义时组件仍应该安装在客户端 而运行时组件应同时安装在客户端和中间层 运行组件接口 客户端适用运行组件接口 客户端适用 Action 函数函数 属性属性类型类型详细说明详细说明 SetInterface方法接受插件代理组件 单据的模板和数据包都可以从中获取 TransAction函数翻译 Action 表达式 暂保留为用 DataSrv属性 DoAction函数解析 执行 Action 的入口函数 下面是代码模版 客户端扩展 Action 模版 Private WithEvents m objBillInterface As K3ClassEvents BillEvent Private WithEvents m objBaseInterface As K3ClassEvents BaseClassEvent Private WithEvents m objListInterface As K3ClassEvents ListEvents Public Sub SetInterface ByRef objInterface As Object 设置 传入插件代理组件 6 On Error GoTo Catch If Not objInterface Is Nothing Then Select Case VBA UCase TypeName objInterface Case BILLEVENT Set m objBillInterface objInterface Case BASECLASSEVENT Set m objBaseInterface objInterface Case LISTEVENTS Set m objListInterface objInterface Case Else End Select End If Catch End Sub Public Property Set DataSrv ByRef New DataSrv As Object End Property Public Function TransAction ByRef strAction As String ByRef strDescription As String Optional ByVal strLanguage As String CHS Optional ByVal blnTransToDesc As Boolean True As Long 翻译 Action End Function Public Function DoAction ByVal strFunction As String ByVal dctParamenters As KFO Dictionary ByRef dctActionReturn As KFO Dictionary As Long 执行 Action On Error GoTo Catch Dim lRet As Long Exit Function Catch lRet Err Number dctActionReturn ErrorDescription Err Description DoAction lRet End Function 运行组件接口 中间层适用运行组件接口 中间层适用 Action 函数函数 属性属性类型类型详细说明详细说明 DoAction函数解析 执行 Action 的入口函数 下面是代码模版 中间层扩展 Action 模版 Private m dctPara As KFO Dictionary Private m dctReturn As KFO Dictionary Public Function DoAction ByVal strFunction As String Byval cn As ADODB Connection ByVal dctParamenters As KFO Dictionary ByRef dctActionReturn As KFO Dictionary As Long 执行 Action On Error GoTo Catch Dim lRet As Long Exit Function Catch lRet Err Number dctActionReturn ErrorDescription Err Description 7 DoAction lRet End Function 1 3 41 3 41 3 4配置时组件的配置时组件的配置时组件的配置时组件的 LicensesLicensesLicenses 如果扩展 Action 定义时组件 采用了一些具有 Licenses 许可要求的控件 则当用户运 行时 会出现下面的情况 如果出现这种情况 需要在组件 控件 的初始化过程中添加 Licenses 许可 具体方 法参考如下 Private Sub UserControl Initialize Licenses Add ProgId LicenseKey End Sub 1 41 41 4 扩展扩展扩展扩展 ActionActionAction 的注册的注册的注册的注册 创建的 Action 如果需要在 BOS 中起到预期的作用 必须向 BOS 进行注册 即向表格 ICClassAction 中添加数据 该表关键字段描述 字段名字段名类型类型长度长度为空为空详细说明详细说明 FIDint4No 编码 唯一 自定义的 Action 请指定大于的编码 避 免和 BOS 内置的 FID 冲突 FNamevarchar20No 名称 系统通过 FName 和具体的 Action 关联 必须 唯一 且无歧义 8 FDescvarchar50No描述 FSyntaxvarchar100No语法 FParametervarchar7000No参数 FTypesmallint2No类型 FSetComponentVarchar64No配置 Action 的控件名 可以为 FRunComponentVarchar64No运行 Action 的组件名 如果为扩展 Action 必须填写 需要注意的是 一个扩展 Action 只能支持 1 个运行组件和 1 个定义组件 1 51 51 5 FTypeFTypeFType 的意义的意义的意义的意义 ICClassAction 表中的 FType 字段 表示了这个 Action 所具有的属性 其含义参考下 面的值 值值含义含义说明说明 1无效的 Action 0有效的 Action 1客户端的 Action 2中间层的 Action 4有配置界面的 Action 8加载更新的 Action 16值更新的 Action 32保存更新的 Action 64连续触发的 Action 128有返回值的 Action 256操作类的 Action 512系统内置 Action系统内置 Action 不允许修改 1024扩展 Action 2048简单业务 Action 4096字段相关的 Action只能是客户端的 Action 8192事件相关的 Action只能是中间层的 Action 需要注意的是 一个 Action 可以具有多个属性 举例 Action TakeBaseData FType 0 1 4 8 16 1 61 61 6 ActionActionAction 的执行控制的执行控制的执行控制的执行控制 在 BOS 中 允许对同一个字段或操作 同时定义多个 Action 这是 我们称之为字段 或操作具有 Action 序列 Action 序列中的每个 Action 按照定义时的先后次序依次执行 通过扩展 Action 接口 中的 dctActionReturn 参数 我们可以控制 Action 的运行 dctActionReturn 参数包含以下内容 序号序号dctActionReturn值域值域值值说明说明 9 1CancelSeries布尔值 默认 为 False 表示是否需要取消整个 Action 序列的执行 如果是一组中间层 Action 则会产生事务回滚 如果是客户端 Action 则后续 Action 将不 会被执行 2ErrorDescription字符串 默认 为空 错误描述 如果 Action 执行中出现错误 则 此值域包含错误描述 3ActionSeriesSharePoolKFO DictionaryAction 之间共享变量的存储缓冲区 4ActionSeriesSharePoolDefKFO DictionaryAction 之间共享变量的存储缓冲区变量定义 5ConstsKFO Dictionary常量定义和值 6其它Action 的交换交换数据空间 我们也可以通过在这个数据包中增加传递不同的值 来达到 Action 间的数据传递 注意 请不要在注意 请不要在 Action 中将这个数据包上述的几个值域清除 或将整个数据包清空 中将这个数据包上述的几个值域清除 或将整个数据包清空 否则会产生运行时错误 否则会产生运行时错误 2 2 2 客户端字段相关扩展客户端字段相关扩展客户端字段相关扩展客户端字段相关扩展 ActionActionAction 制作客户端字段相关的扩展 Action DoAction 接口的 dctParamenters 参数包包含以 下内容 值域值域说明说明 FieldAction当前 Action Name FieldActionExpressions当前 Action 的定义表达式 FieldActionType当前 Action 的类型 Paramenters当前 Action 的参数 Trigger是否连续执行 SeriesTotalAction 序列的 Action 总数 ActionSeriesSourceAction 序列的触发来源 ActionSeriesTypeAction 序列的类型 ClassType ClassTypeEntry TableInfo Data BOSFieldTpl引发 Action 的字段的模版数据包 BOSFieldValue引发 Action 的字段的值数据包 ItemObj核算项目对象 3 3 3 客户端操作相关扩展客户端操作相关扩展客户端操作相关扩展客户端操作相关扩展 ActionActionAction 制作客户端操作相关的扩展 Action DoAction 接口的 dctParamenters 参数包包含以 下内容 值域值域说明说明 OperationAction当前 Action Name OperationActionExpressions当前 Action 的定义表达式 OperationActionType当前 Action 的类型 Paramenters当前 Action 的参数 Trigger是否连续执行 10 SeriesTotalAction 序列的 Action 总数 ActionSeriesSourceAction 序列的触发来源 ActionSeriesTypeAction 序列的类型 ClassType ClassTypeEntry TableInfo Data OperationObject引发 Action 的操作对象数据包 4 4 4 中间层扩展中间层扩展中间层扩展中间层扩展 ActionActionAction 制作中间层的扩展 Action DoAction 接口的 dctParamenters 参数包包含以下内容 值域值域说明说明 MiddleAction当前 Action Name MiddleActionExpressions当前 Action 的定义表达式 MiddleActionType当前 Action 的类型 Paramenters当前 Action 的参数 SeriesTotalAction 序列的 Action 总数 ActionSeriesSourceAction 序列的触发来源 ActionSeriesTypeAct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 做账实操-《关税调整方案》解读与分析
- 记账实操-内部单位间拆借的会计分录
- 着眼2025年育婴师考试考察方向试题及答案
- 西医临床全科综合试题及答案
- 激光技术与工程师资格评估的关键点试题及答案
- 烟台事业单位试题及答案
- 药物的配伍与稳定性考题及答案
- 激光工程技术应用示例试题及答案
- 理解2024年系统架构设计师考试的方向试题及答案
- 考生心理准备与复习状态对西医临床考试的影响试题及答案
- 国家开放大学《心理学》形考任务1-4参考答案
- 凌格风空压机L7.5-L30系列产品说明书
- Arduino应用技术 课件 第1-3讲 初识arduino、Arduino语言、Arduino基本示例
- 银行防抢应急预案演练方案总结
- (高清版)DZT 0217-2020 石油天然气储量估算规范
- 校园安全培训合作协议
- 巴林银行倒闭案课件
- 2023年海洋运输企业风险管理与内控
- 部编版道德与法治三年级下册全册单元知识点梳理期末复习
- 儿童孤独症的诊断与康复治疗
- 中集集装箱安全培训
评论
0/150
提交评论