数据库端口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对接的相关信息,欢迎交流。

阅读原文

相关推荐
科技小花6 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
X56617 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全8 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_771717218 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi9 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dFObBIMmai9 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw09 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl2002092510 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛1392462567310 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑