많은 코드가 있지만 주위에 거짓말을 많이 본 적이 있지만 분명히 도움이되지 않습니다.SSIS 스크립트 작업 실패 방법 (C#, 2008 사용)
내가 파일 금액 필드가있는 읽어지고 있습니다 여기에
내가 따라야 할 논리이다. 이 금액 입력란에는 제외 어가있을 수 있습니다. 파일에서 음수가 발견되면 파일을 옮기고 패키지를 실패해야합니다. 내가 지금까지 무슨 짓을: 파일 경로를 얻기 위해
추가 스크립트 작업은 루프 내에서, 해당 경로에있는 모든 파일을 읽을 루프를 추가 (기록에 부정적인 양의 멤버를 이동하는 DTS 작업을 추가 세트, 레코드의 모든 행이 어떠했는지를 계산> 0 다음 따라서 패키지에 실패한 스크립트 작업, 다른 패스)
을하지 않을 경우, 확인하는 스크립트 작업을 추가 한 scipt 작업의 코드 :
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using System.Xml;
// name space call here etc, etc..
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
public void Main()
{
// TODO: Add your code here
bool fireAgain = true;
DataTable dtable = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
// Setting this incase there are multiple files being checked
Dts.Variables["InvalidFile"].Value = "False";
da.Fill(dtable, Dts.Variables["NegativeAmountMember"].Value);
// I do get my desired result here of 1
Dts.Events.FireInformation(0, "dtable", dtable.Rows.Count.ToString(), String.Empty, 0, ref fireAgain);
if (dtable.Rows.Count > 0)
{
Dts.Variables["InvalidFile"].Value = "True";
Dts.Events.FireInformation(0, "InvalidFile", Dts.Variables["InvalidFile"].Value.ToString(), String.Empty, 0, ref fireAgain); // This does get displayed but, nothing happens after this step.
Dts.TaskResult = (int)ScriptResults.Failure; // this method never technically executes
return; // added this because someone somewhere said in a post to do so
}
else
{
Dts.TaskResult = (int)ScriptResults.Success;
}
}
I 이 스크립트 Tas를 실패하는 것을 제외하고는 모든 것이 작동하도록하십시오. 케이.
FireError도 시도했지만 호출되지 않습니다.
무슨 일이 일어나고 있는지, 누구든지 설명해 주실 수 있습니까?
'Dts.TaskResult = (int) ScriptResults.Failure;에 대한 귀하의 의견을 이해할 수 없습니다. 작업이 실패합니다. 어떻게 그런 일이 일어나지 않는지 이해해주세요 – billinkc
@billinkc 나는 화재 정보 이벤트가 실행되지만'Dts.TaskResult = (int) ScriptResults.Failure;'단계가 실행되면 ScriptTask가 멈추거나 실패하지 않습니다. 그것은 여전히 '황색 단계'에 있습니다. – DURTAYY
여러분의 요구에 따라'Script Task' 속성 인'ForcedParentOnFailure' 또는'ForcedPackageOnFailure'를 True로 설정해야한다고 생각합니다. 루프 컨테이너에 작업이 있습니다. – Tak