问题标签 [suitetalk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
netsuite - 使用基于令牌的身份验证获取交易摘要数据的第二页时出错
我最近在使用带有 TBA 的集成记录在使用 getPostingTransactionSummary Web 服务操作时请求多页事务摘要记录时遇到了问题。
我发现第一个请求始终是成功的,但是对连续页面的后续请求将失败,并出现以下错误:
对于大于 1 的页面,搜索参数必须与原始搜索完全匹配
我遵循了 SuiteAnswer 33416 中标记为“getPostingTransactionSummary 返回错误:对于页面 > 1,搜索参数必须与原始搜索完全匹配”的建议。然后,我确保我们首先请求第一页,确保没有更改任何字段或过滤器参数,并立即请求第二页。
用于生成签名的机制似乎是正确的,因为对第一页的任何 Web 服务端点的所有调用总是成功的。
以下表示用于重现的请求序列(模拟真实数据):
第一页请求:
第一页响应:
第二页请求:
需要明确的是,第一个和第二个请求之间的唯一变化是 nonce、timestamp、signature 和 pageIndex。
第二页的响应:
该错误导致我建议第一个请求未正确缓存在 netsuite 端。对于第二个请求,我还尝试了令牌护照中字段的各种排列,但均无济于事。
任何帮助表示赞赏。
c# - NetSuite SuiteTalk TransactionSearchAdvanced:recordList 等于 null
我有一个小型 C# 控制台应用程序,其唯一目的是从 NetSuite 中的“已保存搜索”接收记录(通过 SuiteTalk)。我已经能够成功地连接并从 NetSuite 接收记录以用于我的已保存搜索(搜索也可以通过 Web 界面正常运行),但是当我尝试通过我的应用程序访问“已保存搜索”的结果时,我无法查看它们,因为返回的搜索对象不包含“recordList”属性中的任何数据:
在我看来,“recordList”对象是从搜索结果中检索数据的主要方式(相关 Java 示例,此处的另一个)。这也是示例 API执行此操作的方式。
我已经在多个“保存的搜索”上运行了这个,结果相同。我不明白您如何在“totalRecords”中有多个记录,而“recordList”仍然为空?是否必须设置一些配置选项才能允许我访问此属性。或者也许这是一个安全问题,我设置的 API 用户应该有完全访问权限,还有什么需要被授予访问权限的吗?
NetSuite SuiteTalk没有很好的文档记录,大多数在线示例都不是 C# 语言,也没有处理我遇到的问题。这些因素使得很难确定为什么会发生前面提到的行为,甚至很难发现从源“保存的搜索”中检索结果数据的任何替代方法。
有人对这种行为有任何见解吗?这是从 SuiteTalk 检索结果的正确方法吗?API 或 Web 端是否有任何配置需要更改?
更新 1
我还尝试使用通过从“SearchResult”对象访问“searchRowList”对象来获取结果数据的替代方法(由@AdolfoGarza 建议)但是它返回的大部分是空字段(null),类似于我所做的“recordList”属性看不到从此方法中检索“已保存的搜索”数据的方法。
c# - NetSuite SuiteTalk - 从“SearchColumnSelectCustomField”中检索值字符串
我有一个小型应用程序,它迭代“保存的搜索”的结果,从几个自定义列中检索值(简化示例):
对于大多数返回的列类型,我得到一个与类型一致的值(bool/date/etc...),但是对于“SearchColumnSelectCustomField”,我在返回的“searchValue.name”中没有得到任何值,它始终为空,但是始终填充“searchValue.internalID”列。因此,由于某种原因,它获得了选择,但没有从该选择中返回值。
如何从 SuiteTalk("searchValue.name") 访问我可以从 NetSuite 界面看到的文本值?我是否必须执行另一个查询来检索与该 internalID 相关的所有值键对?对于每个自定义字段?如果是这样,那么首先名称字段的目的是什么?
我试过四处寻找这个,但并没有真正分配关于这个主题的文档(或一般的 SuiteTalk),在其他语言(PHP/Java)中人们提到“getSelectValue”(这里和简要这里),我可以在 C# 中尝试这个,但我不确定这些是否适用,或者是否可以为自定义值选择完成。然后有一些参考用于在搜索之前确定值,这对我来说似乎有点矫枉过正,真的那么难吗?我有几十个我想在我的最终应用程序中访问的自定义字段。似乎应该有一个更简单的方法......
c# - NetSuite SuiteTalk - 从“SearchColumnSelectField”中检索值字符串
假设您正在尝试从 SuiteTalk 访问以“SearchColumnSelectField”类型返回的值:
注意:我以postingPeriod 为例,但还有许多其他记录返回“RecordRef”类型的“searchValue”,它们具有相同的问题。
This("searchValue.name") 将为空,类似于此处详述的问题,但与 CustomFields 不同,我没有看到任何基于返回的“searchValue”的“internalId”检索查找值的记录方法(通常填充)。更复杂的是,返回的对象似乎没有指定“typeId”。它看起来像这样:
所以我再次想知道,如何访问我可以从 SuiteTalk("searchValue.name") 的 NetSuite 界面看到的文本值?缺少 NetSuite 文档,显然在这种情况下它属于“句点”类型,但是如何枚举呢?或者在这种情况下,也许有一种不同的方式来检索价值?
我一直在环顾四周,但没有太多关于此的文章。我认为这篇文章中提到了这个问题。除此之外,我真的找不到任何东西。我已经检查了 API 文档,here和here,它没有多大帮助,我想知道是否有某种我没有看到的关于该主题的内部文档,但从我读过的内容来看,真的不多.
c# - 使用 SuiteTalk 运送 ItemFulfillment 时遇到问题
我需要做些什么来标记已ItemFulfillment
发货,包括包裹信息和可能使用 SuiteTalk 的不同运输方式/承运人?我们最初使用 WMS Lite RF Mobile Screen 创建ItemFulfillment
,然后使用自定义应用程序来发布它。
我最初尝试使用 anItemFulfillmentPackageList
来指定包裹,但它似乎忽略了我指定的内容并添加了默认包裹(0.05 磅,无描述或跟踪)。
然后我尝试ItemFulfillmentPackageUspsList
了等,如果它与先前在订单和履行记录中指定的承运人匹配,则会出现正确的包裹信息。如果不匹配,我会收到错误“[Code=JS_EXCEPTION] 错误:将运输方式切换到另一个承运人是不受支持的操作,因为它需要重新加载该承运人的项目履行表单。” 我们需要切换运营商的能力,因为我们为某些订单提供免费送货服务,最终“从主要 3 家运营商提供的价格中选择最便宜的包裹价格”。
c# - NetSuite SuiteTalk:“已删除记录”类型的 SavedSearch
如何在 NetSuite 中获得类型为“已删除记录”的“已保存搜索”的结果?其他搜索类型很明显(CustomerSearchAdvanced、ItemSearchAdvanced 等),但这个似乎没有在线参考,只是有关删除记录的文档,而不是对它们运行保存的搜索。
更新 1
我应该澄清一下我正在尝试做的事情。在 NetSuite 中,您可以在记录类型“已删除记录”上运行(并保存)已保存的搜索,我相信您可以通过 Web 界面通过此过程访问至少 5 列(不包括用户定义的列):
- 删除日期
- 删除者
- 语境
- 记录类型
- 姓名
您还可以将搜索条件设置为“已保存搜索”的一部分。我想使用他们已经设置的搜索条件并从他们显示的所有 5 个列中检索数据来访问我的系统中已经存在的一系列这些“保存的搜索”。
c# - 如何在 Netsuite SuiteTalk 中为“已保存搜索”的搜索类型运行已保存搜索
我有一个保存的搜索Netsuite UI
来搜索保存的搜索。我需要执行这个保存的搜索并在suiteTalk
.
我打过电话
在每个searchType
和保存的搜索不会出现在任何结果中。
c# - 插入销售订单错误:SSS_MISSING_REQD_ARGUMENT
我有一个简单的脚本来插入SalesOrder
对象。即使调用成功地在 中创建对象NetSuite
,SOAP 响应也会显示错误。
我无法根据响应消息确定缺少的字段。
有任何想法吗?
{"type":"error.SuiteScriptError","name":"SSS_MISSING_REQD_ARGUMENT","message":"parse: Missing a required argument: value","stack":["createError(N/error)","<anonymous>(/SuiteBundles/Bundle 112450/src/2.0/common/object/SWV_CR_Obj_Contract.js:122)","<anonymous>(/SuiteBundles/Bundle 112450/src/2.0/common/object/SWV_CR_Obj_Contract.js:72)","<anonymous>(/SuiteBundles/Bundle 112450/src/2.0/main/ue/SWV_CR_UE_TranCreateContract.js:206)","<anonymous> (/SuiteBundles/Bundle 112450/src/2.0/main/ue/SWV_CR_UE_TranCreateContract.js:287)","createError (N/error)"],"cause":{"name":"SSS_MISSING_REQD_ARGUMENT","m ess age":"parse: Missing a required argument: value"},"id":"","notifyOff":false}
integration - 在 NetSuite 中使用项目组创建 SalesOrder
我希望通过外部报价系统与 NetSuite 集成。如果我使用标准的非库存项目并且我能够创建销售订单,那么一切正常。
我遇到的问题是当我添加一个作为项目组的行时,它会实例化属于该项目组的所有项目的新副本,这些项目没有正确保存所需的所有默认值。
我试图提取我在 NetSuite 中使用项目组手动创建的 SalesOrder,然后将其映射回新的 SalesOrder 请求,这也会导致相同的错误。
我希望能够利用项目组,想知道是否有办法通过 API 来实现这一点,还是我需要编写 SuiteScript?
c# - 使用跟踪更新 NetSuite 项目履行记录
需要帮助将“包裹”添加到项目履行记录中,以使 CSR 能够查看哪些项目是在哪些跟踪号下运出的。我可以实例化一个 ItemFulfillment 记录和一个 ItemFulfillmentPackageList 对象,但 ItemFulfillmentPackageList 对象始终为空 - 无法弄清楚如何将 ItemFulfillmentPackage 对象添加到集合中。我尝试了各种方法来分配给 ItemFulfillmentPackageList 对象,但没有运气。创建一个 ItemFulfillmentPakage 对象数组是最新的尝试。这是我的代码。