오케스트레이션에 글로벌 예외 핸들러 추가

글로벌 예외 핸들러가 사용 가능하도록 설정된 경우 런타임 동안 오케스트레이션의 활동에서 예외가 처리되면 글로벌 CatchAll 분기가 실행됩니다.

이 태스크 정보

다음 그림은 예제 오케스트레이션을 보여줍니다.

예제 오케스트레이션

이 예제에서, 데이터베이스 삽입 가져오기 또는 데이터베이스 행 삽입 활동이 실패하여 예외를 처리하면, CatchAll 분기의 If..Then 활동이 실행됩니다.

프로시저

  1. 오케스트레이션의 시작 아이콘 시작 아이콘을 마우스 오른쪽 단추로 클릭하고 메뉴에서 CatchAll 분기 추가 옵션을 선택하십시오. CatchAll 분기가 오케스트레이션에 추가되고, 다음 변수가 자동으로 작성됩니다.
    • faultName - 런타임 동안 faultName 변수는 오케스트레이션의 활동에 의해 처리된 예외의 이름을 포함합니다.
    • faultData - 런타임 동안 faultData 변수는 예외와 연관된 오류 메시지를 포함합니다. 이 추가 정보는 웹 서비스 활동에 대해서만 현재 리턴됩니다. 웹 서비스 활동의 경우, faultData 변수에 결함이 포함됩니다.
    • faultInfo - 런타임 동안 faultInfo 변수는 다음 노드를 리턴합니다.
      • name - 런타임 동안 faultInfo/name 노드는 오케스트레이션의 활동에 의해 처리된 예외의 이름을 포함합니다. faultInfo/name 노드는 xsd:QName 유형입니다.
      • message - 런타임 동안 faultInfo/message 노드는 예외와 연관된 오류 메시지를 포함합니다. faultInfo/message 노드는 xsd:string 유형입니다.
      • activityId - 런타임 동안 faultInfo/activityId 노드는 예외가 발생한 활동을 고유하게 식별하는 활동 ID를 포함합니다. faultInfo/activityId 노드는 xsd:int 유형입니다.
      • activityName - 런타임 동안 faultInfo/activityName 노드는 예외가 발생한 활동 이름을 포함합니다. faultInfo/activityName 노드는 xsd:string 유형입니다.
      • faultTime - 런타임 동안 faultInfo/faultTime 노드는 예외가 발생한 시간을 포함합니다. faultInfo/faultTime 노드는 xsd:dateTime 유형입니다.
      참고: faultName 변수와 faultInfo/name 노드의 활동에 의해 리턴되는 예외 이름은 미래의 릴리스에서 변경될 수도 있습니다.
  2. 이전 그림에 표시된 대로 활동 탭의 활동을 CatchAll 분기로 끌어와서 CatchAll 분기를 구성하십시오.

결과

참고: faultName, faultDatafaultInfo 변수의 범위는 CatchAll 분기로 제한됩니다. 이 범위 제한사항은 이러한 변수의 값이 CatchAll 분기 내에서만 유효함이 보장됨을 의미합니다. 예를 들어 faultName 변수의 값을 테스트하는 If...Then 활동을 추가하는 경우, 이전 그림에 표시된 대로 If...Then 활동이 CatchAll 분기 내에 놓여야 합니다.



피드백 | 주의사항


시간소인 아이콘 마지막 업데이트 날짜: 2013년 11월 6일 수요일