이 문서의 Microsoft Dynamics 탐색 모든 언어 로케일에 적용 됩니다.
증상
Microsoft Dynamics 탐색에서 시스템 기본 게시 날짜 "날짜 없음"으로 설정 되어 있으면 외화 단위에서 판매 주문 만들려고 시도 환율을 확인할 수 없습니다. 따라서 다음과 같은 오류 메시지가 나타날 있습니다.
필터 내 통화 환율 없습니다 있습니다.
또한 (205) 주문 확인 보고서를 인쇄할 수 없습니다.
다음 제품에이 문제가 발생합니다.
-
Microsoft Dynamics 탐색 2009 서비스 팩 1 (SP1)
-
Microsoft Dynamics 탐색 2009 R2
해결 방법
핫픽스 정보
지원 되는 핫픽스를 Microsoft에서 출시 되었습니다. 이 문서에 설명 되어 있는 문제를 해결 하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생 한 시스템에만 적용 됩니다. 이 핫픽스는 추가 테스트가 필요할 수 있습니다. 따라서이 문제의 영향이 심각 하지 다음 Microsoft Dynamics 탐색 2009 서비스 팩 또는이 핫픽스가 포함 된 다음 Microsoft Dynamics 탐색 버전까지 기다리는 것이 좋습니다.
참고: 특별 한 경우 일반적으로 호출 취소 될 수도 있습니다 경우 기술 지원 담당자는 Microsoft Dynamics 및 관련 된 제품에 대 한 지원에 따른 비용이 특정 업데이트로 문제를 해결할 수 있다고 결정 합니다. 추가 지원 질문과 특정 업데이트가 필요 하지 않은 문제에는 일반 지원 비용이 적용 됩니다.
설치 정보
Microsoft는 모든 보증, 그림에 대 한 묵시적인 보증. 이 포함 되지만 상품성 또는 특정 목적에의 적합성의 묵시적된 보증에 국한 되지는 않습니다. 이 문서는 작성 하 고 프로시저를 디버깅할 데 사용 되는 도구 및 여기서 설명 하는 프로그래밍 언어에 익숙한 가정 합니다. Microsoft 지원 엔지니어는 특정 프로시저의 기능을 설명할 수 있지만 추가 기능을 제공 하거나 특정 요구 사항에 맞도록 프로시저를 구성 하는 이러한 예제를 수정 하지 않습니다.
참고: 이 핫픽스를 설치 하기 전에 모든 Microsoft Navision 클라이언트 사용자가 시스템 로그를 확인 하십시오. Navision 응용 프로그램 서비스 (NAS) 클라이언트 사용자가 포함 됩니다. 이 핫픽스를 구현할 때 로그온 되어 있는 사용자만 클라이언트 수 있습니다.
이 핫픽스를 구현 하려면 개발자 라이센스가 있어야 합니다.
것을 권장 합니다 Windows 로그인 창이 나 데이터베이스 로그인 창에서 사용자 계정 "SUPER" 역할 ID를 할당할 수 사용자 계정 "SUPER" 역할 ID를 할당할 수 없습니다, 사용자 계정에 다음 권한이 있는지 확인 해야 합니다.
-
변경할 수 있는 개체에 대 한 수정 권한이 있습니다.
-
시스템 개체 ID 9015 개체 및 시스템 개체 ID 5210 개체에 대 한 Execute 권한이 있습니다.
참고: 데이터 복구를 수행 해야 할 경우가 아니면 데이터 저장소에 대 한 권한을 가질 필요가 없습니다.
코드 변경 사항
참고: 항상 테스트 코드 수정 제어 된 환경에 적용 하기 전에 프로덕션 컴퓨터에 수정 프로그램입니다.
이 문제를 해결하려면 다음과 같이 하십시오.
-
판매 가격 Calc. 이전 codeunit (7000)에서 SalesHeaderExchDate 함수에 코드를 다음과 같이 변경.
기존 코드...WITH SalesHeader DO BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
("Posting Date" = 0D)
THEN
EXIT(WORKDATE);
EXIT("Posting Date");
// End of the deleted lines.
END;
...대체 코드
...WITH SalesHeader DO BEGIN
// Add the following lines.
IF "Posting Date" <>0D THEN
EXIT("Posting Date");
EXIT(WORKDATE);
// End of the added lines.
END;
... -
Purch 의 PurchHeaderExchDate 함수에서 코드를 변경 합니다. Calc. 이전 가격 codeunit (7010) 다음과 같이:
기존 코드...WITH PurchHeader DO BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
("Posting Date" = 0D)
THEN
EXIT(WORKDATE);
EXIT("Posting Date");
// End of the deleted lines.
END;
...대체 코드
...WITH PurchHeader DO BEGIN
// Add the following lines.
IF "Posting Date" <> 0D THEN
EXIT("Posting Date");
EXIT(WORKDATE);
// End of the added lines.
END;
... -
판매 주문 양식 (42)에서 OnAssistEdit 트리거 (111) 통화 코드 필드에서의 코드를 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
견적서 양식 (43)에서 OnAssistEdit 트리거 (107) 통화 코드 필드에서의 코드를 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
통화 코드 필드 (91) OnAssistEdit 트리거 코드 판매 신용 메모 양식 (44)에서 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
구매 주문서 (50)에 OnAssistEdit 트리거 (119) 통화 코드 필드에서의 코드를 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
구매 송장 양식 (51)에 OnAssistEdit 트리거 (104) 통화 코드 필드에서의 코드를 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
통화 코드 필드 (91) OnAssistEdit 트리거 코드 구매 신용 메모 양식 (52)에서 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
통화 코드 필드 (91) OnAssistEdit 트리거 코드 판매 반환 순서 양식 (6630)에서 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
구매 주문 반환 형식 (6640) OnAssistEdit 트리거 (91) 통화 코드 필드에서의 코드를 다음과 같이 변경.
기존 코드...CLEAR(ChangeExchangeRate);
// Delete the following line.
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date");
// End of the deleted line.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
...대체 코드
...CLEAR(ChangeExchangeRate);
// Add the following lines.
IF "Posting Date" <> 0D THEN
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor","Posting Date")
ELSE
ChangeExchangeRate.SetParameter("Currency Code","Currency Factor",WORKDATE);
// End of the added lines.
IF ChangeExchangeRate.RUNMODAL = ACTION::OK THEN BEGIN
VALIDATE("Currency Factor",ChangeExchangeRate.GetParameter);
CurrForm.UPDATE;
END;
CLEAR(ChangeExchangeRate);
... -
판매 헤더 표에 (36)는 UpdateCurrencyFactor 함수에서 코드를 다음과 같이 변경.
기존 코드...IF "Currency Code" <>'' THEN BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::Quote,"Document Type"::"Blanket Order"]) AND
("Posting Date" = 0D)
THEN
CurrencyDate := WORKDATE
ELSE
CurrencyDate := "Posting Date";
// End of the deleted lines.
"Currency Factor" := CurrExchRate.ExchangeRate(CurrencyDate,"Currency Code");
END ELSE
"Currency Factor" := 0;
...대체 코드
...IF "Currency Code" <> '' THEN BEGIN
// Add the following lines.
IF "Posting Date" <> 0D THEN
CurrencyDate := "Posting Date"
ELSE
CurrencyDate := WORKDATE;
// End of the added lines.
"Currency Factor" := CurrExchRate.ExchangeRate(CurrencyDate,"Currency Code");
END ELSE
"Currency Factor" := 0;
... -
(37) 영업 라인 테이블에 GetDate 함수에 코드를 다음과 같이 변경.
기존 코드...// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(SalesHeader."Posting Date" = 0D)
THEN
EXIT(WORKDATE);
EXIT(SalesHeader."Posting Date");
// End of the deleted lines.
...대체 코드
...// Add the following lines.
IF SalesHeader."Posting Date" <> 0D THEN
EXIT(SalesHeader."Posting Date");
EXIT(WORKDATE);
// End of the added lines.
... -
(38) 구매에 헤더 테이블의 UpdateCurrencyFactor 함수에 코드를 다음과 같이 변경.
기존 코드...IF "Currency Code" <> '' THEN BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::Quote,"Document Type"::"Blanket Order"]) AND
("Posting Date" = 0D)
THEN
CurrencyDate := WORKDATE
ELSE
CurrencyDate := "Posting Date";
// End of the deleted lines.
"Currency Factor" := CurrExchRate.ExchangeRate(CurrencyDate,"Currency Code");
END ELSE
"Currency Factor" := 0;
...대체 코드
...IF "Currency Code"<>'' THEN BEGIN
// Add the following lines.
IF "Posting Date" <> 0D THEN
CurrencyDate := "Posting Date"
ELSE
CurrencyDate := WORKDATE;
// End of the added lines.
"Currency Factor" := CurrExchRate.ExchangeRate(CurrencyDate,"Currency Code");
END ELSE
"Currency Factor" := 0;
... -
GetDate 함수 구매 선 표 (39)의 코드를 다음과 같이 변경.
기존 코드...// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(PurchHeader."Posting Date" = 0D)
THEN
EXIT(WORKDATE);
EXIT(PurchHeader."Posting Date")
// End of the deleted lines.
...대체 코드
...// Add the following lines.
IF PurchHeader."Posting Date"<>0D THEN
EXIT(PurchHeader."Posting Date");
EXIT(WORKDATE);
// End of the added lines.
... -
코드에서 판매 게시물 codeunit (80)에서 RoundAmount 함수를 다음과 같이 변경.
기존 코드...IF SalesHeader."Currency Code" <>'' THEN BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(SalesHeader."Posting Date" = 0D)
THEN
// End of the deleted lines.
UseDate := WORKDATE
ELSE
UseDate := SalesHeader."Posting Date";
...대체 코드
...IF SalesHeader."Currency Code" <>'' THEN BEGIN
// Add the following line.
IF (SalesHeader."Posting Date" = 0D) THEN
// End of the added line.
UseDate := WORKDATE
ELSE
UseDate := SalesHeader."Posting Date";
... -
RoundAmount 함수에서 코드를 변경 하면 Purch입니다.-게시물 codeunit (90) 다음과 같이:
기존 코드...IF PurchHeader."Currency Code" <>'' THEN BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(PurchHeader."Posting Date" = 0D)
THEN
// End of the deleted lines.
Usedate := WORKDATE
ELSE
Usedate := PurchHeader."Posting Date";
...대체 코드
...IF PurchHeader."Currency Code"<> '' THEN BEGIN
// Add the following line.
IF (PurchHeader."Posting Date" = 0D) THEN
// End of the added line.
Usedate := WORKDATE
ELSE
Usedate := PurchHeader."Posting Date";
... -
판매 주문 통계 양식 (402)의 UpdateHeaderInfo 함수에 코드를 다음과 같이 변경.
기존 코드...IF "Prices Including VAT" THEN
TotalSalesLineLCY[IndexNo].Amount := TotalAmount2[IndexNo]
ELSE
TotalSalesLineLCY[IndexNo].Amount := TotalAmount1[IndexNo];
IF "Currency Code" <> '' THEN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
("Posting Date" = 0D)
THEN
// End of the deleted lines.
UseDate := WORKDATE
ELSE
UseDate := "Posting Date";
...대체 코드
...IF "Prices Including VAT" THEN
TotalSalesLineLCY[IndexNo].Amount := TotalAmount2[IndexNo]
ELSE
TotalSalesLineLCY[IndexNo].Amount := TotalAmount1[IndexNo];
IF "Currency Code" <>'' THEN
// Add the following line.
IF "Posting Date" = 0D THEN
// End of the added line.
UseDate := WORKDATE
ELSE
UseDate := "Posting Date";
... -
구매 주문 통계 양식 (403)의 UpdateHeaderInfo 함수에 코드를 다음과 같이 변경.
기존 코드...IF "Prices Including VAT" THEN
TotalPurchLineLCY[IndexNo].Amount := TotalAmount2[IndexNo]
ELSE
TotalPurchLineLCY[IndexNo].Amount := TotalAmount1[IndexNo];
IF "Currency Code" <> '' THEN BEGIN
// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
("Posting Date" = 0D)
THEN
// End of the deleted lines.
UseDate := WORKDATE
ELSE
UseDate := "Posting Date";
...대체 코드
...IF "Prices Including VAT" THEN
TotalPurchLineLCY[IndexNo].Amount := TotalAmount2[IndexNo]
ELSE
TotalPurchLineLCY[IndexNo].Amount := TotalAmount1[IndexNo];
IF "Currency Code" <> '' THEN BEGIN
// Add the following line.
IF "Posting Date" = 0D THEN
// End of the added line.
UseDate := WORKDATE
ELSE
UseDate := "Posting Date";
... -
CalculateInvoiceDiscount 함수에 Sales Calc. 할인 codeunit (60)의 코드를 다음과 같이 변경.
기존 코드...// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(SalesHeader."Posting Date" = 0D)
THEN
// End of the deleted lines.
CurrencyDate := WORKDATE
ELSE
CurrencyDate := SalesHeader."Posting Date";
...대체 코드
...// Add the following line.
IF SalesHeader."Posting Date" = 0D THEN
// End of the added line.
CurrencyDate := WORKDATE
ELSE
CurrencyDate := SalesHeader."Posting Date";
... -
CalculateInvoiceDiscount 함수에서 코드를 변경 하면 Purch.-Calc.Discount codeunit (70) 다음과 같이:
기존 코드...// Delete the following lines.
IF ("Document Type" IN ["Document Type"::"Blanket Order","Document Type"::Quote]) AND
(PurchHeader."Posting Date" = 0D)
THEN
// End of the deleted lines.
CurrencyDate := WORKDATE
ELSE
CurrencyDate := PurchHeader."Posting Date";
...대체 코드
...// Add the following line.
IF PurchHeader."Posting Date" = 0D THEN
// End of the added line.
CurrencyDate := WORKDATE
ELSE
CurrencyDate := PurchHeader."Posting Date";
...
전제 조건
이 핫픽스를 적용 하려면 설치한 다음 제품 중 하나가 있어야 합니다.
-
Microsoft Dynamics 탐색 2009 서비스 팩 1 (SP1)
-
Microsoft Dynamics 탐색 2009 R2
제거 정보
이 핫픽스를 제거할 수 없습니다.
상태
Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
참조
VSTF DynamicsNAV SE: 237796, 245981, 254036
참고: 이 문서는 Microsoft 지원 부서 내에서 직접 작성한 "빠른 게시" 문서입니다. 여기에 포함된 정보는 신흥 문제에 대한 응답으로 제공되었습니다. 신속히 사용할 수 있도록 작성되었으므로, 자료 입력 오류가 포함될 수 있으며 언제든지 예고없이 개정될 수 있습니다. 다른 고려 사항은 사용 약관을 참조하십시오.