# ビジュアルプログラミング言語：アクションツリー

### ビジュアルプログラミング言語

ActionTreesを使って、洗練されたアプリケーションを開発しましょう- 視覚的な、ドラッグ＆ドロップ操作が可能なインターフェース
- 複雑な動作を処理するための条件分岐ロジック
- 高度な制御フロー
- 再利用可能なアクショングループは、繰り返しの作業を簡素化します

- データ操作のためのXPath/XQueryのサポート
- エンタープライズ向けのデバッガー
- 一度記述すれば、どこでも展開可能。 または、一度記述して、あらゆる環境で利用可能
- 弊社のデザインチームは、iOS、Android、Windows向けのアプリケーションを開発しています

## 妥協のないローコード開発

[MobileTogether ActionTreesを使用した、ローコードによるアプリケーション開発](https://www.altova.com/images/low-code-app-dev.png)

MobileTogetherでは、視覚的なドラッグ＆ドロップによるUIデザインに加え、アプリケーションの動作定義も非常に視覚的なプロセスで行えます。Altovaは、MobileTogetherにおいて、ユーザーがネイティブ機能や高度な機能を損なうことなく、迅速にローコードアプリケーションを構築できるよう、ActionTreesというプログラミング言語を開発しました。

ActionTreesは、開発者だけでなく、そうでない方々にも、モバイルアプリケーションや企業向けソリューションのロジックを、ツリー構造で視覚的に定義することを可能にします。ActionTreesは、データベースやその他のデータソースに接続したり、計算を実行したり、データを管理したりするなど、アプリケーションや企業向けソリューションを構築するための、堅牢で柔軟なツールを提供します。このアプローチにより、従来のコーディングを必要とせずに、ワークフローを明確かつ直感的に設計し、プロセスを自動化することができます。

このビジュアルプログラミングのパラダイムは、特に複雑なアプリケーションを迅速に構築する際に有効です。なぜなら、ビジネスロジックとイベントハンドラの両方を定義するためのドラッグ＆ドロップインターフェースを提供することで、開発プロセスを簡素化するからです。

[MobileTogetherにおけるActionTreesのビジュアルプログラミング言語](https://www.altova.com/images/visual-programming-language.png)

各アクションツリーは、開発者が定義した条件に基づいて、一連のアクションが順番に、または条件付きで実行されるように構成されています。アクションツリーを作成するには、アクションツリーエディターの中央パネルにあるツリーコントロールに、利用可能なアクションをドラッグ＆ドロップするだけで、その動作を定義し、他のアクションと組み合わせることができます。

利用可能な制御フローのオプションには、ループ、switch文、if-then-else条件、およびtry/catch/throwによる例外処理などが含まれます。 

定義した各アクションツリーは、右側のペインに表示されるように、アクショングループとして保存できます。アクショングループは、必要に応じて再利用できる関数となり、繰り返し行う作業を効率化するのに役立ちます。

## XPath/XQueryによる柔軟なデータ操作

XPathとXQueryは、ActionTreesにおけるデータの処理と操作に使用されます。MobileTogetherには、これらの式を簡単に構築およびデバッグできる、強力な式構築ツールと評価機能が搭載されています。

XPath/XQueryは、階層構造データだけでなく、表形式のデータ構造も選択および操作するための、他に類を見ないほどの柔軟性を提供します。豊富な関数ライブラリにより、複雑なアプリケーションやエンタープライズソリューションを、シンプルかつ効率的に構築することが可能です。宣言型のプログラミング言語であるXQueryは、開発者が複雑なデータ処理ロジックを、洗練された簡潔な方法で定義することを可能にします。 

[MobileTogetherでXPathとXQueryを使用して、データを選択します](https://www.altova.com/images/xpath-xquery-data-selection.png)

この独自のXPath/XQuery編集ウィンドウには、以下の機能が含まれています

- **ポイントアンドクリックによる式構築** ： 豊富な演算子、式、および組み込み関数が用意されており、ダブルクリックすることで式に挿入できます。関数は、「#」というプレースホルダーで引数が示されているため、式を迅速かつ正確に構築できます。
- **各操作子や関数などを説明するヒントをマウスオーバー表示することで、現在使用したい式に最適なものを確実に選択できます。**
- **強化された入力支援機能** ：組み込み関数の説明を表示し、入力中に役立つ関数やパラメータの詳細情報を表示することで、開発速度を向上させ、正確性を確保します。

これらの広く知られている、標準に基づいたクエリ言語について復習したい場合は、経験レベルに関わらず、初心者から上級者まで利用できる、無料の[XPathトレーニング](../training/xpath3.md) と[XQueryチュートリアル](../training/xquery3.md) をご覧ください。

## ActionTreesの活用事例

MobileTogetherは、常に拡大し続ける機能を提供します [一連の行動](https://www.altova.com/manual/MobileTogether/mobiletogetherdesigner/mtdactions_ui.html) 複雑でありながら効率的なアプリケーションの動作を定義するために、以下のカテゴリーとアクションの種類について、簡単な概要を以下に示します。 

MobileTogetherには、開発中にすべてのプラットフォームでのテストを行うための組み込みアプリシミュレーターに加え、XPath/XQueryやActionTreeの動作に関する問題解決を支援する統合デバッガーも搭載されています。

### データ操作のための機能 {#manipulation}

ActionTreesは、データを効率的に管理および更新するための様々な機能を提供します。これらの機能は、動的なデータ処理と変換が必要なアプリケーションにとって不可欠です。

これらの操作には、XMLやデータベースの構造内で、ノードの追加、削除、挿入、置換、および更新などが含まれます。

### 制御フロー操作 {#control-flow}

これらの機能は、ActionTree 内での処理の流れを制御し、開発者が複雑なロジックや意思決定プロセスを定義することを可能にします

- 条件分岐: 特定の条件が真である場合に、一連の処理を実行します。
- If-Then-Else: 指定された条件が真でない場合に、別の処理を実行します。
- Switch文、Case文: 複数の条件を評価し、一致する条件に基づいて処理を実行します。 複数の分岐処理を行う場合に最適です。
- ループ：特定の条件が真である限り、一連の処理を繰り返し実行します。これにより、データセットの反復処理や、繰り返し行う必要があるタスクの実行が可能になります。
- ループの中断: 特定の条件が満たされた場合に、ループを途中で終了させます。

### 実行操作 {#execution}

これらの機能は、アプリケーション内のタスクの実行を開始し、制御し、管理する役割を担っています

- 処理の中止: 実行中の処理を停止します。エラー処理やユーザーによる操作の中止などに役立ちます。
- 即時実行: 現在の実行状況に関わらず、指定された操作や一連の操作をすぐに開始します。
- ソリューションの実行：ソリューションの実行をキャンセルしたり、一時停止（バックグラウンドで実行状態を維持）したり、再開したりすることができます。

### ユーザーインターフェース操作 {#ui}

ActionTreesは、ユーザーとのインタラクションを制御および変更することも可能であり、これにより開発者はインタラクティブで動的なアプリケーションを構築することができます

- メッセージボックスの表示：ユーザーに対してメッセージボックスを表示します。これは、通知や確認を行う際に一般的に使用されます。
- ページへの移動：この機能は、アプリケーション内の別のページにユーザーを誘導し、複数ページ構成のアプリケーションやワークフローを実現します。
- UIコントロールのプロパティを動的に変更します。例えば、表示/非表示やスタイルなどを変更できます。
- カレンダーへのアクセス：スマートフォンに内蔵されているカレンダーにアクセスし、カレンダーの予定を表示したり、新たに予定を追加したりすることができます。
- 電話の発信：アプリから直接電話をかけることができます。
- メール/SMS送信：ビジネスワークフローを完全に実現するために、アプリからメールを送信したり、SMSメッセージを送信したりすることができます。
- URLを開く：この機能を使用すると、デバイスのブラウザでURLを開くことができるほか、デバイスにインストールされている外部アプリケーションを使ってファイルを開くことも可能です。
- 印刷: 高度なスタイルシートと、[StyleVision Server](../stylevision-server.md) との連携機能を利用して、データをPDFドキュメントとして出力し、その後プリンターに送信することができます。
- 連絡先へのアクセス: アプリの利用者のデバイスに保存されている連絡先にアクセスします。

### データベース操作 {#database}

データベース操作は、永続的なデータ保存と取得が必要なアプリケーションにとって非常に重要です。

- DB実行: データベースに対してクエリを実行し、結果を取得します。取得した結果は、アプリケーション内で利用することができます。 
- DBバルク挿入：データベースのテーブルに大量の新しいレコードを一度に追加する機能です。データ入力アプリケーションにおいて非常に重要です。 
- DBトランザクション：トランザクション処理を実装できます。特にSQL Serverを使用する場合に有効で、トランザクションの開始、コミット、およびロールバックをサポートします。 

### ウェブサービスのアクション {#ws}

これらの機能により、外部のウェブサービスとの連携が可能になり、アプリケーションはサードパーティのAPIからデータを受け取ったり、データを提供したりすることができます。

- SOAPリクエスト：SOAPウェブサービスを呼び出し、返されたデータを処理します。レガシーシステムやサービスにも対応しています。
- RESTリクエスト：最新のWebアプリケーションで一般的に使用されるRESTfulなサービスとの通信を行います。 
- FlowForceジョブの実行: この機能を使用すると、アプリケーションのバックエンドの一部として、[FlowForceサーバー](../flowforceserver.md) 上でジョブを実行できます。
- MapForce Transfer：[MapForce](../mapforce.md) のTransfer機能を使用すると、あるデータ構造を別のデータ構造に変換（マッピング）することができます。出力側の各データ構造は、ファイルに書き込むことも、ページソースのノードに書き込むことも可能です。

## クロスプラットフォーム対応

ActionTreesというビジュアルプログラミング言語の大きな利点は、モバイルデバイスとデスクトップデバイス向けのクロスプラットフォーム開発をサポートできることです。つまり、一度設計・実装した機能を、iOS、Android、Windowsを搭載したスマートフォン、タブレット、ノートパソコン、デスクトップコンピュータなど、様々なデバイスでシームレスに動作させることができます。また、HTML5クライアントも利用可能で、ブラウザを通じてアプリケーションにアクセスできます。これにより、開発プロセスが効率化され、プラットフォームごとに異なるコードを書く必要性が減り、すべてのデバイスで一貫した、ネイティブに近い動作を実現できます。

## 対応プラットフォーム：

- Android
- iOS (iPhone、iPad)
- Windows 10 および Windows 11
- 他のユーザー向けのHTML5ブラウザ

ads/feature_list.pngMobileTogether の機能一覧

READ MOREads/mt_faq.pngMobileTogether よくある質問集

READ MOREads/demo_videos.pngMobileTogetherのビデオデモンストレーション

VIEW NOW
## Call to Action

[無料でMobileTogether Designerをダウンロードして、すぐに使い始めてください！](download.md)
[既存のお客様は、こちらから最新バージョンにアップデートできます。](download.md)
[MobileTogetherサーバー、こちらです。](https://shop.altova.com/MobileTogetherServer)

