クラウド フローの開発と使用方法

Microsoft Power Platform は一連の変換を調整し、SAP ERP (エンタープライズ リソース プランニング) コネクタ を使用する、事前構成されたクラウド フローのポートフォリオを通じて SAP と統合します。

キャンバス アプリから管理される各 SAP オブジェクトは、一連の 検索作成読み取り更新 フローにマッピングされます。 例として、ベンダーのオブジェクトに対して 4 つのクラウドフローが存在します:

  • ReadVendor: ベンダー番号とキー関連情報に基づいて単一ベンダーを読み取ります。
  • ReadVendorList: 渡された検索基準に基づいてベンダーのリストを検索します。
  • CreateVendor: キー関連情報を含む新しいベンダー オブジェクトを作成します。
  • UpdateVendor: 既存のベンダー オブジェクトとキー関連情報を更新します。

クラウド フローの拡張

クラウド フローは、地域のビジネス要件に応じて拡張することができます。 SAP ビジネス アナリストの助けを借りて、SAP ERP コネクタに新しいフィールドを追加してマッピングし、JSON ペイロードを通じてアプリと行き来できます。

新しい購入要求を作成すると、キャンバス アプリ、クラウド フロー、SAP 間の一般的なトランザクション シナリオが提供されます。

  1. SAP Requisition Management アプリは、入力コントロールと保存されたアイテムコレクションのデータを使用して JSON を作成し、NULL 値を空文字列に置き換えます。

         Set(
            varRequisitionJSON,//Build the requisition JSON
            "{Header: " & JSON(//Build the requisition header JSON
                {
                    PurchaseRequisitionNumber: varRequisition,
                    Vendor: Trim(txtRequisitionDetailsVendor.Text),
                    PurchasingOrganization: cmbRequisitionDetailsPurchasingOrg.Selected.'Value Code',
                    PurchasingGroup: cmbRequisitionDetailsPurchasingGroup.Selected.'Value Code',
                    Currency: cmbRequisitionDetailsCurrency.Selected.'Value Code'
                },
                JSONFormat.IndentFour
            ) & ", items: " & JSON(//Build the requisition items JSON from cached collection
                colRequisitionItems,
                JSONFormat.IndentFour
            ) & "}"
        );    
        Set(
            varRequisitionJSON,
            Substitute(
                varRequisitionJSON,
                "null",
                """"""
            )
        );
    
  2. アプリは、Run 関数を使用して埋め込み CreateRequisition フローを呼び出し、以前に構築された JSON 文字列を渡します。

            Set(
                varRequisitionReturn,
                CreateRequisition.Run(varRequisitionJSON)
            );
    
  3. CreateRequisition フローは、 PowerApps(V2) トリガーを介してアプリから JSON 文字列を受け取り、JSON の解析 アクションを使用して分解します。

  4. 変数 は、SAP ERP コネクタ呼び出しへのマッピングを容易にするために、JSON 情報を使用して設定されます。

  5. SAP セッションは SAP ERP コネクタ を使用して作成され、変数に格納されている解析された要求 JSON 情報を使用してビジネス アプリケーション プログラミング インターフェイス (BAPI) 呼び出しが行われます。

  6. SAP で生成されたエラーが評価され、成功またはエラー HTTP レスポンス が JSON ペイロードを使用してキャンバス アプリに返されます。

  7. キャンバス アプリは、応答情報、特に Status フィールドを使用して、エンド ユーザーに成功または失敗を通知し、次の処理ステップを決定します。

    Switch(
        varRequisitionReturn.Status,
        "Error",//Raise error messages leaving variables in existing state for user to try again
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Error
        ),
        "Success",//Raise success message
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Success
    );

詳細情報:

多言語展開をサポートする

既定では、SAP ERP コネクタ はユーザーのブラウザー言語を呼び出して SAP と通信するため、対応する SAP 言語パックをインストールする必要があります。

ただし、複数言語およびグローバル展開をサポートする必要がある場合は、ユーザーのブラウザ言語をオーバーライドして、特定の言語を既定にすることができます。 たとえば、ブラウザ言語をスペイン語に設定しているスペインの Power Apps ユーザーは、英語 (EN) 言語パックのみがインストールされている SAP システムとやり取りが必要となる場合があります。 この場合、エラーを回避するために、SAP 接続文字列内の Language プロパティの一部として、2 文字の ENISO 639-1 コードを渡します。

チップ

ソリューション管理およびクラウド フロー拡張戦略の一環として 環境変数を構成 し、さまざまな SAP ERP コネクタ アクション に渡す言語値を一元的に保存します。

詳細情報: SAP システムプロパティのガイダンス

エラー処理

各フローは、スコープ操作の Try/Catch のペアで設計されています。 Try 操作内には、主要な SAP コネクタ呼び出しがあります。 各呼び出しの後、フローは SAP ERP コネクタのステップに致命的な障害が発生したか、または ABAP (Advanced Business Application Programming) コア ダンプ と呼ばれるものが発生したかをチェックします。 存在する場合、フローは生成されたエラー メッセージをキャプチャします。

このエラーメッセージは、フローのその実行中に発生したすべてのエラーとともに、Catch 操作の ErrorTable ステップに表示されます。

すべてのエラー フローは、SAP ソリューション テンプレートのエラー テーブルに記録されます。 各フロー エラーには、フローによって生成された最初のエラー メッセージとその他の情報が表示されます。

表示されるエラーを確認するには、エラーの監視 の記事で説明されているように、SAP 管理者 アプリにアクセスします。

次のステップ

モデル駆動型アプリと Dataverse を拡張する

参照

SAP Procurement テンプレートを使い始める