こんにちは、Dynamics ERP サポートチームの細野です。
この記事では、Dynamics 365 Finance and Operationsにて、ダウンタイムなしでカスタム X++ スクリプトを実行する方法を紹介します。
検証に用いた製品・バージョン
Dynamics 365 Finance and Operations
Application version: 10.0.33
Platform version: PU57
手順
クラウドホスト環境、開発環境等にて Visual Studio を開く
[Dynamics 365] > [Model Management] > [Create model] を開く

“Model name” “Model publisher” “Model descripstion” を入力し [Next] をクリックする

[Create new package] を選択し [Next] をクリックする

“ApplicationPlatform” “ApplicationSuite” “SourceDocumentationTypes” の 3 つを選択し [Next] をクリックする
※ スクリプトの内容により選択するモデルが異なる場合がございます。


入力および選択した内容を確認し [Next] をクリックする

“Project name” にて名前を入力し [Create] を選択する

Project の作成完了後、[Solution Explorer] にて右クリック [Add] > [New Item] を選択し “Add New Item” のダイアログを開く

[FinanceOperations] > [Dynamics 365 Items] を開き、[Code] を選択、[Runnable Class(Job)] を選択する

作成された Class に修正スクリプトを記載する

例.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19class FixSO000811
{
public static void main(Args _args)
{
ttsbegin;
InventTrans inventTrans;
select forupdate inventTrans
where inventTrans.RecId == 68719841375;
inventTrans.Qty = -10;
inventTrans.Update();
ttscommit;
Info('Script completed successfully');
}
}
[Dynamics 365] > [Deploy] > [Create Deployment Package] を開く

対象の Class を選択、保存先のロケーションを入力し [Create] を選択する



Dynamics 365 Finance and Operations を開き、[システム管理] > [定期処理] > [データベース] > [カスタム スクリプト] に移動する

[カスタム スクリプト] にてアップロードを選択し、作成したパッケージをアップロードする


スクリプトの承認のため、別ユーザーで同環境にログインする
※ スクリプトを誤って実行することがないように、アップロードを実行したユーザーでは承認できないように制御されています。必ずほかのユーザーで承認を実行する必要があります。レコードを選択し、詳細画面を開き [承認] をクリックする



[テストの実行] を選択する

ログの内容を確認し、問題なければ [テスト ログを受け入れる] を選択する


[実行] を選択する


実行後のログを確認する

対象のレコードが想定通りに修正されていることを確認する

[解決済みの目的] をクリックし、スクリプトの状態を “解決済み” に更新する

注意
上記の手順、手順内の画像については本記事の執筆時のものです。
実際の画面とは挙動に違いがある可能性がございます。
手順内に例示のスクリプトは、デモデータに対して実行可能なものとなりますが実行結果を保証するものではありません。実行する際には検証環境等で影響範囲を十分に検証のうえ、実施いただきますようお願いいたします。
参考
(関連公開資料)
配置可能なモデル パッケージの作成 - Finance & Operations | Dynamics 365 | Microsoft Learn
ダウンタイムなしでカスタム X++ スクリプトの実行 - Finance & Operations | Dynamics 365 | Microsoft Learn
おわりに
以上、Dynamics 365 Finance and Operations にて、ダウンタイムなしでカスタム X++ スクリプトを実行する方法を紹介いたしました。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。より詳細な情報が必要な場合は、弊社テクニカル サポート, アカウント マネージャー, ソリューション アーキテクト, FastTrack までお問い合わせください。