このレッスンでは、同期モデルに変更を加える方法を説明するとともに、モデルを展開するときに使用できる選択肢の一部を解説します。
前提条件
このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:Mobile Link 統合データベースの設定を参照してください。
このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:Mobile Link の概要
Sybase Central の左ウィンドウ枠の [Mobile Link 16] で、mlintro_project » [同期モデル] » sync_mlintro の順に展開します。
[マッピング] タブで、Product テーブルのローを選択します。
下ウィンドウ枠で、[競合の処理] タブを選択します。
[競合の解決] で、[統合] を選択します。このオプションを選択すると、あるローが統合データベースとリモートデータベースの両方で変更された場合に統合データベースの値が正しい値であるとみなされます。
[展開] タブで、[テスト] をクリックします。同期モデルを保存するように求めるプロンプトが表示された場合は、[はい] をクリックします。
[データ] タブを選択し、[同期] をクリックしてリモートデータベースを更新します。
[Screwmaster Drill] という名前のローを編集し、統合データベースでの数量を 20 に設定し、リモートデータベースでの数量を 10 に設定します。
[同期] をクリックします。リモートデータベースと統合データベースの両方で、数量は 20 と表示されるはずです。
[テスト] ウィンドウを閉じます。
sync_mlintro モデルの [イベント] タブを選択します。このページは、この同期モデルのために Mobile Link サーバによって実行される SQL 文を表示します。左側のマージンにある緑色のバーは、[マッピング] タブで選択した内容に基づいて SQL 文が自動的に生成されることを示しています。
[マッピング] タブで使用できるオプションが、シナリオの実現に十分でない場合もあります。このような場合は、[イベント] タブを使用して同期スクリプトをさらにカスタマイズすることができます。
[イベント] タブでは、Product テーブルの upload_insert イベントを探します。これは、Mobile Link サーバがリモートデータベースから新しいローを受信するときに実行する SQL 文を示します。このイベントに変更を加えて、新しい注文の最大数量を 50 に制限します。テキスト {ml r."quantity"} は、アップロードされたリモート quantity カラムを示します。これを次のように変更します。
If {ml r."quantity"} < 50 then {ml r."quantity"} else 50 end if |
完全な upload_insert イベントは、次のようになります。
Product (DBA): upload_insert /* Insert the row into the consolidated database. */ INSERT INTO "DBA"."Product" ( "name", "quantity" ) VALUES ( {ml r."name"}, If {ml r."quantity"} < 50 then {ml r."quantity"} else 50 end if ) |
upload_insert イベントに対するマージンのバーが黄色になったことに注目してください。これは、[マッピング] タブからの設定が上書きされたことを示します。
[展開] タブで、[テスト] をクリックします。[データ] タブを選択し、[同期] をクリックします。次に、リモートデータベースの下ウィンドウ枠で右クリックします。[ローの追加] を選択し、Hammer という名前と数量 200 が含まれているローを追加します。[同期] をクリックします。統合データベースとリモートデータベースは両方とも Hammer ローの値が 50 になります。
[テスト] ウィンドウを閉じて、[イベント] タブに戻ります。upload_insert イベントスクリプトを右クリックし、['Product (DBA): upload_insert' スクリプトのリストア] を選択します。マージン内のバーの色が再び緑になり、前に行ったカスタマイズが取り消されました。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |