0

我必须从保存的搜索中提取数据并将每一列放入 csv 文件中。此搜索通常超过 300 行,我需要将每条记录解析为单独的 csv 文件(因此需要创建 300 多个 csv 文件)

在之前的所有搜索中,我已经完成了这项工作,所需的列数量很少(少于 10 个),并且连接的数量很少甚至没有,因此效率并不是一个大问题。

我现在有一个项目,在已保存的搜索中包含 42 个字段。搜索建立在销售订单之上,包括对客户记录和项目记录的连接。

搜索广泛使用自定义字段和公式。

什么是我逐步完成所有这些的最有效方法?

我在想最简单的方法(也许是最快的)是将它包装在

foreach (TransactionSearchRow row in searchResult.searchRowList)
{
     using (var sw = System.IO.File.CreateText(path+filename))
     {
      ....
     }
 }

阻止,但我想尽量避免

 if (customFieldRef is SelectCustomFieldRef)
 {
     SelectCustomFieldRef selectCustomFieldRef = (SelectCustomFieldRef)customFieldRef;
     if (selectCustomFieldRef.internalId.Equals("custom_field_name"))
     {
       ....
     }
  }

因为我希望这段代码在这个过程中变得过长。因此,任何想法都会受到赞赏。

4

1 回答 1

1

使用 NetSuite WSDL 生成的 API,在读取自定义字段时,除了嵌套类型/名称测试之外别无他法。它很糟糕,你必须忍受它。

您可以下拉到手动 SOAP 并自己解析 XML 响应。这对我来说听起来像是折磨,但是通过一些辅助函数,您可以使读取自定义字段的过程更加合乎逻辑。

另一种选择是完全放弃 SuiteTalk 并在 SuiteScript RESTlet 中进行搜索。JavaScript API 比 SOAP API 更简单、更直接地访问自定义字段。在将数据(可以是 JSON、XML、纯文本,甚至是最终的 CSV)返回到调用应用程序之前,您可以在服务器端进行任何数量的预处理。

于 2012-10-10T18:43:12.453 回答