1. 前序
本文档需要您具有C#二开插件的能力。本文档仅从星空方面考虑反写而进行编写,不涉及星瀚的修改和其他星瀚相关的内容。二开插件前需要引用组件Kingdee.K3.FIN.App.CangQiong.ServicePlugIn.dll。还需要额外说明的是,本文档只包括费用报销相关的反写星瀚。
2. 内容提要
星空向星瀚反写是通过调用星瀚的反写WebApi接口实现反写。本文档将二开的范围划分成两个级别,分别为简单控制和完全控制。简单控制包括控制反写方案,控制反写的单据编号这样较为轻松的控制。完全控制则允许您决定反写的每一个环节。反写WebApi接口的调用的结果会写入上机操作日志,您可以通过日志来判断接口是否调用成功
3. 简单控制
本节将描述如何控制反写方案和如何控制反写的单据编号,两个方面。
3.1. 控制反写方案
如果您需要控制反写方案,可以通过继承类Kingdee.K3.FIN.App.CangQiong.ServicePlugIn.PayBillWriteBackCangQiong并重写(override)GetSchemeNumber(SourceBillParam, List<ConfigSchemeEntity>)虚方法进行控制。在这个虚方法中有两个参数,SourceBillParam这个参数中包含了本次反写单据的上游单据的单据编号BillNos和单据类型BillType。而在数组List<ConfigSchemeEntity>中则包含了从星空中单据编号为“FYBX”的集成平台设置中所有反写方案,包括单据唯一标识、操作键和星瀚集成方案编码。您可以通过上游单据的编号、单据类型以及本次操作(this.FormOperation.Name)来决定返回该单据反写星瀚集成方案编码。
(数组中包含的星瀚集成方案编码)
3.2. 控制反写的单据编号
如果您需要控制反写的单据编号,可以通过继承类Kingdee.K3.FIN.App.CangQiong.ServicePlugIn.PayBillWriteBackCangQiong并重写GetTargetBillNo (List<string>,string, string, SourceBillParam)虚方法进行控制。这个虚方法有多个参数,您可以参考下面参数表格决定返回反写的编号
Table 3.1 GetTargetBillNo参数说明表
参数类型付单 | 参数名 | 说明 |
List<string> | srcBillNoList | 上游单据单据编号 |
string | targetBillNo | 本次单据的单据编号 |
string | srcBillType | 上游单据类型 |
SourceBillParam | sourceBillParam | 逻辑上游单据和实际上游单据的单据编号和单据类型 |
4. 完全控制
完全控制需要您通过继承类Kingdee.K3.FIN.App.CangQiong.ServicePlugIn.PayBillWriteBackCangQiong并重写OpenApi(DynamicObject[])进行控制。这个方法的参数只有一个,即本次操作的所有实体对象。以审核付款单操作举例,则该数组中包含了选中的所有付款单信息。
完全控制的核心是在虚方法OpenApi中调用方法CallCangQiongInterface。CallCangQiongInterface方法的参数请参考下面的表格:
Table 4.1CallCangQiongInterface参数说明表
参数类型 | 参数名 | 说明 |
List<string> | srcBillNoList | 上游单据单据编号 |
string | BIllNo | 本次单据的单据编号 |
string | strApiNumber | 反写星瀚集成方案编码 |
string | srcBillType | 上游单据类型 |
AppAccessTokenEntity | appAccessTokenEntity | 星瀚登录信息 |
SourceBillParam | sourceBillParam | 逻辑上游单据和实际上游单据的单据编号和单据类型 |
星瀚登录信息appAccessTokenEntity您可以通过CQConfigService.LoadCacheERConfigInfo(this.Context)获得。而SourceBillParam则可以使用this.GetSourceBillParam(DynamicObject)这个方法获得,这个方法需要您传入OpenApi参数中的实体进行获得。
在您确定好的CallCangQiongInterface这个方法的参数并调用后,这个参数会返回接口执行的结果文本。为了方便您后续维护和排查问题,建议您通过ExpenseCommon.WriteOperationLog方法把返回的结果文本写入到上级操作日志中。您可以参考下方参数表格,确定ExpenseCommon.WriteOperationLog的参数
Table 4.2WriteOperationLog参数说明表
参数类型 | 参数名 | 说明 |
Context | Context | 星空上下文。直接传入this.Context即可 |
BusinessInfo | businessInfo | 单据信息。直接传入this.BusinessInfo |
string | logMsg | 日志内容。 |
string | Subsysterm | 子系统编码。默认是“ER” |
string | operation | 操作类型。直接传入this.FormOperation.Name |
5. 结语
感想您看到最后,更多内容请浏览金蝶云社区
二开插件控制星空向星瀚反写编号.docx(359.21KB)
推荐阅读