asked on April 20, 2018
Hi,
I getting error as below when I run script in workflow:
"Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))."
Please assist me on this issue.
Kindly refer code as below :
namespace WorkflowActivity.Scripting.SDKScript { using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Text; using Excel = Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.CSharp; using System.Windows.Forms; using Laserfiche.RepositoryAccess; using Laserfiche.DocumentServices; /// <summary> /// Provides one or more methods that can be run when the workflow scripting activity is performed. /// </summary> public class Script1 : RAScriptClass102 { /// <summary> /// This method is run when the activity is performed. /// </summary> protected override void Execute() { // Write your code here. The BoundEntryInfo property will access the entry, RASession will get the Repository Access session // Write your code here. string edoctoken = GetTokenValue("DownloadElectronicDocument_Result File").ToString(); edoctoken=edoctoken.Replace(@":",@""); string path="C:\\ProgramData\\Laserfiche\\WF\\ServerData\\"+edoctoken; //use excel library to read and get the data Excel.Application xlApp = new Excel.ApplicationClass(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(path); // Sheet 1 Excel.Worksheet xlWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkbook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; try { int rowCount = xlRange.Rows.Count; SetTokenValue("Row Values",rowCount); int colCount = xlRange.Columns.Count; SetTokenValue("Column Values",colCount); //CIF No. List<string> CIFList = new List<string>(); for(int i=2;i<=rowCount;i++) { string CIFNo = Convert.ToString((xlRange.Cells[i,1]as Excel.Range).Value2); if (CIFNo!=null) { CIFList.Add(CIFNo); } } SetMultiValueToken("CIF No.",CIFList, true); //ACF No. List<string> ACFList = new List<string>(); for(int i=2;i<=rowCount;i++) { string ACFNo = Convert.ToString((xlRange.Cells[i,2]as Excel.Range).Value2); if (ACFNo!=null) { ACFList.Add(ACFNo); } } SetMultiValueToken("ACF No.",ACFList, true); //Customer Name List<string> CustList = new List<string>(); for(int i=2;i<=rowCount;i++) { string CustName = Convert.ToString((xlRange.Cells[i,3]as Excel.Range).Value2); if (CustName!=null) { CustList.Add(CustName); } } SetMultiValueToken("Customer Name",CustList, true); //Financing Amount List<string> FinanceAmountList = new List<string>(); for(int i=2;i<=rowCount;i++) { string FinancingAmount = Convert.ToString((xlRange.Cells[i,4]as Excel.Range).Value2); if (FinancingAmount!=null) { FinanceAmountList.Add(FinancingAmount); } } SetMultiValueToken("Financing Amount",FinanceAmountList, true); //Company Registration List<string> ComRegList = new List<string>(); for(int i=2;i<=rowCount;i++) { string ComReg = Convert.ToString((xlRange.Cells[i,5]as Excel.Range).Value2); if (ComReg!=null) { ComRegList.Add(ComReg); } } SetMultiValueToken("Company Registration No",ComRegList, true); //IC Number List<string> ICNoList = new List<string>(); for(int i=2;i<=rowCount;i++) { string ICNo = Convert.ToString((xlRange.Cells[i,6]as Excel.Range).Value2); if (ICNo!=null) { ICNoList.Add(ICNo); } } SetMultiValueToken("I.C No",ICNoList, true); //Document Type List<string> DocTypeList = new List<string>(); for(int i=2;i<=rowCount;i++) { string DocType = Convert.ToString((xlRange.Cells[i,7]as Excel.Range).Value2); if (DocType!=null) { DocTypeList.Add(DocType); } } SetMultiValueToken("Document Type",DocTypeList, true); */ xlWorkbook.Save(); } catch { } finally { Marshal.ReleaseComObject(xlRange); Marshal.ReleaseComObject(xlWorksheet); xlWorkbook.Close(); Marshal.ReleaseComObject(xlWorkbook); xlApp.Quit(); Marshal.ReleaseComObject(xlApp); } } } }
0
0