自动接收网银流水二开指导
网上银行模块的执行计划【自动接收银行流水后台执行服务】可根据用户自定义的设置来生成对应单据
但是有用户需要根据某些字段来判断生成什么类型的单据或者不生成单据,比如根据备注来决定生成的收款单的单据类型。
那么就需要对执行计划进行二开。我们可以扩展系统标准的插件来达到目的。
下面是扩展的例子
相关命名空间
Kingdee.K3.FIN.Core.Object.WB
Kingdee.K3.FIN.WB.App.Core.AutoReceiveFromBank
public class NewAutoService : AutoReceiveFromBankService
{
protected override ReceiveFromBankService CreateInstance()
{
return new NewService();
}
}
public class NewService : ReceiveFromBankService
{
#region 添加新单据类型生成方法
protected override Dictionary<string, GenerateBillObj> InitBillType()
{
var list = base.InitBillType();
list.Add("单据类型ID", GenerateXXXBillObj);
return list;
}
/// <summary>
/// 新单据类型生成方法
/// </summary>
/// <param name="ctx"></param>
/// <param name="plan">接收计划(即上图的自动接收银行收款记录设置的实体)</param>
/// <param name="acc">银行账号</param>
/// <param name="detailTradeResult">流水数据</param>
/// <param name="dic">流水批量匹配往来单位dic</param>
/// <returns></returns>
private DynamicObject GenerateXXXBillObj(Context ctx, DynamicObject plan, DynamicObject acc, DetailTradeResult detailTradeResult, Dictionary<string, DynamicObject> dic)
{
return null;
}
#endregion
/// <summary>
/// 重写收款单生成方法
/// </summary>
/// <param name="ctx"></param>
/// <param name="plan"></param>
/// <param name="acc"></param>
/// <param name="detailTradeResult"></param>
/// <param name="dic"></param>
/// <returns></returns>
protected override DynamicObject GenerateRecBillObj(Context ctx, DynamicObject plan, DynamicObject acc, DetailTradeResult detailTradeResult, Dictionary<string, DynamicObject> dic)
{
//标准插件生成的收款单实体
var recBillObj = base.GenerateRecBillObj(ctx, plan, acc, detailTradeResult, dic);
//return null则不保存该实体(该条流水不生成单据)
return recBillObj;
}
/// <summary>
/// 重写收款结算单生成方法
/// </summary>
/// <param name="ctx"></param>
/// <param name="plan"></param>
/// <param name="acc"></param>
/// <param name="detailTradeResult"></param>
/// <param name="dic"></param>
/// <returns></returns>
protected override DynamicObject GenerateRecSettleBillObj(Context ctx, DynamicObject plan, DynamicObject acc, DetailTradeResult detailTradeResult, Dictionary<string, DynamicObject> dic)
{
//标准插件生成的收款结算单实体
var recSettleBillObj = base.GenerateRecSettleBillObj(ctx, plan, acc, detailTradeResult, dic);
//return null则不保存该实体(该条流水不生成单据)
return recSettleBillObj;
}
/// <summary>
/// 重写排序方法
/// </summary>
/// <param name="lstDynamicObj"></param>
/// <param name="formId"></param>
/// <returns></returns>
protected override List<DynamicObject> OrderBill(List<DynamicObject> lstDynamicObj, string formId)
{
switch (formId)
{
case "需要排序的单据FormId":
return lstDynamicObj.OrderBy(d => d["排序字段"]).ToList();
default:
return base.OrderBill(lstDynamicObj, formId);
}
}
}
如果是新加单据类型需要扩展上图【自动接收银行收款记录设置】单据,在单据体【单据类型】字段枚举中加入新加的单据类型和billtypeid(对应t_Bas_Billtype内主键)
最后只需要把执行计划的注册插件改成二开继承的插件【NewAutoService】即可。
自动接收网银流水二开指导
本文2024-09-23 01:59:36发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-149517.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf