数据库端口LookUp功能:从数据库中获取并添加数据到XML

本文将为大家介绍如何使用知行之桥EDI系统数据库端口的Lookup功能,从数据库中获取数据,并添加进输入的XML中。

使用场景:期待以输入xml中的值为判断条件从数据库中获取数据,并添加进输入xml中。

例如:接收到包含采购订单数据的xml,其中包含BuyerItemNumber,不包含SKU。数据库中已有表维护了BuyerItemNumber和SKU的对应关系。如下所示:

如何将BuyerItemNumber值作为判断条件,获取到数据库表中对应的sku数据,并且添加到现有XML中呢?我们需要在知行之桥EDI系统的数据库端口中通过简单配置即可实现。以SQLSever端口为例,操作步骤如下。

创建SQLSever端口,建立连接

1.点击页面右上角的 添加 按钮,在弹框的搜索栏中搜索 SQL 即可看到 SQL Sever 端口,点击即可出现添加弹框。

2.如下图所示,选择操作为Lookup,点击右下角的 创建端口 按钮。

3.在SQL Sever端口的 设置 选项卡下点击 创建 按钮,填写配置信息,创建与数据库的连接。

数据库端口的Lookup配置
方法一:不配置示例文件,配置路径

1.配置所要查询的表 ,即已维护BuyerItemNumber和SKU对应关系的数据库表,如:[dbo].[LookUpTest]。这里的数据库表可以在下拉列表中进行选择。

2.配置列 ,即需要获取的信息,可在下拉列表中进行选择,如sku。

3.输出目标,这里选择XPath,输出路径。注意:父级节点需使用根路径,需要结合输入文件进行配置。输入文件示例如下:

<LookUpTest_Header>
    <PODate>20240101</PODate>
    <PONumber>123456</PONumber>
    <LookUpTest_Detail>
        <BuyerItemNumber>99999</BuyerItemNumber>
        <OrderQuantity>100</OrderQuantity>
        <DeliveryDate>20240201</DeliveryDate>
    </LookUpTest_Detail>
</LookUpTest_Header>

根据上述示例,XPath需要配置为:

左侧填写:/LookUpTest_Header/LookUpTest_Detail

右侧填写:SKU

4.过滤器,获取条件,如表中buyeritemnumber列等于输入BuyerItemNumber时获取sku列

按照上述步骤设置之后,可以在 SQLSever 端口的 输入 选项卡下上传示例文件:

<LookUpTest_Header>
    <PODate>20240101</PODate>
    <PONumber>123456</PONumber>
    <LookUpTest_Detail>
        <BuyerItemNumber>99999</BuyerItemNumber>
        <OrderQuantity>100</OrderQuantity>
        <DeliveryDate>20240201</DeliveryDate>
    </LookUpTest_Detail>
</LookUpTest_Header>

输出 选项卡中可以查看数据获取结果如下:

点击右上角格式化按钮,可对文件一键格式化。可以看到这里SKU处多了一层列名,但我们的XML中不希望看到这样的结果,因此需要进行配置,使结果更加简洁。

接下来需要在当前端口中的高级设置选项卡下,在页面末尾找到特殊设置,在其他设置中配置如下:singlecolumnlookupxpathincludesleaf=true,点击保存变更,即可实现在输出中去除列名。

重新上传上文中的输入文件,可以在输出选项卡中打开新的文件,内容如下:

如上所示,我们已通过buyeritemnumber字段信息获取到其对应的sku信息,并成功将其添加到原始XML文件中。

方法二:配置示例文件

1.配置示例文件

设置 选项卡->操作->配置示例文件,示例文件需要和输入文件保持一致,如下:

<LookUpTest_Header>
    <PODate></PODate>
    <PONumber></PONumber>
    <LookUpTest_Detail>
        <BuyerItemNumber></BuyerItemNumber>
        <OrderQuantity></OrderQuantity>
        <DeliveryDate></DeliveryDate>
    </LookUpTest_Detail>
</LookUpTest_Header>

2.配置所要查询的表 ,即已维护BuyerItemNumber和SKU对应关系的数据库表,如:[dbo].[LookUpTest]。这里的数据库表可以在下拉列表中进行选择。
3.配置列 ,即需要获取的信息,可在下拉列表中进行选择,如sku。
4.输出目标,这里选择XPath,输出路径。

由于我们已经设置了示例文件,这里只需要在下拉列表中选择根路径即可。我们需要sku信息出现在LookUpTest_Detail下,因此需要鼠标点击LookUpTest_Detail,然后在右侧填写:SKU。

5.过滤器,获取条件,如表中buyeritemnumber列等于输入BuyerItemNumber时获取sku列

注意,仍然需要在当前端口中的高级设置 选项卡下,在页面末尾找到特殊设置 ,在其他设置中配置如下:singlecolumnlookupxpathincludesleaf=true,点击保存变更,即可实现在输出中去除列名。

输入 选项卡下,可以上传测试文件,在输出选项卡下查看获取结果。

如果您希望了解有关EDI对接的相关信息,欢迎交流。

阅读原文

相关推荐
给我起把狙14 分钟前
django orm增删改查操作
数据库·python·django
小扳36 分钟前
Redis 篇-深入了解使用 Redis 中的 GEO 数据结构实现查询附近店铺、BitMap 实现签到功能、HyperLogLog 实现 UV 流量统计
java·数据库·redis·后端·缓存
ezreal_pan43 分钟前
redis有序集合写入和求交集的速度
数据库·redis·缓存·zset
轩轶子1 小时前
【MySQL-初级】mysql基础操作(账户、数据库、表的增删查改)
数据库·mysql·adb
不剪发的Tony老师1 小时前
SQL案例分析:计算延迟法定退休年龄
数据库·sql
TiDB 社区干货传送门2 小时前
TiDB 数据库核心原理与架构_Lesson 01 TiDB 数据库架构概述课程整理
数据库·架构·tidb·数据库架构
柏箱2 小时前
关系数据库,集合运算符,关系运算符
数据库
数云界2 小时前
使用 Elementary 实现开源数据可观测性 — 从零到精通(第一部分)
数据库·开源
DBA狗剩儿2 小时前
oracle停止当前运行的JOB或kill会话
数据库·oracle
是一只派大鑫2 小时前
从头开始学MyBatis—02基于xml和注解分别实现的增删改查
java·数据库·后端·mybatis