少し長いですが、最初のドラフトより短い:)
基本的に dBase から情報を取得し、この情報を .xls ファイルにエクスポートする小さな VB.net アプリケーションがあります。この .xls ファイルから、社内のエージェントがサード パーティのリスティング サービス (現在の在庫を維持している) を手動で更新し、そこに含まれる情報を使用します。情報は非常に基本的なもので、議論を容易にするために、「部品番号」、「説明」、および「手持ちの数量」で構成されています。
通常、この情報は週に 1 回更新されますが、このリスティング サービスとの新たに改訂された契約では、「プラチナ」ベンダー ステータスを維持するために毎日更新する必要があります。
問題は、この情報を手動で更新するにはかなりの時間がかかることです。したがって、自動化されたプロセスが緊急に必要とされています。そして、私は基本的な作業とコーディングのほとんどを完了しました - ある程度まで。したがって、質問、そしてどこで行き詰まるか。
リスティング サービスは次の WSDL を提供してくれました。
ここまでで、エクスポートされた情報を生成するストアド プロシージャを再プログラムしました。この SP は、「昨日」に発生したトランザクション結果が「増加」、「減少」、「追加」、または「削除」であったかどうかを判断するために内部計算を実行します。これらの結果は、「SERVICE」という名前の新しく作成された列の下の結果テーブルに追加されます。この新しい情報は、vb.net を使用して dBase から取得され、分析のためにデータ テーブルにインポートされます。
このデータ テーブルを使用して、各行をループし、「SERVICE」列を調べて、そのセルに含まれる情報に応じて、適切な Web サービスを呼び出すことができます。
すべての Web 参照をプロジェクトに追加し、各 Web サービスのプロキシ クラスを作成しました。
2 番目の問題は、実際の Web サービスを実際に呼び出す方法がわからないことです。以下は、コードの小さなスニペットです
' loads data into the 'AviationDataBaseResult.ILS_ARRAY_2' table.
Me.ILS_ARRAY_2TableAdapter.Fill(Me.AviationDataBaseResult.ILS_ARRAY_2)
' Start the looping process
For Looper = 0 To RowCount - 1
If Me.AviationDataBaseResult.ILS_ARRAY_2.Rows(Looper).Item("Service") = _
"Increase" Then
' Call Appropriate Web service
End If
' More If..Then's ensue, one for each service
Next
' More code ensues
私はこれが非常に長くなってしまったことに気付きました。これは主に、特定の日に 25 の FF タブを開いていて、それらのどれも互いに同意していないためです。別のしわを追加するには; 問題の WSDL では、複合型内で多くの複合型が使用されており、ご想像のとおり、他の複合型が絡み合っています。私は多くの例を見てきましたが、複雑な型とその処理方法を扱うものをまだ見つけていません。「私が知る必要があることを見つけるためにどこに行くべきか」について正しい方向に私を向ける助けがあれば大歓迎です.
他の情報が必要な場合は、できる限りご提供いたします。私の思考プロセスと論理が、私がしなければならないことをするのに適していない場合、私はそれを聞いてとてもうれしく思います. vb.net に比較的慣れていない私は、謙虚なパイを消費することにかなり慣れてきました。
御時間ありがとうございます。