0

我试图通过使用查询('N/query')来获取记录在 [day] 的生日。我正在寻找使用运算符“Operator.ON”。但是,我总是从 DB 获得空列表。当我从“Operator.ON”更改为“Operator.ON_AFTER”时,我可以获得结果。

我的日期格式是 "D/M/YYYY" 在 DB 中,记录日期是 '1/5/2019'

附上完整的脚本。请让我知道按确切日期获取记录的最佳方法。

 require(['N','N/search','N/record','N/query', 'N/currentRecord', 'N/format']);
    var query = require('N/query');
    var search = require('N/search');
    var currentRecord = require('N/currentRecord');

    var birth = currentRecord.get().getValue({
                fieldId: 'custentity_date_of_birth'
            });

    var customSearch = query.create({
                type: query.Type.CUSTOMER
            });

    var relContact = customSearch.autoJoin({
                fieldId: 'contact'
            });

            customSearch.columns = [
                customSearch.createColumn({
                    fieldId: 'Id'
                }),
                customSearch.createColumn({
                    fieldId: 'firstname'
                }),
                customSearch.createColumn({
                    fieldId: 'lastname'
                }),
                customSearch.createColumn({
                    fieldId: 'email'
                }),
                customSearch.createColumn({
                    fieldId: 'custentity_date_of_birth'
                }),
                relContact.createColumn({
                    fieldId: 'Id'
                })
            ];

    var condFName = customSearch.createCondition({
                fieldId: 'firstname',
                operator: query.Operator.IS,
                values: 'trung'
            });

            var condLName = customSearch.createCondition({
                fieldId: 'lastname',
                operator: query.Operator.IS,
                values: 'null'
            });

            var condBirth = customSearch.createCondition({
                fieldId: 'custentity_date_of_birth',
                operator: query.Operator.ON,
                values: '1/5/2019'
            });

            var condGetBirth = customSearch.createCondition({
                fieldId: 'custentity_date_of_birth',
                operator: query.Operator.EMPTY_NOT
            });

            customSearch.condition = customSearch.and(condFName, condLName, condBirth);

            var sResult = customSearch.run();
            sResult.results
4

2 回答 2

1

原因是我的应用程序使用 GTM+7 形式,日期选择器获取日期 '1/5/2019' 并将此字符串传递给脚本

在后端,Netsuite 获取这一天 '1/5/2019' 并将其解析为 GTM+7 -> 30/4/2019 并在数据中进行比较。它永远不会与 db 中的记录“1/5/2019”匹配

我试图从日期选择器转换日期和时区但没用。我必须硬编码日期 + 1 天并传递给条件,然后它可以从数据库中获取确切的日期。

于 2019-05-30T07:06:56.703 回答
0

您可以创建已保存的搜索,并且脚本会引用已保存的搜索。使用已保存将减少编码,您可以在 UI 中运行已保存的搜索来检查您是否获得了正确的结果。

于 2019-06-03T22:30:10.867 回答