public PACKAGE_PSA(DATAOBJECT d)
            : base(d)
        {
            this.packageType = "PSA";
            this.Name = this.tableName();

            this.addConnection("Commercial_STG", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("STAGE").NAME);
            this.addConnection("Commercial_PSA", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("PSA").NAME);
            this.addConnection("Commercial_RUN", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("RUN").NAME);
            this.addConnection("Commercial_MATCH", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("MATCH").NAME);
            this.addConnection("Commercial_META", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("META").NAME);

            this.addVariable("Audit::RowsUpdated");
            this.addVariable("Audit::RowsInserted");

            EzDataFlow ExtractAllRecords = new PSADataFlow(this, this);
            ExtractAllRecords.Name = "Import Staging Data To PSA";

            this.SaveToFile(this.fileName());
            this.addConfigurations();
            this.addLogging(ExtractAllRecords.Name);

            //TODO Update Inactive Records
            //TOO Delete Processed Inactive Rows
        }
        public PACKAGE_STAGE(DATAOBJECT d)
            : base(d)
        {
            this.packageType = "STAGE";

            this.Name = this.tableName("STAGE");

            this.addConnection("Commercial_STG", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("STAGE").NAME);
            this.addConnection("Commercial_PSA", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("PSA").NAME);
            this.addConnection("Commercial_RUN", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("RUN").NAME);
            this.addConnection("MATCH", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("MATCH").NAME);
            this.addConnection("Commercial_META", this.t.SSMS.SERVERNAME, this.t.getDatabaseByLayer("META").NAME);
            this.addConnection("Source", this.d.ds.SERVERNAME, this.d.ds.DATABASENAME);

            this.addVariable("Audit::RowsMatched");
            this.addVariable("Audit::RowsInserted");
            this.addVariable("Audit::RowsUpdated");
            this.addVariable("Audit::RowsDeleted");

            //Clear stage table for clean full load of source data
            EzExecuteSQLTask TruncateStageTable = new EzExecuteSQLTask(this);
            TruncateStageTable.Name = "Truncate Stage Table";
            TruncateStageTable.SqlStatementSource = "truncate table " + this.tableName("STAGE");
            TruncateStageTable.Connection = this.Conns["Commercial_STG"];

            EzDataFlow ExtractAllRecords = new StageDataFlow(this, this);
            ExtractAllRecords.Name = "Extract All Records";
            ExtractAllRecords.AttachTo(TruncateStageTable);

            this.SaveToFile(this.fileName());
            this.addConfigurations();
            this.addLogging(ExtractAllRecords.Name);
        }