この資料では、すべての国と言語ロケールのすべての Microsoft Dynamics NAV に該当します。
現象
Microsoft Dynamics NAV 2009 年に生産スケジュールを実行すると、次のエラー メッセージが表示されます。
製造オーダーのルーティングの行は、存在しない次または前の操作を参照しています。
ただし、エラー メッセージが破損している運用環境のルーティングが配置されているを指定しないします。
この問題は、次の製品で発生します。
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)
解決策
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。
注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
インストール情報
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。
注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。
この修正プログラムを実装するには、開発者用のライセンスが必要です。
ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。
注:
データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
-
生産スケジュールの管理 codeunit (5500) 内のCreateOutboundXML関数内のコードを次のように変更します。
既存のコード...
ScheduleOrder.SETDESTINATION(OStream);
ScheduleOrder.InitializeHeader(InitialProdOrder1,Editable1);
IF ScheduleOrder.EXPORT THEN BEGIN
ProdSchedSetup.GanttXML.CREATEINSTREAM(IStream);
OutboundXML.load(IStream);
// Delete the following lines.
END ELSE
ERROR(Text002);
// End of the lines.
END
END;
END;
PROCEDURE ConvertFromDDMMYY@2(DateIn@1000 : Text[30]) : Text[30];
...置換用コード
...
ScheduleOrder.SETDESTINATION(OStream);
ScheduleOrder.InitializeHeader(InitialProdOrder1,Editable1);
IF ScheduleOrder.EXPORT THEN BEGIN
ProdSchedSetup.GanttXML.CREATEINSTREAM(IStream);
OutboundXML.load(IStream);
// Add the following lines.
END ELSE BEGIN
CLEAR(ProdSched);
ERROR(Text002);
END;
// End of the lines.
END
END;
END;
PROCEDURE ConvertFromDDMMYY@2(DateIn@1000 : Text[30]) : Text[30];
... -
エクスポートの生産スケジュール XMLport (5500) 内のコードを次のように変更します。
既存のコード 1...
{ [{86CA14B5-EAF7-4A37-ADCC-ED8FB40C86E7}];6 ;PrevOperationNo ;Element ;Field ;
DataType=Code;
SourceField=Prod. Order Routing Line::Previous Operation No. }
...置換用コード 1
...
{ [{86CA14B5-EAF7-4A37-ADCC-ED8FB40C86E7}];6 ;PrevOperationNo ;Element ;Field ;
DataType=Code;
SourceField=Prod. Order Routing Line::Previous Operation No.;
Export::OnBeforePassField=BEGIN
IF CheckOperationNo("Prod. Order Routing Line","Prod. Order Routing Line"."Previous Operation No.") THEN
ERROR(Text000,"Prod. Order Routing Line"."Prod. Order No.","Prod. Order Routing Line".FIELDCAPTION("Previous Operation No."),
"Prod. Order Routing Line"."Previous Operation No.");
END;
}
...既存のコード 2
...
{ [{81A88AA3-07E1-43BF-B7A4-6F00E038BD51}];6 ;NextOperationNo ;Element ;Field ;
DataType=Code;
SourceField=Prod. Order Routing Line::Next Operation No. }
...置換用コード 2
...
{ [{81A88AA3-07E1-43BF-B7A4-6F00E038BD51}];6 ;NextOperationNo ;Element ;Field ;
DataType=Code;
SourceField=Prod. Order Routing Line::Next Operation No.;
Export::OnBeforePassField=BEGIN
IF CheckOperationNo("Prod. Order Routing Line","Prod. Order Routing Line"."Next Operation No.") THEN
ERROR(Text000,"Prod. Order Routing Line"."Prod. Order No.","Prod. Order Routing Line".FIELDCAPTION("Next Operation No."),
"Prod. Order Routing Line"."Next Operation No.");
END;
}
...既存のコード 3
...
xProdOrderNo@1001 : Code[20];
xProdOrderStatus@1002 : 'Simulated,Planned,Firm Planned,Released,Finished';
xRoutingNo@1005 : Code[20];
...置換用コード 3
...
xProdOrderNo@1001 : Code[20];
xProdOrderStatus@1002 : 'Simulated,Planned,Firm Planned,Released,Finished';
xRoutingNo@1005 : Code[20];
Text000@1101 : TextConst 'ENU=The routing in production order number %1 uses %2 %3, which does not exist.';
... -
エクスポートの生産スケジュール XMLport (5500) で次のように新しい関数を追加します。
PROCEDURE CheckOperationNo@15(ProdOrderRoutingLine@1001 : Record 5409;OperationNo@1000 : Code[20]) : Boolean;
VAR
CheckedProdOrderRoutingLine@1002 : Record 5409;
BEGIN
IF OperationNo = '' THEN
EXIT(FALSE);
WITH CheckedProdOrderRoutingLine DO BEGIN
RESET;
SETCURRENTKEY("Prod. Order No.","Routing Reference No.",Status,"Routing No.","Operation No.");
SETRANGE("Prod. Order No.",ProdOrderRoutingLine."Prod. Order No.");
SETRANGE("Routing Reference No.",ProdOrderRoutingLine."Routing Reference No.");
SETRANGE(Status,ProdOrderRoutingLine.Status);
SETRANGE("Routing No.",ProdOrderRoutingLine."Routing No.");
SETRANGE("Operation No.",OperationNo);
EXIT(ISEMPTY);
END;
END;
BEGIN
END
必要条件
この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。