我试图使用Acumatica服务从屏幕CR302000 (Organization > Customer >Contact)中“导出”。
使用带有FilterCondition.Contain条件的过滤器,我可以将结果限制在那些包含特定字符串的Phone1字段中。
现在我想要过滤的电话号码包含通配符。在web接口中,使用%作为通配符可以工作。但是当使用web服务时,这不起作用(不返回任何行)。
我的过滤器:
Filter[] filters = new Filter[]
{
new Filter()
{
Field = new Field()
{
FieldName = context.DetailsContact.Phone1.FieldName,
ObjectName = context.DetailsContact.Phone1.ObjectName
},
Condition = FilterCondition.Contain,
Operator = FilterOperator.And,
Value = "283%9534"
}
}在SOAP请求中是这样的:
<Filter>
<Field>
<FieldName>Phone1</FieldName>
<ObjectName>ContactCurrent: 1</ObjectName>
</Field>
<Condition>Contain</Condition>
<Value xsi:type="xsd:string">283%9534</Value>
<OpenBrackets>0</OpenBrackets>
<CloseBrackets>0</CloseBrackets>
<Operator>And</Operator>
</Filter>是否有人知道是否可以使用web服务API实现通配符的过滤?
更新:如果我不包括ContactSummary.ServiceCommands.EveryContactID命令,那么%通配符几乎可以工作。它返回与通配符搜索完全匹配的结果。但是我需要每一个匹配的结果,这就是为什么我包括EveryContactID
更新2:通配符可以很好地用于屏幕CR301000 (引线)和LeadSummary.ServiceCommands.EveryLeadID命令。这是CR302000中的一个bug吗?
更新3:总结了已接受答案的评论中的对话,CR301和CR302都应该能够通过通配符联系电话进行过滤,但是由于一些未知的bug,CR302不能使用通配符。
发布于 2015-06-12 15:36:00
之所以会出现这种情况,是因为您试图在不属于主视图的字段上进行筛选。在CR301000 (引线)中,联系人是主要视图,所以过滤器可以工作。关于这一点的更多解释在这里提供:Using filter with Customer screen in Acumatica API
https://stackoverflow.com/questions/29608391
复制相似问题