通过脚本获取XML记录数据

问题描述 投票:0回答:1

我想以 XML 形式获取特定 NetSuite 对象的数据,例如自定义记录类型。我现在在谷歌上花了几个小时,但找不到任何东西。我想要的基本上是将

&xml=t
添加到 URL 或单击以下链接之一后获得的数据方案:

如何通过脚本来做到这一点?我还考虑过获取常规 JSON 数据并将其转换为 XML,但是

record.load()
数据集和查看 XML 数据集时获得的值似乎有所不同。

我认为如果 NetSuite 有多种内置方法来手动获取 XML,这应该不会那么困难,但显然我错了。

编辑回答@Steffen Andersland:

这是我尝试过的代码:

define(["N/url", "N/https", "N/record"], function (url, https, record) {
function _get(context) {
    var recordId = "1234";
    var rec = url.resolveRecord({
        recordType: record.Type.INVENTORY_ITEM,
        isEditMode: false,
        recordId: recordId, 
        params: {xml: true}
    });

    var output = url.resolveDomain({
        hostType: url.HostType.APPLICATION
    });

    const response = https.get({url: 'https://' + output + rec});
    return response.body
}
return { get: _get };
});

给我的是 NetSuite 登录页面的 HTML。

xml netsuite suitescript
1个回答
2
投票

您可以很容易地做到这一点,但您的实现将取决于您的用例。

我能够直接在浏览器中运行以下代码,但您应该能够在任何 SuiteScript 2.x 文件中运行它。

require(["N/url", "N/https", "N/record"], (url, https, record) => {
  const recordId = ""; // whatever record ID you want
  const recUrl = url.resolveRecord({
    recordType: record.Type.INVOICE, // whatever record type you want
    recordId, 
    params: {xml: true} // add the parameter to return XML
  });
  const response = https.get({url: recUrl});
  // response.body will contain your xml data as a string
});

正如其他人提到的,如果您尝试获取 XML 的记录不支持该参数,那么它对您不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.