【问题标题】:NetSuite Suitescript and Third Party API for web services用于 Web 服务的 NetSuite Suitescript 和第三方 API
【发布时间】:2014-12-11 02:30:07
【问题描述】:

我只是想确保自己走在正确的道路上,因此需要您的指导。

我正在开展一个需要将 NetSuite 与第三方应用程序集成的项目。第三方应用程序以以下形式公开其 API -

http:// www........asmx url

所以我在 NetSuite 中将代码构建为“用户事件”脚本来调用此 API;发出 SOAP 请求;使用 nlapiRequestURL() 以 XML 格式获取该请求;格式化数据;然后使用如下代码:

customerRecord.setFieldValue('comments', response.getBody()); 

在 NS 数据库中添加值?这是正确的方法吗?

我有一个场景,我需要搜索在第三方应用程序中创建的所有新销售订单、客户等,以便在 5-10 分钟内集成到 NetSuite。我怎样才能做到这一点?第三方应用程序中没有触发器,只有那些 API。

我是否需要编写一个预定脚本来复制我在用户事件脚本中所做的事情?

有人可以建议正确的方法吗?

【问题讨论】:

    标签: web-services netsuite


    【解决方案1】:

    是的,当然,如果您在场景中选择计划脚本,事情会容易得多。用户事件很像基于操作的操作,不符合您必须每 10 / 15 分钟检查一次以找出更新记录的标准。

    一些要点:

    在使用 nlapiRequestURL() 时,请注意此 API 有两个 versions

    • 一个客户端版本和一个服务器端版本。
    • 在服务器调用中执行此 API 时,没有回调参数。因此,服务器端调用中的函数签名是 nlapiRequestURL(url, postdata, headers, httpMethod)。
    • 当您在客户端脚本中执行此 API 时,函数签名为 nlapiRequestURL(url, postdata, headers, callback, httpMethod)。

    同样重要的是,您如何将您的 NS 与另一个第三方应用程序同步。从您的角度来看,我可以看到您希望将所有更改从外部服务器复制到 NS。但请确保您过滤好过渡数据以仅获取创建/更新的记录。否则,您最终将不必要地每 15 分钟调用 10,000 条记录。它会给 NS 带来负担。

    不过,对于您以后的查询,NS 确实提供了使用 Java、.Net、PHP 以及当然是 Suitescript 的灵活性。因此,您可以使用适合您要求的任何一种。如果您的传入数据是基于 SOAP 的,那么您肯定需要一个 XML 解析器来解析它。因此,您可以使用任何您选择的 Java 或 .Net。否则,如果它在 JSON 中并且您想要轻量级介质,那么您可以选择 suitescript,它会减轻您的工作负担。

    【讨论】:

      【解决方案2】:

      您应该始终在 NetSuite 计划脚本中执行此类操作。不应使用 NetSuite 用户事件,因为它们总是需要用户操作(记录加载、记录提交)才能在 NetSuite 记录类型上发生调用。

      对于您的用例“搜索在第三方应用程序中创建的所有新销售订单、客户等,以在 5-10 分钟内集成到 NetSuite 中”,它是搜索所有新数据的预定作业的良好候选者在外部系统上,然后将其放回 NetSuite。此外,由于计划脚本具有更高的 (10000) API 使用点限制,您可以在计划脚本中处理大量记录。

      【讨论】:

      • 感谢 Rohit 的回答。另一个快速的问题。你认为 Suitscript 是要走的路还是我可以选择的另一种选择,它在性能方面会更好。我可以使用 dotnet/java 代码并加载到免费的 Web 服务器中吗?那会奏效吗?所有 Netsuite 文档都在 suitetalk 中讨论 dot net/java/php,但不确定如何在 netsuite 中运行它。
      • SuiteScript 是 imo 最好的解决方案,因为脚本将在 NetSuite 自己的 WebServer 上运行(无需 Cron 作业调度/额外的服务器维护)。您的用例涉及在 NetSuite 数据库中提交大量客户和销售订单记录,通过 Native SuiteScript 提交记录的操作比调用 WebService 成本低得多。
      • @meg 如果这回答了您的原始问题,您是否也可以投票/将我的答案标记为已接受。!谢谢
      猜你喜欢
      • 2020-06-28
      • 2012-06-08
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多