二开插件控制星空向星瀚反写原创
金蝶云社区-俊宏
俊宏
1人赞赏了该文章 574次浏览 未经作者许可,禁止转载编辑于2021年11月18日 14:52:11


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)来决定返回该单据反写星瀚集成方案编码。


image.png

(数组中包含的星瀚集成方案编码)


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中调用方法CallCangQiongInterfaceCallCangQiongInterface方法的参数请参考下面的表格:

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.     结语


感想您看到最后,更多内容请浏览金蝶云社区


赞 1