问题标签 [sap-pi]
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.
xml - 不适用于 XSLT PI 映射
我是 xslt 的新手,我有以下代码,它不适用于简单的排序:帮助已获得帮助。
输入是:
预期输出:
sharepoint - 如何通过 SAP PI 集成 SAP 和 SharePoint?
我对 SAP 不熟悉,但我最近的项目是通过 SAP PI 将 SAP 和 SharePoint Portal 结合起来;SAP PI 将用于自动化 SAP 和 SharePoint Portal 之间的数据流...我在 Web 上没有找到足够有价值的信息。有人可以给我一些想法,或者告诉我在哪里可以找到这种信息?
logging - 有没有办法拦截来自 SAP PI 的出站消息?
有什么方法可以拦截来自 SAP NetWeaver PI 7.1 和 7.3 的传出消息?最好的选择是在将消息转换为特定协议的表示之前(即在从 XML 转换为 SOAP/RFC/等之前)。
java - SOAP 负载中的特殊字符未正确传输
我使用 CXF 编写了一个 SOAP Web 服务,该服务由 SAP 系统调用,在有效负载中有一个带有特殊字符的单词,该单词多次出现。但是,在某些随机情况下,我对这个词的读法有所不同,即在一个有效负载中,我看到这个词 asKliëntbestuurder
而在另一个有效载荷中,我看到这个词Kli��ntbestuurder
。
SAP 系统通过 SAP PI 调用我的服务只有一个字。
更新:所以似乎不是网络服务通信变得混乱,而是我编写的拦截器转储肥皂信封让我能够仔细检查。拦截器如下:
任何进一步的想法为什么我的拦截器不使用 UTF-8?
web-services - 对 SAP PI 服务进行匿名身份验证的未经授权的 HTTP 请求
我有一个来自我们客户公司的 .WSDL 文件,我需要使用它来调用 Web 服务。他们的系统是 SAP (SAP PI)。我的应用程序是在 VS 2008 中开发的 C# .NET 3.5 客户端。我使用他们提供的 .WSDL 文件在 Visual Studio 中添加了服务参考。这为我创建了一个引用类来调用他们的服务,并为我在 app.config 文件中设置了几个绑定。
我没有更改 app.config 文件中的任何内容,但确实创建了代码来调用他们的 Web 服务。但是,当我调用他们的网络服务时,我收到以下异常:
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“Basic realm="SAP NetWeaver Application Server ..."”。
(我稍微修改了“基本领域”部分中使用的字符串,以免泄露。)
app.config 没有从 WSDL 正确构建吗?我应该以某种方式修改 app.config 文件吗?
我尝试过的事情:
- 将 app.config 中的 authenticationScheme 从 Anonymous 更改为 Basic
(以及所有其他身份验证类型) - 更改 app.config 中的领域字符串以匹配异常消息中的领域
- 在我的代码中的 ClientCredentials.Username 对象中设置用户名/密码字段
任何指示或帮助将不胜感激。
编辑:经过更多调查,我发现 Visual Studio 有几个关于扩展元素 Policy 和 Policy 断言的警告:
- 自定义工具警告:未处理命名空间“http://schemas.xmlsoap.org/ws/2004/09/policy”中的可选 WSDL 扩展元素“策略”。
- 自定义工具警告:未导入以下策略断言:
XPath://wsdl:definitions[@targetNamespace='urn:sap-com:document:sap:rfc:functions']/wsdl:binding[@name='Binding_FieldValidation' ] 断言:...
我无法确定这是否与我当前的身份验证方案问题有关。它似乎确实是相关的,但我也找不到任何解决方案来解决这些政策警告。似乎 WCF 不能很好地处理 wsdl 中的语句。
xml - 我是否需要 SSL 证书才能将 XML 消息发送到 SAP PI?
我正在创建一个应用程序,它将一个 xml 文件发布到最初为旧应用程序创建的 SAP PI 接口。我有端点 URL 以及所有参数,例如;服务、命名空间、接口、qos。
我也有用户名和密码。今天我对 SAP PI 的 DEV 实例进行了第一次测试调用,并收到 SSL 证书错误。
为了发布到 SAP PI 接口,我的应用程序需要 SSL 证书是否正确?
我在理论上是否应该尝试复制 XML 文件并使用与旧应用程序完全相同的界面?
php - SOAP-ERROR: Parsing WSDL: Unknown required WSDL extension 'http://schemas.xmlsoap.org/ws/2004/09/policy' 在 PHP SoapClient 中调用 SAP PI
我正在尝试实现在 SAP PI 系统上运行的 Web 服务。我得到的 WSDL 如下所示:
我的 PHP 文件看起来像这样(目前没有更多内容):
当我运行我的脚本时,我收到以下错误:
致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing WSDL: Unknown required WSDL extension 'http://schemas.xmlsoap.org/ws/2004/09/policy' in /srv/www/htdocs/wsdl。 php:2 堆栈跟踪:#0 /srv/www/htdocs/wsdl.php(2): SoapClient->SoapClient('test.wsdl') #1 {main} 抛出 /srv/www/htdocs/wsdl.php在第 2 行
我尝试在 Google 和 Stack Overflow 上搜索错误,还检查了 php.net 上的评论,但我似乎无法弄清楚我必须更改什么才能运行此服务。我也尝试打开 WSDL 扩展 URL,它似乎存在。
有人可以在这里扔我一根骨头吗?我尝试删除扩展 URL,导致以下错误:
致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing WSDL: Unexpected WSDL element in /srv/www/htdocs/wsdl.php:2 堆栈跟踪:#0 /srv/www/htdocs/wsdl.php(2 ): SoapClient->SoapClient('test.wsdl') #1 {main} 在第 2 行的 /srv/www/htdocs/wsdl.php 中抛出
java - 在 PI java 映射中使用 Base64 有效负载从 url 获取 pdf 文件
我能够从 URL 获取 PDF 文件,将流编码为 base 64 并将字符串发送给 XML 文件字段中的第三方,但是当我尝试打开 PDF 文件解码时遇到下一个问题。
无法提取嵌入字体“ArialMT,Bold”。某些字符可能无法正确显示或打印。
以下是 SAP PI 7.1 中 Java 映射的代码:
InputStreamReader
我已经读到,由于字母的版权,执行 an 时无法检索字体。这是真的吗?
之后是否有其他可能使用 iText 库或类似库嵌入字体?
c# - 在调用 SAP PI Web 服务时,HTTP 请求未经客户端身份验证方案“Ntlm”授权
我目前正在创建一个 .net C# 服务,该服务使用 web 服务调用将信息从 CRM 2011 发送到 SAP。
凭证如下:
我得到的错误是:
{System.ServiceModel.Security.MessageSecurityException:HTTP 请求未经客户端身份验证方案“Ntlm”授权。从服务器收到的身份验证标头是“Basic realm="Upload Protected Area"”。---> System.Net.WebException:远程服务器返回错误:(401)未经授权。在 System.Net.HttpWebRequest.GetResponse() 在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) --- 内部异常堆栈跟踪结束 ---
非常感谢解决此问题以及尽可能使其动态化的任何帮助。
提前谢谢你。
c# - 从 .NET 调用 SAP PI 端点时出现“无法识别的消息版本”
我正在使用一个webserviceinvoking
类从带有 C# 服务的 .NET 调用 SAP PI。
我正在使用以下方法来做到这一点:
但是,调用它会给我一个无法识别的消息版本。例外:
Wireshark XML 输出到 web 服务:
任何帮助深表感谢。