public void iniciarETLBalanzaCSV(Int64 idEmpresa) { ETLBalanzaDA etlBalanza = new ETLBalanzaDA(); string archivo = string.Empty; string ruta = Constantes.CSV_PATH_BALANZA; List <Balanza> lstBala = new List <Balanza>(); DateTime fechaInicioProceso = DateTime.Now; Proceso proceso = new Proceso(); try { archivo = etlBalanza.generarSalContCC_CSV(idEmpresa, ruta); //prueba //archivo = "PruebaBalanzaRecrotado.csv"; int cantRegAfectados = etlBalanza.copy_balanza(archivo, ruta); DateTime fechaFinalProceso = DateTime.Now; configCorreo.EnviarCorreo("La extracción de Balanza se genero correctamente" + "\nFecha Inicio : " + fechaInicioProceso + " \n Fecha Final: " + fechaFinalProceso + "\nTiempo de ejecucion : " + (fechaFinalProceso - fechaInicioProceso).TotalMinutes + " mins" , Constantes.MENSAJE_CORREO_ETL); proceso.id_empresa = idEmpresa; proceso.tipo = Constantes.TIPO_EXT_PROGRAMADA; proceso.fecha_inicio = fechaInicioProceso; proceso.fecha_fin = fechaFinalProceso; proceso.estatus = Constantes.EST_EXT_FIN; proceso.mensaje = ""; procesoDa.AddProceso(proceso); etlBalanza.UpdateCuentaUnificada(idEmpresa);// concatencacion de cuentas } catch (Exception ex) { DateTime fechaFinalProceso = DateTime.Now; configCorreo.EnviarCorreo("Ha ocurrido un error en la extracción de Balanza" + "\nFecha Inicio : " + fechaInicioProceso + "\nFecha Final: " + fechaFinalProceso + "\nTiempo de ejecucion : " + (fechaFinalProceso - fechaInicioProceso).TotalMinutes + " mins" + "\nError : " + ex.Message , Constantes.MENSAJE_CORREO_ETL); string error = ex.Message; proceso.id_empresa = idEmpresa; proceso.tipo = Constantes.TIPO_EXT_PROGRAMADA; proceso.fecha_inicio = fechaInicioProceso; proceso.fecha_fin = fechaFinalProceso; proceso.estatus = Constantes.EST_EXT_ERR; proceso.mensaje = ex.Message; procesoDa.AddProceso(proceso); //etlBalanza.UpdateCuentaUnificada();// concatencacion de cuentas throw; } }
public void iniciaServicio(int timeTo) { while (continua) { ETLBalanzaDA etl = new ETLBalanzaDA(); ValidaExtraccion valiExtr = new ValidaExtraccion(); List <ETLProg> lstExtrProg = new List <ETLProg>(); lstExtrProg = valiExtr.lstExisteExtr(); List <ETLProg> lstExtrProg1 = new List <ETLProg>(); lstExtrProg1 = valiExtr.lstParametros(); //int id_compania = lstExtrProg1[0].INT_ID_EMPRESA; Int64 idEmpresa = 0; string nombreCompania = ""; foreach (ETLProg etlProg in lstExtrProg1) { idEmpresa = etlProg.id; List <Empresa> lstCompania = etl.EmpresaConexionETL_List(idEmpresa); if (lstCompania != null) { if (lstCompania.Count >= 1) { nombreCompania = lstCompania[0].nombre; } } try { Thread.Sleep(timeTo); //anterior ///etl.insertarTabBalanza(idEmpresa,nombreCompania); /// con cvs this.iniciarETLBalanzaCSV(idEmpresa); } catch (Exception ex) { //string error = ex.Message; //configCorreo.EnviarCorreo("Estimado Usuario : \n\n La extracción correspondiente a la compania " + idEmpresa +"."+ nombreCompania + " se genero incorrectamente \n\n Mensaje de Error: \n " + ex, "ETL Extracción Balanza"); //throw; } } //try //{ // Thread.Sleep(timeTo); // Compania compania = new Compania(); // if (lstExtrProg.Count() == 0) // { // //etl.CadenaConexionETL(id_compania); // etl.addTAB_BALANZA(id_compania); // //if (lstExtrProg[0].EXISTE == 0) // //if (lstExtrProg[0].EXISTE == 0) // //{ // // new ETL().addTAB_BALANZA(compania); // //} // //else // //{ // // continue; // //} // } // else // { // } //} //catch (Exception ex) //{ // string error = ex.Message; // throw; //} } }
public DSN crearDSN(Int64 idEmpresa) { ETLBalanzaDA etl = new ETLBalanzaDA(); List <Empresa> lstCia = etl.EmpresaConexionETL_List(idEmpresa); //Obtener los datos de la Tab_Compania para crear el DSN //ETLDataAccesLayer eTLDataAccesLayer = new ETLDataAccesLayer(); //List<Compania> lstCia = eTLDataAccesLayer.CadenaConexionETL_lst(id_compania); Empresa empresa = new Empresa(); empresa.usuario_etl = lstCia[0].usuario_etl; empresa.contrasenia_etl = lstCia[0].contrasenia_etl; empresa.contra_bytes = lstCia[0].contra_bytes; empresa.apuntador = lstCia[0].apuntador; empresa.llave = lstCia[0].llave; empresa.host = lstCia[0].host; empresa.puerto_compania = lstCia[0].puerto_compania; empresa.bd_name = lstCia[0].bd_name; empresa.id = lstCia[0].id; empresa.nombre = lstCia[0].nombre; string ctr = string.Empty; ctr = Utilerias.DecryptStringFromBytes(empresa.contra_bytes, empresa.llave, empresa.apuntador); empresa.contrasenia_etl = ctr; string ODBC_PATH = string.Empty; string driver = string.Empty; string DsnNombre = string.Empty; string Descri = string.Empty; string DireccionDriver = string.Empty; bool trustedConnection = false; try { ODBC_PATH = "SOFTWARE\\ODBC\\ODBC.INI\\"; driver = "SQL Anywhere 12"; //Nombre del Driver DsnNombre = empresa.id + "_" + empresa.nombre.Substring(0, 5).TrimEnd().Replace(" ", "_") + "_" + empresa.host; //nombre con el que se va identificar el DSN Descri = "DNS_Sybase" + DsnNombre; DireccionDriver = "C:\\Program Files\\SQL Anywhere 12\\Bin64\\dbodbc12.dll"; var datasourcesKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + "ODBC Data Sources"); if (datasourcesKey == null) { throw new Exception("La clave de registro ODBC no existe"); } //// Se crea el DSN en datasourcesKey aunque ya exista datasourcesKey.SetValue(DsnNombre, driver); //// Borrado de DSN para Actualizar datos en base de datos datasourcesKey.DeleteValue(DsnNombre); /// Se crea DSN con datos actuales datasourcesKey.SetValue(DsnNombre, driver); var dsnKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + DsnNombre); if (dsnKey == null) { throw new Exception("No se creó la clave de registro ODBC para DSN"); } dsnKey.SetValue("Database", empresa.bd_name); dsnKey.SetValue("Description", Descri); dsnKey.SetValue("Driver", DireccionDriver); dsnKey.SetValue("User", empresa.usuario_etl); dsnKey.SetValue("Host", empresa.host + ":" + empresa.puerto_compania); dsnKey.SetValue("Server", empresa.host); dsnKey.SetValue("Database", empresa.bd_name); dsnKey.SetValue("username", empresa.usuario_etl); dsnKey.SetValue("password", empresa.contrasenia_etl); dsnKey.SetValue("Trusted_Connection", trustedConnection ? "Yes" : "No"); DSN dsn = new DSN(); dsn.creado = true; dsn.nombreDSN = DsnNombre; return(dsn); //return 1; //se creo } catch (Exception ex) { string error = ex.Message; DSN dsn = new DSN(); dsn.creado = false; dsn.nombreDSN = DsnNombre; throw; //return dsn; //return 0; //Nose creo } }