2013-06-11 4 views
2

CSV 파일의 "보류"디렉터리를 읽고 준비 테이블에 각 파일을로드하고 파일을 "완료"또는 "실패한"파일로 이동시키는 간단한 Integration Services 프로젝트를 작성합니다. 디렉토리는 성공적으로로드되었는지 여부에 따라 다릅니다. "완료"및 "실패"디렉토리의 위치는 프로젝트 매개 변수에서 설정됩니다.오류없이 SSIS 파일 시스템 작업이 실패합니다.

문제는 "실패한 디렉터리로 이동"작업은 실행되는 모든 작업이 성공적으로 실행 되더라도 실행되지 않습니다. 실망스러운 것은 오류 메시지가 생성되지 않는다는 것입니다. 작업의 이벤트 처리기에 중단 점을 설정하려고 시도했지만 중단 점에 결코 도달하지 않습니다. 그것은 작업이 전혀 없다는 것입니다 (나는 Disabled 속성이 실수로 작업에 설정되지 않았 음을 확인했지만 실제로는 그렇지 않습니다).

"완료된 작업으로 이동"작업이 잘 작동하고 두 작업이 동일한 디렉터리에 저장되기 때문에 이상합니다. 사용 권한 문제라면 어떤 종류의 오류가 있다고 생각하지만 두 디렉터리가 존재하고 동일한 액세스 권한을 갖습니다. 상기 그림에서

SSIS flow

, 그것은 작동하지 우측에서 MoveToFailed 작업이다. 중복 파일 또는 알 수없는 파일 또는 유효하지 않은 레코드가 포함 된 파일 등 여러 가지 방법으로 접근 할 수 있습니다. 작업은 호출 방법에 관계없이 실행되지 않습니다.

+0

제어 흐름의 캡쳐 화면을 확보 할 수 있습니까? – billinkc

+0

@billinkc : 완료 –

+0

우수. 그래서 이런 나쁜 일이 생기면 패키지가 오류로 끝나거나 논리 오류가 발생하여 패키지가 어떤 작업을 수행해야합니까? 그 경로가 논리적 오류라고 생각하게 만드는 GetValidInvalidRecordCount에 대한 표현식을 봅니다. 그러나 MarkInvalidFile과 다른 스크립트 작업은 성공에만 제약을받는 것처럼 보입니다. – billinkc

답변

1

우선 순위 제약 조건을 '논리 OR'모드가되도록 MoveToFailed로 변경해야합니다.
해당 구성 요소에 대한 제약 조건 중 하나를 선택하고 마우스 오른쪽 버튼으로 클릭하고 '편집'을 선택하십시오. 하단에 '논리 OR'이라고 표시된 라디오 버튼이 있습니다. 하나의 제약 조건은 True로 평가되어야합니다. '

+0

MarkDuplicate가 성공적으로 완료되고 선행 제약 조건에 표현식이 없습니다. 이러한 제약에 대해 OR 연산자를 사용할 수있는 것은 없습니다. 다르게 읽는거야? – billinkc

+0

작업을 실행하기 전에 해당 작업으로 인도하는 세 가지 우선 순위 제약 조건을 모두 작성한 방법이 true 여야합니다. 설명한대로 변경하면 우선 순위 제약 조건 중 하나가 참일 때 작업이 실행됩니다. –

+0

예, 우선 순위 제약 조건이었습니다. 내 신기한 실수. 필자가 가장 익숙한 ETL/EAI 도구는 모든 입력 (OR)에서 작업을 트리거합니다. –

관련 문제