迅速に公開済みの記事は、マイクロソフト サポート組織内から直接情報を提供します。 ここに含まれる情報は、新たなまたは一意のトピックへの応答として作成されるか、その他のサポート技術情報を補足するものでは。
現象
Microsoft Dynamics AX 2009 年に工順カード仕訳帳] ダイアログ ボックスを右クリックし、 [概要] タブに、[構成] 列を追加するのにはセットアップ] をクリックすると、部品表 (BOM) の構成が表示されません。正しく、工順カード仕訳帳ダイアログ ボックスでします。
原因
この問題は、Microsoft Dynamics AX は、グリッド コントロールには、遅延のリンクされたデータ ソースを追加することをサポートしていないために発生します。
解決方法
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics AX 2009 の service pack または修正プログラムを含む次のバージョンを待機することを勧めします。注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。この修正プログラムは、Microsoft Dynamics AX 2009 の Service Pack 2 に収められる予定です。
インストール情報
この修正プログラムをインストールする前に、Microsoft Dynamics AX クライアントのユーザーがシステムの電源を記録することを確認します。 この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。この修正プログラムを実装するには、開発者用のライセンスが必要です。注: ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウに Microsoft Dynamics AX の管理者ユーザー ・ グループのメンバーであることをお勧めします。
コードの変更
マイクロソフトはプログラミング言語を使用方法の一例としてのみ提供しており、明示的にも黙示的にも、一切の保証をいたしません。 これには、市場性および特定の目的への適合性に対する黙示的な保証が含まれます。 この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能についての問い合わせにはお答えできますが、 ユーザー固有の要件に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。この修正プログラムを適用するには、次の手順を実行します。
-
ProdJournalFormTransRoute クラスのdatasourceWritePreメソッド内のコードを次のように変更:既存のコード
void datasourceWritePre(){ ; if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId) prodJournalRoute.ProdPickList = NoYes::No; if (prodJournalRoute.ProdReportFinished) prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId; else // Modify the following line. prodJournalRoute.ProdInventDimId = ''; prodJournalRoute.ProdInventDimId = ''; super();}
置換用コード
void datasourceWritePre(){ ; if (prodJournalRoute.ProdPickList && prodJournalRoute.OprPriority && !prodJournalRoute.ProdPickListJournalId) prodJournalRoute.ProdPickList = NoYes::No; if (prodJournalRoute.ProdReportFinished) prodJournalRoute.ProdInventDimId = InventDim::findOrCreate(inventDim).InventDimId; else // The following line is modified. prodJournalRoute.ProdInventDimId = InventDim::inventDimIdBlank(); prodJournalRoute.ProdInventDimId = ''; super();}
-
ProdJournalFormTransRouteクラスのfieldModifiedProdReportFinishedPostメソッド内のコードを次のように変更:既存のコード
void fieldModifiedProdReportFinishedPost(){ InventDim emptyInventDim; ; if (prodJournalRoute.ProdReportFinished) { if (! prodJournalRoute.ProdInventDimId) inventDim_ds.create(); inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId)); } else inventDim.data(emptyInventDim); inventDim_ds.setCurrent();}
置換用コード
void fieldModifiedProdReportFinishedPost(){ // Add the following line. InventDim emptyInventDim = InventDim::find(InventDim::inventDimIdBlank()); InventDim emptyInventDim; ; if (prodJournalRoute.ProdReportFinished) { if (! prodJournalRoute.ProdInventDimId) inventDim_ds.create(); inventDim.data(InventDim::find(ProdTable::find(prodJournalRoute.ProdId).InventDimId)); } else inventDim.data(emptyInventDim); inventDim_ds.setCurrent();}
-
ProdJournalTransRoute フォームのenableFieldsActiveメソッド内のコードを次のように変更:既存のコード
void enableFieldsActive(){ prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectHour.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectQuantity.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());}
置換用コード
void enableFieldsActive(){ // Add the following lines. int i; container enabledDimFields = InventDim::dimEnabledFieldList(); container dimFields = InventDim::dimFieldList(); ; prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectHour.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectQuantity.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); // Add the following lines. for(i = 0; i < conlen(dimFields) ; i++) { if (inventDim_DS.object(conpeek(dimFields, i))) { if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank()) { inventDim_DS.object(conpeek(dimFields,i)).enabled(false); } else { inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0); } } }}
-
ProdJournalTransRoute フォームの InventDim データ ソース オブジェクトのプロパティの値を次のように変更します。
-
リンク型のプロパティの値をInnerJoinに変更します。
-
DelayActiveプロパティの値をNoに変更します。
-
-
"\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ validateWrite"のオブジェクトでは、次のコードを追加します。
public boolean validateWrite(){ boolean ret; ; if (inventDim.inventDimId == InventDim::inventDimIdBlank()) return true; ret = super(); return ret;}
-
\Forms\ProdJournalTransRoute\DataSources\InventDim\Methods\ を書き込む] オブジェクト内のコードを次のように変更:既存のコード
void write(){ ; prodJournalRoute_ds.write();}
置換用コード
void write(){ ; prodJournalRoute_ds.write(); // Add the following line. element.enableFieldsActive();}
-
"\Forms\ProdJournalTransRoute\DataSources\ProdJournalRoute\Methods\active"のコードを次のように変更:既存のコード
int active(){ int ret; ret = super(); journalFormTrans.datasourceActivePost(); if (prodJournalRoute.isProjMethodConsumed()) { skipWrite = true; prodJournalRouteProjHour_ds.executeQuery(); prodJournalRouteProjQuantity_ds.executeQuery(); skipWrite = false; } element.enableFieldsActive(); return ret;}
置換用コード
int active(){ int ret; // Add the following lines. ; journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init); ret = super(); journalFormTrans.datasourceActivePost(); if (prodJournalRoute.isProjMethodConsumed()) { skipWrite = true; prodJournalRouteProjHour_ds.executeQuery(); prodJournalRouteProjQuantity_ds.executeQuery(); skipWrite = false; } element.enableFieldsActive(); return ret;}
-
ProdJournalTransJob フォームのenableFieldsActiveメソッド内のコードを次のように変更:既存のコード
void enableFieldsActive(){ prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectHour.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectQuantity.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed());}
置換用コード
void enableFieldsActive(){ // Add the following lines. int i; container enabledDimFields = InventDim::dimEnabledFieldList(); container dimFields = InventDim::dimFieldList(); ; prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,EmplId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryHoursId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRoute_ds.object(fieldnum(ProdJournalRoute,CategoryQtyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectHour.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjHour_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); projectQuantity.visible(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjLinePropertyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); prodJournalRouteProjQuantity_ds.object(fieldnum(ProdJournalRouteProj,ProjSalesCurrencyId)).mandatory(prodJournalRoute.isProjMethodConsumed()); // Add the following lines. for(i = 0; i < conlen(dimFields) ; i++) { if (inventDim_DS.object(conpeek(dimFields, i))) { if (prodJournalRoute.ProdInventDimId == InventDim::inventDimIdBlank()) { inventDim_DS.object(conpeek(dimFields,i)).enabled(false); } else { inventDim_DS.object(conpeek(dimFields,i)).enabled(confind(enabledDimeFields,i) != 0); } } }}
-
ProdJournalTransJob フォームの InventDim データ ソース オブジェクトのプロパティの値を次のように変更します。
-
リンク型のプロパティの値をInnerJoinに変更します。
-
DelayActiveプロパティの値をNoに変更します。
-
-
"\Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ validateWrite"のオブジェクトでは、次のコードを追加します。
public boolean validateWrite(){ boolean ret; ; if (inventDim.inventDimId == InventDim::inventDimIdBlank()) return true; ret = super(); return ret;}
-
\Forms\ProdJournalTransJob\DataSources\InventDim\Methods\ を書き込む] オブジェクト内のコードを次のように変更:既存のコード
void write(){ ; prodJournalRoute_ds.write();}
置換用コード
void write(){ ; prodJournalRoute_ds.write(); // Add the following line. element.enableFieldsActive();}
-
"\Forms\ProdJournalTransJob\DataSources\ProdJournalRoute\Methods\active"のコードを次のように変更:既存のコード
int active(){ int ret; ret = super(); journalFormTrans.datasourceActivePost(); if (prodJournalRoute.isProjMethodConsumed()) { skipWrite = true; prodJournalRouteProjHour_ds.executeQuery(); prodJournalRouteProjQuantity_ds.executeQuery(); skipWrite = false; } element.enableFieldsActive(); return ret;}
置換用コード
int active(){ int ret; // Add the following lines. ; journalFormTrans.updateDesign(InventDimFormDesignUpdate::Init); ret = super(); journalFormTrans.datasourceActivePost(); if (prodJournalRoute.isProjMethodConsumed()) { skipWrite = true; prodJournalRouteProjHour_ds.executeQuery(); prodJournalRouteProjQuantity_ds.executeQuery(); skipWrite = false; } element.enableFieldsActive(); return ret;}
-
上書きの表にinsertメソッドのコードを次のように変更:既存のコード
void insert(){ ttsbegin; if (! this.LineNum) this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1; if (this.OprFinished) this.JobFinished = NoYes::Yes; this.updateRouteConstantRelease(); super(); ttscommit;}
置換用コード
void insert(){ ttsbegin; if (! this.LineNum) this.LineNum = ProdJournalRoute::lastLineNum(this.JournalId) + 1; if (this.OprFinished) this.JobFinished = NoYes::Yes; // Add the following lines. if(!this.ProdInventDimId) this.ProdInventDimId = InventDim::inventDimIdBlank(); this.updateRouteConstantRelease(); super(); ttscommit;}
-
上書きの表にinitValueメソッド内のコードを次のように変更:既存のコード
void initValue(){ super(); this.TransDate= systemdateget();}
置換用コード
void initValue(){ super(); this.TransDate= systemdateget(); // Add the following line. this.ProdInventDimId = InventDim::inventDimIdBlank();}
必要条件
この修正プログラムを適用するための必要条件はありません。
再起動の必要性
この修正プログラムの適用後にコンピュータを再起動する必要はありません。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
マイクロソフトおよびその供給者は、表現または適合性、信頼性、または含まれている情報の正確性に関する保証ドキュメントおよび関連のグラフィックスが目的でこの WEB サイト (以下「マテリアル」) の公開。マテリアルは、技術的な誤りや誤植を含めることがあり、通知なしに随時改訂することがあります。 法令により許される最大限の範囲において、マイクロソフトおよびその供給者ではありませんし、表現、保証、明示、黙示または法律の規定であり、しない場合はなどが制限されているかどうかは、すべての表現、保証、および条件を除外するか、タイトル、非侵害、満足のいく条件または品質、商品、材料に関して、特定目的に対する適合性の条件です。