银行资金动账引擎处理方法及系统与流程

文档序号:17376394发布日期:2019-04-12 23:21阅读:621来源:国知局
银行资金动账引擎处理方法及系统与流程

本发明涉及金融管理领域,尤指一种银行资金动账引擎处理方法及系统。



背景技术:

银行理财产品品种,如雨后春笋,不断涌现出来。各式各样的动账场景应运而生。不同的动账对象,不同的动账场景,都可能有不同的动账结果,并且动账结果的后续处理也各不相同。而每种动账结果的字段取值,也相当灵活多变,但是资金业务动账核心系统接口相对稳定。比如说,同一个客户,期权购买时扣期权费,动账失败,算交易失败,没有后续异常处理操作;期权行权全额交割时扣看涨货币金额,动账失败,会将看涨金额再冻结,后续异常处理模块会再试图扣账成功;期权卖出时给客户付期权费,入账失败,算交易成功,后续异常模块会保证最终入账成功;等等,纷繁复杂的动账场景,以及后续异常处理,给开发带来很多工作量。

目前银行业没有出现保障银行资金安全的灵活配置的资金业务动账方案;由此导致,在新系统开发阶段,建立一套这样的体系会非常耗时耗力;在老系统中,没有灵活配置的资金业务动账机制,在新的业务场景出现时还需要更改代码,增加了维护成本;对于核心系统异常等各种原因导致的产品系统动账异常时,后续动账处理非常麻烦。基于,全球市场的资金业务五花八门,动账项目场景也百花齐放,产品系统,业内亟需一种适应性强且后续拓展更为便利的机制实现各种动账场景的有效处理,并且保证银行资金的安全。



技术实现要素:

本发明目的在于提供一套灵活配置保证银行资金安全,并兼具未明异常处理的完备的动账引擎;能够兼容资金业务的各种动账场景,新产品开发时只需要将其引入作为一个组件,配置好对应参数,需要动账的地方调用动账引擎方法即可,以此有效提高新产品上线速度。

为达上述目的,本发明所提供的银行资金动账引擎处理方法具体包含:获取动账请求,根据所述动账请求获得动账对象、动账参数及动账场景;根据所述动账对象、动账参数和所述动账场景获得账务日志配置信息;根据所述账务日志配置信息于预存数据库中获得对应的账务日志模板;根据所述账务日志模板获得对应的动账字段取值;通过所述动账字段取值获得支付信息,将所述支付信息加入待执行列表;根据所述待执行列表通过资金业务动账核心系统执行动账处理,并修改账务日志。

在上述银行资金动账引擎处理方法中,优选的,所述方法还包含:当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识;当存在所述强关联标识,将所述待执行列表中对应动账及其关联动账标识为待冲正动账,并将所述待冲正动账加入冲正列表;根据所述冲正列表完成冲正动作,并修改账务日志。

在上述银行资金动账引擎处理方法中,优选的,根据所述冲正列表完成冲正动作包含:根据所述账务日志模板获得反向交易码;根据所述反向交易码获得所述待冲正动账的交易对手标识;根据所述交易对手标识通过资金业务动账核心系统执行动账处理,并修改账务日志。

在上述银行资金动账引擎处理方法中,优选的,根据所述冲正列表完成冲正动作,并修改账务日志还包含:根据所述交易对手标识判断是否存在交易对手;当存在所述交易对手时,通过资金业务动账核心系统执行动账处理,并更新所述冲正列表中对应的所述待冲正动账状态;当不存在所述交易对手时,于所述账务日志中生成反向冲正动账记录;根据所述反向冲正动账记录,通过资金业务动账核心系统执行动账处理,并根据处理结果修改所述账务日志中的反向冲正动账记录。

在上述银行资金动账引擎处理方法中,优选的,通过资金业务动账核心系统执行动账处理包含:当通过资金业务动账核心系统执行动账处理未成功时,将所述账务日志中对应动账修改为异常待处理状态。

在上述银行资金动账引擎处理方法中,优选的,当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识还包含:如不存在所述强关联标识,将所述账务日志中对应动账修改为异常待处理状态。

本发明还提供一种银行资金动账引擎处理系统,所述系统包含采集模块、识别模块、分析模块和处理模块;所述采集模块用于获取动账请求,根据所述动账请求获得动账对象、动账参数及动账场景;所述识别模块用于根据所述动账对象、动账参数和所述动账场景获得账务日志配置信息;以及根据所述账务日志配置信息于预存数据库中获得对应的账务日志模板;所述分析模块用于根据所述账务日志模板获得对应的动账字段取值;以及通过所述动账字段取值获得支付信息,将所述支付信息加入待执行列表;所述处理模块用于根据所述待执行列表通过资金业务动账核心系统执行动账处理,并修改账务日志。

在上述银行资金动账引擎处理系统中,优选的,所述系统还包含判断模块;所述判断模块用于当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识;当存在所述强关联标识,将所述待执行列表中对应动账及其关联动账标识为待冲正动账,并将所述待冲正动账加入冲正列表;根据所述冲正列表完成冲正动作,并修改账务日志。

在上述银行资金动账引擎处理系统中,优选的,所述判断模块还包含交易单元,所述交易单元用于根据所述账务日志模板获得反向交易码;根据所述反向交易码获得所述待冲正动账的交易对手标识;根据所述交易对手标识通过资金业务动账核心系统执行动账处理,并修改账务日志。

在上述银行资金动账引擎处理系统中,优选的,所述判断模块还包含辨识单元,所述辨识单元用于根据所述交易对手标识判断是否存在交易对手;当存在所述交易对手时,通过资金业务动账核心系统执行动账处理,并更新所述冲正列表中对应的所述待冲正动账状态;当不存在所述交易对手时,于所述账务日志中生成反向冲正动账记录;根据所述反向冲正动账记录,通过资金业务动账核心系统执行动账处理,并根据处理结果修改所述账务日志中的反向冲正动账记录。

在上述银行资金动账引擎处理系统中,优选的,所述辨识单元还用于当通过资金业务动账核心系统执行动账处理未成功时,将所述账务日志中对应动账修改为异常待处理状态。

在上述银行资金动账引擎处理系统中,优选的,所述判断模块还用于当不存在所述强关联标识,将所述账务日志中对应动账修改为异常待处理状态。

本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明所提供的银行资金动账引擎处理方法及系统为资金业务的动账操作提供一套灵活配置,保证银行资金安全,并兼具未明异常处理的一体化解决方案;作为独立组件,具有较好的可复用性,安全性、快速便捷性和实用性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明所提供的银行资金动账引擎处理方法的流程示意图;

图2为本发明一实施例所提供的银行资金动账引擎处理方法的流程示意图;

图3为本发明一实施例所提供的银行资金动账引擎处理方法的整体流程示意图;

图4为本发明一实施例所提供的银行资金动账引擎处理方法的使用示意图;

图5为本发明所提供的银行资金动账引擎处理系统的结构示意图;

图6为本发明一实施例所提供的银行资金动账引擎处理系统的结构示意图;

图7为本发明一实施例所提供的银行资金动账引擎处理方法的使用流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

请参考图1所示,本发明所提供的银行资金动账引擎处理方法具体包含:s101获取动账请求,根据所述动账请求获得动账对象、动账参数及动账场景;s102根据所述动账对象、动账参数和所述动账场景获得账务日志配置信息;s103根据所述账务日志配置信息于预存数据库中获得对应的账务日志模板;s104根据所述账务日志模板获得对应的动账字段取值;s105通过所述动账字段取值获得支付信息,将所述支付信息加入待执行列表;s106根据所述待执行列表通过资金业务动账核心系统执行动账处理,并修改账务日志。其中,所述动账对象包含在动账场景下,调用引擎动账的对象,比如产品代码(期权宝,外汇宝,障碍牛熊证,双向宝,原油宝等),保证金等;所述动账场景为动账对象需要进行资金动账的场景,比如买入、卖出、挂单、行权、放弃、挂单成交、平盘、平仓、移仓、外汇兑换、入金、出金等;所述动账处理则为资金动账,即对客户账户进行金额相关的操作,比如扣费、付费、冻结、解冻、结清、转账等操作。

请参考图2所示,在上述实施例中,所述方法还可包含:s107当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识;s108当存在所述强关联标识,将所述待执行列表中对应动账及其关联动账标识为待冲正动账,并将所述待冲正动账加入冲正列表;s109根据所述冲正列表完成冲正动作,并修改账务日志。其中,步骤s108中根据所述冲正列表完成冲正动作包含:根据所述账务日志模板获得反向交易码;根据所述反向交易码获得所述待冲正动账的交易对手标识;根据所述交易对手标识通过资金业务动账核心系统执行动账处理,并修改账务日志。所述根据所述冲正列表完成冲正动作,并修改账务日志还包含:根据所述交易对手标识判断是否存在交易对手;当存在所述交易对手时,通过资金业务动账核心系统执行动账处理,并更新所述冲正列表中对应的所述待冲正动账状态;当不存在所述交易对手时,于所述账务日志中生成反向冲正动账记录;根据所述反向冲正动账记录,通过资金业务动账核心系统执行动账处理,并根据处理结果修改所述账务日志中的反向冲正动账记录。在该实施例中,通过资金业务动账核心系统执行动账处理包含:当通过资金业务动账核心系统执行动账处理未成功时,将所述账务日志中对应动账修改为异常待处理状态。

在上述步骤s107中当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识还包含:如不存在所述强关联标识,将所述账务日志中对应动账修改为异常待处理状态。

在上述实施例中,主要通过动账对象,动账场景来确定唯一的动账配置信息。比如说,动账对象期权宝,动账场景为买入,则动账配置为扣期权费;动账对象期权宝,动账场景行权交割,则动账配置为差额交割;动账对象为外汇,动账场景为买入,则动账配置为买入基础货币,卖出非基础货币;动账对象为保证金,动账场景为入金,则动账配置为转账等等。所述动账模板可存储在al_template表中;该模板里存储了资金业务动账明细的基础信息字段的关键字,比如:模板标识、套内序号、收付日期、动账金额、转出账号、转出账号关联类型、转出货币、转出钞汇、转出册号、转出序号、转出存单号、转入账号、转入账号关联类型、转入货币、转入钞汇、转入册号、转入序号、转入存单号等。所述动账配置可存储在数据库表al_config表中;该配置里存储了动账对象、动账场景、动账模板标识、套内序号、成功时交易状态、异常时交易状态、未明时账务处理状态、失败时账务处理状态、成功强关联标识、联机批量动账、其他表达式1、其他表达式2等控制字段;其中,根据动账模板标识可以获取动账对象在该动账场景下的动账字段明细的赋值关键字;套内序号规定动账的执行顺序;成功时交易状态、异常时交易状态、未明账务处理状态、失败时账务处理状态:用来处理动账异常时交易走向和后续的自动异常处理,实现一套完备的动账引擎方案的基础;成功强关联标识用来控制特定动账对象,在具体动账场景下的多个动账记录时,是否必须同时成功,如果该字段为y,则必须所有的动账记录都成功时,该交易才允许成功;其中任何一条记录失败,都必须将之前的动账结果进行反向操作;比如说,a动账对象在b场景下需要执行两步动账记录,解冻和扣费,强关联标识为y。则如果解冻成功但扣费失败,则需要再将之前的金额冻结,来保护银行的利益。联机批量动账:是用来控制联机直接调用,还是夜间批量动账执行。其他表达式i,主要是针对特殊选择时使用。

为更清楚的说明本发明所提供的银行资金动账引擎处理方法,以下以具体实例对上述个实施例做整体说明;在实际工作中,为更好的使用上述实施例,可通过以下预置手段进行先期铺垫:

1、预先设置存储动账场景表和动账关键字表;动账场景将识别出来的动账规则粒子存入表中,构成该引擎基本的解析能力,也可于后期使用时,通过管理端界面,动态增加和调整简单的关键字解析规则;

2、引擎系统内部可用正则表达式实现对各类表达式的关键字的解析;

3、提供界面,业务维护特定动账对象、动账场景下的动账模板,以及动账后续的操作指南,比如说动账失败的异常操作、动账未明的操作、动账异常时交易算成功还是失败等。通过配置这些操作,能够保证银行资金业务的安全。比如,场景一、客户买入产品a,需要向银行支付费用;在管理端界面,配置异常时,交易算失败;客户做交易的时候,如果银行扣费异常,则引擎返回失败;场景二、客户卖出产品b,银行需要向客户支付费用。在管理端界面,配置异常时,交易算成功。客户做交易时,如果银行付费异常,则引擎返回成功。场景三、客户完成兑换,向银行支付m费用,同时银行给客户支付n费用。在管理端界面,配置这两笔动账必须是强关联。动账场景触发时,动账引擎会自动控制必须同时成功,才算成功,如果有一条动账失败,则将另外一个冲正处理。当然这些配置都是灵活配置的,也可以根据需要改变配置;

4、提供界面、业务维护动账模板,来确定每个动账场项的数据来源,在配置的时候,业务人员看到的是汉字和英文字母,每一个场项对应一个动账关键字;

5、该引擎的输入有动账对象,动账场景和动账参数;引擎执行的时候,通过对应的动账对象、动账场景和动账参数,获取对应的动账配置,再根据动账配置里的动账模板代码,读取动账模板信息,通过解析关键字,并根据具体的参数,自动执行调用核心系统具体操作,自动实现资金动账。

6、该引擎同时支持管理控制功能。功能一、强关联控制,即某些场景要求两笔交易同时动账成功,不允许其中一笔成功,一笔失败。比如,银行解冻客户的钱,并实现扣款操作。由于核心动账系统,解冻和扣款是两个不同的动账交易,需要产品系统调用两次。而产品系统跟核心系统相对独立,通讯,各种异常,客户账户等因素都可能导致一笔成功,另外一笔失败,这些会给我行的资金带来风险。为了灵活实现该功能,引擎引入了强关联标识,在一套动账里,被设置成了需要强关联,则该套动账,如果有一笔交易动账失败,引擎会把动账成功的记录,冲正操作;如果一套动账,设置成不需要强关联,则不需要同时成功。功能二、调用核心系统的方式。产品系统送核心系统的方式有多种,联机,批量或者tf等。这些功能,也是以控制参数的形式驱动引擎的。生产上运行的系统,管理员可以通过界面修改参数,来驱动功能实现切换。

7、生成的动账明细里,会记录该动账状态,异常时处理标识,未明时处理标识等关键处理字段,后续会有未明异常处理模块,根据该标识实现后续的异常处理。

在上述实施例中,所述步骤s104中动账字段取值即可为预设的表达式,实际使用时可采用正则表达式来解析其所对用的字段取值;另,还有一些case等复杂表达式,只有在极其特殊的场景下使用,例如下表1所示。

表1

请参考图4所示,在本发明所提供的银行资金动账引擎处理方法中进一步还内置有关键字表,该些关键字主要可存储于数据库al_keyword表中,是系统内置的核心,给业务维护人员提供的是汉字和英文。其表现形式可如下:

1)会计日期accountdingdate:

#accountlogrelayvo.accountingdate#

2)看涨货币金额callamt:

?#accountlogrelayvo.callputtype#=="c":#accountlogrelayvo.amount1#,#accountlogrelayvo.amount2#

3)损益交割金额

$optionsurchargeprofitfx(#accountlogrelayvo.amount1#,#accountlogrelayvo.amount2#,#accountlogrelayvo.underlying#,#accountlogrelayvo.payoffccy#,#accountlogrelayvo.refrate#)等。

关键字模块定义了,资金业务动账需要的各种参数的配置取值,比如交割日、起息日、会计日期、合约面值、合约费用、协定汇率卖出金额、协定汇率买入金额、期权费支付货币、面值货币、看涨货币、看跌货币、提示码等有固定含义的关键字;也提供了货币3、货币4、货币5、amt1、amt2、amt3等含义不固化,用于业务扩展的字段。

请参考图3所示,通过上述设置,工作人员在实际使用时,即可执行以下流程:

第1步:有两种选择,直接调用start方法,或者调用gernerate方法+sendips方法。输入参数:动账对象,动账场景和动账参数;其中动账对象=‘xyz’,动账场景=‘se0001’;

第2步:根据动账对象(对应配置表里的产品代码),动账场景(对应配置表里的场景代码),读取对应的配置信息;

第3步:遍历读取出来的这两条记录,根据模板标识读取模板表里的数据;

第4步:根据模板信息里定制的关键字,调用引擎的解析模块,解析出具体的字段值;

第5步:将解析结果生成支付信息,并将支付信息加入待执行列表。此处,将结果存入到数据库。

第6步:调用核心系统完成动账操作;

第7步:如果执行成功,则进入第8步;如果执行失败,则进入第10步;

第8步:将对应记录修改为成功;同时接着执行步骤9;

第10步:如果,成功强关联标识为y,按照此配置,确实该字段是y;此处的意思是,如果扣客户费用成功,但是给客户付费失败了,则需要将扣的费用还给客户。当然,某些其他业务,也会设置成非强关联,那么该业务就认为,银行扣款成功了,交易就成功了。如果配置为n,则进入步骤11;如果配置为y,则进入步骤12;

第11步:将动账结果更新到数据库,等待异常处理模块的处理。

第12步-第19步:完成冲正动作;

第20步和第22步:主要完成冲正之后的动账操作的,原因主要是核心机制和后续机制的需要。

第20步:对于没有交易对手的动账,冲正以后,重新生成一条动账记录;

第22步:对于有交易对手的动账,冲正以后,将原来的动账记录,更新为已冲正。

请参考图5所示,本发明还提供一种银行资金动账引擎处理系统,所述系统包含采集模块、识别模块、分析模块和处理模块;所述采集模块用于获取动账请求,根据所述动账请求获得动账对象、动账参数及动账场景;所述识别模块用于根据所述动账对象、动账参数和所述动账场景获得账务日志配置信息;以及根据所述账务日志配置信息于预存数据库中获得对应的账务日志模板;所述分析模块用于根据所述账务日志模板获得对应的动账字段取值;以及通过所述动账字段取值获得支付信息,将所述支付信息加入待执行列表;所述处理模块用于根据所述待执行列表通过资金业务动账核心系统执行动账处理,并修改账务日志。

请参考图6所示,在上述实施例中,所述系统还包含判断模块;所述判断模块用于当根据所述待执行列表通过资金业务动账核心系统执行动账处理未成功时,识别所述账务日志模板中是否包含强关联标识;当存在所述强关联标识,将所述待执行列表中对应动账及其关联动账标识为待冲正动账,并将所述待冲正动账加入冲正列表;根据所述冲正列表完成冲正动作,并修改账务日志。其中,所述判断模块还用于当不存在所述强关联标识,将所述账务日志中对应动账修改为异常待处理状态。

在本发明一实施例中,所述判断模块还包含交易单元,所述交易单元用于根据所述账务日志模板获得反向交易码;根据所述反向交易码获得所述待冲正动账的交易对手标识;根据所述交易对手标识通过资金业务动账核心系统执行动账处理,并修改账务日志。

在本发明一实施例中,所述判断模块还包含辨识单元,所述辨识单元用于根据所述交易对手标识判断是否存在交易对手;当存在所述交易对手时,通过资金业务动账核心系统执行动账处理,并更新所述冲正列表中对应的所述待冲正动账状态;当不存在所述交易对手时,于所述账务日志中生成反向冲正动账记录;根据所述反向冲正动账记录,通过资金业务动账核心系统执行动账处理,并根据处理结果修改所述账务日志中的反向冲正动账记录。其中,所述辨识单元还用于当通过资金业务动账核心系统执行动账处理未成功时,将所述账务日志中对应动账修改为异常待处理状态。

请参考图7所示,在实际工作中,所述银行资金动账引擎处理方法主要可由终端及引擎系统构成,所涉及人员包含用户、柜员和管理员;其中pcts管理端主要由管理员使用,用于动账参数指定及监控异常动账并处理;所述柜台则由柜员操作,执行异常动账处理,帮助用户完成经管理员授权的异常入账的入账操作;移动端,则由用户使用,自助完成经管理员授权的异常入账操作;实际工作时,具体流程如下:

步骤0:该步骤是流程引擎运转的前提和异常监控处理;

管理员,登录动账引擎管理端界面,定制各产品动账引擎参数,包括配置参数,模板参数,场景参数,关键字参数;

步骤1:需要发生动账时,自动调用动账引擎程序,引擎自动向redis请求动账参数,请求成功直接转到步骤3;否则进入步骤2;

步骤2:引擎自动向数据库请求动账参数,请求成功进入步骤3;否则报错退出;

步骤3:引擎根据动账参数,调用表达式解析器,进入步骤4;

步骤4:引擎将表达式解析器返回的数据,组装成vo,写入数据库,进入步骤4;

步骤5:引擎自动调用核心动账系统,完成动账;动账成功,更新数据库状态,并返回成功结果;动账失败,更新数据库状态,返回失败结果,同时进入步骤6;

步骤6:动账失败,会实时推送给管理端业务人员;业务同事监控到该问题,会做后续处理:未明调账/失败调账/通知客户自动调账/提工单等。

本发明所提供的银行资金动账引擎处理方法及系统为资金业务的动账操作提供一套灵活配置,保证银行资金安全,并兼具未明异常处理的一体化解决方案;作为独立组件,具有较好的可复用性,安全性、快速便捷性和实用性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1