soap - Microsoft Dynamics NAV Web 服务中的日期过滤器

标签 soap wsdl microsoft-dynamics dynamics-nav navision

在 php 中向 webservice 发送过滤器时一切正常,但是当我们需要对日期进行排序时,我们遇到了问题。我们需要在某个日期之后修改所有对象。

在页面中,我们有一个日期元素,如下所示:

<xsd:element minOccurs="0" maxOccurs="1" name="Last_Date_Modified" type="xsd:date"/>

我们已经尝试了在 SO 上解释的解决方案:

Dynamics Nav (Navision) webservice ReadMultiple date filter

但是我们的日期格式有点不同,我们的看起来像:2013-01-01
在我们的过滤器中,我们尝试了以下方法:
array(
    'Field' => 'Last_Date_Modified',
    'Criteria' => '20130101..'
)

以及其他一些变体,但它不返回任何内容。如果我们将其留空,它将返回所有内容。有没有人知道我们可以做什么?如果我们以某种方式将 last_modified_date 存储为像 unix 时间戳这样的 bigint 会有帮助吗?

最佳答案

我已经用 SOAPui 测试过类似的设置,这是我得到的:

传出消息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:obj="urn:microsoft-dynamics-schemas/page/objlist">
<soapenv:Header/>
  <soapenv:Body>
       <obj:ReadMultiple>
         <obj:filter>
            <obj:Field>Date</obj:Field>
            <obj:Criteria>&gt;=01012013</obj:Criteria>
         </obj:filter>
         <obj:bookmarkKey></obj:bookmarkKey>
         <obj:setSize></obj:setSize>
      </obj:ReadMultiple>
   </soapenv:Body>
</soapenv:Envelope>

它导致正确的响应(自 1 月以来,我在我的基础中更改了 3 条记录)
如果我输入 01012013..,响应也是正确的或 01.01.2013..甚至 01/01/2013..但错误将返回响应 20130101..
作为响应,该字段具有这样的值 <Date>2013-05-15</Date>虽然我的位置格式不正确。

因此,您的导航服务器正在等待您的请求中的其他日期格式。检查导航服务器的 CustomSettings.config文件以查看是否有 <add key="ServicesCultureDefaultUserPersonalization" value="true"/> key 。如果您将其设置为“false”,则服务器将以 en-us 日期和数字格式工作。

另请检查 User Personalization导航中的表如果先前的键设置为 true,则 Nav 将尝试使用此表中为用户定义的语言设置。

如果没有任何帮助,请尝试使用 SOAPui 来确定 Nav 响应对直接消息是否正确(请参阅上面的格式或使用您的 wsdl 文件提供 soapui)。

关于soap - Microsoft Dynamics NAV Web 服务中的日期过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16542364/

相关文章:

php - 内存分配失败 : growing buffer on PHP, SoapClient

java - 使用 Java 创建 WADL 和 WSDL?

java - 从websphere迁移到tomcat后无法访问wsdl文件

python - 动态 GP eConnect : cannot connect to endpoint

javascript - 如何在 Dynamics 365 门户中触发 webFormClientValidate

vb.net - 调用带有客户端证书错误的 SOAP Web 服务 - 从服务器收到的身份验证 header 为 ''

java - 用于客户端服务器模型的 REST 或 SOAP

c# - 如何使用 SOAP 操作和 HttpClient 向经过授权的网络摄像头发送 ONVIF 请求

xml - WCF 契约(Contract)第一个 : No methods are exposed

visual-studio - 如何在标签搜索 - Dynamics 365 中搜索其他语言的标签?