AX 2012 AOT でカスタム テーブルを使用するカスタム ユーティリティがあります。自分のテーブルに ID フィールドを設定したいのですが、これには番号シーケンスを使用でき、番号シーケンスを自分のテーブルにマップして、取得できるようにすることができます。行挿入時の新しい一意の ID。番号シーケンスを生成しようとすると、.net ビジネス コネクタを使用してダイナミクス ax 2012 の外部で動作しているカスタム テーブルとユーティリティにこれが必要なため、AREA とモジュールの情報が要求されます。ウィザードに入力する内容がわかりません。
質問する
6694 次
2 に答える
4
NumberSeqModule enumを使用し、それにカスタムモジュールenum値を追加する方法を見たことがあるでしょう。次に、通常、NumberSeqApplicationModuleクラスを拡張するクラスを作成し、番号シーケンス参照を使用してデータ型にリンクされた番号シーケンスをロードします。
これは「ベストプラクティスの方法」ですが、今やりたいことには少しやり過ぎです。だからここにあなたができることがあります:
使用しているテーブルの挿入メソッドを上書きするだけで済みます。そして、NumberSeqクラスでnewGetNumFromCodeコンストラクターを使用できます。
public static NumberSeq newGetNumFromCode(
NumberSequenceCode _numberSequenceCode,
NumberSeqScope _scope = NumberSeqScopeFactory::createDefaultScope(),
boolean _makeDecisionLater = false,
boolean _dontThrowOnMissingRefSetUp = false,
SysLastValue _nextNumSeq = null,
boolean _fillNextNumSeq = false)
{
return NumberSeq::newGetNumFromId(
NumberSequenceTable::findByNaturalKey(_numberSequenceCode, _scope.getId()).RecId,
_makeDecisionLater,
_dontThrowOnMissingRefSetUp,
_nextNumSeq,
_fillNextNumSeq);
}
したがって、これを使用するには、Dynamics Ax内に新しい番号シーケンスを作成し(組織管理|番号シーケンス|番号シーケンス)、番号シーケンスコードを覚えておく必要があります。
次に、テーブルの挿入方法で、以下を実行できます:(例は担当者テーブルから取得されます)
if (!this.ContactPersonId)
{
this.ContactPersonId = NumberSeq::newGetNum(CompanyInfo::numRefContactPersonId()).num();
}
これにより、レコードが挿入されるときにIDも入力されるようになります。
于 2012-12-14T16:18:48.873 に答える