繁体   English   中英

Suitescript,如何使用query.Operator.ON从数据库获取确切的日期?

[英]Suitescript, How to use query.Operator.ON to get record has exact day from database?

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

我的日期格式为“ D / M / YYYY”。在数据库中,记录日期为“ 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

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

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

我试图从日期选择器转换日期和时区,但没用。 我必须对date + 1天进行硬编码并传递给条件,然后它才能从DB获得确切的日期。

您可以创建一个保存的搜索,并且脚本引用该保存的搜索。 使用保存的将减少编码,您可以在用户界面中运行保存的搜索以检查是否获得正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM