【发布时间】:2015-06-18 16:15:32
【问题描述】:
我正在尝试使用 Acumatica 网络服务从屏幕 CR302000(组织 > 客户管理 > 联系人)“导出”。
使用带有FilterCondition.Contain 条件的过滤器,我可以将结果限制为仅具有包含特定字符串的Phone1 字段的结果。
现在我希望过滤的电话号码包含通配符。在 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: 通配符适用于带有LeadSummary.ServiceCommands.EveryLeadID 命令的屏幕 CR301000(引线)。这是 CR302000 中的错误吗?
更新 3: 总结接受答案的 cmets 中的对话,CR301 和 CR302 应该都可以通过带有通配符的联系电话进行过滤,但是由于一些未知的错误,CR302 不能t 使用通配符。
【问题讨论】: