質問

BizTalk 2010を使用してOracleテーブルにレコードを挿入するには、このブログに従うことを試みています。 http://biztalk2010changes.blogspot.co .blogspot.co。 NZ / 2011/04 / insert-update-delete-select-operation.html オーケストレーションは作成されませんでした OracleDBinding Contract Type Client /(アウトバウンド操作)を使用してWCFカスタム生成項目を作成しました。

テーブルと選択した挿入カテゴリを選択しました。 次のエントリ

でXSDが生成されました

  • xxrecordinsert、
  • ArrayOfxxxRecordInsersert、
  • 挿入、
  • insertresponse。

私は上記のスキーマのインスタンスを生成し、私の目標は、そのインスタンスをOracleテーブルに挿入するコンテンツを含むファイルとして使用しています。私はアプリケーションを正常にデプロイし、BizTalkがBizTalkによって作成されたバインディングに基づいてファイルを選択したときにファイルポートを設定しました(上記のリンクと同様のステップi)。私はまたフィルタを設定しました。ファイルをピックアップするためのアプリケーションとメッセージ

画像の入力ここで

しかし、ファイルがディレクトリにドロップされたとき、それは確かにピックアップされましたが、このルーティングエラーを得ました:

画像の記述ここで

Enter Image説明

と私はこのエラーメッセージを得たMSGログ:

wcfsendport_oracledbbinding_oraschema_table_rotation_req_custom. OracleDB:// oracleServer /?PollingID= TEST_00042. Microsoft.ServiceModel.channels.common.xmlReaderParsingException:予期しないスタートノード " http://microsoft.lobservices.oracledb/2007/03/oraschema/table/rotation_req "が見つかりました。

これは私のスキーマの抽出です:

<?xml version="1.0" encoding="utf-16" ?> 
- <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:tns="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ" elementFormDefault="qualified" targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
.

これは私のテーブルに挿入しようとしたサンプルのインスタンスです:

<ns0:ROTATION_REQRECORDINSERT xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ">
  <ns0:RotationID InlineValue="InlineValue_0">RotationID_0</ns0:RotationID>
  <ns0:Year InlineValue="InlineValue_0">2015</ns0:Year>
  <ns0:Class InlineValue="2015">T4</ns0:Class>
  <ns0:Rotation InlineValue="InlineValue_0">Rotation_0</ns0:Rotation>
  <ns0:From InlineValue="InlineValue_0">1999-05-31T13:20:00.000-05:00</ns0:From>
  <ns0:To InlineValue="InlineValue_0">1999-05-31T13:20:00.000-05:00</ns0:To>
  <ns0:NumberOfConsecutiveSession InlineValue="InlineValue_0">500</ns0:NumberOfConsecutiveSession>
  <ns0:AmOrPM InlineValue="InlineValue_0">3</ns0:AmOrPM>
  <ns0:DayOfWeek InlineValue="InlineValue_0">6</ns0:DayOfWeek>
</ns0:ROTATION_REQRECORDINSERT>
.

私がしたことがなかったのか?

更新:メッセージのコンテキスト:

Enter Enter Image説明

役に立ちましたか?

解決

壁に頭をひっくりしている後、私はついにそれを作るために私がする必要があるものを理解することができました。投稿はそれが説明したもので正確でしたが、それは私を混乱させて私に問題を引き起こしたものでした。

私はこれを私自身や他の誰かが将来的に私の同じシナリオに遭遇するかもしれない他の誰かを更新しました。

これらは私が指示の欠如のために誤ってしたことです:

1)XXRecordInsertを使用して正しくないメッセージを作成しました。代わりに挿入を使用したはずです。それは実際にサンプルにありましたが、私はそれを見落としていて、BizTalkを自動生成させました。 BizTalkがメッセージを正しく生成できるように、インサートはファイルの先頭に移動されるべきです。それはおそらくBizTalkが「予期しない始動ノード」について不満を訴えていた理由でした。

2)レコードが挿入された後にBizTalkからの応答を捉えるための別のポートを作成する必要があります。それ以外の場合は、以前に経験したルーティングエラーが発生します。

これらは私が見落とされた非常に基本的な誤りです。将来的に同じ問題に遭遇するのは他の誰かを救うことを願っています。

他のヒント

ルーティングエラーを解決するためには、メッセージのコンテキストプロパティを調べて、それをアクティブなサブスクリプションと比較する必要があり、一致しないものを見てください。 BizTalk Server Administration Console、BizTalkグループ、新しいクエリを介して購読を見ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top