Flat File端口更新:如何实现嵌套结构

news2024/9/20 15:00:39

Flat File端口可以实现平面文件和XML文件的互相转换,本文主要介绍在知行之桥EDI系统8971及更高版本中,Flat File端口如何支持类似EDI嵌套结构的转换。

Flatfile端口如何自定义嵌套结构

下载示例工作流以及示例文件

打开知行之桥EDI系统,创建一个命名为Flatfile的工作区,将FlatFile.arcflow拖拽至空白区域即可实现导入。可以看到这个工作流中有两个Flat File测试端口,分明被命名为:Position_S_O_P以及Character_S_O_P。

Flat-File1.png

扩展阅读:知行之桥EDI系统功能介绍——FlatFile 端口介绍

Character_S_O_P 这个端口将为大家演示平文件按照分隔符切分字段的情况
Position_S_O_P 将为大家演示平文件按照长度切分字段的情况

此外在示例文件中,有两个文件:Character_S_O_P.txt是Character_S_O_P 端口的测试文件;Position_S_O_P.txt是 Position_S_O_P 端口的测试文件。

首先以按照分隔符切分字段的情况为例,在Character_S_O_P端口的输入选项卡下上传文件:Character_S_O_P.txt,由于勾选了自动发送,因此可以直接在输出选项卡下查看FlatFile端口的转换效果。点击文件名即可预览。

Flat-File2.png

源文件:

S,0,0
O,1,0
P,2,1
P,3,1
O,4,0
O,5,0

经过 FlatFile端口转换后的文件:

<Items>
    <LoopS type="loop">
        <S>
            <Id>0</Id>
            <Pid>0</Pid>
        </S>
        <LoopO type="loop">
            <O>
                <Id>1</Id>
                <Pid>0</Pid>
            </O>
            <LoopP type="loop">
                <P>
                    <Id>2</Id>
                    <Pid>1</Pid>
                </P>
            </LoopP>
            <LoopP type="loop">
                <P>
                    <Id>3</Id>
                    <Pid>1</Pid>
                </P>
            </LoopP>
        </LoopO>
        <LoopO type="loop">
            <O>
                <Id>4</Id>
                <Pid>0</Pid>
            </O>
        </LoopO>
        <LoopO type="loop">
            <O>
                <Id>5</Id>
                <Pid>0</Pid>
            </O>
        </LoopO>
    </LoopS>
</Items>

这里可以和我们上传的源文件做一个对比,可以看到按照字符切分字段,实现的嵌套效果。

接下来以平文件按照长度切分字段的情况为例,在Position_S_O_P端口上传测试文件:Position_S_O_P.txt,在输出选项卡下查看端口的转换效果,点击文件名进行预览,对比上传的源文件,可以看到同样实现了嵌套效果。

Flat-File3.png

源文件:

S0 0
O1  0 
P2   1  
P3   1  
O4  0 
O5  0

经过 FlatFile端口转换后的文件:

<Items>
    <LoopS type="loop">
        <S>
            <Id>0</Id>
            <Pid>0</Pid>
        </S>
        <LoopO type="loop">
            <O>
                <Id>1</Id>
                <Pid>0</Pid>
            </O>
            <LoopP type="loop">
                <P>
                    <Id>2</Id>
                    <Pid>1</Pid>
                </P>
            </LoopP>
            <LoopP type="loop">
                <P>
                    <Id>3</Id>
                    <Pid>1</Pid>
                </P>
            </LoopP>
        </LoopO>
        <LoopO type="loop">
            <O>
                <Id>4</Id>
                <Pid>0</Pid>
            </O>
        </LoopO>
        <LoopO type="loop">
            <O>
                <Id>5</Id>
                <Pid>0</Pid>
            </O>
        </LoopO>
    </LoopS>
</Items>

那么我们如何自定义结构呢?需要注意的是,由于现在Flatfile端口的UI还不支持EDI嵌套结构的操作。所以,需要手动编辑软件安装目录下的 端口文件夹\Resources\schema.json 文件。

Flat-File4.png

按分隔符切分字段的schema.json如下:

{
    "DelimitationType": {
        "Segment": {
            "Type": "Character",
            "Delimiter": "\n",
            "EscapeType": "Escaping",
            "EscapeChar": "\\"
        },
        "Element": {
            "Type": "Character",
            "Delimiter": ",",
            "EscapeType": "Escaping",
            "EscapeChar": "\\"
        }
    },
    "Parts": [
        {
            "Id": "LoopS",
            "Max": -1,
            "Loop": [
            {
                "Id": "S",
            },
            {
                "Id": "LoopO",
                "Max": -1,
                "Loop": [
                {
                    "Id": "O",
                },
                {
                    "Id": "LoopP",
                    "Max": -1,
                    "Loop": [
                    {
                        "Id": "P",
                    }]
                }]
            }]
        }
    ],
    "Segments": {
        "S": {
            "Elements": [
                {
                    "Name": "Type"
                },
                {
                    "Name": "Id"
                },
                {
                    "Name": "Pid"
                }
            ]
        },
        "O": {
            "Elements": [
                {
                    "Name": "Type"
                },
                {
                    "Name": "Id"
                },
                {
                    "Name": "Pid"
                }
            ]
        },
        "P": {
            "Elements": [
                {
                    "Name": "Type"
                },
                {
                    "Name": "Id"
                },
                {
                    "Name": "Pid"
                }
            ]
        }
    }
}

按照长度切分字段的schema.json如下:

{
    "DelimitationType": {
        "Segment": {
            "Type": "Position"
        },
        "Element": {
            "Type": "Position"
        }
    },
    "Parts": [
        {
            "Id": "LoopS",
            "Max": -1,
            "Loop": [
            {
                "Id": "S",
            },
            {
                "Id": "LoopO",
                "Max": -1,
                "Loop": [
                {
                    "Id": "O",
                },
                {
                    "Id": "LoopP",
                    "Max": -1,
                    "Loop": [
                    {
                        "Id": "P",
                    }]
                }]
            }]
        }
    ],
    "Segments": {
        "S": {
            "Elements": [
                {
                    "Name": "Type",
                    "PositionLength": 1
                },
                {
                    "Name": "Id",
                    "PositionLength": 2
                },
                {
                    "Name": "Pid",
                    "PositionLength": 1
                }
            ]
        },
        "O": {
            "Elements": [
                {
                    "Name": "Type",
                    "PositionLength": 1
                },
                {
                    "Name": "Id",
                    "PositionLength": 3
                },
                {
                    "Name": "Pid",
                    "PositionLength": 2
                }
            ]
        },
        "P": {
            "Elements": [
                {
                    "Name": "Type",
                    "PositionLength": 1
                },
                {
                    "Name": "Id",
                    "PositionLength": 4
                },
                {
                    "Name": "Pid",
                    "PositionLength": 3
                }
            ]
        }
    }
}

以上便是按照分隔符切分字段以及按照长度切分字段两种不同情况下,schema.json的不同写法了。大家可以以这两个端口下的Schema为例,根据实际需求,自定义结构。

如果新创建了一个Flat File端口,则需要在软件安装目录下找到这个端口,在这个端口下添加一个命名为Resources的文件夹,并创建一个schema.json的文件,在这里编写脚本实现自定义结构。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2149203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV特征检测(1)检测图像中的线段的类LineSegmentDe()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 检测图像中线段的类.。 遵循在 285中描述的算法。 函数原型1 绘制两组线&#xff0c;一组用蓝色&#xff0c;一组用红色&#xff0c;并计算非重…

[云服务器12] 搭建eaglercraft网页MC

众所周知&#xff0c;MC是一个炒鸡好玩的游戏&#xff01; 但是&#xff0c;Mojang开发出来是经过Java JAR打包过的的.jar文件&#xff0c;这就不得不依赖HMCL PCL BakaXL等启动器来启动了…… 所以今天&#xff0c;我们将使用开源的eaglercraft来搭建一个在线版MC&#xff0…

鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别

一、介绍 鸟类识别系统。本系统采用Python作为主要开发语言&#xff0c;通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型&#xff0c;然后进行模型的迭代训练&#xff0c;得到一个识别精度较高的模型&#xff0c;然后在…

【VUE3.0】动手做一套像素风的前端UI组件库---Button

目录 引言做之前先仔细看看UI设计稿解读一下都有哪些元素&#xff1a;素材补充 代码编写1. 按钮四周边框2. 默认状态下按钮颜色立体效果3. 鼠标移入聚焦4. 模拟鼠标点击效果 组件封装1. 按类型设置颜色2. 设置按钮禁用状态3. 处理一个bug4. 看下整体组件效果5. 组件完整代码6. …

数字自然资源领域的实现路径

在数字化浪潮的推动下&#xff0c;自然资源的管理与利用正经历着前所未有的变革。本文将从测绘地理信息与遥感专业的角度&#xff0c;深度分析数字自然资源领域的实现路径。 1. 基础数据的数字化 数字自然资源的构建&#xff0c;首先需要实现基础数据的数字化。这包括地形地貌…

db2恢复数据库

db2licm -l检查下license IBM Support: Fix Central - Please wait, Select fixes db2 force application all db2ckbkp -H JYC.0.DB2.NODE0000.CATN0000.20240603223001.001 db2 "restore db jyc logtarget x:\db2\log" db2 "rollforward db jyc to end of log…

音频北斗定位系统有什么用?

在当今科技飞速发展的时代&#xff0c;定位技术已经成为我们日常生活和各行各业不可或缺的一部分。其中&#xff0c;音频北斗定位系统作为一种新兴的定位技术&#xff0c;正逐渐展现出其独特的优势和应用价值。那么&#xff0c;到底音频北斗定位系统有什么用呢?我们一起来了解…

住宅代理IP如何提高 IP声誉?

你有没有遇到过类似的问题&#xff1f;发送的邮件被标记为垃圾邮件并被屏蔽、访问某些网站被拒绝、广告效果不理想&#xff0c;甚至网上交易无缘无故被拒绝&#xff1f;这到底是什么原因造成的&#xff1f;其实&#xff0c;这些问题可能都和 IP 信誉息息相关。 如果你的 IP 地址…

一文读懂HPA弹性扩展以及实践攻略

一文读懂HPA弹性扩展以及实践攻略 目录 1 概念&#xff1a; 1.1 什么是弹性扩展1.2 HPA 的工作原理1.3 通过监控指标来调整副本数 1.3.1 计算公式说明1.3.2 平均值计算1.3.3 未就绪 Pod 和丢失的指标处理1.3.4 多指标支持1.3.5 缩减副本的平滑策略 1.4 HPA的优缺点 2 实践攻略…

微服务保护学习笔记(五)Sentinel授权规则、获取origin、自定义异常结果、规则持久化

文章目录 前言4 授权规则4.1 基本原理4.2 获取origin4.3 配置授权规则 5 自定义异常结果6 规则持久化 前言 微服务保护学习笔记(一)雪崩问题及解决方案、Sentinel介绍与安装 微服务保护学习笔记(二)簇点链路、流控操作、流控模式(关联、链路) 微服务保护学习笔记(三)流控效果(…

C语言 14 结构体 联合体 枚举

之前认识过很多种数据类型&#xff0c;包括整数、小数、字符、数组等&#xff0c;通过使用对应的数据类型&#xff0c;就可以很轻松地将数据进行保存了&#xff0c;但是有些时候&#xff0c;这种简单类型很难去表示一些复杂结构。 结构体 比如现在要保存 100 个学生的信息&am…

本地部署一个轻量化智能聊天服务Vocechat并实现异地远程交互

文章目录 前言1. 拉取Vocechat2. 运行Vocechat3. 本地局域网访问4. 群晖安装Cpolar5. 配置公网地址6. 公网访问小结 7. 固定公网地址 前言 本文主要介绍如何在本地群晖NAS搭建一个自己的聊天服务Vocechat&#xff0c;并结合内网穿透工具实现使用任意浏览器远程访问进行智能聊天…

我的AI工具箱Tauri版-VideoReapeat视频解说复述克隆

本教程基于自研的AI工具箱Tauri版进行VideoReapeat视频解说复述克隆。 VideoReapeat视频解说复述克隆 是自研的AI工具箱Tauri版中的一款专用模块&#xff0c;旨在通过AI技术对视频解说内容进行复述和克隆。该工具可自动洗稿并重新生成视频解说&#xff0c;通过简单配置即可对大…

协同编程的艺术:SIDE 让团队协作更上一层楼

一、协同编程的现状 在当前软件开发中&#xff0c;团队协作面临着诸多挑战。沟通不畅常常导致项目进度延迟&#xff0c;版本控制复杂使得代码合并困难重重。传统 IDE 在协同工作方面存在明显的局限性&#xff0c;缺乏实时协作功能&#xff0c;团队成员之间的沟通工具也不够完善…

如何上传tauri项目到csdn gitcode

如何上传tauri项目到csdn gitcode 首先保证项目目录有.gitignore&#xff0c;避免不必要的文件上传分享。 gitignore文件 # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log*node_modules dist dist-ssr *.local# Editor …

浅谈如何入门游戏漏洞挖掘,零基础入门到精通,收藏这一篇就够了

引言 每个白帽子心中&#xff0c;都有一团火 那就是对网络安全的信念 哪怕&#xff0c;是一条少有人走的路 补天希望与更多同路人携手&#xff0c;再向前一步 2021年补天平台启动“技术模块” 牛年新春特别分享单元 大年初一至初七 每天一个精选技术方向 每天一条原创…

QMT获取可转债行情数据方法介绍!支持QMT量化软件的券商平台?

获取可转债行情 为了获取转债的日线/1m/1d的k数据&#xff0c;以通过数据订阅形式获取最新行情subscribe_quote。如果您需要获取历史数据&#xff0c;可以使用download_history_data函数下载相关数据&#xff0c;然后使用get_market_data_ex函数提取所需的信息。这样&#xff…

Smartbi AIChat应用案例-某保险集团内部经营分析

案例简介 某保险企业面对大数据时代下的业务发展挑战&#xff0c;面临数据查询、分析与探索需求的激增。然而&#xff0c;当前的数据基础设施与应用方式已难以满足业务快速发展的需求。企业面临分析链路长、报表时效性低、制作效率低且灵活度不足、无效报表堆积等困局。为打破这…

探索《越南语翻译通》App:高效语言学习的利器

在当今这个全球化的世界里&#xff0c;语言学习变得越来越重要。随着科技的发展&#xff0c;我们有了更多便捷的工具来帮助我们学习新的语言。今天&#xff0c;我们来探索一款名为《越南语翻译通》的App&#xff0c;它正逐渐成为语言学习者的新宠。 《越南语翻译通》App的特点…

Linux安装(带VM激活码)

1.安装Vmare WorkStation虚拟机 VMware Workstation Pro是VMware&#xff08;威睿公司&#xff09;发布的一代虚拟机软件&#xff0c;中文名称为"VMware 工作站".它的主要功能是可以给用户在单一的桌面上同时运行不同的操作系统&#xff0c;它也是可进行开发、测试、…