0

我正在使用标准中的摘要进行保存的搜索(查找完全应用的客户付款)
在此处输入图像描述

在 UI 中它工作正常,但在套件脚本中给了我这个错误:

错误代码:INVALID_SRCH_SUMMARY_TYP \n 描述:nlobjSearchFilter 包含无效的摘要类型:公式数字:SUM。

我试图加载搜索

var  searchPayment=search.load({
                   id:'customsearch_paymentsCXC'
                });

或使用 SearchExport 扩展:

search.create({
                    type: "customerpayment",
                    filters:
                    [
                        ["type","anyof","CustPymt"], 
                        "AND", 
                        ["systemnotes.field","anyof","CUSTBODY_REFJOURNALENTRY_IVA"], 
                        "AND", 
                        ["systemnotes.date","within","thisweek"], 
                        "AND", 
                        ["customer.custentity_zona_cliente","anyof",zonaid], 
                        "AND", 
                        ['sum(formulanumeric: CASE WHEN SUM(NVL({appliedtolinkamount},0)) = MAX(NVL({amount},0)) THEN 1 ELSE 0 END)','equalto','1']
                     ],
                     columns:
                     [
                        search.createColumn({name: "tranid", label: "Document Number"}),
                        search.createColumn({name: "custbody_fe_uuid_cfdi_33", label: "UUID CFDI v3.3"}),
                        search.createColumn({name: "custbody_fe_sf_mensaje_respuesta", label: "Mensaje de Respuesta"}),
                        search.createColumn({
                           name: "tranid",
                           join: "appliedToTransaction",
                           label: "Document Number"
                        }),
                        search.createColumn({
                           name: "internalid",
                           join: "appliedToTransaction",
                           label: "Internal ID"
                        })
                    ]
                 });

我仍然在带有摘要的过滤器中遇到相同的错误:

['sum(formulanumeric: CASE WHEN SUM(NVL({appliedtolinkamount},0)) = MAX(NVL({amount},0)) THEN 1 ELSE 0 END)','equalto','1']

我在这里缺少什么?

4

2 回答 2

1

尝试使用过滤器对象而不是字符串数组

...
Filters: [
    ...
    'AND',
    Search.createFilter({
        name: 'formulanumeric',
        summary: 'sum',
        operator: 'equalto',
        values: 1,
        formula: 'CASE WHEN SUM(NVL({appliedtolinkamount},0)) = MAX(NVL({amount},0)) THEN 1 ELSE 0 END'
    })
],
...
于 2020-08-03T17:00:11.453 回答
1

尝试这个

...
Filters: [
    ...
    'AND',
    ['formulanumeric: CASE WHEN sum(nvl({appliedtolinkamount},0)) = max(nvl({amount},0)) THEN 1 ELSE 0 END','is','1']
],
...
于 2020-08-03T17:16:42.150 回答