Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按客户id搜索Netsuite便笺记录的解决方法_Netsuite_Suitescript - Fatal编程技术网

按客户id搜索Netsuite便笺记录的解决方法

按客户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

我正在尝试获取一个正在使用的应用程序,以显示给定客户记录的所有关联用户注释(如Netsuite中的UI客户记录页面所示)

为此,我设置了一个netsuiterestlet,在给定客户内部id的情况下,返回相关票据记录的内部id列表

我在RESTlet脚本中设置了一个简单的搜索:

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查看与客户记录关联的所有注释。我不明白通过取消搜索功能可以实现什么。