Azure Logic Apps Standard:如何强制指定SAP IDoc版本?
自定义脚本/函数处理IDoc版本
通过MicrosoftLobNamespaceXml接收IDoc后,在Azure Logic Apps中添加Inline Code(JavaScript/PowerShell)或调用Azure Function,解析IDoc的控制段EDI_DC40,根据IDoc类型匹配预设的版本规则,手动修改IDoc的版本标识字段(如RELNMB),或添加自定义属性标记目标版本,确保后续流程按指定版本处理。
示例逻辑:提取XML中EDI_DC40/DOCTYP的值,匹配预设映射表(如ORDERS05对应7.50),然后更新EDI_DC40/RELNMB为目标版本值。在SAP端配置固定IDoc版本
直接在SAP系统中完成版本强制:使用事务码WE82将目标IDoc类型与指定版本绑定,或通过WE20配置合作伙伴的输出参数,强制发送特定版本的IDoc。这种方式从源头解决问题,Azure接收的IDoc本身就是所需版本,无需额外处理。Azure Integration Account定制多版本Schema并强制绑定
针对同一IDoc类型的不同版本,在Integration Account中分别上传对应的Schema。在Logic Apps的IDoc接收流程中,跳过自动Schema匹配逻辑,直接指定加载目标版本的Schema进行解析验证,实现强制使用特定版本处理IDoc的效果。结合过滤与XSLT转换实现版本统一
在SAP触发器的过滤规则中,仅允许接收目标版本的IDoc;若需要兼容旧版本IDoc,可添加XML转换步骤,编写XSLT模板将旧版本IDoc的结构映射到目标版本的结构,实现版本强制转换。
内容的提问来源于stack exchange,提问作者Tim D'haeyer

