问题标签 [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.

0 投票
3 回答
2685 浏览

xml - 不适用于 XSLT PI 映射

我是 xslt 的新手,我有以下代码,它不适用于简单的排序:帮助已获得帮助。

输入是:

预期输出:

0 投票
2 回答
5287 浏览

sharepoint - 如何通过 SAP PI 集成 SAP 和 SharePoint?

我对 SAP 不熟悉,但我最近的项目是通过 SAP PI 将 SAP 和 SharePoint Portal 结合起来;SAP PI 将用于自动化 SAP 和 SharePoint Portal 之间的数据流...我在 Web 上没有找到足够有价值的信息。有人可以给我一些想法,或者告诉我在哪里可以找到这种信息?

0 投票
2 回答
531 浏览

logging - 有没有办法拦截来自 SAP PI 的出站消息?

有什么方法可以拦截来自 SAP NetWeaver PI 7.1 和 7.3 的传出消息?最好的选择是在将消息转换为特定协议的表示之前(即在从 XML 转换为 SOAP/RFC/等之前)。

0 投票
2 回答
4234 浏览

java - SOAP 负载中的特殊字符未正确传输

我使用 CXF 编写了一个 SOAP Web 服务,该服务由 SAP 系统调用,在有效负载中有一个带有特殊字符的单词,该单词多次出现。但是,在某些随机情况下,我对这个词的读法有所不同,即在一个有效负载中,我看到这个词 asKliëntbestuurder而在另一个有效载荷中,我看到这个词Kli��ntbestuurder

SAP 系统通过 SAP PI 调用我的服务只有一个字。

更新:所以似乎不是网络服务通信变得混乱,而是我编写的拦截器转储肥皂信封让我能够仔细检查。拦截器如下:

任何进一步的想法为什么我的拦截器不使用 UTF-8?

0 投票
3 回答
5051 浏览

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 中的语句。

0 投票
1 回答
1219 浏览

xml - 我是否需要 SSL 证书才能将 XML 消息发送到 SAP PI?

我正在创建一个应用程序,它将一个 xml 文件发布到最初为旧应用程序创建的 SAP PI 接口。我有端点 URL 以及所有参数,例如;服务、命名空间、接口、qos。

我也有用户名和密码。今天我对 SAP PI 的 DEV 实例进行了第一次测试调用,并收到 SSL 证书错误。

为了发布到 SAP PI 接口,我的应用程序需要 SSL 证书是否正确?

我在理论上是否应该尝试复制 XML 文件并使用与旧应用程序完全相同的界面?

0 投票
4 回答
18587 浏览

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 中抛出

0 投票
1 回答
1442 浏览

java - 在 PI java 映射中使用 Base64 有效负载从 url 获取 pdf 文件

我能够从 URL 获取 PDF 文件,将流编码为 base 64 并将字符串发送给 XML 文件字段中的第三方,但是当我尝试打开 PDF 文件解码时遇到下一个问题。

无法提取嵌入字体“ArialMT,Bold”。某些字符可能无法正确显示或打印。

以下是 SAP PI 7.1 中 Java 映射的代码:

InputStreamReader我已经读到,由于字母的版权,执行 an 时无法检索字体。这是真的吗?

之后是否有其他可能使用 iText 库或类似库嵌入字体?

0 投票
1 回答
1652 浏览

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) --- 内部异常堆栈跟踪结束 ---

非常感谢解决此问题以及尽可能使其动态化的任何帮助。

提前谢谢你。

0 投票
2 回答
9835 浏览

c# - 从 .NET 调用 SAP PI 端点时出现“无法识别的消息版本”

我正在使用一个webserviceinvoking类从带有 C# 服务的 .NET 调用 SAP PI。

我正在使用以下方法来做到这一点:

但是,调用它会给我一个无法识别的消息版本。例外:

Wireshark XML 输出到 web 服务:

任何帮助深表感谢。