NetSuite SuiteScript 2.0 getSelectOptions过滤器中断了setValue

时间:2016-07-07 23:37:59

标签: netsuite

我对正在发生的事情感到茫然,并希望有人可以帮我弄清楚发生了什么。我正在使用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选择字段中移除它或类似的奇怪的东西,但我无法想象这是过滤器的预期目的。这是一个错误还是我使用它错了?

1 个答案:

答案 0 :(得分:0)

只是预感,再试一次

.getSelectOptions({filter:" Test Location",operator:' is'})。

然后获得值

.getSelectOptions();

这似乎是一个错误,其中保留可用值的数据对象被过滤掉。