SAP 中IDOC是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP 中IDOC是啥相关的知识,希望对你有一定的参考价值。
参考技术AIDoc是信息系统之间(通常是ERP) 进行事务性或数据交换使用的标准数据格式,其中比较公认的是符合EDI标准的IDoc,个别系统可以用过EDI子系统转换为EDI标准来使用。IDoc一般是面向消息的,含有事务性数据、主数据和控制数据;异步处理的。
信息系统之间(通常是ERP) 进行事务性或数据交换使用的标准数据格式,其中比较公认的是符合EDI标准的IDoc,个别系统可以用过EDI子系统转换为EDI标准来使用。IDoc一般是面向消息的,含有事务性数据、主数据和控制数据;异步处理的。
扩展资料
IDOC符合EDI标准的一种的数据格式,它一般是整个的消息报文,包含了事务数据、主数据、控制数据,用以控制数据的整个交换流程,其中呢,主数据一般是XML格式,
所以可以方便解析。RFC(remote function call)是远程函数调用,在SAP中是基于TCP协议来实现的,实际上是一种底层通信技术。PMI(process monitor )是进程监视架构,配置好后,用以监视接口数据的进出站。
参考资料来源:百度百科-iDoc
SAP .Net 连接器 3.0 - 如何从非 SAP 系统发送 idoc?
【中文标题】SAP .Net 连接器 3.0 - 如何从非 SAP 系统发送 idoc?【英文标题】:SAP .Net Connector 3.0 - How can I send an idoc from a non-SAP system? 【发布时间】:2018-01-03 09:07:51 【问题描述】:我正在尝试使用 .Net 连接器将数据发送到 SAP 系统。我已经能够很容易地向 RFC 功能模块发送调用,但似乎没有任何方法可以直接发送标准 Idoc。这很奇怪,因为 Idocs 应该是与 SAP 对话的标准通信工具。
有没有人发现是否/如何做到这一点?
【问题讨论】:
【参考方案1】:据我所知,目前 SAP 没有为 .NET 连接器 (NCo) 提供用于处理 IDoc 的开发库。如果你想使用 NCo,你必须自己编写这个 IDoc 处理的东西。这是可能的,因为 IDoc 通常也是通过调用特殊的远程功能模块(例如 IDOC_INBOUND_ASYNCHRONOUS)来传输的。但这会变得非常麻烦和困难,特别是如果它还应该与非 unicode ABAP 系统和多字节代码页(如中文、日文或韩文)一起使用。
但如果您不需要坚持使用 NCo,我认为使用 IDocs 进行自己开发的最简单方法是切换到 Java 并将 SAP Java 连接器 (JCo) 与 SAP Java IDoc 类库结合使用添加在。 NCo 和 JCo 有一个非常相似的 API,但不幸的是,.NET 环境缺少这个 Java IDoc 类库插件——至少 SAP 不提供它,而且我也不知道任何其他 .NET 库为此.
【讨论】:
你是对的。我必须使用 SDATA 中的 idoc 对 IDOC_INBOUND_ASYNCHRONOUS 进行 RFC 调用。谢谢 感谢您的反馈。但请注意,IDOC_INBOUND_ASYNCHRONOUS 的两个表中的其他字段也有含义,必须一致填写。如果没有 IDoc 元数据(偏移量和长度),您也无法将段内的单个 IDoc 字段填充/修改为 SDATA。如果您已经将段数据作为连续的字符数据块,则将 SDATA 作为一个完整的字符串填充可能不适用于非 unicode 多字节代码页,其中字符的长度可以是一个、两个甚至更多字节(所有这些都是用作 SDATA 字符数组中的混合)。 你说的也对。我的回答只是总体说明我做了什么,但正如你所指定的,我也填写了控制记录,并且我通过查询 SAP 以了解段的结构以正确发送我的数据,以编程方式处理了偏移量/长度。 好的。好像你知道你在做什么。竖起大拇指! :-)【参考方案2】:NCO 中没有发送 IDOC 的功能,NCO 旨在使用 .NET 开发 RFC 客户端或 RFC 服务器。一个简单的堆栈搜索我发现了以下一些建议,如果这仍然是您想要的方式,可能会对您有所帮助。
How to create and send Idocs to SAP using SAP .Net Connector 3
顺便说一句,我不会说 IDOC 是 SAP 的标准通信工具,它是众多工具之一,它们都同样有效,所以只取决于您的情况。
稍后...
【讨论】:
以上是关于SAP 中IDOC是啥的主要内容,如果未能解决你的问题,请参考以下文章
033.SAP上查看IDOC接口,PI接口查不到的日志记录,可能在IDOC接口日志里面