このレッスンでは、以下のトピックについて説明します。
- Cloud Integration による開発
- 技術的実装
- インテグレーションフローを登録するための開発サイクル
- インテグレーションフローのバージョン管理
- インテグレーションフローの実際のデプロイメントおよびデバッグを使用した開発者テスト
- 統合およびコンポーネントのシミュレーションを使用した開発者テスト
Cloud Integration による開発
Cloud Integration はサブスクリプションサービスです。つまり、特にプロセスステップのグラフィカルなモデリングと処理は、サービスに登録したサブアカウントで行われます。コンシューマサブアカウントとプロバイダサブアカウントは、eu10 (Frankfurt) などの同じ地域にあり、通信はブラウザを介して直接行われます。そのため、ブラウザに表示されるすべてのコンテンツは HTML データストリームとして配信されます。さまざまなレベルの URL が以下に示されており、いずれの場合も eu10 地域に位置するものとします。クラウド統合 URL は、サブアカウントのサブドメインで始まり、特定のドメインとコンテキストパスが続きます。
注記
表示される URL は、トレーニング専用のサンプル URL です。有効リンクまたは機能リンクではありません。
- サブアカウントの URL (1 番): https://emea.cockpit.btp.cloud.sap
- Integration Suite の URL (2 番): https://.integrationsuite.cfapps.eu10-003.hana.ondemand.com/shell/home
- Cloud Integration の URL (2 番): https://.integrationsuite.cfapps.eu10-003.hana.ondemand.com/shell/design

作業時には、これは以下を意味します。
- 利用可能なすべての機能はブラウザを介して使用されます。
- 表示はブラウザによって決定されます。そのため、最新の Chrome ブラウザをお奨めします。
- ブラウザでタイムアウトが設定されます。
- ネットワーク接続に問題があると、応答の遅延時間が長くなる可能性があります。
- 画面のサイズが十分で、更新された Chrome ブラウザが利用可能で、インターネット接続が安定していれば、どのデバイスでも操作できます。
少なくともロールコレクション PI_Integration_Developer が必要です。
技術的実装
最初に述べたように、システムのコアは Camel 統合フレームワークです。SAP は、グラフィカルなクライアントおよびさまざまなセキュリティ機能によって Camel フレームワークを拡張しています。完全な実装は Java アプリケーションであり、以下のコンポーネントで構成されています。

最初のコンポーネント (1 番) は、Cloud Integration URL を介して実装にアクセスし、インテグレーションフローを登録および管理するブラウザです。2 番目のコンポーネント (2 番) はグラフィカルインタフェースです。
インテグレーションフローが作成され、ランタイム (Cloud Foundry、Kyma) に Java アプリケーションとしてデプロイされると、(4 番) メッセージは送信側コンポーネント (3 番) を使用して送信し、受信側コンポーネント (5 番) を使用して受信することができます。
ロードバランサ (IP5) は送信側入力 (3 番) に接続され、興味深いことに、ランタイムに直結するわけではありません。
テナントのリソース
Cloud Integration 実装のリソースは制限されています。

インテグレーションフローを登録するための開発サイクル
関連する演習問題では、プロフェッショナルなインテグレーションフローを構築するという原則に従います。
開発サイクルを登録するには、以下のステップを順番に実行する必要があります。
- ユースケースを理解します。
- SAP BTP サブアカウントおよび Integration Suite を設定します。
- 必要な API とそのすべてのメタデータ (認証情報、ヘッダなど) の一覧を見つけます。
- Cloud Integration で空のテンプレートから開始します。
- プロセスをモデル化します。
- インテグレーションフローを漸進的に構築します。
- ステップを繰り返します。
- 次の工程を確認します。
これらのステップについて詳しく見ていきましょう。
- ユースケースを理解します。
アーティファクトと連携してユースケースを徹底的に分析し、SAP Integration Solution Advisory Methodology を適用してすべての要件に対応します。
- SAP BTP サブアカウントおよび Integration Suite を設定します。
統合開発者が適切な Integration Suite で作業できるように、該当するロールコレクションを統合開発者に提供します。これは、管理者と連携して行われます。
- 必要な API とそのすべてのメタデータ (認証情報、ヘッダなど) の一覧を確認します。
すべての API が API Business Hub Enterprise に一覧表示されている場合は、必要な URL およびパラメータの取得が完了しています。ただし、そうでない場合は、このデータを取得してインタフェースをテストするための十分な時間を計画することができます。
- Cloud Integration で空のテンプレートを使用して開始します。
意味のある名称でパッケージを登録します。命名規則の提案については、Naming Conventions を参照してください。
開始するには、インテグレーションフローアーティファクトを選択すると、空のテンプレートが自動的に作成されます。受信メッセージが必要な場合は、開始のタイマーイベントとコンテンツモディファイアを使用してメッセージをシミュレートすることができます。このアプローチにより、開発サイクルが迅速かつ容易になります。
- プロセスをモデル化します。
プロセス開発の明確な基準を確立することは困難な場合があります。プロセスは最初は単純に見える場合がありますが、後で複数の個別プロセスに分割することができます。将来的に専門スタッフにプロセスを理解してもらう必要があることに留意することが重要です。このトレーニングで取り上げる演習問題では、1 つのプロセスの導入に焦点を当てます。ただし、API 呼出をアウトソースして、独自のエラー処理を含むプロセスを分離することができます。
- インテグレーションフローを少しずつ構築します。
インテグレーションフローの開発方法はユースケースに応じてさまざまです。実際の演習問題では、API 呼出から開始することをお奨めします。接続が確立されると、必要な入力/出力の決定が容易になります。XI または PI とその XI メッセージプロトコルとは異なり、Cloud Integration には内部書式がありません。そのため、必要な内部書式および変換を考慮することが重要です。各インテグレーションフローコンポーネントのヘルプセクションを使用して、適切な設定を調べることができます。このプロセスについては、このコースで説明する演習問題でも説明します。コンポーネントを設定したら、出力が想定どおりであることをデバッグおよび検証する必要があります。通常、インテグレーションフローをテストする方法は 2 つあります。
具体的には以下のとおりです。
- インテグレーションフローのシミュレーション。
- 実際のデプロイメントとデバッグでテストします。演習問題では、このアプローチを使用します。
これらのトピックについては、このコースの後半で詳しく説明します。
- ステップを繰り返します。
インテグレーションフローが意図したとおりに機能するまで、ステップを反復します。
- 次に来ること:
プロセスをテストします。さまざまなテスト手順については、後続のトピックで詳しく説明します。テストが成功すると、インテグレーションフローが本稼働サブアカウントに移送されます。予期しないイベントに対応するためのアラート管理の処理または実装の継続的な監視は管理者の責任であり、ここでは個別に対処しません。
インテグレーションフローのバージョン管理
必要に応じて、以前のバージョンに戻すことができるように、開発状態を定期的にバージョン管理することが重要です。
バージョンインテグレーションフローの手順:
- 編集可能なインテグレーションフローから開始します。
- 右上のバージョンとして保存ボタンを選択します。
- 意味のあるコメントを入力します。
演習問題では、このアプローチを使用します。
旧バージョンへの切替手順:
- パッケージから開始します。
- 利用可能なアーティファクトの一覧で、該当するアーティファクト (インテグレーションフロー) をマークします。
- バージョン列に移動します。
- バージョン番号を選択します。
- 旧バージョンを選択します。
- シンボルを選択して、前のバージョンに戻します。



インテグレーションフローの実際のデプロイメントおよびデバッグによる開発者テスト
インテグレーションフローを調べる前に、監視環境にデプロイする必要があります。グラフィックモデルが Java アプリケーションに変換され、ランタイムに配置されるため、インテグレーションフローを開始できるようになります。デプロイメントが成功すると、タイマーイベントが使用された場合にインテグレーションフローが即時に実行されるか、または受信メッセージが待機します。Cloud Integration では、各インテグレーションフローコンポーネントの処理に関するインサイトをもたらすトレースログレベルが提供されます。
開発者テストを実行するには、以下のステップを順番に実行する必要があります。
- インテグレーションフローから開始します。
- Deploy ボタンを選択します。
- インテグレーションフローのスイムレーン外にあるスペース内のスポットを選択します。
- Integration Flow 設定領域で Deployment Status を選択します。
- インテグレーションフローが正常にデプロイされると、Navigate to Manage Integration Content リンクが表示されます。
- このリンクを選択して、Monitor Artifacts→Overview→Manage Integration Content にジャンプします。
- ログレベルを trace に変更します。
- タイマー開始イベントを使用する場合は、再度デプロイします。それ以外の場合は、エンドポイントにメッセージを送信します。
- 再度デプロイする場合は、Monitor Artifacts→Overview→Manage Integration Content に戻ります。
- ここで、Monitor Message Processing リンクを選択します。
- 新しいウィンドウで、Monitor Artifacts→Overview→Monitor Message Processing を選択します。メッセージ一覧の最後のメッセージを選択します。
- Trace リンクを選択して、Monitor Artifacts→Overview→Monitor Message Processing→Message Processing Run に直接ジャンプします。
- フローのトレースを探索します。

演習問題では、このアプローチを使用します。
インテグレーションフローおよびコンポーネントのシミュレーションを使用した開発者テスト
個別の部分またはインテグレーションフロー全体のシミュレーションは、値がコンテンツモディファイアで正しく設定されているかどうか、またはスクリプトまたはマッピングが想定どおりに実行されているかどうかを確認するのに役立ちます。ただし、すべてのインテグレーションフローコンポーネントがシミュレーションでサポートされているわけではありません。
以下は、サポートされているインテグレーションフローコンポーネントの一覧です。インテグレーションフローのシミュレーション
例
DeDelayedDelivery_Process では、シミュレーションを通じて、ProductID が Modify_setProductIDAsProperty で正しく設定されているかどうかを確認する必要があります。
シミュレーションを使用して開発者テストを実行するには、以下のステップを順番に実行する必要があります。
- Splitter_iterateOverProducts コンポーネントの前の行の位置を選択します。
- コンテキストメニューから開始ポイントを設定します。
- 入力メッセージをペイロード (コンテンツ) として追加します。
- Modify_setProductIDAsProperty コンポーネントの後の行を選択します。
- シミュレーションの終了ポイントを設定します。
- シミュレーションナビゲーションバーが有効になります。
- ナビゲーションバーの Start ボタンを使用して、シミュレーションを開始します。
- 開始ポイントと終了ポイントの間のすべてのエンベロープを選択して、結果を探索します。
- テスト後、ナビゲーションバーの Clear ボタンを選択します。








まとめ
インテグレーションフローの作成には、リモートクラウド統合アプリケーションでのグラフィックエディタの使用が含まれます。個別の部分またはインテグレーションフロー全体でシミュレーションを実行し、コンテンツモディファイア、スクリプト、またはマッピングで値が適切に設定されていることを確認することができます。完成したインテグレーションフローはバージョン管理されてデプロイされ、それに伴ってランタイムで Java アプリケーションが登録およびデプロイされます。その後、インテグレーションフローを実行することができます。開発プロセスは、コンポーネントの配置と設定、トレースログレベルを使用したデバッグ、および必要な結果が達成されるまでテストが繰り返されるサイクルとしてアプローチすることができます。