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応答を自分で解析することができます。それは私には拷問のように聞こえますが、いくつかのヘルパー関数を使用すると、カスタムフィールドを読み取るプロセスをはるかに論理的にすることができます。

もう1つの方法は、SuiteTalkを完全に破棄し、SuiteScriptRESTletで検索を実行することです。JavaScript APIは、SOAP APIよりもはるかに単純で、カスタムフィールドに直接アクセスできます。呼び出し元のアプリケーションにデータ(JSON、XML、プレーンテキスト、さらには最終的なCSV)を返す前に、サーバー側で必要な量の前処理を行うことができます。

于 2012-10-10T18:43:12.453 に答える