Python示例:单据转换处理携带特定组织的银行账号

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

Python示例:单据转换处理携带特定组织的银行账号

背景:其中一个组织的默认收款银行与默认付款银行的是两个银行账号。在BOS里面我设置了实体服务规则,直接新增收款单与直接新增付款单的时候没问题。但是费用报销单批量下推付款单,除了第一行,其他行没办法自动带出来。

下面以费用报销单批量下推付款单为列:

  1. 打开应付单-付款单单据转换编写Python插件

  2. 插件代码如下

  3. import clr
    clr.AddReference("Kingdee.BOS.Core")
    clr.AddReference("Kingdee.BOS.DataEntity")
    clr.AddReference("Kingdee.K3.FIN.CN.App.Core")
    
    from Kingdee.BOS.DataEntity import *
    from Kingdee.BOS.Core.Metadata.FieldElement import *
    from Kingdee.K3.FIN.CN.App.Core import *
    #add by  yl
    
    def AfterConvert(e):
        headEntity = e.Result.FindByEntityKey("FBillHead")
        accountFld = e.TargetBusinessInfo.GetField("FACCOUNTID")
        for item in headEntity:
            cl=item["PAYBILLENTRY"]
            for dy in cl:
                settele = dy["SETTLETYPEID"]
                orgId=item["FPAYORGID"]
                #判断结算方式为银行业务,以及组织编码是103
                if settele["type"]=='2' and orgId["number"]=="103":
                   #需要数据库找到对应组织的银行账号内码
                   dy["FACCOUNTID_Id"]=365610
                   obj= CNCommonFunction.GetDynamicObjectByID(e.Context, 365610, accountFld)
                   dy["FACCOUNTID"]=obj
                elif settele["type"]=='2' and orgId["number"]=="101.1":
                   dy["FACCOUNTID_Id"]=148735
                   objs= CNCommonFunction.GetDynamicObjectByID(e.Context, 148735, accountFld)
                   dy["FACCOUNTID"]=objs

4.注意:点击编写完Python插件 确定时会提示  Could not add reference to assembly Kingdee.K3.FIN.CN.App.Core   在 IronPython.Runtime.ClrModule.AddReference(CodeContext context, String name)   在 IronPython.Runtime.ClrModule.AddReference(CodeContext context, Object[] references)   这个没关系,直接继续即可:因为我们只是在BOSIDE上进行Python插件的注册,而这段Python代码最终是在服务端运行,BOSIDE属于客户端软件,BOSIDE所在目录下肯定不会包含服务端的组件,其提示缺少服务端的组件是正常的,而在应用服务器上是包含了所有的组件的,所以等真正到了运行时,此Python插件不会缺少任何平台组件,可以正常运行的


Python示例:单据转换处理携带特定组织的银行账号

背景:其中一个组织的默认收款银行与默认付款银行的是两个银行账号。在BOS里面我设置了实体服务规则,直接新增收款单与直接新增付款单的时...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息