protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken) { // Inputs var excelFilePath = ExcelFilePath.Get(context); var sapProcessName = SAPProcessName.Get(context); var xmlFolderPath = XMLFolderPath.Get(context); var xmlFilePath = string.Empty; XmlDocument doc = null; ExcelToXMLConverter excelToXMLConverter = new ExcelToXMLConverter(); if (!string.IsNullOrEmpty(xmlFolderPath)) { xmlFilePath = excelToXMLConverter.ConvertExcelToXMLFile(excelFilePath, sapProcessName, xmlFolderPath); } else { doc = excelToXMLConverter.ConvertExcelToXMLDocument(excelFilePath, sapProcessName); } // Outputs return((ctx) => { XMLDocument.Set(ctx, doc); XMLPath.Set(ctx, xmlFilePath); }); }
protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken) { // Inputs var excelFilePath = ExcelFilePath.Get(context); var sapProcessName = SAPProcessName.Get(context); var xmlFolderPath = XMLFolderPath.Get(context); /////////////////////////// // Add execution logic HERE /////////////////////////// // Outputs return((ctx) => { XMLDocument.Set(ctx, null); XMLPath.Set(ctx, null); }); }
protected override void Execute(NativeActivityContext context) { try { filepath = ExcelFilePath.Get(context); //_Application excel = new ApplicationClass(); ExcelHelper.Shared.Close_OpenedFile(filepath); excel.DisplayAlerts = false; wb = excel.Workbooks._Open(@filepath, False, False, Missing.Value, Missing.Value, False, False, Missing.Value, Missing.Value, False, Missing.Value, Missing.Value, True); String sheet = SheetName.Get(context); if (sheet != null) { ws = (_Worksheet)wb.Worksheets[sheet]; } else { ws = (_Worksheet)wb.Worksheets[1]; } string temp = Range.Get(context); char[] a = { ':', ';' }; if (temp != null) { string[] temp2 = temp.Split(a[0]); if (temp2.Length == 1) { from = temp2[0]; Range last = ws.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing); rng = ws.get_Range(from, last); } if (temp2.Length == 2) { from = temp2[0]; to = temp2[1]; rng = ws.get_Range(from, to); } } else { Range last = ws.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing); from = "A1"; rng = ws.get_Range("A1", last); } Range findRng = rng.Find(Value.Get(context), Missing.Value, XlFindLookIn.xlValues, Missing.Value, Missing.Value, XlSearchDirection.xlNext, False, False, Missing.Value); string Address = RemoveSpecialCharacters(findRng.Address); Result.Set(context, Address); //Log.Logger.LogData("\n## The Address is " + Address, LogLevel.Info); string RemoveSpecialCharacters(string str) { return(Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled)); } wb.Save(); } catch (Exception ex) { Log.Logger.LogData("Exception in LookUpRange: " + ex.Message, LogLevel.Error); if (!ContinueOnError) { context.Abort(); } } finally { wb.Close(); excel.Quit(); Marshal.ReleaseComObject(ws); Marshal.ReleaseComObject(wb); Marshal.ReleaseComObject(excel); } }