こんにちは、日本マイクロソフト Dynamics ERP サポート チームの永吉です。
この記事では、Dynamics 365 Finance and Operations にて用いられるフライトについて紹介します。
目次
更新履歴
2023 年 4 月 24 日 : ブログ公開
2023 年 8 月 29 日 : よく寄せられる質問を更新しました。 (福原)
フライトとは
フライトに関して、以下の弊社公開資料にて言及されています。
公開資料 : 機能管理の概要 - Finance & Operations | Dynamics 365 | Microsoft Learn
– 内容一部抜粋 –
機能フライトは、Microsoft が制御するリアルタイムのオン/オフ スイッチです。
– 内容一部抜粋ここまで –
フライトとは、D365FO において非常に重要な役割を果たす実装方法のひとつです。プログラミングにおける「フラグ」と同様、フライトは特定の条件下で D365FO の動作や処理結果を制御するために使用されます。
機能管理との違い
機能管理 (Feature management) との違いに関しても、上述の公開資料にて言及されていますが、フライトと機能管理には明確な違いがあります。主な違いを以下に紹介します。
※ 以下で紹介する違いは一般的なものであり、全ての機能管理・フライトに該当するものではありません。予めご了承ください。
- 制御の主体 : 機能管理ではユーザーが機能の有効・無効を制御する一方で、フライトは Microsoft によって制御されています
- ビジネス シナリオ : 機能管理では多くのビジネス シナリオを満たした機能として提供されますが、フライトでは一部のビジネス シナリオに特化した機能が提供されます
- ビジネス ニーズの把握 : 機能管理では多くのビジネス ニーズに対応していると判断したものが提供されますが、ビジネス ニーズが十分に把握しきれていないものはフライトとして提供されます
- 影響範囲 : 機能管理ではユーザーが主体的に制御できるため、有効・無効を問わない利用が想定されていますが、フライトでは様々なビジネス シナリオへの影響を考慮し、有効・無効をある程度決めた状態での利用を想定しています
- 実装規模 : 機能管理はある程度まとまった機能を提供する際に用いられますが、フライトではプログラムの一部ロジックを分岐させるなどの小規模な機能を提供する際に用いられます
フライトを有効にする方法
フライトを有効にすることで生じる挙動の違いを確認・適用するためには以下の方法が必要です。
- 開発環境 (クラウドホスト環境) の場合 : VM 内の SSMS にてフライトを有効化する SQL を実行し、IIS の再起動を実行します。以下にクエリの一例を紹介します。
INSERT INTO DBO.SYSFLIGHTING (FLIGHTNAME, ENABLED, FLIGHTSERVICEID)VALUES ('ReqCalcRestartResumeNativeToggle', 1, 12719367)
- サンドボックス環境 ( Tier2 ~ Tier5 ) および本番環境の場合 : Microsoft へサポート リクエストを発行し、フライトの有効化を依頼します。
よく寄せられる質問 (FAQ)
現在提供されているすべてのフライトを知りたいです
様々な背景によって提供されており、フライトの用途を 1 つずつ詳細に解説することができかねるため、全てのフライトを網羅的にご案内することができないものとなっております。開発している際などに、ソースコード内でフライトによって処理が分岐している点など気になる箇所があれば、都度サポート リクエストにてご質問ください。
フライトで実装されたものは将来的にもフライトとして制御され続けますか
十分なビジネス ニーズがあると判断した場合や、様々なビジネス シナリオへの影響が最小限だと判断した場合には、フライトにて制御していた機能を標準機能として実装し、フライト自体は削除する方針となっています。
フライトによる処理はどのタイミングで環境に提供されますか
フライト自体の追加やフライトによる処理ロジックの変更は、すべてバージョンアップによって環境に適用されます。例えば、10.0.32 の環境で実装されたフライトを 10.0.31 の環境で有効化しようとしても、そのフライトの処理ロジックがソースコードとして環境に適用されていないため、挙動は変わりません。Microsoftによる制御は、環境に存在するソースコード内でのフライトの有効・無効のみとなります。
したがって、特定のフライトを利用したい場合は、D365FO をフライトが実装されたバージョンまでアップデートすることが必要です。
開発環境 (クラウドホスト環境) 、 サンドボックス環境 (Tier2 ~ Tier5) 、本番環境のフライトの管理方法はどのように違いますか
開発環境 (クラウドホスト環境) ではデータベース (AXDB) 内の SYSFLIGHTING テーブル内の値によりフライトの状態は管理されています。
そのため、上記の “フライトを有効にする方法” の SQL クエリによりフライトの状態を変更することができます。
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境では、弊社システムによりフライトを管理しており、データベース (AXDB) 内にはフライトの状態を保持しておりません。
そのため、フライトの状態をお客様にて確認、変更することはできません。
データベースのインポート、コピーによりソース環境のフライトの状態はターゲット環境に引き継がれますか
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境では、ソース環境 (例: 本番環境) のデータベースをターゲット環境 (例: サンドボックス環境) にコピーする場合、ソース環境のフライトの状態はターゲット環境に引き継がれないです。
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境はデータベース内にフライトの状態を保持していないため、フライトはデータベースのインポート、コピーの影響を受けません。
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境にてフライトを有効化したい場合には各環境について Microsoft に依頼する必要がありますか
基本的には各環境について依頼をして頂く必要があります。
フライトによってはテナント全体での有効化が可能です。
テナント全体でフライトが有効化された場合には、同一テナント内で新規作成されたサンドボックス環境 (Tier2 ~ Tier5) 、本番環境に対してもフライトは自動で有効化されます。
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境でのフライトの有効化にはダウンタイムは発生しますか
サンドボックス環境 (Tier2 ~ Tier5) 、本番環境でのフライトの有効化は弊社での作業となりますが作業にはダウンタイムは発生しません。
以上、 Dynamics 365 Finance and Operations におけるフライト機能を紹介いたしました。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。より詳細な情報が必要な場合は、弊社テクニカル サポート, アカウント マネージャー, ソリューション アーキテクト, FastTrack までお問い合わせください。