Acumatica SOAP API导出过滤器中的通配符搜索

时间:2015-04-13 14:51:16

标签: web-services acumatica

我正在尝试使用Acumatica网络服务从屏幕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可以'使用通配符。

1 个答案:

答案 0 :(得分:0)

这是因为您尝试过滤不属于主视图的字段。在CR301000(潜在客户)中,Contact 主视图,因此您的过滤器可以正常工作。这里提供了更多解释:Using filter with Customer screen in Acumatica API