从消息记录查询附件
通过用户界面,我创建了几个附加到支持票据记录的消息记录,其中两个具有文件附件。 我已经能够检索票据及其相关的消息在套件 - 这是正确报告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?