private void RecordActivityRun(ActivityRun ar, string context) { var parameters = new Dictionary <string, object> { ["@pipelineName"] = ar.PipelineName, ["@activityName"] = ar.ActivityName, ["@context"] = context }; ExecuteStoredProcedure("test.RecordActivityRun", parameters); }
public PSActivityRun(ActivityRun activityRun, string resourceGroupName, string factoryName) { if (activityRun == null) { throw new ArgumentNullException("activityRun"); } this.activityRun = activityRun; this.ResourceGroupName = resourceGroupName; this.DataFactoryName = factoryName; }
public void PDFReport(ActivityRun ar, IGenevaActions genevaInstance, ReportParameters report) { reportName = report.Name; ar.CurrentStep = "PDFReport"; UpdateProgress("Running PDF - " + report.Name, ar); Exception rdlException = RunSSRSReport(report, ar, reportFormat.PDF); if (rdlException != null) { throw rdlException; } ar.SaveActivityStep(true, report.Name, report.OutputFilePath, ""); }
public PSActivityRun(ActivityRun activityRun) { this.Error = activityRun?.Error; this.Output = activityRun?.Output; this.Input = activityRun?.Input; this.DurationInMs = activityRun?.DurationInMs; this.ActivityRunEnd = activityRun?.ActivityRunEnd; this.ActivityRunStart = activityRun?.ActivityRunStart; this.Status = activityRun?.Status; this.ActivityRunId = activityRun?.ActivityRunId; this.ActivityType = activityRun?.ActivityType; this.ActivityName = activityRun?.ActivityName; this.PipelineRunId = activityRun?.PipelineRunId; this.PipelineName = activityRun?.PipelineName; this.LinkedServiceName = activityRun?.LinkedServiceName; this.AdditionalProperties = activityRun?.AdditionalProperties; }
public void CSVReport(ActivityRun ar, IGenevaActions genevaInstance, ReportParameters report) { reportName = report.Name; ar.CurrentStep = "CSVReport"; UpdateProgress("Running CSV - " + report.Name, ar); TextReader tReader; genevaInstance.ExecuteReport(report.FileName, report.ParameterList, ReportOutputFormat.CSV, out tReader); var data = tReader.ReadToEnd(); tReader.Close(); report.OutputFilePath = GetOutputFileName(report); string FilePath = outputFolder + report.OutputFilePath + ".csv"; TextWriter tWriter = new StreamWriter(FilePath); tWriter.Write(data); tWriter.Close(); ar.SaveActivityStep(true, report.Name, report.OutputFilePath, ""); }
private void UpdateProgress(string Message, ActivityRun activityRun) { double csvPercent = 0; if (reportCountCSV != 0) { csvPercent = (reportCountCSV / reportTotalCSV); } double pdfPercent = 0; if (reportCountPDF != 0) { pdfPercent = (reportCountPDF / reportTotalPDF); } activityRun.Note = status + Environment.NewLine + "CSV Reports Completed: " + csvPercent.ToString("P0") + Environment.NewLine + "PDF Reports Completed: " + pdfPercent.ToString("P0") + Environment.NewLine + Environment.NewLine + Message; activityRun.Save(); }
public PSActivityRun() { this.activityRun = new ActivityRun(); }
/// <summary> /// <see cref="IActivity.Run(ActivityRun,IGenevaActions)">IActivity.Run(ActivityRun,IGenevaActions)</see> /// </summary> /// <param name="activityRun">ActivityRun instance</param> /// <param name="genevaInstance">GenevaAction instance</param> public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance) { //This is where the actual activity run happens. }
/// <summary> /// <see cref="IActivity.Run(ActivityRun,IGenevaActions)">IActivity.Run(ActivityRun,IGenevaActions)</see> /// </summary> /// <param name="activityRun">ActivityRun instance</param> /// <param name="genevaInstance">GenevaAction instance</param> public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance) { //This is where the actual activity run happens. ////The name of parameters in the GS Activity String portParamName = "Portfolio"; String startDateName = "Period Start Date"; String endDateName = "Period End Date"; String rslParamName = "RSL"; //FTP Parameters ftpHandler = new FTPHandler(); String ftpServerNameParamName = "FTP Host Name"; String ftpUserNameParamName = "FTP Username"; String ftpPasswordParamName = "FTP Password"; String localFileNameFTPFormatParamName; String hostKeyNameParamName; String sshKeyParamName; String remoteInputDirParamName; //This is the file name that the FTP server requires in order for it to process the file String remoteFileNameParamName; String WinSCPPathParamName; try { activityRun.StartDateTime = DateTime.Now; //Read data from Activity Paramters String portfolio = activityRun.GetParameterValue(portParamName); String perStartDate = activityRun.GetParameterValue(startDateName); String perEndDate = activityRun.GetParameterValue(endDateName); rslName = activityRun.GetParameterValue(rslParamName); //Set FTPHandler //ftpHandler. var cultInfo = new System.Globalization.CultureInfo(System.Globalization.CultureInfo.InvariantCulture.Name); var dateTimeStyle = System.Globalization.DateTimeStyles.None; DateTime dtStartDate = DateTime.ParseExact(perStartDate, "M/d/yyyy", cultInfo, dateTimeStyle); DateTime dtEndDate = DateTime.ParseExact(perEndDate, "M/d/yyyy", cultInfo, dateTimeStyle); ReportParameterList parameters = new ReportParameterList(); parameters.Add(new ReportParameter("Portfolio", portfolio)); parameters.Add(new ReportParameter("PeriodStartDate", dtStartDate)); parameters.Add(new ReportParameter("PeriodEndDate", dtEndDate)); runRSL(activityRun, genevaInstance, parameters); extractFile = new DelimitedFile(csvOutputFileName, ","); activityRun.UpdateSuccessfulActivityRun(); } catch (Exception e) { activityRun.UpdateFailedActivityRun(e); } finally { //Set Activity End Time and Save It activityRun.EndDateTime = DateTime.Now; activityRun.Save(); } }
/// <summary> /// Run the RSL and output its contents to a CSV file; set the CSV /// </summary> private void runRSL(ActivityRun activityRun, IGenevaActions genevaInstance, ReportParameterList parameters) { System.Xml.XmlDocument xmlOutput; genevaInstance.ExecuteReport(rslName, parameters, out xmlOutput); xmlTempOutputFile = @"C:\WFMCustomAccelerator\PB Accelerator Files\TempGSXML.xml"; xmlOutput.Save(xmlTempOutputFile); //RSL Output in CSV Format String rslCSVOutput = DataTableToCSV.XMLToCSV(xmlOutput); csvOutputFileName = @"C:\WFMCustomAccelerator\PB Accelerator Files\TempGSXMLCSV.csv"; File.WriteAllText(csvOutputFileName, rslCSVOutput); }
public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance) { status = "Executed by " + genevaInstance.GetCurrentUserName() + Environment.NewLine + "Files saved to " + GetSettingValue("OutputFolder") + Environment.NewLine; try { //Set Activity Start Time activityRun.StartDateTime = DateTime.Now; reportCountCSV = 0; reportCountPDF = 0; activityRun.CurrentStep = "Run"; activityRun.StartDateTime = DateTime.Now; outputFolder = GetSettingValue("OutputFolder"); //######### Set User Parameters ############# UpdateProgress("Setting Parameters....", activityRun); //Read Activty Parameter portfolio = activityRun.GetParameterValue("Portfolio"); strStartDate = activityRun.GetParameterValue("StartDate"); strEndDate = activityRun.GetParameterValue("EndDate"); strKnowledgeDate = activityRun.GetParameterValue("KnowledgeDate"); strPriorKnowledgeDate = activityRun.GetParameterValue("PriorKnowledgeDate"); dtStartDate = DateTime.ParseExact(strStartDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); dtEndDate = DateTime.ParseExact(strEndDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); dtKnowledgeDate = DateTime.ParseExact(strKnowledgeDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); dtPriorKnowledgeDate = DateTime.ParseExact(strPriorKnowledgeDate, "yyyy-MM-dd:HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); //Creating Generic (base) ReportParameter List; add required parameter to this object ReportParameterList base_parameters = new ReportParameterList(); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("ConnectionString", Properties.Settings.Default.GenevaConnection)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("Portfolio", portfolio)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PeriodStartDate", dtStartDate)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PeriodEndDate", dtEndDate)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("KnowledgeDate", dtKnowledgeDate)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("PriorKnowledgeDate", dtPriorKnowledgeDate)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AccountingRunType", "ClosedPeriod")); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AccountingCalendar", portfolio)); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("RegionalSettings", "en-IE")); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("DisableHyperlinks", "True")); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("QuantityPrecision", "4")); base_parameters.Add(new Advent.Geneva.WFM.GenevaDataAccess.ReportParameter("AddendumPages", "None")); //######### Get Report List CSV ############# UpdateProgress("Getting Report list for CSV...", activityRun); //List<ReportParameters> reportListCSV = getReportNames("CSV", base_parameters); reportListCSV = getReportNames("CSV", base_parameters); foreach (ReportParameters report in reportListCSV) { //CSVReport(activityRun, genevaInstance, report); CSVReportSSRS(activityRun, genevaInstance, report); reportCountCSV++; } activityRun.Save(); //######### Get Report List SSRSPDF ############# UpdateProgress("Getting Report List for PDF...", activityRun); List <ReportParameters> reportListPDF = getReportNames("PDF", base_parameters); foreach (ReportParameters report in reportListPDF) { PDFReport(activityRun, genevaInstance, report); reportCountPDF++; } UpdateProgress("Completed!" + Environment.NewLine, activityRun); activityRun.UpdateSuccessfulActivityRun(); activityRun.Save(); #if LoggingOn TextWriter RunWriter = new StreamWriter(outputFolder + "\\" + "Run.log"); RunWriter.Write(status); RunWriter.Close(); #endif } catch (Exception exp) { //Set Failure Flag Exception e = new Exception(status + Environment.NewLine + "-----------Exception Message--------------" + Environment.NewLine + exp.Message); activityRun.SaveActivityStep(false, reportName); activityRun.UpdateFailedActivityRun(e); activityRun.Save(); } finally { //Set Activity End Time and Save Activity activityRun.EndDateTime = DateTime.Now; activityRun.Save(); } }
private Exception RunSSRSReport(ReportParameters Report, ActivityRun activityRun, reportFormat format) { rsExec = new ReportExecutionService(); rsExec.Url = Properties.Settings.Default.RE2005_ReportExecutionService; rsExec.UseDefaultCredentials = true; string historyID = null; string deviceInfo = null; Byte[] results; string encoding = String.Empty; string mimeType = String.Empty; string extension = String.Empty; Warning[] warnings = null; string[] streamIDs = null; var p = ""; for (int i = 0; i < Report.Parameters.Count; i++) { p = "Param[" + i.ToString() + "]" + Report.Parameters[i].Name + "|" + Report.Parameters[i].Value.ToString() + Environment.NewLine + p; } // Path of the Report - XLS, PDF etc. Report.OutputFilePath = GetOutputFileName(Report); string FilePath = outputFolder + Report.OutputFilePath + "." + format.ToString().ToLower(); // Name of the report - Please note this is not the RDL file. string _reportName = @"/GenevaReports/" + Report.Name; try { ExecutionInfo ei = rsExec.LoadReport(_reportName, historyID); ParameterValue[] parameters = new ParameterValue[Report.Parameters.Count]; for (int i = 0; i < Report.Parameters.Count; i++) { parameters[i] = new ParameterValue(); parameters[i].Name = Report.Parameters[i].Name; parameters[i].Value = (string)Report.Parameters[i].Value; } rsExec.SetExecutionParameters(parameters, "en-IE"); DataSourceCredentials dataSourceCredentials2 = new DataSourceCredentials(); dataSourceCredentials2.DataSourceName = Properties.Settings.Default.DataSourceName; dataSourceCredentials2.UserName = Properties.Settings.Default.GenevaUser; dataSourceCredentials2.Password = Properties.Settings.Default.GenevaPass; DataSourceCredentials[] _credentials2 = new DataSourceCredentials[] { dataSourceCredentials2 }; var c = ""; for (int i = 0; i < _credentials2.Length; i++) { c = "_credentials2[" + i.ToString() + "]:" + _credentials2[i].DataSourceName + "|" + _credentials2[i].UserName + "|" + _credentials2[i].Password + "|" + Environment.NewLine + c; } rsExec.SetExecutionCredentials(_credentials2); //rsExec.UseDefaultCredentials = true; results = rsExec.Render(format.ToString(), deviceInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs); using (FileStream stream = File.OpenWrite(FilePath)) { stream.Write(results, 0, results.Length); } } catch (Exception ex) { status = "--- ERROR ---" + Environment.NewLine + "Running PDF Report: " + Report.Name + Environment.NewLine + ex.Message + Environment.NewLine + "--------------" + Environment.NewLine + status + Environment.NewLine; return(new Exception(status)); } return(null); }
/// <summary> /// <see cref="IActivity.Run(ActivityRun,IGenevaActions)">IActivity.Run(ActivityRun,IGenevaActions)</see> /// </summary> /// <param name="activityRun">ActivityRun instance</param> /// <param name="genevaInstance">GenevaAction instance</param> public override void Run(ActivityRun activityRun, IGenevaActions genevaInstance) { //This will be invoked by the framework, this is where you implementation goes...where you may have to do a transformation and load //to Geneva. throw new NotImplementedException(); }