Dynamics 365 の財務ディメンションのルックアップ フィールドを作成する
出版された: 2025年2月16日 11:33:48 UTC
この記事では、X++ コードの例を含め、Dynamics 365 for Operations で財務分析コードのルックアップ フィールドを作成する方法について説明します。
Creating a Lookup Field for a Financial Dimension in Dynamics 365
この投稿の情報は Dynamics 365 for Operations に基づいていますが、そのほとんどは Dynamics AX 2012 でも機能します (下記参照)。
最近、単一の財務ディメンション (この場合は製品) を指定できる新しいフィールドを作成するという課題がありました。もちろん、新しいフィールドでは、このディメンションの有効な値を検索できる必要があります。
これはテーブル内の通常の検索よりも少し複雑ですが、方法がわかっていれば、実際にはそれほど難しくはありません。
幸いなことに、標準アプリケーションには、ルックアップするディメンション属性を指定するだけで、この目的に使用できる便利なルックアップ フォーム (DimensionLookup) が用意されています。
まず、フォーム フィールド自体を作成する必要があります。これはテーブル フィールドまたは編集メソッドに基づくことができ、ルックアップ自体には関係ありませんが、何らかの方法で DimensionValue 拡張データ型を使用する必要があります。
次に、フィールドの OnLookup イベント ハンドラーを作成する必要があります。イベント ハンドラーを作成するには、フィールドの OnLookup イベントを右クリックし、[イベント ハンドラー メソッドのコピー] を選択します。その後、空のイベント ハンドラー メソッドをクラスに貼り付けて、そこから編集できます。
注意:これのほとんどは Dynamics AX 2012 でも機能しますが、イベント ハンドラーを作成する代わりに、フォーム フィールドのルックアップ メソッドをオーバーライドできます。
イベント ハンドラーは次のようになります (必要に応じてフォーム名とフィールド名を置き換えます)。
FormControlEventHandler(formControlStr( MyForm,
MyProductDimField),
FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup( FormControl _sender,
FormControlEventArgs _e)
{
FormStringControl control;
Args args;
FormRun formRun;
DimensionAttribute dimAttribute;
;
dimAttribute = DimensionAttribute::findByName('Product');
args = new Args();
args.record(dimAttribute);
args.caller(_sender);
args.name(formStr(DimensionLookup));
formRun = classFactory.formRunClass(args);formRun.init();
control = _sender as FormStringControl;
control.performFormLookup(formRun);
}