我正在尝试使用查询('N / query')来获取记录在[day]有生日。我正在寻找使用运算符“ Operator.ON”。 但是,我总是从数据库获取空列表。 从“ 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
答案 0 :(得分:0)
原因是我的应用程序正在使用GTM + 7 在表单中,日期选择器获取日期“ 1/5/2019”并将此字符串传递给脚本
在后端,Netsuite将这一天定为“ 1/5/2019”,并将其解析为GTM + 7-> 30/4/2019并进行数据比较。它永远不会与db中的记录'1/5/2019'相匹配
我试图从日期选择器转换日期和时区,但没有用。我必须对date + 1天进行硬编码并将其传递给条件,然后它才能从DB获得确切的日期。
答案 1 :(得分:0)
您可以创建一个保存的搜索,并且脚本引用该保存的搜索。使用保存的将减少编码,您可以在用户界面中运行保存的搜索以检查是否获得正确的结果。