按客户id搜索Netsuite便笺记录的解决方法
我正在尝试获取一个正在使用的应用程序,以显示给定客户记录的所有关联用户注释(如Netsuite中的UI客户记录页面所示) 为此,我设置了一个netsuiterestlet,在给定客户内部id的情况下,返回相关票据记录的内部id列表 我在RESTlet脚本中设置了一个简单的搜索:按客户id搜索Netsuite便笺记录的解决方法,netsuite,suitescript,Netsuite,Suitescript,我正在尝试获取一个正在使用的应用程序,以显示给定客户记录的所有关联用户注释(如Netsuite中的UI客户记录页面所示) 为此,我设置了一个netsuiterestlet,在给定客户内部id的情况下,返回相关票据记录的内部id列表 我在RESTlet脚本中设置了一个简单的搜索: function get_notes(params) { log("GET params", JSON.stringify(params)); var filters = [ new nlobjSear
function get_notes(params) {
log("GET params", JSON.stringify(params));
var filters = [
new nlobjSearchFilter('internalid', 'customer', 'is', params.id)
];
var columns = [
new nlobjSearchColumn('internalid'),
new nlobjSearchColumn('note'),
];
var search = nlapiCreateSearch('note', filters, columns);
var notes = search.runSearch().getResults(0, 3);
return notes;
}
function log(msg, details) {
nlapiLogExecution('DEBUG', msg, details);
}
脚本按预期工作,但问题是此搜索仅返回作者
字段(用户内部id)与执行搜索的用户的内部id匹配的注释。意思-您只能搜索您是其作者的笔记
我被告知,出于某种深不可测的安全原因,这是Netsuite的一项“功能”
我需要能够获得所有相关注释ID的列表,而不仅仅是那些发出请求的用户是作者的注释ID
有什么办法可以找到所有相关的笔记吗?用不同的方式来组织搜索?某种定义自定义搜索联接的秘密方法
我甚至找不到关于这种行为的文档(阻止非作者的笔记搜索)。也许有人知道如何在管理层覆盖它
我还没准备好承认这是不可能的
注意:用户注释是和客户记录关联的注释类型记录,而不是客户记录上的字段,所以我不能直接从客户处访问它。注释或用户注释也没有搜索过滤器或搜索连接。基本上,RESTlet总是作为调用它们的用户运行。 如果您可以使用Suitelet进行此操作,则可以将其设置为以管理员身份运行,并可以返回您可以手工搜索的任何注释
你真的需要休息吗?i、 e.您是从外部应用程序调用此功能,还是试图在NS GUI中添加功能?如果是后者,则可以轻松使用Suitelet 使用RESTlet您无法获取其他用户的注释,除非您使用管理员/完全访问权限等角色的凭据/令牌调用RESTlet。RESTlet始终在当前用户的上下文中运行 如果你真的想通过任何方式实现这一点,可以选择这样做: 1) 在customer上创建用户事件脚本,该脚本创建模拟系统注释功能的自定义记录 2) 确保RESTlet用户角色对自定义记录具有完全级别的访问权限,并将customer设置为自定义记录的父级
3) 在RESTlet中返回自定义记录。为什么要使用RESTlet?搜索的上下文是什么?是的,我正在构建一个外部rails应用程序,它将从包括NS在内的多个源中提取数据。因此,请使用suitelet。使用Restlet生成auth散列并将其传递给客户端。然后将其与时间戳一起包含在notes请求中,NS用户IDN不得不在当前迭代中搁置此功能,但这里提到的备选方案可能是我们将在下一次迭代中使用的路线。我们将有一个事件脚本,它创建一个自定义记录来镜像用户注释,并从新的自定义记录而不是直接从用户注释将注释的副本加载到rails应用程序中。我仍然不确定Netsuite为什么会有这种行为。用户已经可以通过UI查看与客户记录关联的所有注释。我不明白通过取消搜索功能可以实现什么。