クロスプラットフォームのモバイルアプリケーションにおけるデータ操作

Altova MobileTogetherは、あらゆる規模の企業が、あらゆるモバイルプラットフォームで動作する、カスタマイズされたモバイルソリューションを設計・展開できるようにするツールです。この記事は、MobileTogetherの「アクション ダイアログ」に関する解説の第2部です。この機能を使用することで、開発者は、iOS®、Android™、Windowsデバイス、およびHTML5ブラウザベースのクライアントで共通に動作する、高度なイベントハンドラ、制御フロー、および操作を迅速に作成できます。各モバイルオペレーティングシステム固有のAPIやSDKの詳細を気にする必要はありません。

もし第1部を見逃してしまった場合は、イベント処理と制御フローの定義 を読んで、内容を把握してください。

この投稿では、データ操作を行うMobileTogetherの機能の一部を紹介します。これらの機能は柔軟性が高く、強力であり、データに基づいたモバイルエンタープライズアプリケーションの開発を加速させ、常に最新の情報が必要なユーザーに対して、外出先でもタイムリーな情報を提供することを可能にします。

以下のスクリーンショットは、在庫管理モバイルアプリケーションの紹介ページです。短い説明が表示されており、「詳細」ボタンをクリックすると、より詳しい説明を表示することができます。

ボタンのアクション定義は、MobileTogether Designerの「アクション」ダイアログで以下のように表示されます。ユーザーがボタンをクリックすると、次の処理が実行されます ノードを更新する この操作は、"ShowMore"ノードに固定値「true」を挿入します。

長い定義が表示されるテキストボックスには、表示/非表示を制御するためのプロパティがあり、そのプロパティは式を使用して、表示するかどうかを決定します。

「ShowMore」の値が「true」に変わると、モバイルデバイス上で詳細な説明が自動的に表示されます

「もっと見る」ボタンは、その表示状態を制御するプロパティに「ShowMore = 'false'」という条件が含まれているため、同時に非表示になっていました。

このシンプルなアクション定義により、あらゆるモバイルデバイスで動作するボタンが作成されます。また、デスクトップワークステーションのブラウザウィンドウでも利用可能です。しかし、「Update Node(s)」はそれ以上の機能も備えています!今回の例では、対象ノードとペイロードの両方が固定値でしたが、「対象」「結果」またはその両方を、他のデータ要素への参照、XPath演算子、XQuery関数、特別なMobileTogether関数、さらにはユーザーが定義した関数を含むXPath式として定義することも可能です。

開発者は、XPathのいずれかのボタンをクリックするだけで、以下の機能を使用できます XPath 式の編集 ダイアログ XMLデータソースの構造を閲覧しながら、XPath/XQuery 3.1の演算子や関数が豊富に揃ったライブラリを活用し、有効なXPath/XQuery 3.1の式を構築するための様々な機能を利用して、式を作成および編集することができます。

簡単な例として、在庫管理アプリでは、実行日を記録し、次に起動する際に、新しい月に向けてテーブルを初期化する必要があるかどうかをテストしています。この「ノードを更新」アクションでは、XQueryの日付関数が使用されています

モバイルアプリケーション開発において、プラットフォーム固有のAPI呼び出しは不要です。MobileTogetherでは、1つの表現で全てのモバイルプラットフォームに対応しています。

ノードの挿入ノードの追加は、どちらもXPath式で指定された通り、1つ以上の新しいノードを作成する操作です。この2つの操作の違いは、"ノードの挿入"は、データツリー内の指定された場所にノードを追加するのに対し、"ノードの追加"は、選択されたノードの子ノードとしてノードを追加する点です。

「ノードの挿入」と「ノードの追加」機能を使用することで、データ統合モデルを動的に拡張し、サイズが不明なデータセットに対応できます。例えば、在庫管理アプリの中核となるのは、さまざまな製品を製造するために必要な部品の状態を記述するテーブルです。現実世界では、製品の部品表は、製品担当者が製品のバリエーションを追加・削除したり、サプライヤーを変更したりすることで、頻繁に変更されます。特定の部品数に対してモバイルソリューションを固定的に実装することは、非常に非効率です。代わりに、開発者は単一の部品を記述する単一の行の内容を定義し、各要素に対してデフォルト値を設定するだけで済みます

テーブルが初期化される際、「Append to Node」アクションは、ループアクション 内で設定することで、任意の数の行を追加できます。インベントリマネージャーのソリューションでは、"PartNumbersCount" が、一意な部品の数を格納しており、これはデータベースのクエリや、外部のマスター部品リストファイルから読み込むことができます。開発者は、正確な数を把握する必要はありません。

上記の定義において、新しいノードは、データモデル内の行を表すXPath式として定義されます。「ノードを追加」機能は、参照されたノード、そのすべての子ノード、およびそれらの要素、属性、および内容をすべて追加します。新しいノードは、最初の要素として、または最後の要素として追加できます。

MobileTogetherに組み込まれたシミュレーターで、実行中のプログラムをテストすることで、開発者はプログラムの実行中にデータを検証できます。上記のループがすべての繰り返し処理を完了した後、PartNumbersCountの値が167であり、ループによって正確に166行が追加され、各行は元の定義と全く同じ内容で埋められていることが確認できます。

「ノードの挿入」や「ノードの追加」機能は、直接XMLの構成要素として入力された新しいノードを作成することもできます。例えば、Element Content のように記述できます。また、XQueryで計算されたノード構成要素を使用して、要素や属性を組み立てることも可能です。例えば、element MyElement-01 {xs:string("Element Content")}attribute myatt{"value"} のように記述できます

再読み込みは、データ処理において非常に強力な機能です。この機能は、デザインに含まれるあらゆる外部リソースに適用できます。例えば、データベースクエリ、外部データファイル、グラフ、画像などが該当します。「再読み込み」機能には、既に設定されているすべての外部リソースを一覧表示する便利なドロップダウンリストが用意されています。例えば、インベントリマネージャーアプリケーションにおける「$ProductSalesMTD」は、企業の注文データベースに対するSQLクエリで、今月現在、各製品の売上数を取得します。製品は、部品表と照合され、各部品の需要統計が計算されます。

複数のデータソースを同時にリロードするには、編集領域に複数のリロード操作をドラッグするだけで簡単です。以下に、インベントリマネージャー内の別のボタンが実行する操作の定義の一部を示します。すべてのデータソースが更新された後、最後のステップとして、最新の値に基づいてパフォーマンスチャートを再描画するために、再度リロードが実行されます。

このAndroidタブレットのスクリーンショットは、部品ではなく、サブアセンブリ向けに設定された在庫管理システムのメインデータテーブルとグラフを示しています。もし、どの部品の在庫レベルが目標を下回った場合、ユーザーは右側の列に数量を入力し、「注文送信」ボタンをクリックすることで、サプライヤーへの注文を承認できます。

iPhoneを横向きにした場合も、同様の表示になり、ユーザーは画面をスクロールすることで全てのデータを確認できます。

短い一連の ビデオデモンストレーション Altovaのウェブサイトに掲載されている情報は、MobileTogether Designerを使って、モバイル向けのエンタープライズアプリケーションを簡単に開発できることを示しています。または、ウェブ版の...をご覧ください MobileTogether デザイナ オンラインヘルプ より詳細な情報については。

詳細については、iOS®、Android™、Windows® Phone 8、Windows 8 向けの最初のエンタープライズモバイルソリューション、およびHTML5ブラウザベースのクライアントを作成するための無料のMobileTogether Designerをダウンロードするには、以下のウェブサイトをご覧ください:www.altova.com/mobiletogether