kop*_*ppa 2 php navision dynamics-nav
我正在启动一个外联网项目,其中 php 页面应该将数据发送到 Microsoft Dynamics NAV。
我以前没有使用过 NAV,但我在这里找到了一些信息。
示例 php 代码对我来说看起来很清楚,但是在开始这个项目之前有什么我应该知道的提示或技巧(基础知识)吗?欢迎所有示例...
您需要确保在CustomSettings.config文件中启用了 NTLM :
<add key="ServicesUseNTLMAuthentication" value="true" />
Run Code Online (Sandbox Code Playgroud)
自 Microsoft Dynamics NAV 2009 起,Microsoft Dynamics NAV 除 SOAP Web 服务外还支持 OData Web 服务。就个人而言,我发现 Odata 协议比 SOAP 协议直观得多。
OData 还具有支持 Json 而不是 XML 用于在服务器和客户端之间进行通信的额外优势,这使得与标准 PHP 数组或对象的转换变得简单。
有关在哪里可以找到现有 Web 服务列表(带有相应的 URL)以及如何注册新服务的更多信息,请参阅官方 MSDN 文档。
如果您要使用 SOAP,您可能希望使用 PHP 的SoapClient或一些基于它的第三方库来发送和接收 SOAP 消息。
但是,如果您知道如何在 PHP 中解析 XML,您可以只使用 cURL 并自己解析 XML 响应。或者,如果您选择了 Odata 协议,则可以改用 Json 消息。SOAP 只是 XML。
无论如何,如果您使用的是 cURL,那么向您的 SOAP 或 Odata 服务发送 GET 请求真的可以像这样简单:
// Create curl handle
$ch = curl_init();
// Set HTTP options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
// Get & output response (= XML or Json string)
echo curl_exec($ch);
// Close handle
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
解析 SOAP 响应可以像这样简单:
$data = simplexml_load_string(str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $response));
Run Code Online (Sandbox Code Playgroud)
解析 Json Odata 响应可以像这样简单:
$data = json_decode($response);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9616 次 |
| 最近记录: |