Soap Microsoft Dynamics导航Web服务中的日期筛选器

Soap Microsoft Dynamics导航Web服务中的日期筛选器,soap,wsdl,microsoft-dynamics,dynamics-nav,navision,Soap,Wsdl,Microsoft Dynamics,Dynamics Nav,Navision,在php中向Web服务发送过滤器时,一切正常,但是当我们需要按日期排序时,我们遇到了一个问题。我们需要在特定日期后修改所有对象 页面中有一个日期元素,如下所示: <xsd:element minOccurs="0" maxOccurs="1" name="Last_Date_Modified" type="xsd:date"/> 和其他一些变体,但它没有返回任何内容。如果我们将其留空,它将返回所有内容。有人知道我们能做什么吗?如果我们以某种方式将上次修改的日期存储为像unix时间戳

在php中向Web服务发送过滤器时,一切正常,但是当我们需要按日期排序时,我们遇到了一个问题。我们需要在特定日期后修改所有对象

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

<xsd:element minOccurs="0" maxOccurs="1" name="Last_Date_Modified" type="xsd: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>

日期
=01012013
它的结果是正确的响应(自1月份以来,我的基地中有3个记录发生了变化) 如果我输入
01012013..
01.01.2013..
或甚至
01/01/2013..
则响应是正确的,但是
20130101..

作为响应,此字段的值如下所示
2013-05-15
,但这对于我的位置来说格式不正确

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

同时检查导航中的
用户个性化设置
表。如果“上一个键”设置为true,则Nav将尝试使用此表中为用户定义的语言设置


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

我已经尝试了这两种方法,并且得到了一个错误代码:“不是有效日期”。需要更多信息。我不知道php如何与web服务一起工作。如果您发布发送到Nav的soap消息和来自Nav的soap响应,这将有所帮助。如果您使用某种框架对您隐藏消息,请使用嗅探器捕获它们。我感谢您的帮助。我使用Freddy的方法通过PHP进行连接,如下所述:实际上,我使用'Criteria'=>'>=15/05/2013'实现了连接,尽管元素的格式为[Last_Date_Modified]=>2013-05-15。似乎工作正常!我很困惑!您可以尝试使用我在编辑的答案中提到的设置。
<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>