次の方法で共有


Azure Logic Apps のワークフローから SAP に接続します。

適用対象: Azure Logic Apps (従量課金 + Standard)

このマルチパートのハウツー ガイドでは、SAP コネクタを使用して Azure Logic Apps のワークフローから SAP サーバーにアクセスする方法を示します。 SAP コネクタの操作を使って、SAP サーバーまたは他のシステムのイベントでトリガーされたときに実行される自動ワークフローを作成し、SAP サーバー上のリソースを管理するアクションを実行することができます。

Standard ロジック アプリとコンシュームション ロジック アプリワークフローの両方において、マルチテナント Azure にホストされて実行される SAP マネージド コネクタが提供されます。 標準ワークフローでは、シングルテナントの Azure Logic Apps でホストおよび実行される SAP 組み込み コネクタも提供されます。 詳細については、コネクタの技術リファレンスを参照してください。

このガイドでは、SAP サポート ノートとナレッジ ベースの記事に関する SAP Web サイトへのリンクを共有します。 ほとんどの場合、完全なコンテンツにアクセスするにはサインインする必要があります。

SAP 互換性

SAP コネクタは、次の種類の SAP システムと互換性があります。

  • オンプレミスおよびクラウドベースの HANA ベースの SAP システム (S/4 HANA など)。

  • 従来のオンプレミスの SAP システム (R/3 や ECC など)。

SAP は、接続する SAP システムのバージョンをサポートしている必要があります。 そうしないと、発生する可能性のある問題が解決できない可能性があります。 SAP システムのバージョンとメンテナンス情報の詳細については、 SAP 製品可用性マトリックス (PAM) を参照してください。

SAP コネクタでは、SAP NetWeaver ベースのシステムの、次のメッセージとデータ統合の種類がサポートされています。

  • 中間ドキュメント (IDoc)

  • ビジネス アプリケーション プログラミング インターフェイス (BAPI)

  • Remote Function Call (RFC) と Transactional RFC (tRFC)

SAP コネクタでは、SAP .NET Connector (NCo) ライブラリが使用されています。

SAP コネクタの操作を使用するには、まず接続を認証する必要があり、次のオプションがあります。

SNC は、SAP NetWeaver シングル サインオン (SSO)、または外部製品のセキュリティ機能に使用できます。 SNC を使用する場合は、 SNC の前提条件を参照してください。

コネクタに関するテクニカル リファレンス

SAP コネクタには、ロジック アプリの種類とホスト環境に基づいてさまざまなバージョンがあります。

ロジック アプリ 環境 コネクタのバージョン
従量課金プラン マルチテナント Azure Logic Apps マネージド コネクタ。コネクタ ギャラリーの 共有 フィルターの下に表示されます。 詳細については、次のドキュメントを確認してください。

- SAP マネージド コネクタのリファレンス
- Azure Logic Apps のマネージド コネクタ
標準 シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) マネージド コネクタは、コネクタ ギャラリーの ランタイム>共有 に表示され、組み込みコネクタは 組み込み フィルターの下にあるコネクタ ギャラリーに表示され、サービス プロバイダー ベースです。 組み込みコネクタは、オンプレミス データ ゲートウェイなしで接続文字列を使用して Azure 仮想ネットワークに直接アクセスできます。 詳細については、次のドキュメントを確認してください。

- SAP マネージド コネクタのリファレンス
- SAP 組み込みコネクタのリファレンス

- Azure Logic Apps のマネージド コネクタ
- Azure Logic Apps の組み込みコネクタ

コネクタの相違点

SAP 組み込みコネクタは、次の点で SAP マネージド コネクタと大きく異なります。

  • オンプレミス接続では、オンプレミス データ ゲートウェイは必要ありません。

    代わりに、SAP 組み込みコネクタは統合仮想ネットワーク内の SAP サーバーと直接通信するため、ネットワーク ゲートウェイのホップ、待機時間、障害ポイントを回避できます。 ロジック アプリ ワークフロー アプリケーションを使用して、再頒布不可能な SAP クライアント ライブラリをアップロードまたはデプロイしてください。 詳細については、このガイドの前提条件を参照してください。

  • Standard ロジック アプリ ワークフローでは、SAP NCo 3.0 バージョンではなく、SAP NCo 3.1 クライアント ライブラリが必要であり、使用されます。 詳細については、「前提条件」を参照してください。

  • 既定では、SAP 組み込みコネクタの操作はステートレスです。 ただし、 これらの操作に対してステートフル モード (アフィニティ) を有効にすることができます。

    ステートフル モードでは、SAP 組み込みコネクタは高可用性と水平方向のスケールアウト構成をサポートします。 これに対し、SAP マネージド コネクタには、オンプレミス データ ゲートウェイに関する制約があり、トリガーは 1 つのインスタンスに制限され、アクションはフェールオーバー モードでのみクラスターに制限されます。 詳細については、「SAP マネージド コネクタ - 既知の問題と制限事項」を参照してください。

  • 最大 100 MB のペイロード サイズがサポートされているため、大きな要求に BLOB URI を使用する必要はありません。

  • 特定のアクションを、 BAPI の呼び出しRFC の呼び出し、および IDoc の送信に使用できます。 これらの専用アクションは、ステートフル BAPI、RFC トランザクション、IDoc 重複除去のエクスペリエンスを向上させ、以前の SOAP Windows Communication Foundation (WCF) メッセージング モデルを使用しません。

    BAPI 呼び出しアクションには、返された JSON を含む最大 2 つの応答が含まれます。

    • 呼び出された BAPI からの XML 応答。

    • 自動コミット オプションを有効にした場合の BAPI コミット または BAPI ロールバック応答。

      この機能は、自動コミット動作からの結果がログによってのみサイレントで監視可能である SAP マネージド コネクタの問題に対処します。

  • Standard ロジック アプリ ワークフローでは、パーソナル セキュリティ環境 (PSE) と PSE パスワードを指定できるアプリケーション設定が用意されています。

    この変更により、複数の PSE ファイルをアップロードできなくなります。この操作はサポートされていないため、SAP 接続エラーが発生します。 従量課金ロジック アプリ ワークフローでは、SAP マネージド コネクタを使用すると、接続パラメーターを通じてこれらの値を指定できます。これにより、複数の PSE ファイルをアップロードできましたが、この操作はサポートされていないため、SAP 接続エラーが発生します。

  • SAP マネージド コネクタと比較して、タイムアウトが長くなります。

    SAP 組み込みコネクタは、共有、グローバル、マルチテナント Azure インフラストラクチャ上で実行される SAP マネージド コネクタとは異なり、Azure Logic Apps ランタイム上でネイティブに実行されます。 この設計上の違いは、Runtime.FlowRunRetryableActionJobCallback.ActionJobExecutionTimeoutfunctionTimeout という名前のhost.json 設定を使用して、Standard ロジック アプリ リソースの既定のタイムアウト値を変更できることを意味します。

    タイムアウト値を調整する機能は、実行時間の長い同期要求に SAP 組み込みコネクタ as-is を使用できることを意味します。 それ以外の場合、これらの要求は、SAP マネージド コネクタで実行時間の長い Webhook ベースの要求に対してアクション パターンを使用する必要があります。これは、同期要求のタイムアウトが 2 分ほど短くなります。

  • guidパラメーターとtId パラメーターを検索する場所

    guidおよびtIdの XML パラメーターは、入力および出力 XML ペイロードでは使用できなくなりました。 代わりに、ワークフロー デザイナーの [パラメーター] タブで、動的な出力式として、パラメーターを明示的な パラメーター として見つけることができます。

  • 空の XML 要素の処理

    • SAP 組み込みコネクタ: 空の XML 要素は、明示的な空の値または既定値を持つ SAP パラメーターとして扱われます。 SAP へのパラメーターの送信を省略するには、入力ペイロードから空の要素を削除するだけです。

    • SAP マネージド コネクタ: 空の XML 要素は、不足しているパラメーターとして解釈され、SAP 関数に送信されません。

    次の SAP RFC 入力ペイロードがあるとします。

    <RfcName>
       <Parameter></Parameter>
    </RfcName>
    
    • SAP 組み込みコネクタでは、SAP RFC 呼び出しには、明示的な空の値 ('') としてパラメーターが含まれています。

    • SAP マネージド コネクタでは、SAP RFC 呼び出しによってパラメーターが完全に省略されます。

  • 空白文字のトリミング

    SAP 組み込みコネクタは、XML 要素の空白文字を自動的にトリミングします。

    たとえば、次の入力があるとします。

    <RfcName>
       <Parameter>   </Parameter>
    </RfcName>
    

    SAP RFC 関数呼び出しでは、 Parameter 値の空白は空の文字列 ('') として扱われ、トリミングされます。 呼び出しがペイロードで指定されたとおりに空白を保持するようにするには、W3C 仕様 xml:space="preserve"に準拠する要素に属性を含めます。次に例を示します。

    <RfcName>
       <Parameter xml:space="preserve">   </Parameter>
    </RfcName>
    
  • IDoc 形式の検証

    • SAP 組み込みコネクタ: アクション入力で指定された IDoc Format に対して入力ペイロードを厳密に検証します。 指定された IDoc Format と入力 XML IDoc 構造体の間に不一致が存在する場合、組み込みコネクタはエラーをスローします。

    • SAP マネージド コネクタ: 入力ペイロードから IDoc 形式を直接推論するため、正確に一致する形式を必要としないことで柔軟性を高めます。

  • BizTalk XML グループ セグメントの処理

    • SAP 組み込みコネクタ: スキーマ ジェネレーターによって定義されたスキーマに厳密に従います。

      • GRP (グループ セグメント) で終わるセグメントは、インスタンスごとに 1 回だけ子セグメントを定義する必要があります。

      • 子セグメントの複数のセットを表すには、グループ セグメントの複数のインスタンスを作成して、各インスタンスに個別の子セグメントのセットが含まれるようにします。

    • SAP マネージド コネクタ: 1 つのグループ セグメント内で子要素を複数回繰り返すことができます。 これらの繰り返しは、グループ セグメントの複数のインスタンスとして解釈されます。

    動作の例

    次の構造では、1 つのグループ セグメントが複数の子要素のシーケンスを定義します。これは、SAP 組み込みコネクタによって拒否されます。

    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>FD</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>CRSD</ns2:TDLINE>
       </ns2:E2EDKT2001>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>DTP</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE>
          <ns2:TDFORMAT>/</ns2:TDFORMAT>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    

    代わりに、SAP 組み込みコネクタに対して次の構造を使用します。各 E2EDKT1002GRP グループ インスタンスに含まれる子セグメントのシーケンスは 1 つだけです。

    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>FD</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>CRSD</ns2:TDLINE>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>DTP</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE>
          <ns2:TDFORMAT>/</ns2:TDFORMAT>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    
  • 組み込みのトリガー ビヘイビアー

    • 名前空間の構築

      トリガーは、IDoc (BizTalk XML またはプレーン XML) を解析する前に取得される IDoc メタデータのリリース バージョン番号を使用して、SAP トリガー ペイロード内の名前空間を構築します。 このソースをオーバーライドし、代わりにコントロール レコードのリリース バージョン番号を使用するには、ワークフロー デザイナーに移動し、トリガー入力パラメーターで EnforceControlRecordNamespace プロパティを true に設定します。

    • 空の要素の処理

      既定では、SAP トリガーには出力ペイロードに空の要素は含まれません。 トリガー出力に空の要素を含めるには、ワークフロー デザイナーに移動し、トリガー入力パラメーターで EnableEmptyXmlNode プロパティを true に設定します。

  • 組み込みの スキーマ生成 アクション

    • SapActionUris パラメーターとファイル システム ピッカー エクスペリエンスを使用する SAP マネージド コネクタの同じアクションに対して、BAPI、IDoc、RFC、tRFC などの複数の操作の種類から選択できます。

    • パラメーター名は、カスタム値として直接指定できます。 たとえば、RFC の呼び出しアクションから [RFC 名] パラメーターを指定できます。 これに対し、SAP マネージド コネクタでは、複雑な アクション URI パラメーター名を指定する必要があります。

    • 設計上、このアクションでは、SAP マネージド コネクタがサポートする、単一アクションの実行での RFC、BAPI、または IDoc の複数スキーマの生成はサポートされていません。 この機能の変更により、1 回の呼び出しで大量のコンテンツを送信しようとするのを防ぐことができるようになりました。

コネクタのパラメーター

SAP コネクタは、単純な文字列と数値の入力と共に、次のテーブル パラメーター (Type=ITAB 入力) を受け取ります。

  • 以前の SAP リリースのテーブル方向パラメーター (入力と出力の両方)。
  • パラメーターの変更により、新しい SAP リリースのテーブル方向パラメーターが置き換えられます。
  • 階層テーブル パラメーター。

既知の問題と制限事項

SAP マネージド コネクタ

  • 現在、SAP コネクタは SAP ルーター文字列をサポートしていない。 オンプレミス データ ゲートウェイは、接続する SAP システムにゲートウェイが直接到達できる仮想ネットワーク上に存在する必要があります。

  • 一般に、SAP トリガーでデータ ゲートウェイ クラスターがサポートされない。 フェールオーバーで、SAP システムと通信するデータ ゲートウェイ ノードがアクティブなノードと異なる場合があり、結果として、予想外の動作が発生します。

    • メッセージ送信シナリオの場合、フェールオーバー モードのデータ ゲートウェイ クラスターがサポートされます。

    • ステートフル SAP アクションでは、負荷分散モードのデータ ゲートウェイ クラスターはサポートされません。 ステートフル通信は、同じデータ ゲートウェイ クラスター ノードに保持する必要があります。 データ ゲートウェイは、非クラスター モードで使用するか、フェールオーバー専用に設定されたクラスターで使用します。 たとえば、このシナリオは次のアクションに適用されます。

      • セッション ID 値を指定するすべてのアクション
      • [BAPI] トランザクションのコミット
      • [BAPI] トランザクションのロールバック
      • [BAPI - RFC] ステートフル セッションの終了
      • [BAPI - RFC] ステートフル セッションの作成
  • SAP の [BAPI] Call メソッドという名前のアクションでは、アクションによって返される CallBapiResponse オブジェクトに少なくとも 1 つの警告が存在する場合、自動コミット機能は BAPI の変更をコミットしません。 警告があっても BAPI の変更をコミットするには、次の手順に従います。

    1. [BAPI - RFC] ステートフル セッションの作成というアクションを使用して、セッションを明示的に作成します。
    2. [BAPI] という名前のアクションで、SAP のメソッドを呼び出し自動コミット オプションを無効にします。
    3. 代わりに、[[BAPI] Commit transaction] ([BAPI] トランザクションのコミット) という名前のアクションを呼び出します。

SAP Message Server への IP ベースの接続 (負荷分散構成)

ロード バランサーなどの SAP メッセージ サーバーに接続するために IP アドレスを指定した場合でも、"hostname SAPDBSERVER01.example.com が不明です" のようなエラー メッセージが表示されて接続に失敗することがあります。 メッセージ サーバーは、バックエンドの SAP アプリケーション サーバー、またはロード バランサーの背後にあるサーバーへの接続にホスト名を使用するように SAP コネクタに指示します。 DNS がホスト名を解決できない場合、接続は失敗します。

この問題に対しては、次の回避策やソリューションを使用してください。

  • SAP コネクタ用にオンプレミス データ ゲートウェイを使用するコンピューターなど、接続を行うクライアントが、メッセージ サーバーから返されたホスト名を確実に解決できるようにしてください。

  • RZ11 という名前のトランザクションで、ms/lg_with_hostname=0 という名前の SAP 設定を変更または追加します。

問題のコンテキストまたは背景

SAP では、.NET コネクタ (NCo) がバージョン 3.1 にアップグレードされ、コネクタがメッセージ サーバーからバックエンド サーバーへの接続を要求する方法が変更されました。 コネクタは、 ms/lg_with_hostname=0という名前の設定で以前の API を使用するようにコネクタに強制しない限り、メッセージ サーバーによるアプリケーション サーバー解決に新しい API を使用するようになりました。 詳細については、「SAP KB 記事 3305039 - ログオン グループ ログイン中に SMLG IP 設定が考慮されていません」を参照してください。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • Azure Logic Apps からアクセスする SAP アプリケーション サーバーまたは SAP メッセージ サーバー

    • RFC の使用を許可するように SAP サーバーとユーザー アカウントを設定します。

      サポートされているユーザー アカウントの種類と、各アクションの種類 (RFC、BAPI、IDoc) に必要な最小承認を含む詳細については、 SAP Note: 460089 - 外部 RFC プログラムの最小承認プロファイルを参照してください。

    • SAP ユーザー アカウントでは、次の操作のために、RFC_METADATA 関数グループとそれぞれの汎用モジュールにアクセスする必要があります。

      オペレーション 関数モジュールへのアクセス
      RFC アクション RFC_GROUP_SEARCH および DD_LANGU_TO_ISOLA
      BAPI アクション BAPI_TRANSACTION_COMMITBAPI_TRANSACTION_ROLLBACKRPY_BOR_TREE_INITSWO_QUERY_METHODS、および SWO_QUERY_API_METHODS
      IDoc アクション IDOCTYPES_LIST_WITH_MESSAGESIDOCTYPES_FOR_MESTYPE_READINBOUND_IDOCS_FOR_TIDOUTBOUND_IDOCS_FOR_TIDGET_STATUS_FROM_IDOCNRIDOC_RECORD_READ
      SAP テーブルの読み取りアクション RFC BBP_RFC_READ_TABLE または RFC_READ_TABLE のいずれか
      SAP 接続用に SAP サーバーへの厳密な最小限アクセス許可の付与 RFC_METADATA_GET および RFC_METADATA_GET_TIMESTAMP
  • SAP サーバーにアクセスするロジック アプリ ワークフロー。

  • 既定では、SAP 組み込みコネクタの操作はステートレスです。 ステートフル モードでこれらの操作を実行するには、「ステートレス組み込みコネクタのステートフル モードを有効にする」を参照してください。

    ステートフル通信は、処理中に同じワークフロー インスタンスにとどまる必要があります。 Standard ロジック アプリでは、 スケールアウト を使用して、必要に応じて複数のワークフロー インスタンスにワークロードを分散できます。 この要件は、次の種類の操作に適用されます。

    • [BAPI] コミット トランザクションなど、セッション ID 値を指定するすべてのアクション。

    • トランザクション ID 値を指定するすべてのアクション ([IDOC - RFC] トランザクション ID の確認[IDoc] トランザクションの IDoc リストの取得) を除きます。

    • SAP サーバーへの応答

  • [When a message is received from SAP] (SAP からのメッセージの受信時) という名前の SAP マネージド コネクタ トリガーまたは SAP 組み込みトリガーを使用するには、次のタスクを実行してください。

    • SAP ゲートウェイのセキュリティ アクセス許可またはアクセス制御リスト (ACL) を設定します。 secinfo および reginfo ファイルが表示されている [ゲートウェイ モニター] (T-Code SMGW) ダアログ ボックスで、[移動] メニューを開き、[専門機能]>[外部セキュリティ]>[ACL ファイルのメンテナンス] を選択します。

      次のアクセス許可設定が必要です。

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      この行の形式は次のとおりです。

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      SAP ゲートウェイのセキュリティ アクセス許可を構成しない場合は、次のエラーが発生する可能性があります。

      ホスト <ホスト名> からの tp Microsoft.PowerBI.EnterpriseGateway の登録は許可されていません

      詳細については、「 SAP KB Article 1850230 - GW: tp <program ID の登録> 許可されていません」を参照してください。

    • アクセス制御リスト (ACL) の問題を検索するために、SAP ゲートウェイのセキュリティ ログを設定します。 詳細については、 ゲートウェイ ログの設定に関する SAP ヘルプ記事を参照してください。

    • [Configuration of RFC Connections (RFC 接続の構成)] (T コード SM59) ダイアログ ボックスで、TCP/IP タイプの RFC 接続を作成します。 [アクティブ化の種類][登録済みサーバーのプログラム] に設定されていることを確認します。 RFC 接続の [Communication Type with Target System (対象システムとの通信タイプ)] の値を Unicode に設定します。

    • このSAP トリガーの IDOC Format パラメーターを FlatFile に設定して Flat File Decode action と一緒に使用する場合、フラット ファイル スキーマの early_terminate_optional_fields プロパティを true に設定する必要があります。

      tRFC 呼び出し IDOC_INBOUND_ASYNCHRONOUS で SAP によって送信されたフラット ファイル IDoc データ レコードが、完全な SDATA フィールド長に埋め込まれていないため、この要件が必要です。 Azure Logic Apps では、SAP から受信したままの、パディングされていないフラット ファイル IDoc の元のデータが提供されます。 また、この SAP トリガーを フラット ファイル デコード アクションと組み合わせる場合は、アクションに指定されたスキーマが一致する必要があります。

    • 従量課金ワークフローと Standard ワークフローでは、[When a message is received ] (メッセージを受信したとき) という名前の SAP マネージド トリガーは、同じ URI の場所を使用して、Webhook サブスクリプションの更新と登録解除の両方を行います。 更新操作では HTTP PATCH メソッドを使用し、登録解除操作では HTTP DELETE メソッドを使用します。 この動作により、トリガーの履歴に更新操作が登録解除操作として表示される場合がありますが、トリガーでは HTTP メソッドとして PATCH ではなく DELETE を使用しているため、その操作は更新になります。

      Standard ワークフローの [When a message is received ] (メッセージを受信したとき) という名前の SAP 組み込みトリガーでは、代わりに Azure Functions トリガーが使用され、SAP からの実際のコールバックのみが表示されます。

    • メッセージを受信したときにという名前の SAP 組み込みコネクタ トリガーの場合は、「Azure Logic Apps のステートレス組み込みコネクタのステートフル モードを有効にする」の手順に従って、仮想ネットワーク統合とプライベート ポートを有効にする必要があります。 そうしないと、これらの要件がない場合、[ SAP サーバーに応答する ] という名前のアクションに、適切に動作するために必要な状態が不足している可能性があります。

      トリガーをローカルで起動するには、Visual Studio Code でワークフローを実行します。 Visual Studio Code のセットアップ要件と詳細については、「 Visual Studio Code を使用して Azure Logic Apps で標準ワークフローを作成する」を参照してください。 また、Visual Studio Code をインストールするコンピューターに次の環境変数を設定する必要があります。

    • WEBSITE_PRIVATE_IP: この環境変数の値を localhost アドレスとして 127.0.0.1 に設定します。
    • WEBSITE_PRIVATE_PORTS: この環境変数の値を、ローカル コンピューターの、空いていて使用可能な 2 つのポートに設定し、値をコンマ (,) で区切ります (例: 8080,8088)。
  • SAP サーバーに送信するメッセージの内容 (サンプル IDoc ファイルなど)。 この内容は XML 形式とし、使用する SAP アクションの名前空間を含める必要があります。 XML エンベロープにラップすることによって、フラット ファイル スキーマを持つ IDoc を送信することができます。

  • ロジック アプリのワークフローから SAP に IDoc を送信するシナリオの場合は、SAP 処理モードを既定の [Trigger immediately] 設定から [Trigger by background program] に変更して、ワークフローがタイムアウトしないようにします。

    SAP システムの負荷が高い場合、キューに登録された IDoc はタイムアウトを呼び出します。シナリオの例として、ワークフローが一度に IDoc のバッチを SAP に送信する場合があります。 既定の処理モードでは、IDoc の処理が完了するまで、SAP システムは IDoc 転送の受信呼び出しをブロックします。 Azure Logic Apps では、ワークフロー アクションのタイムアウトは既定で 2 分です。

    SAP システムの処理モードを変更するには、次の手順を実行します。

    1. SAP で、SAP パートナー プロファイルを見つけて、[Partner profiles] 設定を開きます。 we20 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

    2. [Inbound options] タブの [Processing by Function Module] で、設定を [Trigger immediately] から [Trigger by background program] に変更します。

      [Trigger by background program] 設定を選択すると、IDoc の処理が完了するまで接続をブロックするのではなく、基になる IDoc トランスポート tRFC 呼び出し IDOC_INBOUND_ASYNCHRONOUS を直ちに完了できるようになります。 ただし、この設定は、IDoc に簡易動作上書きセグメントが含まれていない場合にのみ機能します。 SAP KB Article 1777090 - WE20 で [バックグラウンド プログラムによってトリガー] オプションが選択されているにもかかわらず、IDoc は直ちに処理されます

    詳細については、次のリソースを参照してください。

ネットワーク接続の前提条件

SAP システムには、SAP .NET Connector (NCo) ライブラリのホストからのネットワーク接続が必要です。

  • マルチテナント Azure Logic Apps の従量課金ロジック アプリ ワークフローの場合、SAP .NET Connector (NCo) ライブラリはオンプレミス データ ゲートウェイでホストされます。 オンプレミス データ ゲートウェイ クラスターを使用する場合は、クラスターのすべてのノードで SAP システムへのネットワーク接続を必要とします。

  • シングルテナント Azure Logic Apps の Standard ロジック アプリ ワークフローの場合、ロジック アプリ リソースが SAP .NET Connector (NCo) ライブラリをホストします。 そのため、ロジック アプリ リソース自体で仮想ネットワーク統合を有効にし、その仮想ネットワークが SAP システムにネットワーク接続されている必要があります。

SAP システムに必要なネットワーク接続には、次のサーバーとサービスが含まれています。

  • SAP アプリケーション サーバー、ディスパッチャー サービス (すべてのログオンの種類用)

    SAP システムには、複数の SAP アプリケーション サーバーを含めることができます。 SAP .NET Connector (NCo) ライブラリのホストは、各サーバーとそのサービスへのアクセスを必要とします。

  • SAP メッセージ サーバー、メッセージ サービス (ログオンの種類のグループ)

    メッセージ サーバーとサービスは、1 つまたは複数のアプリケーション サーバーのディスパッチャー サービスにリダイレクトされます。 SAP .NET Connector (NCo) ライブラリのホストは、各サーバーとそのサービスへのアクセスを必要とします。

  • SAP ゲートウェイ サーバー、ゲートウェイ サービス

  • SAP ゲートウェイサーバー、ゲートウェイで保護されたサービス

    SAP システムに必要なネットワーク接続には、セキュア ネットワーク通信 (SNC) と共に使用する、このサーバーとサービスも含まれます。

アプリケーション サーバー、ディスパッチャー サービスからゲートウェイ サーバー、ゲートウェイ サービスへの要求のリダイレクトは、SAP .NET Connector (NCo) ライブラリ内で自動的に行われます。 このリダイレクトは、アプリケーション サーバー、ディスパッチャー サービス情報のみが接続パラメーターに指定されている場合でも発生します。

SAP システムの前でロード バランサーを使用する場合は、すべてのサービスをそれぞれのサーバーにリダイレクトする必要があります。

SAP サービスとポートの詳細については、 すべての SAP 製品の TCP/IP ポートを参照してください。

SAP .NET Connector (NCo) ライブラリのホストからのネットワーク接続が有効になっていること、および必要なポートがファイアウォールとネットワーク セキュリティ グループで開かれていることを確認してください。 そうしないと、NI (ネットワーク インターフェイス) コンポーネントから "パートナーに到達できない" などのエラーが発生し、"WSAECONNREFUSED: 接続が拒否された" などのエラー テキストが表示されます。

SAP NCo クライアント ライブラリの前提条件

SAP コネクタを使用するには、Microsoft .NET 3.1 用 SAP コネクタ NCo クライアント ライブラリをインストールする必要があります。 次の一覧では、SAP コネクタを使用するワークフローに基づいて、SAP NCo クライアント ライブラリの前提条件について説明します。

  • バージョン:

    • オンプレミス データ ゲートウェイを使用する従量課金ロジック アプリ ワークフローの場合は、最新の 64 ビット バージョンである Sap Connector for Microsoft .NET 3.1.3.0 for Windows 64 ビット (x64) をインストールしてください。 データ ゲートウェイは 64 ビット システムでのみ動作します。 サポートされていない 32 ビット版をインストールすると、"イメージが無効" のエラーが発生します。

    • Standard ロジック アプリ ワークフローの場合は、.NET Framework 4.6.2 でコンパイルされた Microsoft .NET 3.1.3.0 用の SAP Connector (NCo 3.1) の最新の 64 ビットまたは 32 ビット バージョンをインストールできます。 ただし、Standard ロジック アプリ リソースの構成と一致するバージョンをインストールしてください。 ロジック アプリで使用されているバージョンを確認するには、次の手順に従います。

      1. Azure portal で、Standard ロジック アプリ リソースを開きます。

      2. ロジック アプリのリソース メニューの [設定] で、[構成] を選択します。

      3. [構成] ページで、[全般設定] タブを選びます。[プラットフォームの設定] で、[プラットフォーム] の値が [64 ビット][32 ビット] のどちらに設定されているか調べます。

      4. .NET Framework 4.6.2 でコンパイルされた Microsoft .NET 3.1.3.0 用 SAP コネクタ (NCo 3.1) の、お使いのプラットフォーム構成に適合するバージョンを必ずインストールしてください。

  • クライアント ライブラリの既定のインストール フォルダーから、自身のシナリオに応じて、次のようにアセンブリ (.dll) ファイルを別の場所にコピーします。 または、必要に応じて、SAP マネージド コネクタのみを使用する場合は、SAP NCo クライアント ライブラリをインストールするときに、[ グローバル アセンブリ キャッシュの登録] を選択します。 現在、SAP 組み込みコネクタで GAC 登録はサポートされていません。

    • マルチテナント Azure Logic Apps で実行し、オンプレミス データ ゲートウェイを使う従量課金ワークフローの場合は、以下のアセンブリ (.dll) ファイルを、オンプレミス データ ゲートウェイのインストール フォルダー (例: C:\Program Files\On-Premises Data Gateway) にコピーします。 SAP NCo 3.0 クライアント ライブラリには、これらのアセンブリが含まれています。

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      必ずアセンブリ ファイルをデータ ゲートウェイの "インストール フォルダー" にコピーしてください。 そうしないと、SAP 接続が "アカウント情報またはアクセス許可をチェックしてから、もう一度お試しください" というエラー メッセージで失敗する場合があります。 .NET アセンブリ バインド ログ ビューアーを使用して、その他の問題のトラブルシューティングを行うことができます。 このツールを使用すると、アセンブリ ファイルが正しい場所にあるかどうかを確認できます。

    • Standard ワークフローの場合は、次のアセンブリ (.dll) ファイルを、Azure portal のロジック アプリ リソースまたは Visual Studio Code のローカル ロジック アプリ プロジェクトにアップロードできる場所にコピーします。 SAP NCo 3.1 クライアント ライブラリには、これらのアセンブリが含まれています。

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

SAP NCo クライアント ライブラリ、.NET Framework、.NET ランタイム、データ ゲートウェイの間には次の関係が存在します。

  • Microsoft SAP アダプターとゲートウェイ ホスト サービスでは、どちらも .NET Framework 4.7.2 が使用されます。

  • SAP NCo for .NET Framework 4.0 は、.NET ランタイム 4.0 から 4.8 を使用するプロセスとの組み合わせで正しく動作します。

  • SAP NCo for .NET Framework 2.0 は、.NET ランタイム 2.0 から 3.5 を使用するプロセスで正しく動作しますが、最新のゲートウェイでは動作しなくなりました。

SNC の前提条件

オンプレミス データ ゲートウェイと必要に応じて SNC を使用する、マルチテナント Azure Logic Apps の従量課金ワークフローの場合は、次の設定も構成する必要があります。

  • SNC ライブラリのバージョンとその依存関係が、SAP 環境と互換性があることを確認します。 ライブラリの互換性に関する問題のトラブルシューティングを行うには、オンプレミス データ ゲートウェイとデータ ゲートウェイのログを使用します。

  • SAP NCo 3.0 クライアント ライブラリから、以下のアセンブリ (.dll) ファイルを、オンプレミス データ ゲートウェイのインストール フォルダー (例: C:\Program Files\On-Premises Data Gateway) に確実にコピーします。

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • SAPGENPSE ユーティリティーについては、sapgenpse.exe を明示的に使用する必要があります。

  • 接続に Personal Security Environment (PSE) を提供する場合、オンプレミス データ ゲートウェイ用に PSE と SECUDIR をコピーして設定する必要はありません。

  • sapseculib、Kerberos、NTLM などの外部セキュリティ製品を使用して SNC を有効にする場合は、データ ゲートウェイのインストールと同じコンピューターに SNC ライブラリが存在している必要があります。 このタスクのために、SNC ライブラリのバイナリ ファイルを、データ ゲートウェイがローカル コンピューター上にインストールされている場所と同じフォルダー (C:\Program Files\On-Premises Data Gateway) にコピーします。

    データ ゲートウェイと SNC ライブラリがインストールされているコンピューターでは、SNC_LIBSNC_LIB_64 の環境変数を設定しないでください。 そうしないと、これらの変数が、コネクタを介して渡される SNC ライブラリ値よりも優先されてしまいます。

  • SNC で SSO で使用する場合は、データ ゲートウェイ サービスが、SAP ユーザーにマップされたユーザーとして実行されていることを確認してください。 ゲートウェイ サービス アカウントの既定のアカウントを変更するには、[アカウントの変更] を選択し、ユーザーの資格情報を入力します。

    オンプレミス データ ゲートウェイ インストーラーと [サービス設定] ページを示すスクリーンショット。ゲートウェイ サービス アカウントを変更するためのボタンが選択されています。

SNC の有効化の詳細については、「 セキュリティで保護されたネットワーク通信 (SNC) を有効にする」を参照してください。

Azure Logic Apps 環境の前提条件

マルチテナント Azure Logic Apps の従量課金ワークフローの場合、SAP マネージド コネクタは、オンプレミス データ ゲートウェイを介して SAP システムと統合されます。 たとえば、ワークフローから SAP システムにメッセージが送信されるシナリオでは、データ ゲートウェイが RFC クライアントとして機能し、ワークフローから受信した要求を SAP に転送します。 同様に、ワークフローが SAP からメッセージを受信するシナリオでは、データ ゲートウェイは SAP から要求を受信してワークフローに転送する RFC サーバーとして機能します。

  1. 接続先の SAP システムと同じ仮想ネットワーク内に存在するホスト コンピューターまたは仮想マシンで、オンプレミス データ ゲートウェイをダウンロードしてインストールします

    データ ゲートウェイを使用することで、オンプレミスのデータやリソースに安全にアクセスすることができます。 使用しているゲートウェイが、サポートされているバージョンであることを確認してください。 ゲートウェイに問題が発生した場合は、最新バージョンへのアップグレードを試してみてください。これには、問題を解決する更新プログラムが含まれている可能性があります。

  2. Azure portal で、オンプレミス データ ゲートウェイのインストール用の Azure ゲートウェイ リソースを作成します。

  3. オンプレミス データ ゲートウェイのインストールと同じローカル コンピューターに、最新の SAP NCo クライアント ライブラリをダウンロードしてインストールします

  4. オンプレミス データ ゲートウェイがインストールされているホスト コンピューターについて、ネットワーク ホスト名とサービス名の解決を構成します。

    • Azure Logic Apps からの接続にホスト名またはサービス名を使用するには、各 SAP Application、Message、Gateway サーバーとそのサービス用に名前解決を設定する必要があります。

      • %windir%\System32\drivers\etc\hosts ファイルまたはオンプレミスのデータ ゲートウェイ ホスト コンピューターで使用できる DNS サーバーで、ネットワーク ホスト名の名前解決を設定します。

      • %windir%\System32\drivers\etc\services ファイルで、サービスの名前解決を設定します。

    • 接続にネットワーク ホスト名またはサービス名を使用しない場合は、代わりにホスト IP アドレスとサービス ポート番号を使用できます。

    • SAP システムの DNS エントリをお持ちではない場合、次の例は hosts ファイルのサンプル エントリを示しています。

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      次のリストは、サービス ファイルのエントリのサンプル セットを示しています。

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

Secure Network Communications (SNC) を有効にする

マルチテナント Azure Logic Apps で実行される従量課金ワークフローの場合、認証用に SNC を有効にできます。これは、データ ゲートウェイを使う場合にのみ適用されます。 開始する前に、必要なすべての前提条件SNC の前提条件を満たしていることを確認してください。

SNC の詳細については、「RFC 統合における SAP SNC の概要 - SAP のブログ」を参照してください。

  1. Azure portal で、従量課金ロジック アプリとワークフローをデザイナーで開きます。

  2. SAP マネージド コネクタ操作を追加するか、既存の操作の接続を編集します。

  3. SAP 接続の情報ボックスで、必須情報を指定します。

    現在、[認証の種類] では、 [Basic] のみが使用可能なオプションです。 [SAP ユーザー名][SAP パスワード] フィールドは省略可能です。 ユーザー名とパスワードを指定しない場合、コネクタは、後の手順で提供されるクライアント証明書を認証に使用します。

    従量課金ワークフローの SAP 接続パラメーターを示すスクリーンショット。

  4. SNC を有効にするには、SAP 接続情報ボックスで [SNC の使用] を選択し、対応する 必須情報 を指定します。

    パラメーター 説明
    SNC ライブラリ 次のいずれかの値を入力します。

    - SNC ライブラリの名前 (例: sapsnc.dll)
    - NCo のインストール場所への相対パス (例: .\security\sapsnc.dll)
    - NCo のインストール場所への絶対パス (例: c:\security\sapsnc.dll)
    SNC SSO [Logon using the SNC identity] (SNC ID を使用してログオンする) または [Logon with the username/password provided on RFC level] (RFC レベルで指定されたユーザー名/パスワードでログオンする) を選択します。

    通常、呼び出し元の認証には SNC ID が使用されます。 代わりにユーザー名とパスワードで認証することも選択できますが、このパラメーター値は暗号化されたままです。
    SNC の自分の名前 ほとんどの場合、この値は省略できます。 インストールされている SNC ソリューションは、通常、独自の SNC 名を認識しています。 ソリューションで複数の ID がサポートされている場合は、この特定の宛先またはサーバーに使用する ID を指定する必要がある場合があります。
    SNC パートナー名 バックエンド SNC の名前 (p:CN=DV3, OU=LA, O=MS, C=US など) を入力します。
    保護の SNC 品質 この特定の宛先またはサーバーで SNC 通信に使用するサービスの品質を選びます。 バックエンド システムは既定値を定義します。 SNC に使用されるセキュリティ製品は、最大値を定義します。
    SNC 証明書 クライアントを SAP に識別するために使用する証明書の base64 でエンコードされた公開キーを入力します。

    : 次のガイダンスに従ってください。

    - PEM ヘッダーまたはフッターは含めないでください。

    - クライアント証明書の秘密キーをここに入力しないでください。 個人用セキュリティ環境 (PSE) には、この証明書の一致する秘密キーが含まれている必要があり、他のプライベート証明書が含まれている可能性があります。 詳細については、次のパラメーターを参照してください。
    PSE SNC Personal Security Environment (PSE) を base64 でエンコードされたバイナリとして入力します。

    - PSE には、拇印が SNC 証明書パラメーターのクライアント証明書の公開キーと一致するクライアント証明書の秘密キーが含まれている必要があります。

    - PSE には複数のクライアント証明書が含まれている場合がありますが、異なるクライアント証明書を使用するには、代わりに個別のワークフローを作成します。

    SNC が従量課金ワークフローに対して有効になっている SAP 接続パラメーターを示すスクリーンショット。

  5. 接続の作成を完了するために、[新規作成] を選択します。

    パラメーターが正しい場合は、接続が作成されます。 パラメーターに問題がある場合は、接続の作成ダイアログにエラー メッセージが表示されます。 接続パラメーターの問題をトラブルシューティングするには、オンプレミス データ ゲートウェイのインストールとゲートウェイのローカル ログを使用できます。

バイナリの PSE ファイルを base64 でエンコードされた形式に変換する

  1. 以下のように、PowerShell スクリプトを使用します。

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. スクリプトを pseConvert.ps1 ファイルとして保存してから、スクリプトを呼び出します。次に例を示します。

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    出力パス パラメーターが指定されていない場合、スクリプトのコンソールへの出力には改行が入ります。 接続入力パラメーター用の base64 でエンコードされた文字列では改行を削除してください。

SAP からワークフローへの IDoc の送信を設定してテストする

SAP からロジック アプリ ワークフローに IDoc を送信するには、次の手順に従って、ロジック アプリ ワークフローで SAP 構成を設定し、テストします。 運用環境では他の構成が必要なため、これらの手順はテストにのみ適用されます。

SAP からワークフローに IDoc を送信するには、次の手順に従って最小構成を設定する必要があります。

  1. RFC 宛先を作成します
  2. 高度なビジネス アプリケーション プログラミング (ABAP) 接続を作成します。
  3. 受信側ポートを作成します
  4. 送信側ポートを作成します
  5. 論理システム パートナーを作成します
  6. パートナー プロファイルを作成します
  7. メッセージの送信をテストします

RFC 宛先を作成する

この宛先により、ロジック アプリ ワークフローが受信側ポートとして識別されます。

  1. SAP で、[Configuration of RFC Connections] (RFC 接続の構成) を開きます。 sm59 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [TCP/IP Connections](TCP/IP 接続)>[Create](作成) の順に選択します。

  3. 次の設定を使用して新しい RFC 宛先を作成します。

    1. [RFC Destination] (RFC 宛先) に名前を入力します。

    2. [Technical Settings](技術設定) タブの [Activation Type](アクティブ化の種類) で、 [Registered Server Program](登録済みサーバー プログラム) を選択します。

    3. [Program ID] (プログラム ID) に値を入力します。 SAP サーバーでは、この識別子を使用してワークフローのトリガーが登録されます。

      重要

      SAP のプログラム ID では大文字と小文字が区別されます。 ワークフローと SAP サーバーを構成するときに、プログラム ID に同じ大文字と小文字の形式を一貫して使用していることを確認してください。 そうしないと、IDoc を SAP に送信しようとしたときに、tRFC Monitor (T コード SM58) に次のエラーが表示されることがあります。

      • 関数 IDOC_INBOUND_ASYNCHRONOUS が見つかりません
      • 非 ABAP RFC クライアント (パートナー タイプ) はサポートされていません

      SAP の詳細については、次の注意事項を参照してください。

    4. [Unicode] タブの [Communication Type with Target System](ターゲット システムとの通信の種類) で、 [Unicode] を選択します。

      SAP .NET クライアント ライブラリでは、Unicode 文字エンコードのみをサポートしています。 SAP から Azure Logic Apps に IDoc を送信するときにエラー "Non-ABAP RFC client (partner type) not supported (ABAP 以外の RFC クライアント (パートナー タイプ) はサポートされません)" が発生する場合は、[Communication Type with Target System] (ターゲット システムとの通信の種類) の値が [Unicode] に設定されていることを確認してください。

  4. 変更を保存します。

  5. 新しいプログラム ID を Azure Logic Apps に登録するには、[When a message is received from SAP] (SAP からのメッセージ受信時) という SAP マネージド トリガーで始まるロジック アプリ ワークフローを作成します。

    こうすることで、ワークフローを保存すると、Azure Logic Apps はSAP ゲートウェイにプログラム ID を登録します。

  6. ワークフローのトリガー履歴、オンプレミス データ ゲートウェイの SAP アダプター ログ (該当する場合)、SAP Gateway のトレース ログで、登録状態を確認します。

    SAP Gateway 監視ボックス (T-Code SMGW) の [Logged-On Clients] (ログオン済みクライアント) の下に、[Registered Server] (登録済みサーバー) として新しい登録が表示されます。

  7. 接続をテストするには、新しい RFC 宛先で、[Connection Test] (接続テスト) を選択します。

ABAP 接続を作成する

この宛先は、SAP システムを送信側ポートとして識別します。

  1. SAP で、[Configuration of RFC Connections] (RFC 接続の構成) を開きます。 sm59 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [ABAP Connections](ABAP 接続)>[Create](作成) の順に選択します。

  3. [RFC 転送先] に、テスト用 SAP システムの識別子を入力します。

  4. [Technical Settings] (技術的な設定) で、ターゲット ホストを空のままにして、SAP システムへのローカル接続を作成します。

  5. 変更を保存します。

  6. 接続をテストするには、 [Connection Test](接続テスト) を選択します。

送信側ポートを作成する

  1. SAP で、[Ports In IDOC processing] (IDOC 処理のポート) 設定を開きます。 we21 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [Ports](ポート)>[Transactional RFC](トランザクション RFC)>[Create](作成) の順に選択します。

  3. 表示された設定ボックスで、 [own port name](独自のポート名) を選択します。

  4. テスト ポートについて、SAP で始まる名前を入力します。 変更を保存します。

    送信側ポート名はすべて、SAP という文字で始まる必要があります (例: SAPTEST)。

  5. 新しい送信側ポートの設定で、 [RFC destination](RFC 宛先)ABAP 接続の識別子を入力します。

  6. 変更を保存します。

受信側ポートを作成する

  1. SAP で、[Ports In IDOC processing] (IDOC 処理のポート) 設定を開きます。 we21 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [Ports](ポート)>[Transactional RFC](トランザクション RFC)>[Create](作成) の順に選択します。

  3. 表示された設定ボックスで、 [own port name](独自のポート名) を選択します。 テスト ポートの名前を入力します。 変更を保存します。

  4. 新しい受信側ポートの設定で、 [RFC destination](RFC 宛先)テスト用 RFC 宛先の識別子を入力します。

  5. 変更を保存します。

論理システム パートナーを作成する

  1. SAP で、[Change View "Logical Systems": Overview] (変更ビュー "論理システム": 概要) 設定を開きます。 bd54 トランザクション コード (T コード) を使用できます。

  2. 表示される次の警告メッセージを受け入れます。"Caution: The table is cross-client (注: このテーブルはクロスクライアントです)"

  3. 既存の論理システムを示す一覧の上にある [New Entries](新規エントリ) を選択します。

  4. 新しい論理システムについて、Log.System 識別子と名前の簡単な説明を入力します。 変更を保存します。

  5. [Prompt for Workbench](ワークベンチのプロンプト) が表示されたら、説明を入力して新しい要求を作成します。要求を既に作成している場合は、この手順をスキップします。

  6. ワークベンチ要求を作成したら、その要求をテーブル更新要求にリンクします。 テーブルが更新されたことを確認するために、変更を保存します。

パートナー プロファイルを作成する

運用環境では、次の 2 つのパートナー プロファイルを作成する必要があります。

  • 送信側 (組織と SAP システム) 用のプロファイル。
  • 受信側 (ロジック アプリ リソースとワークフロー) 用のプロファイル。
  1. SAP で、パートナー プロファイルの設定を開きます。 we20 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [Partner Profiles](パートナー プロファイル) で、 [Partner Type LS](パートナー タイプ LS)>[Create](作成) の順に選択します。

  3. 次の設定を使用して新しいパートナー プロファイルを作成します。

    設定 説明
    Partner No. (パートナー番号) 論理システム パートナーの識別子を入力します。
    Partn. (パートナー) タイプ LS」と入力します。
    エージェント Azure Logic Apps または SAP ではない他のシステムのプログラム識別子を登録するときに使用する SAP ユーザー アカウントの識別子を入力します。
  4. 変更を保存します。

    論理システム パートナーを作成していない場合、"有効なパートナー番号を入力してください" というエラーが表示されます。

  5. パートナー プロファイルの設定の [Outbound parmtrs.](送信パラメーター) で、 [Create outbound parameter](送信パラメーターの作成) を選択します。

  6. 次の設定を使用して新しい送信パラメーターを作成します。

  7. 変更を保存します。

メッセージの送信をテストする

  1. SAP で、[Test Tool for IDoc Processing] (IDoc 処理のテスト ツール) の設定を開きます。 we19 トランザクション コード (T-Code) を /n プレフィックスと共に使用できます。

  2. [Template for test] (テスト用テンプレート) で、[Via message type] (メッセージの種類を使用) を選択します。 メッセージの種類を入力します (例: CREMAS)。 [作成] を選択します

  3. [Continue](続行) を選択して、 [Which IDoc type?](どの IDoc タイプですか?) というメッセージを確認します。

  4. EDIDC ノードを選択します。 受信側と送信側のポートの適切な値を入力します。 [続行] をクリックします。

  5. [Standard Outbound Processing](標準の送信処理) を選択します。

  6. 送信 IDoc 処理を開始するには、 [Continue](続行) を選択します。

    ツールで処理が完了すると、"IDoc sent to SAP system or external program" (SAP システムまたは外部プログラムに IDoc が送信されました) というメッセージが表示されます。

  7. 処理エラーがないかどうかを確認するには、 /n プレフィックスを付けた sm58 トランザクション コード (T コード) を使用します。

一般的な SAP シナリオ向けのワークフローを作成する

一般的な SAP 統合ワークロードのワークフローを作成するための攻略ガイドについては、次の手順を参照してください。

高度な SAP シナリオのワークフローを作成する

拡張エラー ログを検索する (マネージド コネクタのみ)

SAP マネージド コネクタを使用する場合は、SAP アダプターの拡張ログを確認することで、完全なエラー メッセージを見つけることができます。 また、SAP コネクタの拡張ログ ファイルを有効にすることもできます。

  • 2020 年 4 月以前のオンプレミス データ ゲートウェイ リリースでは、ログは既定で無効になっています。

  • 2020 年 6 月以降のオンプレミス データ ゲートウェイ リリースでは、アプリ設定でゲートウェイ ログを有効にすることができます。

    • 既定のログ レベルは [警告] です。

    • オンプレミス データ ゲートウェイ アプリの [Diagnostics](診断) 設定で [Additional logging](追加のログ記録) を有効にすると、ログ記録レベルが [Informational](情報) に上がります。

    • ログ記録レベルを [詳細] に上げるには、構成ファイルで次の設定を更新します。 通常、構成ファイルは C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config にあります。

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

オンプレミス データ ゲートウェイで拡張 SAP ログを設定する (マネージド コネクタのみ)

Azure Logic Apps 用のオンプレミス データ ゲートウェイを使用する場合は、SAP コネクタ用に拡張ログ ファイルを構成できます。 オンプレミス データ ゲートウェイを使用して、Event Tracing for Windows (ETW) イベントをゲートウェイの .zip 形式のログ ファイルに含まれているローテーション ログ ファイルにリダイレクトできます。

ゲートウェイ アプリの設定から、ゲートウェイの構成とサービス ログをすべて .zip ファイルにエクスポート ことができます。

拡張ログが常に有効になっていると、ワークフローのパフォーマンスに影響を与える可能性があります。 問題の分析とトラブルシューティングを完了した後は、拡張ログ ファイルをオフにすることをお勧めします。

ETW イベントのキャプチャ

オプションの高度なログ タスクとして、ETW イベントを直接キャプチャし、Event Hubs の Azure Diagnostics でデータを使用したり、Azure Monitor ログにデータを収集したりできます。 詳細については、「データを収集して格納するためのベスト プラクティス」を参照してください。

生成される ETL ファイルを操作するために、PerfView を使用したり、独自のプログラムを作成したりすることができます。 次の手順では、PerfView を使用しています。

  1. [PerfView] メニューで、[Collect](収集)>[Collect](収集) を選択して、イベントをキャプチャします。

  2. [Additional Provider] (追加のプロバイダー) パラメーターに「*Microsoft-LobAdapter」と入力し、SAP アダプタ イベントをキャプチャする SAP プロバイダーを指定します。 この情報を指定しない場合、トレースには一般的な ETW イベントのみが含まれます。

  3. その他の既定の設定はそのままにします。 必要に応じて、[Data File] (データ ファイル) パラメーターでファイル名または場所を変更できます。

  4. [Start Collection](収集の開始) を選択して、トレースを開始します。

  5. 問題を再現するか、十分な分析データを収集したら、[ 収集の停止] を選択します。

  6. Azure サポート エンジニアなどの別のパーティとデータを共有するには、ETL ファイルを圧縮します。

  7. トレースの内容を表示するには、次の手順を実行します。

    1. PerfView で[ファイル]>[開く]を選択し、生成した ETL ファイルを選択します。

    2. PerfView のサイドバーでは、ETL ファイルの下の [イベント] セクションです。

    3. [フィルター]Microsoft-LobAdapter でフィルター処理して、関連するイベントとゲートウェイ プロセスのみを表示します。

ワークフローのテスト

マルチテナント Azure Logic Apps の従量課金ワークフローであるか、シングルテナント Azure Logic Apps の Standard ワークフローであるかに基づいて、以下の対応する手順のようにします。

  1. 従量課金ロジック アプリ リソースがまだ有効でない場合は、ロジック アプリのメニューで [概要] を選択します。 ツールバーで、 [Enable](有効化) を選択します。

  2. ワークフローを手動で開始するには、デザイナー ツール バーで [実行]>[実行] を選択します。

  3. ワークフローをトリガーするには、SAP システムからメッセージを送信します。

  4. ロジック アプリの [概要] ページに戻ります。 [実行履歴] で、ワークフローの新しい実行がないか探します。

  5. 最新の実行を開くと、手動の実行が表示されます。 トリガー出力のセクションを見つけて確認します。

SAP クライアント ライブラリ (NCo) のログ記録とトレースを有効にする (組み込みコネクタのみ)

このコンポーネントに関する問題を調査する必要がある場合は、SAP または Microsoft のサポートが要求する可能性があるカスタム テキスト ファイル ベースの NCo トレースを設定できます。 既定では、このトレースを有効にするとパフォーマンスに悪影響を及ぼし、アプリケーション ホストの記憶域をすばやく消費する可能性があるため、この機能は無効になっています。

このトレース機能は、次の設定を追加してアプリケーション レベルで制御できます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. ロジック アプリのメニューで、[設定][環境変数] を選んで、アプリケーションの設定を確認します。

  3. [環境変数] ページの [アプリの設定] タブで、次のアプリケーション設定を追加します。

    • SAP_RFC_TRACE_DIRECTORY: NCo トレース ファイルを保存するディレクトリ (C:\home\LogFiles\NCo など)。

    • SAP_RFC_TRACE_LEVEL: 一般的な詳細ログの推奨値として Level4 を指定した NCo トレース レベル。 SAP または Microsoft のサポートでは、別のトレース レベルを設定するよう要求する場合があります。

      ランタイム バージョン 1.69.0 以降を使用する Standard ロジック アプリ ワークフローでは、各トレース レベルをコンマで区切る (,) ことで、複数のトレース レベルのログ記録を有効にすることができます。

      ワークフローのランタイム バージョンを確認するには、次の手順に従います。

      1. Azure portal のワークフロー メニューで、[概要] を選択します。
      2. [Essentials] セクションで、[ランタイム バージョン] プロパティを見つけます。
    • SAP_CPIC_TRACE_LEVEL: 一般的な詳細ログの推奨値として Verbose を使用した通信用共通プログラミング・インターフェース (CPI-C) トレース・レベル。 SAP または Microsoft のサポートでは、別のトレース レベルを設定するよう要求する場合があります。

    アプリケーション設定の追加の詳細については、「Standard ロジック アプリ ワークフローのホストとアプリの設定を編集する」を参照してください。

  4. 変更を保存します。 この手順では、アプリケーションを再起動します。

使用可能なトレース レベル

NCoトレース レベル

説明
レベル1 リモート関数の呼び出しをトレースするためのレベル。
Level2 リモート関数の呼び出しとパブリック API メソッドの呼び出しをトレースするためのレベル。
レベル3 リモート関数の呼び出し、パブリック API メソッドの呼び出し、および内部 API メソッドの呼び出しをトレースするためのレベル。
Level4 リモート関数の呼び出し、パブリック API メソッドの呼び出し、内部 API メソッドの呼び出し、RFC プロトコルの 16 進ダンプ、およびネットワーク関連の情報をトレースするためのレベル。
ロック スレッドがオブジェクトのロックを要求、取得、および解放するタイミングを示すデータをトレース ファイルに書き込みます。
メタデータ 各呼び出しのリモート関数の呼び出しに関連するメタデータをトレースします。
なし すべてのトレース出力を抑制するためのレベル。
パラメータデータ 各リモート関数の呼び出し中に送受信されたコンテナー データをトレースします。
パフォーマンス パフォーマンスの問題の分析に役立つデータをトレース ファイルに書き込みます。
PublicAPI getter、setter、または関連するメソッドを除き、パブリック API のほとんどのメソッドをトレースします。
InternalAPI getter、setter、または関連するメソッドを除き、内部 API のほとんどのメソッドをトレースします。
リモートファンクションコール (遠隔関数呼び出し) リモート関数の呼び出しをトレースします。
RfcData 各リモート関数の呼び出し中に送受信されたバイトをトレースします。
セッションプロバイダー 現在使用されている ISessionProvider の実装のすべてのメソッドをトレースします。
値を設定 関数のパラメーター、あるいは構造体またはテーブルのフィールドに設定された値に関する情報をトレース ファイルに書き込みます。

CPIC トレース レベル

説明
オフ ログ記録なし
基本 基本的なログ記録
詳細 詳細ログ記録
VerboseWithData すべてのサーバー応答ダンプを含む詳細ログ記録

トレースを表示する

  1. Standard ロジック アプリ リソース メニューの [開発ツール] で、[高度なツール]>[Go] を選択します。

  2. [Kudu] ツール バーで、[デバッグ コンソール]>[CMD] の順に選択します。

  3. $SAP_RFC_TRACE_DIRECTORY という名前のアプリケーション設定のフォルダーを参照します。

    前に設定したアプリケーション設定値 C:\home\LogFiles\NCo に対して、NCo という名前の新しいフォルダー、または使用したフォルダー名が表示されます。

  4. 以下のファイルが格納されている $SAP_RFC_TRACE_DIRECTORY フォルダーを開きます。

    • NCo トレース ログ: dev_nco_rfc.log という名前のファイル、NNNN がスレッド識別子である nco_rfc_NNNN.log という名前の 1 つまたは複数のファイル、および nco_rfc_NNNN.trc ファイルという名前の 1 つまたは複数のファイル。

    • CPIC トレース ログ: NNNN がスレッド識別子である nco_cpic_NNNN.trc ファイルという名前の 1 つまたは複数のファイル。

  5. ログまたはトレース ファイルの内容を見るには、ファイルの横にある [編集] ボタンを選びます。

    ロジック アプリ ワークフローで現在開かれている、または使用されているログまたはトレース ファイルをダウンロードすると、ダウンロードによって空のファイルが生成される可能性があります。

SAP Common Crypto Library (CCL) トレースを有効にする (組み込みコネクタのみ)

SNC 認証の使用中に暗号化ライブラリに関する問題を調査する必要がある場合は、カスタム テキスト ファイルベースの CCL トレースを設定できます。 CCL ログを使用して SNC 認証の問題をトラブルシューティングしたり、Microsoft または SAP サポートと共有したりすることができます (要求された場合)。 既定では、このトレースを有効にするとパフォーマンスに悪影響を及ぼし、アプリケーション ホストの記憶域をすばやく消費する可能性があるため、この機能は無効になっています。

このトレース機能は、次の設定を追加してアプリケーション レベルで制御できます。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. Standard ロジック アプリ リソース メニューの [開発ツール] で、[高度なツール]>[Go] を選択します。

  3. [Kudu] ツール バーで、[デバッグ コンソール]>[CMD] の順に選択します。

  4. C:\home\site\wwwroot の下の場所を参照し、テキスト ファイルを作成します (例: CCLPROFILE.txt)。

    パラメーターのログ記録の詳細については、 SAP KB の記事 3192871 - ABAP システムで CommonCryptoLib のバージョン情報を確認する方法を参照してください。 次の例では、トレース構成の例を示します。

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. ロジック アプリのメニューで、[設定][環境変数] を選んで、アプリケーションの設定を確認します。

  6. [環境変数] ページの [アプリの設定] タブで、次のアプリケーション設定を追加します。

    CCL_PROFILE: CCLPROFILE.txt が作成されたディレクトリ (例: C:\home\site\wwwroot\CCLPROFILE.txt)。

  7. 変更を保存します。 この手順では、アプリケーションを再起動します。

トレースを表示する

  1. Standard ロジック アプリ リソース メニューの [開発ツール] で、[高度なツール]>[Go] を選択します。

  2. [Kudu] ツール バーで、[デバッグ コンソール]>[CMD] の順に選択します。

  3. CCLPROFILE.txt ファイルにある $ccl/trace/directory パラメーターのフォルダーを参照します。

    通常、トレース ファイルの名前は sec-Microsoft.Azure.Work-$processId.trcsec-sapgenpse.exe-$processId.trc です。

    ロジック アプリ ワークフローでは、SNC 認証が 2 段階のプロセスとして実行されます。

    1. ロジック アプリ ワークフローによって sapgenpse.exe が呼び出され、PSE ファイルから cred_v2 ファイルが生成されます。

      この手順に関連するトレースは、sec-sapgenpse.exe-$processId.trc という名前のファイルにあります。

    2. ロジック アプリ ワークフローでは、生成された cred_v2 ファイルを使用して SAP サーバーへのアクセスが認証され、SAP クライアント ライブラリによって一般的な暗号化ライブラリが呼び出されます。

      この手順に関連するトレースは、sec-Microsoft.Azure.Work-$processId.trc という名前のファイルにあります。

オンプレミス データ ゲートウェイの SAP テレメトリを Azure Application Insights に送信する

オンプレミス データ ゲートウェイの 2021 年 8 月の更新プログラム以降、SAP コネクタの操作では、SAP NCo クライアント ライブラリからテレメトリ データと、Microsoft SAP アダプターからのトレースを Application Insights に送信できます。 この機能は、Azure Monitor の機能です。 テレメトリには主に次のデータが含まれます。

  • SAP NCo のメトリックとモニターに基づくメトリックとトレース
  • Microsoft SAP アダプターからのトレース

SAP NCo クライアント ライブラリからのメトリックとトレース

SAP NCo ベースのメトリックは、オンプレミス データ ゲートウェイ上のリソースの使用状況と可用性に基づいて、一定期間にわたって変化する場合も変化しない場合もある数値です。 システムの正常性について理解を深め、以下のアクティビティに関するアラートを作成するために、これらのメトリックを利用できます。

  • システムの正常性の低下
  • 異常なイベント
  • システム負荷が大きい

この情報は、customMetrics という名前の Application Insights テーブルに送信されます。 既定では、メトリックは 30 秒間隔で送信されます。

SAP NCo ベースのトレースには、メトリックと共に使用されるテキスト情報が含まれています。 この情報は、traces という名前の Application Insights テーブルに送信されます。 既定では、トレースは 10 分間隔で送信されます。

SAP NCo のメトリックとトレースは、SAP NCo のメトリック、特に以下の NCo クラスに基づいています。

  • RfcDestinationMonitor
  • RfcConnectionMonitor
  • RfcServerMonitor
  • RfcRepositoryMonitor

各クラスが提供するメトリックの詳細については、 SAP NCo のドキュメントを参照してください

Application Insights 用の SAP テレメトリを設定する

ゲートウェイのインストール用の SAP テレメトリを Application Insights に送信する前に、Application Insights リソースを作成して設定する必要があります。 詳細については、次のドキュメントを確認してください。

SAP テレメトリを Application insights に送信できるようにするには、以下の手順に従います。

  1. Microsoft.ApplicationInsights.EventSourceListener.dll 用の NuGet パッケージを次の場所からダウンロードします: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0

  2. ダウンロードしたファイルをオンプレミス データ ゲートウェイのインストール ディレクトリ (例: C:\Program Files\On-Premises Data Gateway) に追加します。

  3. オンプレミス データ ゲートウェイのインストール ディレクトリで、Microsoft.ApplicationInsights.dll ファイルのバージョン番号が、追加した Microsoft.ApplicationInsights.EventSourceListener.dll ファイルと同じであることを確認します。 ゲートウェイでは現在、バージョン 2.14.0 が使用されています。

  4. ApplicationInsights.config ファイルで、 要素が含まれる行をコメント解除して、<InstrumentationKey></InstrumentationKey>を追加します。 プレースホルダーの <your-Application-Insights-instrumentation-key> を、実際のキーに置き換えます。以下に例を示します。

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. ApplicationInsights.config ファイルでは、要件に応じて、SAP コネクタ操作の必須トレース Level の値を変更できます。以下に例を示します。

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

    詳細については、次のドキュメントを確認してください。

  6. 変更を適用した後で、オンプレミス データ ゲートウェイ サービスを再起動します。

Application Insights でメトリックを確認する

ロジック アプリ ワークフローで SAP 操作を実行したら、Application Insights に送信されたテレメトリを確認できます。

  1. Azure portal で Application Insights のリソースを開きます。

  2. リソース メニューで、 [監視] の下の [ログ] を選択します。

    次のスクリーンショットは、Application Insights リソースの ログ ページが開かれている Azure portal を示しています。

    スクリーンショットは、クエリを作成するための [ログ] ページに Application Insights が開かれている Azure portal を示しています。

  3. [ ログ ] ページでは、特定の要件に基づいて 、Kusto クエリ言語 (KQL) を使用するクエリを作成できます。

    次のクエリ例のようなクエリ パターンを使用できます。

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. クエリを実行した後は、結果を確認します。

    次のスクリーンショットは、クエリ例のメトリック結果テーブルを示しています。

    メトリックの結果テーブルを含む Application Insights を示すスクリーンショット。

    コラム 説明
    MaxUsedCount SAP NCo ドキュメントで説明されているように、「監視対象の宛先によって同時に使用されたクライアント接続の最大数」。 この値を使用して、同時に開いている接続の数を把握できます。
    valueCount メトリックは 30 秒間隔で生成されるため、読み取りごとに 2 を表示します。 Application Insights では、これらのメトリックが分単位で集計されます。
    [DestinationName] Microsoft SAP アダプターの内部名である文字列が含まれています。

    このリモート関数呼び出し (RFC) の対象についてより深く理解するには、この値を traces と共に使用します。以下に例を示します。

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | join kind=inner (traces
       | extend DestinationName = tostring(customDimensions["DestinationName"]),
       AppServerHost = tostring(customDimensions["AppServerHost"]),
       SncMode = tostring(customDimensions["SncMode"]),
       SapClient = tostring(customDimensions["Client"])
       | where customDimensions contains "RfcDestinationMonitor"
       )
       on DestinationName , $left.DestinationName == $right.DestinationName
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
    

Application Insights でこれらの機能を使用して、メトリック グラフやアラートを作成することもできます。次に例を示します。

Application Insights とグラフ形式の結果を示すスクリーンショット。

Microsoft SAP アダプターからのトレース

Microsoft SAP アダプターから送信されたトレースは、問題の事後分析のために利用し、SAP コネクタの操作から発生したりしなかったりする場合がある既存の内部システム エラーを見つけることができます。 これらのトレースは、Application Insights に先立つ古いイベント ソース フレームワークからのものであるため、message"n\a" に設定されています。以下に例を示します。

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

次のスクリーンショットは、クエリ例のトレース結果テーブルを示しています。

トレース結果テーブルを含む Application Insights を示すスクリーンショット。