尝试从SCA(高级Suite Commerce)获得的销售订单中获取代码。
var type = searchModule.Type.SALES_ORDER;
var columns = [];
var filters = [];
columns = _.concat(columns, [
searchModule.createColumn({
name: 'internalid'
}),
searchModule.createColumn({
name: 'tranid'
})
]);
filters = _.concat(filters, [
searchModule.createFilter({
name: 'status',
operator: searchModule.Operator.IS,
values: 'SalesOrd:A'
}),
searchModule.createFilter({
name: 'mainline',
operator: searchModule.Operator.IS,
values: 'T'
}),
searchModule.createFilter({
name: 'type',
operator: searchModule.Operator.ANYOF,
values: 'SalesOrd'
}),
searchModule.createFilter({
name: 'source',
operator: searchModule.Operator.STARTSWITH,
values: 'Web'
})
]);
var mySearchObj = {type: type, filters: filters, columns: columns};
// uncomment for test use
/*
log.debug({title: 'type', details: type});
log.debug({title: 'columns', details: columns});
log.debug({title: 'filters', details: filters});
*/
var searchItems = searchModule.create(mySearchObj).run().getRange({start: 0, end: 999});
ordersList = [];
无效的过滤器
searchModule.createFilter({
name: 'source',
operator: searchModule.Operator.STARTSWITH,
values: 'Web'
})
它有任何方法可以完成这项工作,我也尝试了CONTAINS,同样的问题也无法解决。发射和SC例外。
答案 0 :(得分:1)
source
过滤器的字段类型为Select
,这意味着您不能在其上使用文本运算符。您只能使用ANYOF
和NONEOF
这两个运算符。您将要查找Source的SCA值的内部ID,并将其用作您的Filter值。
我不确定可以在哪里找到该ID,但是您可以通过加载在Source字段中设置了适当值的销售订单并使用getValue()
来查看该ID,来找到它。
答案 1 :(得分:1)
您应该使用ANYOF
作为运算符,而不是STARTSWITH
searchModule.createFilter({
name: 'source',
operator: searchModule.Operator.ANYOF,
values: ['WebStore Name']
})
这是工作保存的搜索的摘录,其中源字段用作过滤器。
{
"name":"source",
"join":null,
"operator":"anyof",
"values":[
"NLWebStore"
],
"formula":null,
"summarytype":null,
"isor":false,
"isnot":false,
"leftparens":0,
"rightparens":0
}