我对正在发生的事情感到茫然,并希望有人可以帮我弄清楚发生了什么。我正在使用SuiteScript 2.0并查找我正在执行的动态字段的内部ID:
var location = saleRec.getField({
fieldId: 'location'
}).getSelectOptions({
filter: "Test Location",
operator: 'is'
});
这会返回我需要的内部ID,但是当我尝试调用时:
saleRec.setValue({
fieldId: 'location',
value: location[0].value
});
我收到错误:
{
"error": {
"code": "JS_EXCEPTION",
"message": "{\"type\":\"error.SuiteScriptError\",\"name\":\"INVALID_FLD_VALUE\",\"message\":\"You have entered an Invalid Field Value 2 for the following field: location\",\"stack\":[\"anonymous(N/recordService)\",\"doPost(SuiteScripts/DemoProject/RESTlet1.js:124)\"],\"cause\":{\"type\":\"internal error\",\"code\":\"INVALID_FLD_VALUE\",\"details\":\"You have entered an Invalid Field Value 2 for the following field: location\",\"userEvent\":null,\"stackTrace\":[\"anonymous(N/recordService)\",\"doPost(SuiteScripts/DemoProject/RESTlet1.js:124)\"]},\"id\":\"\"}"
}
}
数字2绝对是我需要的内部ID。但它开始变得怪异。如果我删除了过滤器,只需致电:
var location = saleRec.getField({
fieldId: 'location'
}).getSelectOptions();
然后循环遍历结果数组并选择正确的内部ID我需要一切正常并且它能够设置location
的内部id。似乎过滤器正在从location
选择字段中移除它或类似的奇怪的东西,但我无法想象这是过滤器的预期目的。这是一个错误还是我使用它错了?
答案 0 :(得分:0)
只是预感,再试一次
.getSelectOptions({filter:" Test Location",operator:' is'})。
然后获得值
.getSelectOptions();
这似乎是一个错误,其中保留可用值的数据对象被过滤掉。