0

我正在尝试使用 Acumatica Web 服务从屏幕 CR302000(组织 > 客户管理 > 联系人)“导出”。

使用带有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:LeadSummary.ServiceCommands.EveryLeadID通配符适用于带有命令的屏幕 CR301000(引线) 。这是 CR302000 中的错误吗?

更新3:总结接受答案的评论中的对话,CR301和CR302应该都可以通过带有通配符的联系电话进行过滤,但是由于一些未知的错误,CR302不能使用通配符。

4

1 回答 1

0

发生这种情况是因为您尝试过滤不属于主视图的字段。在 CR301000 (Leads) 中,联系人主要视图,因此您的过滤器有效。此处提供了更多解释:在 Acumatica API 中使用带有客户屏幕的过滤器

于 2015-06-12T15:36:00.350 回答