2017-04-06 9 views
-1
내가 dateTime을

확장 기능은 null 값

public DateTime? ConvertOpenDate(string openDate) 
{ 
    DateTime oDate; 
    if (!DateTime.TryParseExact(openDate, "yyyy-MM-DD HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out oDate)) 
    { 
     return null; 
    } 
    else 
    { 
     return oDate; 
    } 
} 

에 문자열을 변환 할 수는 BizTalk 맵의 아래 스크립트 펑 토이 드를 사용하고하지만

확장 기능을 반환 할 수 없다는 오류를 던지고있다

을 반환 할 수 없습니다 null 값.

처리 방법 MS SQL DB에 datetime을 삽입했습니다.

+0

LinqPad의 빠른 테스트로 오류를 재현 할 수 없지만 날짜 형식 문자열이 잘못되었습니다. 달의 2 자리 날짜에는 대문자 DD가 아닌 소문자 dd를 사용하십시오. https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx#ddSpecifier –

+0

안녕하세요. 확장 메서드 사용과 관련이 없습니다. 그것은 간단한 날짜 변환입니다. –

+0

datetime 함수가 변환에 실패하면 빈 문자열을 반환합니다. 지도에서 메소드의 반환 값을 확인하십시오. 비어 있지 않으면 datetime-field를 매핑합니다. 비어 있으면 date 요소를 보내지 않습니다. –

답변

5

알려진 동작 : 해결 방법 "null 문자열을 나타내는 String.Empty 또는 다른 대체 값 반환"이 적용된 Known issues in BizTalk Server 2013. null을 반환

당신이 펑 토이 드에서 null 값을 반환

증상을 지원하지 않는지도가 실패하고 다음과 같은 일반 오류 메시지가 ...받을

당신이 테스트

Visual Studio에서 같은 맵을 사용하면보다 자세한 오류 메시지가 표시됩니다.
호출 대상에 의해 예외가 발생했습니다. 확장 함수는 널 값을 리턴 할 수 없습니다.

참고 XslCompiledTransform 클래스는 변환 내에서 호출 된 함수에서 Null 값을 반환하는 것을 지원하지 않습니다.

해상도
null 문자열을 표시하기 위해 String.Empty 또는 다른 대체 값을 반환합니다. 필요하면 전역 변수를 사용하여 여러 값에서 널 값을 사용할 수있게하십시오.