CN116016032A - 一种海关业务复杂报文封装方法 - Google Patents
一种海关业务复杂报文封装方法 Download PDFInfo
- Publication number
- CN116016032A CN116016032A CN202310020792.8A CN202310020792A CN116016032A CN 116016032 A CN116016032 A CN 116016032A CN 202310020792 A CN202310020792 A CN 202310020792A CN 116016032 A CN116016032 A CN 116016032A
- Authority
- CN
- China
- Prior art keywords
- message
- service
- data
- kettle
- encapsulating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种海关业务复杂报文封装方法,涉及通信技术领域,方法包括:通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,对业务数据进行封装,封装过程为:通过数据库订阅工具获取业务库中变动的业务数据;将业务数据发送至KETTLE作业调度模块;KETTLE作业调度模块将业务数据传入至指定的KETTLE作业执行模块;KETTLE作业执行模块从业务数据中获取id,判断变动的业务数据是否符合封装条件;符合条件则继续,否则结束并退出;KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据,并进行逐层进行封装,最终形成报文;KETTLE作业执行模块将已封装的报文存放至报文输出库。
Description
技术领域
本发明涉及通信技术领域,更具体地说,它涉及一种海关业务复杂报文封装方法。
背景技术
随着信息化技术高速发展,各行各业逐渐将各自的业务流程信息化、无纸化,同时也带来了一个个信息孤岛。为了打通各个信息孤岛,使得各行业、各领域数据能够相互协同,各式各样数据交互的场景也越发频繁和复杂。
目前海关业务的主流处理方式为根据业务数据(即具体业务报文)进行硬编码进行封装或者解析,当海关业务场景扩展时需要根据新的业务场景重新进行编码开发,开发效率低,开发及后续运维的成本也随之提高。
发明内容
本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的是提供一种海关业务复杂报文封装方法,以提高开发效率。
本发明提供一种海关业务复杂报文封装方法,通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,以对业务数据进行封装,封装过程包括以下步骤:
步骤A.通过数据库订阅工具获取业务库中变动的业务数据;
步骤B.将变动的业务数据发送至KETTLE作业调度模块;
步骤C.KETTLE作业调度模块根据预设的调度逻辑将变动的业务数据传入至指定的KETTLE作业执行模块;
步骤D.KETTLE作业执行模块从变动的业务数据中获取id;
步骤E.KETTLE作业执行模块判断变动的业务数据是否符合封装条件;符合条件则继续步骤F;不符合则直接结束并退出;
步骤F.KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据;
步骤G.如果需关联数据形成多层结构,则KETTLE作业执行模块根据业务数据获取关联数据;
步骤H.KETTLE作业执行模块根据已获取的业务表数据逐层进行封装,最终形成报文;
步骤I.KETTLE作业执行模块将已封装的报文存放至报文输出库。
作为进一步地改进,在步骤H包括以下步骤:
步骤1.在KETTLE环境中建立临时记录列表,用于临时存放各级节点和各级节点封装后的信息;
步骤2.根据业务数据获取表头,将表头作为一级节点;
步骤3.根据一级节点的关联字段获取提二级节点列表;
步骤4.遍历二级节点列表;根据每一个二级节点的关联字段获取对应三级节点列表,并进行封装,封装好后,加入对应的二级节点字段信息再次封装;将每一个含有二级节点及三级节点列表的封装信息依次添加至临时记录列表;
步骤5.依次将临时记录列表中的每一个封装信息取出,并与一级节点信息一同封装得到所需要的业务报文;
步骤6.删除临时记录列表,结束流程。
进一步地,封装得到的数据为json数据。
进一步地,在步骤5中,还包括根据业务数据获取二级节点列表,并封装成json数组,依次将临时记录列表中的每一个封装信息取出后,与一级节点信息、json数组一同封装得到最终的业务报文。
进一步地,在步骤5中,得到业务报文后,设置执行成功结果,并输出执行日志表。
进一步地,在步骤3中,业务数据判断是否符合封装条件,不一致则设置执行失败结果,并输出执行日志表。
进一步地,通过数据库订阅工具订阅报文输出库,当报文输出库变化时,通过报文分发模块,将报文输出库的报文发送至指定的消息队列。
进一步地,根据各消息队列的消费情况进行记录入库,并以可视化界面的形式进行展示。
进一步地,将数据库订阅工具集成至KETTLE作业调度模块,在KETTLE作业调度模块中以可视化配置的方式编辑数据库订阅工具的订阅逻辑,当数据以指定的情况变化时触发订阅逻辑。
有益效果
本发明与现有技术相比,具有的优点为:
1.本发明利用数据库订阅工具获取业务表的变动,从而避免对原有业务的侵入;利用KETTLE的强大ETL功能,通过灵活的可视化配置来代替与业务高耦合的硬编码开发工作;开发作业调度模块,使得针对不同业务场景执行不同作业。以保证业务快速扩展时,降低对应的开发和维护成本,提高业务变化时的响应速度。
2.本发明通过引入临时记录列表进行外部缓存的形式存储循环中间结果,并通过json输出组件将列表信息直接聚合成封装信息,从而省去了循环嵌套,最终实现通过KETTLE的可视化组件快速封装三层报文结构,可以减少了编码工作量,提高效率,从而以提高业务变化时的业务响应速度。
附图说明
图1为运抵报告报文的结构示意图;
图2为本发明的流程图;
图3为本发明中三层节点的结构示意图;
图4为本发明中进行三层封装的流程图。
具体实施方式
下面结合附图中的运抵报告为具体实施例对本发明做进一步的说明。
参阅图2-4,一种海关业务复杂报文封装方法,通过在KETTLE环境中采用拖拽组件、连线、配置的方式来构建数据管道,以对业务数据进行封装。KETTLE拥有超过200个不同的组件,用户可以在不编写一句代码就能轻松完成对数据源读取,对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标,极大程度地降低开发技术门槛和有效减低开发和维护成本。
通过KETTLE封装过程包括以下步骤:
步骤A.通过数据库订阅工具获取业务库中变动的业务数据;
步骤B.将变动的业务数据发送至KETTLE作业调度模块;
步骤C.KETTLE作业调度模块根据预设的调度逻辑将变动的业务数据传入至指定的KETTLE作业执行模块;
步骤D.KETTLE作业执行模块从变动的业务数据中获取id;
步骤E.KETTLE作业执行模块判断变动的业务数据是否符合封装条件;符合条件则继续步骤F;不符合则直接结束并退出;
步骤F.KETTLE作业执行模块根据id从业务数据的业务表中获取业务表数据;
步骤G.如果需关联数据形成多层结构,则KETTLE作业执行模块根据业务数据获取关联数据,关联数据包括提运单列表数据及集装箱数据;
步骤H.KETTLE作业执行模块根据已获取的业务表数据逐层进行封装,最终形成报文;
步骤I.KETTLE作业执行模块将已封装的报文存放至报文输出库。
由于目前KETTLE没有有效的嵌套循环手段,只支持单层循环,因此对于三层及以三层以上节点的复杂报文,如图1所示的封装场景,KETTLE不支持封装,只能改用代码编写的方式完成报文封装,这样会增加工作量大。
因此,在步骤H包括以下步骤:
步骤1.在KETTLE环境中建立临时记录列表,用于临时存放各级节点和各级节点封装后的信息;
步骤2.根据业务数据获取表头,将表头作为一级节点,即,将业务数据转为多层节点的结构;
步骤3.根据一级节点的关联字段获取二级节点列表;例如,获取提运单列表,并将提运单列表作为二级节点列表;
步骤4.遍历二级节点列表;根据每一个二级节点的关联字段获取对应三级节点列表,例如,取对应的商品信息列表,将商品信息列表作为三级节点列表,并进行封装,封装好后,加入对应的二级节点字段信息再次封装;将每一个含有二级节点及三级节点列表的封装信息依次添加至临时记录列表,可以省去循环嵌套操作,封装得到的数据为json数据;
步骤5.依次将临时记录列表中的每一个封装信息取出,并与一级节点信息一同封装得到所需要的业务报文;
步骤6.删除临时记录列表,结束流程。
通过引入临时记录列表进行外部缓存的形式存储循环中间结果,并通过json输出组件将列表信息直接聚合成封装信息,从而省去了循环嵌套,最终实现通过KETTLE的可视化组件快速封装三层报文结构,可以减少了编码工作量,提高效率,从而以提高业务变化时的业务响应速度。当然本发明的方法原理也可以适用于大于三层报文结构。
在步骤5中,还包括根据业务数据获取二级节点列表,例如,获取集装箱列表作为二级节点列表,并封装成json数组,依次将临时记录列表中的每一个封装信息取出后,与一级节点信息、json数组一同封装得到最终的业务报文,使业务报文更加完整。
在步骤5中,得到业务报文后,设置执行成功结果,并输出执行日志表。
在步骤3中,业务数据判断是否符合封装条件,例如,将提运单列表比对报关单,不一致则设置执行失败结果,并输出执行日志表。还可以核对提运单列表是否属于报关目的地,不属于则设置执行失败结果,并输出执行日志表,执行日志表用于记录封装出错的步骤及失败的原因。
在一个实施例中,可以通过数据库订阅工具订阅报文输出库,当报文输出库变化时,通过报文分发模块,将报文输出库的报文发送至指定的消息队列,从而实现一种自动发送报文的方法。
根据各消息队列的消费情况进行记录入库,并以可视化界面的形式进行展示,从而实现一种报文发送监控方法。
在一个实施例中,将数据库订阅工具集成至KETTLE作业调度模块,在KETTLE作业调度模块中以可视化配置的方式编辑数据库订阅工具的订阅逻辑,当数据以指定的情况变化时(如字段A等于某个值时,或者字段B的值>字段C的值时等)触发订阅逻辑,以提高处理效率。
以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。
Claims (9)
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.遍历二级节点列表;根据每一个二级节点的关联字段获取对应三级节点列表,并进行封装,封装好后,加入对应的二级节点字段信息再次封装;将每一个含有二级节点及三级节点列表的封装信息依次添加至临时记录列表;
步骤5.依次将临时记录列表中的每一个封装信息取出,并与一级节点信息一同封装得到所需要的业务报文;
步骤6.删除临时记录列表,结束流程。
3.根据权利要求2所述的一种海关业务复杂报文封装方法,其特征在于,封装得到的数据为json数据。
4.根据权利要求2所述的一种海关业务复杂报文封装方法,其特征在于,在步骤5中,还包括根据业务数据获取二级节点列表,并封装成json数组,依次将临时记录列表中的每一个封装信息取出后,与一级节点信息、json数组一同封装得到最终的业务报文。
5.根据权利要求2或4所述的一种海关业务复杂报文封装方法,其特征在于,在步骤5中,得到业务报文后,设置执行成功结果,并输出执行日志表。
6.根据权利要求2所述的一种海关业务复杂报文封装方法,其特征在于,在步骤3中,业务数据判断是否符合封装条件,不一致则设置执行失败结果,并输出执行日志表。
7.根据权利要求1所述的一种海关业务复杂报文封装方法,其特征在于,通过数据库订阅工具订阅报文输出库,当报文输出库变化时,通过报文分发模块,将报文输出库的报文发送至指定的消息队列。
8.根据权利要求7所述的一种海关业务复杂报文封装方法,其特征在于,根据各消息队列的消费情况进行记录入库,并以可视化界面的形式进行展示。
9.根据权利要求1所述的一种海关业务复杂报文封装方法,其特征在于,将数据库订阅工具集成至KETTLE作业调度模块,在KETTLE作业调度模块中以可视化配置的方式编辑数据库订阅工具的订阅逻辑,当数据以指定的情况变化时触发订阅逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310020792.8A CN116016032B (zh) | 2023-01-06 | 2023-01-06 | 一种海关业务报文封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310020792.8A CN116016032B (zh) | 2023-01-06 | 2023-01-06 | 一种海关业务报文封装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116016032A true CN116016032A (zh) | 2023-04-25 |
CN116016032B CN116016032B (zh) | 2023-08-11 |
Family
ID=86022905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310020792.8A Active CN116016032B (zh) | 2023-01-06 | 2023-01-06 | 一种海关业务报文封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016032B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010034255A1 (zh) * | 2008-09-28 | 2010-04-01 | 华为技术有限公司 | 数据传输方法及网络节点和数据传输系统 |
CN102238064A (zh) * | 2010-04-23 | 2011-11-09 | 华为技术有限公司 | 数据传输方法、装置和系统 |
US20130030867A1 (en) * | 2011-07-28 | 2013-01-31 | Sap Ag | Managing consistent interfaces for campaign response option, sales target plan, sales price list and sales specification business objects across heterogeneous systems |
AU2015100894A4 (en) * | 2014-07-04 | 2015-08-06 | Diprose, Chris MR | A system, server and computer readable storage medium for e-commerce order management and fulfilment |
CN107733799A (zh) * | 2016-08-11 | 2018-02-23 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
CN111176799A (zh) * | 2018-11-12 | 2020-05-19 | 中兴通讯股份有限公司 | 一种业务调度方法、设备和存储介质 |
CN111427922A (zh) * | 2020-03-19 | 2020-07-17 | 广东蔚海数问大数据科技有限公司 | 基于分布式架构的数据分析方法、系统、装置及存储介质 |
CN111460772A (zh) * | 2020-02-28 | 2020-07-28 | 上海维信荟智金融科技有限公司 | 自动化报表处理方法及系统 |
WO2021027363A1 (zh) * | 2019-08-15 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN113986951A (zh) * | 2021-10-29 | 2022-01-28 | 重庆富民银行股份有限公司 | 一种通用etl代码的生成系统及方法 |
-
2023
- 2023-01-06 CN CN202310020792.8A patent/CN116016032B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010034255A1 (zh) * | 2008-09-28 | 2010-04-01 | 华为技术有限公司 | 数据传输方法及网络节点和数据传输系统 |
CN102238064A (zh) * | 2010-04-23 | 2011-11-09 | 华为技术有限公司 | 数据传输方法、装置和系统 |
US20130030867A1 (en) * | 2011-07-28 | 2013-01-31 | Sap Ag | Managing consistent interfaces for campaign response option, sales target plan, sales price list and sales specification business objects across heterogeneous systems |
AU2015100894A4 (en) * | 2014-07-04 | 2015-08-06 | Diprose, Chris MR | A system, server and computer readable storage medium for e-commerce order management and fulfilment |
CN107733799A (zh) * | 2016-08-11 | 2018-02-23 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
CN111176799A (zh) * | 2018-11-12 | 2020-05-19 | 中兴通讯股份有限公司 | 一种业务调度方法、设备和存储介质 |
WO2021027363A1 (zh) * | 2019-08-15 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN111460772A (zh) * | 2020-02-28 | 2020-07-28 | 上海维信荟智金融科技有限公司 | 自动化报表处理方法及系统 |
CN111427922A (zh) * | 2020-03-19 | 2020-07-17 | 广东蔚海数问大数据科技有限公司 | 基于分布式架构的数据分析方法、系统、装置及存储介质 |
CN113986951A (zh) * | 2021-10-29 | 2022-01-28 | 重庆富民银行股份有限公司 | 一种通用etl代码的生成系统及方法 |
Non-Patent Citations (3)
Title |
---|
JIAZENG WEN; BOYI XU; FENGLIN BU; HONGMING CAI: "A Service Composition Model Based on Business Process Template", 《2010 IEEE INTERNATIONAL CONFERENCE ON PROGRESS IN INFORMATICS AND COMPUTING》 * |
苏舟: "某高校信息化基础平台设计与实现", 《CNKI》 * |
董智纯;廖振松;张守懿;刘东川;: "一种基于Kettle的数据核查方法", 信息通信, no. 04 * |
Also Published As
Publication number | Publication date |
---|---|
CN116016032B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577805B (zh) | 一种面向日志大数据分析的业务服务系统 | |
CN101802814B (zh) | 用于多媒体消息服务(mms)到视频适配的方法和系统 | |
CN108268529B (zh) | 一种基于业务抽象和多引擎调度的数据汇总方法和系统 | |
CN109710238A (zh) | 一种基于Spring Cloud的代码生成方法 | |
CN111158690B (zh) | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 | |
CN111158779B (zh) | 一种数据处理方法和相关设备 | |
CN105809389A (zh) | 一种bom树的生成方法及装置 | |
EP3637690B1 (en) | Service configuration-driven flow table method and device | |
CN105446952B (zh) | 用于处理语义片段的方法和系统 | |
CN116016032B (zh) | 一种海关业务报文封装方法 | |
US9100202B2 (en) | Message routing based on modeled semantic relationships | |
CN112905571B (zh) | 一种列车轨道交通传感器数据管理方法及装置 | |
CN116048668B (zh) | 基于web操作系统的应用插件通信系统 | |
CN110825775B (zh) | 一种Gaia系统中支持流数据与批数据交互的数据交换系统 | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN108845794B (zh) | 一种流式运算系统、方法、可读介质和存储控制器 | |
CN116743790B (zh) | 设备数据采集、设备数据分析方法、装置和计算机设备 | |
JP2004252973A (ja) | 客体指向プログラムが記録された貯蔵媒体 | |
CN113111074B (zh) | 基于区块链的交互数据监测方法及装置 | |
CN114089709B (zh) | 一种跨域多尺度的数字孪生体构建方法 | |
WO2022261810A1 (zh) | 数据获取系统的构建方法及装置 | |
JP2007148751A (ja) | 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造 | |
CN114217785A (zh) | 面向数据流的大数据处理方法、装置和计算机设备 | |
JP2004157673A (ja) | 電子カタログ変換システムにおけるデータマッピングルール再利用装置、方法、及びプログラム | |
CA2607495A1 (en) | System and method for efficient hosting of wireless applications by encoding application component definitions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |