0

AltovaのMapForceを使用して、代替の「ファイル変換プロセス」(現在はSQLの混乱)のプロトタイプを作成するように依頼されました。私の入力はヘッダー付きのCSVファイルです。私の問題は、ダウンストリーム処理で使用するデータと列名の両方をキャプチャする必要があることです。

MapForceにC#メソッドをフィードさせる必要があります(2つのパラメーターを受け取るためインポートされます:fieldNamevalue。値に簡単にアクセスできますが、マニュアル(1000ページ!)に何時間も注いだ後、アクセス方法の例が見つかりませんでした。出力としてのフィールド名。

各出力にフィールド名と値が必要な理由は、すべてのマッピング/変換がデータベースで現在どのように管理されているかと関係があります。.NETコードはこの時点でジャンプインし、必要なデータベースルックアップを実行します。

たとえば、次のファイルがある場合:

"Symbol", "Account", "Price", ...
"FOO", "10101", "1.23", ...
"BAR", "10201, "13.56", ...

そして静的メソッドstring TransformField( string fieldName, string value )

SymbolCSVファイルのデータ出力をメソッドのvalueパラメーターにマップし、フィールド名"Symbol"をメソッドのパラメーターにマップしたいと思いfieldNameます。

いくつかの制限:

  1. MapForceGUIで「配線」を表示したままにする必要があります。将来的には、プログラマー以外の人がマッピングを維持する予定です。したがって、これらすべてをコードで行うことはオプションではありません。
  2. MapForceは、同社が選択したツールです。私たちの元のプロセスがそのような混乱である理由の一部は、元のプログラマーが彼自身のマッピング/変換ツールをロールバックしたためです(TSQLからも同様です-痛いです)。
  3. メソッド呼び出しへのすべての入力/出力を文字列として扱うことができます。変換は後で行われます。
  4. 入力としてスカラーリテラルを使用することは避けたいと思います。私はすでにファイルから列名を持っています-それぞれを再入力してメソッドにフィードしたくありません。

このツールを使用した経験のあるユーザーの数はわかりませんが、3日間いじくり回した後、多くの可能性があります。私だけがこの現在のこだわりを乗り越えることができれば、会社は彼らの現在の混乱に代わる確かな選択肢を持っていると思います。

任意/すべての提案をありがとう。

4

1 に答える 1

0

問題を解決しました。今後の参考のために、解決策を投稿したいと思います。MapForce の を使用して問題を処理しFlexTextました。これにより、CSV ファイルからヘッダーを抽出し、変換プロセスへのデータ入力として列名を「反転」することができました。取るべきアプローチがわかると、Altova から直接、より多くの情報を見つけることができました。

彼らのウェブサイトを掘り下げているときに、いくつかの役立つチュートリアルを見つけました。

これが将来誰かを助けることができることを願っています!

于 2010-08-04T15:13:00.907 に答える