从消息记录查询附件

通过用户界面,我创建了几个附加到支持票据记录的消息记录,其中两个具有文件附件。 我已经能够检索票据及其相关的消息在套件 - 这是正确报告hasAttachment为'T' - 但我似乎无法访问附件本身。 该文档指出,附件是一个名为“mediaitem”(或“mediaitemlist”,取决于您看到的位置)的子列表,但没有一个子列表API在这些名称上取得任何成功。

    var record = nlapiLoadRecord('message', 1092823, {recordmode: 'dynamic'});
    var itemCount = record.getLineItemCount('mediaitem');
    // returns -1

文档和其他在线信息相当稀少,所以任何帮助将不胜感激。


是的,确实有一个很差的文件。 而mediaitem子列表也没有帮助我给出任何有意义的结果。

但是,有一个替代解决方案。

在消息记录类型上从UI创建保存的搜索。

确保你添加了一个搜索列附件:内部ID(即使用附件字段...)

一旦完成,在suitescript中运行搜索

var res = nlapiSearchRecord('message', 'YOUR_UI_SEARCH_ID', ARRAY_OF_ADDITIONAL_FITLTERS);
res[i].getValue('internalid', 'attachments')

这就是你如何在套件2.0做到的 。 首先搜索消息标识,然后搜索与这些消息标识相关的附件。 您可以即时创建搜索,因此无需保存搜索。

如果您想根据您的方案保存治理点,则可以传递案例或消息的内部ID数组。

注意:以下代码示例假定您将搜索模块加载为SEARCHMODULE。


第1步 - 这是如何从支持案例记录中获取带附件的消息ID(只需将类型更改为支持故障单):

function getMessageIdsFromCase(supportCaseId){
    var supportcaseSearchObj = SEARCHMODULE.create({
       type: "supportcase", //Change if you  need to
       filters: [
          ["internalid","anyof",supportCaseId], 
          "AND", 
          ["messages.hasattachment","is","T"]
       ],
       columns: [
          SEARCHMODULE.createColumn({
             name: "internalid",
             join: "messages"
          })
       ]
    });

    var resultsSet = supportcaseSearchObj.run();
    var results = resultsSet.getRange(0, 999);

    var messages = [];
    for (var i in results) {
        var result = results[i];
        var message = result.getValue(result.columns[0]);
        messages.push(message);
    }
    return messages;
}

然后你只需调用这样的函数:

getMessageIdsFromCase(caseInternalId); //Returns an array of message ids

步骤2 - 然后使用此功能使用消息内部ID搜索附件:

function getAttachmentIdsFromMessage(messageInternalId){
    var messageSearchObj = SEARCHMODULE.create({
       type: "message",
       filters: [
          ["internalid","anyof",messageInternalId]
       ],
       columns: [
          SEARCHMODULE.createColumn({
             name: "internalid",
             join: "attachments"
          })
       ]
    });
    var resultsSet = messageSearchObj.run();
    var results = resultsSet.getRange(0, 999);

    var attachments = [];
    for (var i in results) {
        var result = results[i];
        var attachment = result.getValue(result.columns[0]);
        attachments.push(attachment);
    }

    return attachments;
}

然后你只需调用这样的函数:

getAttachmentIdsFromMessage(messageInternalId); //Returns an array of attachment ids

更新:

在提交案件后从NS听到。 显示这个不支持:

你好谢恩,

我希望你今天表现得很好。

在检查后,SuiteScript中尚不支持访问记录附加文件的功能。 您可以在SuiteAnswers ID 10511处查看SuiteScript Records Browser,查看SuiteScripts中所有可用记录的完整列表以及每个可访问的子列表。 如果您还有其他问题,请告诉我。

Caleb Francisco | 客户支持NetSuite:业务发展

在连接中使用search.createColumn是它看起来像的关键。 我最终使用下面的快速代码来获取任何附加到$ transaction(returnauthorization)的$文件(html),在我的情况下,它应该是一个返回auth上的mediaitems,我无法通过ss2中的记录模块0.0

var getHtmlFilesOnReturnAuth = function (return_auth_id, file_type) {
    var filters = [
        search.createFilter({name: "internalid", operator: "is", values: [return_auth_id]}),
        search.createFilter({name: "filetype", join: "file", operator: "is", values: [file_type]}),
    ];
    var images = [];
    search.create({
        type: "returnauthorization",
        filters: filters,
        columns: [
            search.createColumn({name: "internalid", summary: "group"}),
            search.createColumn({name: "internalid", join: "file", summary: "group"}),
            search.createColumn({name: "filetype", join: "file", summary: "group"}),
            search.createColumn({name: "name", join: "file", summary: "group"}),
        ]
    }).run().each(function (result) {
        if (result) {
            images.push({
                id: result.getValue({name: "internalid", join: "file", summary: "group"}),
                file_name: result.getValue({name: "name", join: "file", summary: "group"}),
                file_type: result.getValue({name: "filetype", join: "file", summary: "group"}),
            });
        }
        return true;
    });

    return images;
};

var images = getHtmlFilesOnReturnAuth("2134404", "HTMLDOC");
链接地址: http://www.djcxy.com/p/88517.html

上一篇: Query attachment from a Message record

下一篇: How do i update a user's subscription date using stripe webhooks?