NetSuite:从 SuiteScript 2.0 中的销售订单获取发货城市

NetSuite: Getting the shipcity from a salesorder in SuiteScript 2.0

如果我使用下面的代码加载销售订单,我如何获得 shipcity。请注意,如果您转储对象 (salesOrder),您将看到没有 shipcity。奇怪的是 shipzipshipstateshipcountry 有自己的字段,而 shipcity 没有。我也试过 billcity 但无济于事。这似乎是一个很大的脱节。 shipcity 应该像在 UI 中那样说 Fort Wayne 但 2.0 API returns 什么都没有

// load up a sales order from a Fort Worth customer
var salesOrder = record.load({
   type: record.Type.SALES_ORDER,
   id: salesOrderId,
   isDynamic: true
});

// these work fine
salesOrder.getValue("shipcountry") = "US"
salesOrder.getValue("shipstate") = "IN"
salesOrder.getValue("shipzip") = "46804"

// none of the following work when it should say "Fort Wayne"
salesOrder.getValue("shipcity") = Null
salesOrder.getValue({ fieldId: "shipcity" }) = Null
salesOrder.getText("shipcity") = Null

我刚刚确认了。使用 SS1.0 我们可以得到 'shipcity' 的值,但由于某种原因不能使用 SS2.0。因此,让我们使用 'N/search' 模块以不同的方法获得它。您可以创建搜索或进行查找。但我建议您使用查找,因为您只是在 header 处获得价值。请尝试下面的示例代码:

顺便说一句,请硬编码类型的值,不要使用 'search.Type.SALES_ORDER'。由于某些原因,它会出错。

require(
[
    'N/search'
], function(search)
{
var objFieldLookUp = search.lookupFields(
    {
        type : 'salesorder',
        id : 34826,
        columns :
            [
                    'shipcountry', 'shipstate', 'shipzip', 'shipcity'
            ]
    });

var stCountry = objFieldLookUp["shipcountry"];
var stState = objFieldLookUp["shipstate"];
var stZip = objFieldLookUp["shipzip"];
var stCity = objFieldLookUp["shipcity"];
});