Soap Microsoft Dynamics导航Web服务中的日期筛选器
在php中向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时间戳
<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>>=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>>=01012013</obj:Criteria>
</obj:filter>
<obj:bookmarkKey></obj:bookmarkKey>
<obj:setSize></obj:setSize>
</obj:ReadMultiple>
</soapenv:Body>
</soapenv:Envelope>