簡體   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