问题标签 [edifact]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1067 浏览

biztalk - Biztalk EDIFACT 处理

我正在尝试使用 Biztalk 处理一个 edifact 文件。我设置了一个非常简单的映射,用于发送端口。但是,Biztalk 抱怨该消息。我尝试搜索网络,但没有任何结果。您可以在此处查看 edi 文件。我已经使用 EDIFACT 协议设置了各方和协议,但我不确定我做得有多正确。每当我尝试向 biztalk 提供该消息时,我都会在事件日志中看到以下消息:

适配器“FILE”在接收位置“Receive Location1”上接收到 URI“C:\Temp*.edi”的消息被挂起。错误详细信息:接收管道“Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive,Microsoft.BizTalk.Edi.EdiPipelines,Version=3.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”中组件“未知”的输出消息被挂起由于以下错误:错误:1(字段级错误) SegmentID:UNB TS 中的位置:1 数据元素 ID:UNB5 段中的位置:5 数据值:37:在数据元素中发现无效字符。挂起消息的序号为 1。 MessageId:{DDE54B67-8907-49A2-BDE9-4763495B9B87} InstanceID:{892EC28B-AC4C-4EA4-8DCC-C49D5FC2869C}

我不确定这意味着什么。任何帮助,指示将不胜感激。

谢谢。

0 投票
1 回答
1394 浏览

biztalk - 如何禁用段排序验证?

我收到一条需要使用 Biztalk 处理的 EDIFACT 消息。当 Biztalk 拾取文件时,它会在事件日志中放置一个错误条目:

错误:2(段级别错误) SegmentID:MEA TS 中的位置:5442 15:此位置不支持使用段、数据类型或段

我调查了这个问题,发现 MEA 段的位置不正确。我尝试使用 Stylus Studio 转换此 EDI 文件,但在禁用段排序验证之前我遇到了同样的问题。之后,Stylus 成功地将文件转换为 XML。所以我想知道,有没有什么方法可以在 Biztalk 中禁用段排序验证?我在接收管道上禁用了 EdiDataValidation 和 XmlSchemaValidation,但我仍然收到错误消息。任何的想法?

谢谢

0 投票
2 回答
1114 浏览

c# - 当不跟随特定字符(?)时,如何使用正则表达式匹配字符(')?

只要字符串前面没有问号,我如何编写正则表达式模式以按特定分隔符拆分字符串?

我编写了一个解析器,它将 EDIFACT 消息拆分为段、组合和元素。但在 EDI 标准中,问号是转义字符。所以要拆分这个字符串:

我可以使用 string.Split('\''),然后使用 string.split('+'),然后使用 string.split(':') 来获取 PRI、2.005、1、9022.5 等但是,这些字符可以被问号转义:

现在应该是 PRI, 2.005+3.2, 1, 9022.5, RAD'R, RRHANB97。

有人可以帮助匹配'而不是?'的正则表达式吗?

谢谢

0 投票
3 回答
4739 浏览

regex - 使用正则表达式匹配双换行符

我正在编写一个正则表达式,它将从 EDIFACT UN 代码列表中提取各种信息。由于有数以万计的代码,我不想全部输入,所以我决定使用正则表达式来解析文本文件并提取出我需要的位。文本文件的结构使我可以轻松识别我想要的位。

我已经使用Regex Hero创建了以下 Regex来测试它,但我无法让它将所有内容匹配到codeComment组的双换行符。我试过使用字符类[^\n\n]但这仍然不匹配双换行符。

注意:我在 Regex Hero 上选择了 Multiline 选项。

这是我用来匹配的示例文本。

-------------------------------------------------- --------------------

  • 1073 文档行动作代码 [B]


        描述:指示与文档行关联的操作的代码 。

    代表:一个..3

    1 包含在单据/交易
        中 单据行包含在
        单据/交易中。
        也应该捕捉到这一点。

    2 从单据/交易
        中排除 单据行 从单据/交易中排除
        。

我想要的是 codeComment 包含以下内容:

但它只提取第一行:

0 投票
1 回答
1671 浏览

biztalk - 在当事人协议中设置 EDIFACT 分隔符

我目前正在 BizTalk Server 2010 中实施 EDI 解决方案。这是场景:

BizTalk 负责 X.400 邮箱和客户的 ERP 软件之间的正确消息路由。它还用于使用 SharePoint Web 服务将有关交换消息的信息放入 SharePoint 站点。
我正在使用角色链接和 BizTalk 方管理来应用正确的设置(发送端口、UNB6 段中的密码等)。

现在我有以下问题:
当我尝试从客户的 ERP 系统中获取传出的 INVOIC 消息,提取编排中的相关信息并将其写入 SharePoint 站点时,使用 EDI 接收管道的接收端口会暂停,并显示以下内容错误信息:

发生这种情况是因为消息在每个段分隔符之后使用 CR 和 LF 作为后缀。现在我可以将 CR 和 LF 的 ASCII 十六进制代码添加到管道的“EfactDelimiters”设置中,但问题是还有其他没有 CR 和 LF 的消息,然后无法使用相同的管道接收这些消息。顺便说一句,当我使用管道获取其中一条没有CR 和 LF 的消息时,也没有将 CR 和 LF 设置为分隔符,接收端口也被挂起,这一次由于使用点而不是逗号而导致错误消息小数分隔符(尽管我在管道中启用了“UseDotAsDecimalSeparator”选项)。同样,只有更改 EfactDelimiters 才有帮助。

我认为当事方协议中的“字符集和分隔符”页面应该使这成为可能:为每个业务方单独设置分隔符。但是我在这些设置中所做的更改似乎没有任何效果。我将“UNA6 Suffix”设置为“CR LF”,将“Decimal Notation (UNA3)”设置为“.(Decimal)”,重新启动主机实例......同样的问题。

任何人都可以帮忙吗?

0 投票
2 回答
393 浏览

xpath - 如何找到最后一个元素

我正在尝试使用 biztalk 中的 xpath - 编排在我的 edifact 文件的最后一个 Line 元素中找到 IMD。这是我的 xpath:

这是我的 edifat 文件:

它返回:

有一个无效的令牌

0 投票
6 回答
7419 浏览

c# - 如何解析 Amadeus 机票文件

Amadeus 为每个航班预订生成如下所示的 AIR 文件。我需要从此文件中读取预订号码以及来源和目的地机场。

我在 Google 上搜索“Amadeus air format”,但没有找到格式说明。关于 EDIFACt 的 Wikipedia 条目有点不同,它没有描述此内容。

在哪里可以找到有关文件结构的信息?如何解析这个文件?我不知道文件结构,它是否包含 SQL 表之类的记录,或者它是否包含一些保留协议指令,例如 postscript 文件?

应用程序应在 Microsoft Windows 中运行,最好使用 Visual FoxPro 或 C# 语言。FoxPro 或 Microsoft Visual Studio 2012 Express 可用作编程环境

Google 仅返回 Amadeus 用户指南和教程,例如评论和

http://www.amadeusschweiz.com/en/documentation/usermanuals.html

这些是用户手册。最有前途的外观 Amadeus Air 用户指南来自此:

我收到的文件名为 air.txt,文件中的第一个令牌是 AIR-BLK206 也许 BLK206 是一些预订格式描述符。谷歌返回了一些像我这样使用这个的文档,所以它看起来很常用。

该文件可能描述了如何预订机票,它会生成 air.txt 文件。

我为 BLK 搜索了这个和票务用户指南,但那些不包含这个缩写。

用户手册中的命令看起来与此文件中的命令不同。如何使用此信息从该文件中提取预订号码和目的地机场?我没有使用谷歌找到格式描述。您发布了类似的 Amadeus 用户指南、教程和快速参考文件,但我不明白如何使用它们来解析此文件。

一条消息描述这是 EDIFACT 的形式。但是 Wikipedia 中的 EDIFACT 消息示例也有所不同。我需要为客户创建快速原型,这表明我们可以阅读这些文件。

也许有一些程序可以用来以人类可读的形式显示它?

0 投票
0 回答
746 浏览

biztalk - BizTalk XML 到 EDIFACT EDI 汇编器遇到异常

我目前正在尝试将使用 XSLT 的 XML 文件转换为 EDIFACT 格式文件。翻译阶段似乎很好。通过使用直通发送端口,我可以获得 XML 格式的 EDIFACT 文件。但是,一旦我尝试将文件传递给 EDISend 管道,我就会遇到异常

错误详细信息:“无法从交换中读取分隔符集。根节点中缺少属性 DelimiterSetSerializedData”

对于这个特定的翻译,我使用 EdifactInterchangeXml 作为目标模式。

在 XSLT 本身中,我还声明了以下部分:

有什么建议可能导致上述错误?

0 投票
0 回答
313 浏览

biztalk - 如何在 BizTalk 2010 中定义出站 EDI 批处理的字符集?

我有一些带有 UNOC 字符集的 EDIFACT 文件,尽管应该允许使用小写字符串和变音符号。这些文件应在出站 EDIFACT 文件中进行批处理。但是相关发送端口的批处理编排会引发一些验证错误。

如果我将字符串转换为大写字符,一切正常。因此,出站批处理编排似乎在内部使用 UNOA 字符集来验证 EDIFACT 文件......

如何更改 BizTalk 2010 中出站批处理业务流程的字符集?目前在方和协议配置中未找到关于出站批处理编排字符集的设置。谢谢

0 投票
1 回答
796 浏览

oracle - 如何拆分 EDIFACT 文件?

我正在使用 Oracle SOA Suite B2B 组件来处理 EDIFACT 文件。我需要处理一个 +2Gb 文件,它不能一次全部处理。我需要将文件拆分为较小的文件,然后将它们全部处理。是否有任何 Java 应用程序可以帮助我解决这个拆分问题?..

或者如果我尝试开发它,较小的 EDIFACT 文件的格式应该如何才能处理它们?

谢谢,