本发明专利技术公开了一种海关业务复杂报文封装方法,涉及通信技术领域,方法包括:通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,对业务数据进行封装,封装过程为:通过数据库订阅工具获取业务库中变动的业务数据;将业务数据发送至KETTLE作业调度模块;KETTLE作业调度模块将业务数据传入至指定的KETTLE作业执行模块;KETTLE作业执行模块从业务数据中获取id,判断变动的业务数据是否符合封装条件;符合条件则继续,否则结束并退出;KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据,并进行逐层进行封装,最终形成报文;KETTLE作业执行模块将已封装的报文存放至报文输出库。文存放至报文输出库。文存放至报文输出库。
【技术实现步骤摘要】
一种海关业务复杂报文封装方法
[0001]本专利技术涉及通信
,更具体地说,它涉及一种海关业务复杂报文封装方法。
技术介绍
[0002]随着信息化技术高速发展,各行各业逐渐将各自的业务流程信息化、无纸化,同时也带来了一个个信息孤岛。为了打通各个信息孤岛,使得各行业、各领域数据能够相互协同,各式各样数据交互的场景也越发频繁和复杂。
[0003]目前海关业务的主流处理方式为根据业务数据(即具体业务报文)进行硬编码进行封装或者解析,当海关业务场景扩展时需要根据新的业务场景重新进行编码开发,开发效率低,开发及后续运维的成本也随之提高。
技术实现思路
[0004]本专利技术要解决的技术问题是针对现有技术的上述不足,本专利技术的目的是提供一种海关业务复杂报文封装方法,以提高开发效率。
[0005]本专利技术提供一种海关业务复杂报文封装方法,通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,以对业务数据进行封装,封装过程包括以下步骤:
[0006]步骤A.通过数据库订阅工具获取业务库中变动的业务数据;
[0007]步骤B.将变动的业务数据发送至KETTLE作业调度模块;
[0008]步骤C.KETTLE作业调度模块根据预设的调度逻辑将变动的业务数据传入至指定的KETTLE作业执行模块;
[0009]步骤D.KETTLE作业执行模块从变动的业务数据中获取id;
[0010]步骤E.KETTLE作业执行模块判断变动的业务数据是否符合封装条件;符合条件则继续步骤F;不符合则直接结束并退出;
[0011]步骤F.KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据;
[0012]步骤G.如果需关联数据形成多层结构,则KETTLE作业执行模块根据业务数据获取关联数据;
[0013]步骤H.KETTLE作业执行模块根据已获取的业务表数据逐层进行封装,最终形成报文;
[0014]步骤I.KETTLE作业执行模块将已封装的报文存放至报文输出库。
[0015]作为进一步地改进,在步骤H包括以下步骤:
[0016]步骤1.在KETTLE环境中建立临时记录列表,用于临时存放各级节点和各级节点封装后的信息;
[0017]步骤2.根据业务数据获取表头,将表头作为一级节点;
[0018]步骤3.根据一级节点的关联字段获取提二级节点列表;
[0019]步骤4.遍历二级节点列表;根据每一个二级节点的关联字段获取对应三级节点列表,并进行封装,封装好后,加入对应的二级节点字段信息再次封装;将每一个含有二级节
点及三级节点列表的封装信息依次添加至临时记录列表;
[0020]步骤5.依次将临时记录列表中的每一个封装信息取出,并与一级节点信息一同封装得到所需要的业务报文;
[0021]步骤6.删除临时记录列表,结束流程。
[0022]进一步地,封装得到的数据为json数据。
[0023]进一步地,在步骤5中,还包括根据业务数据获取二级节点列表,并封装成json数组,依次将临时记录列表中的每一个封装信息取出后,与一级节点信息、json数组一同封装得到最终的业务报文。
[0024]进一步地,在步骤5中,得到业务报文后,设置执行成功结果,并输出执行日志表。
[0025]进一步地,在步骤3中,业务数据判断是否符合封装条件,不一致则设置执行失败结果,并输出执行日志表。
[0026]进一步地,通过数据库订阅工具订阅报文输出库,当报文输出库变化时,通过报文分发模块,将报文输出库的报文发送至指定的消息队列。
[0027]进一步地,根据各消息队列的消费情况进行记录入库,并以可视化界面的形式进行展示。
[0028]进一步地,将数据库订阅工具集成至KETTLE作业调度模块,在KETTLE作业调度模块中以可视化配置的方式编辑数据库订阅工具的订阅逻辑,当数据以指定的情况变化时触发订阅逻辑。
[0029]有益效果
[0030]本专利技术与现有技术相比,具有的优点为:
[0031]1.本专利技术利用数据库订阅工具获取业务表的变动,从而避免对原有业务的侵入;利用KETTLE的强大ETL功能,通过灵活的可视化配置来代替与业务高耦合的硬编码开发工作;开发作业调度模块,使得针对不同业务场景执行不同作业。以保证业务快速扩展时,降低对应的开发和维护成本,提高业务变化时的响应速度。
[0032]2.本专利技术通过引入临时记录列表进行外部缓存的形式存储循环中间结果,并通过json输出组件将列表信息直接聚合成封装信息,从而省去了循环嵌套,最终实现通过KETTLE的可视化组件快速封装三层报文结构,可以减少了编码工作量,提高效率,从而以提高业务变化时的业务响应速度。
附图说明
[0033]图1为运抵报告报文的结构示意图;
[0034]图2为本专利技术的流程图;
[0035]图3为本专利技术中三层节点的结构示意图;
[0036]图4为本专利技术中进行三层封装的流程图。
具体实施方式
[0037]下面结合附图中的运抵报告为具体实施例对本专利技术做进一步的说明。
[0038]参阅图2
‑
4,一种海关业务复杂报文封装方法,通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,以对业务数据进行封装。KETTLE拥有超过200个不同
的组件,用户可以在不编写一句代码就能轻松完成对数据源读取,对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标,极大程度地降低开发技术门槛和有效减低开发和维护成本。
[0039]通过KETTLE封装过程包括以下步骤:
[0040]步骤A.通过数据库订阅工具获取业务库中变动的业务数据;
[0041]步骤B.将变动的业务数据发送至KETTLE作业调度模块;
[0042]步骤C.KETTLE作业调度模块根据预设的调度逻辑将变动的业务数据传入至指定的KETTLE作业执行模块;
[0043]步骤D.KETTLE作业执行模块从变动的业务数据中获取id;
[0044]步骤E.KETTLE作业执行模块判断变动的业务数据是否符合封装条件;符合条件则继续步骤F;不符合则直接结束并退出;
[0045]步骤F.KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据;
[0046]步骤G.如果需关联数据形成多层结构,则KETTLE作业执行模块根据业务数据获取关联数据,关联数据包括提运单列表数据及集装箱数据;
[0047]步骤H.KETTLE作业执行模块根据已获取的业务表数据逐层进行封装,最终形成报文;
[0048]步骤I.KETTLE作业执行模块将已封装的报文存放至报文输出库。
[0049]由于目前KETTLE没有有效的嵌套循环手段,只支持单层循环,因此对于三层及以三层以上节点的复杂报文,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种海关业务复杂报文封装方法,其特征在于,通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,以对业务数据进行封装,封装过程包括以下步骤:步骤A.通过数据库订阅工具获取业务库中变动的业务数据;步骤B.将变动的业务数据发送至KETTLE作业调度模块;步骤C.KETTLE作业调度模块根据预设的调度逻辑将变动的业务数据传入至指定的KETTLE作业执行模块;步骤D.KETTLE作业执行模块从变动的业务数据中获取id;步骤E.KETTLE作业执行模块判断变动的业务数据是否符合封装条件;符合条件则继续步骤F;不符合则直接结束并退出;步骤F.KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据;步骤G.如果需关联数据形成多层结构,则KETTLE作业执行模块根据业务数据获取关联数据;步骤H.KETTLE作业执行模块根据已获取的业务表数据逐层进行封装,最终形成报文;步骤I.KETTLE作业执行模块将已封装的报文存放至报文输出库。2.根据权利要求1所述的一种海关业务复杂报文封装方法,其特征在于,在步骤H包括以下步骤:步骤1.在KETTLE环境中建立临时记录列表,用于临时存放各级节点和各级节点封装后的信息;步骤2.根据业务数据获取表头,将表头作为一级节点;步骤3.根据一级节点的关联字段获取二级节点列表;步骤4.遍历二级节点列表;根据每一个二级节点的关联字段获取对应三级节点列表,并进行封装,封装好后,加入对应的二级节点字段信息再次封装;将每一个含有二级节点及三级节点列表的封装信息依次添加至临时...
【专利技术属性】
技术研发人员:姜成玲,林洪健,唐勇丰,
申请(专利权)人:广西电子口岸有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。