コード例 #1
0
        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);
        }
コード例 #2
0
        public PSActivityRun(ActivityRun activityRun, string resourceGroupName, string factoryName)
        {
            if (activityRun == null)
            {
                throw new ArgumentNullException("activityRun");
            }

            this.activityRun       = activityRun;
            this.ResourceGroupName = resourceGroupName;
            this.DataFactoryName   = factoryName;
        }
コード例 #3
0
        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, "");
        }
コード例 #4
0
 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;
 }
コード例 #5
0
        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, "");
        }
コード例 #6
0
        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();
        }
コード例 #7
0
 public PSActivityRun()
 {
     this.activityRun = new ActivityRun();
 }
コード例 #8
0
 /// <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.
 }
コード例 #9
0
        /// <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();
            }
        }
コード例 #10
0
        /// <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);
        }
コード例 #11
0
        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();
            }
        }
コード例 #12
0
        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);
        }
コード例 #13
0
 /// <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();
 }
コード例 #14
0
 /// <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.
 }
コード例 #15
0
 /// <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();
 }