protected string Grabar(string sCR, string strFunciones) { string sResul = "", sDesc = ""; try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } try { string[] aFun = Regex.Split(strFunciones, "///"); foreach (string oFun in aFun) { string[] aValores = Regex.Split(oFun, "##"); //0. Opcion BD. "I", "U", "D" //1. ID Origen //2. Descripcion //3. Notificable //4. E-Mail sDesc = Utilidades.unescape(aValores[2]); bool bNotificable = false; if (aValores[3] == "1") { bNotificable = true; } bool bEstado = false; if (aValores[5] == "1") { bEstado = true; } switch (aValores[0]) { case "I": TAREAORIGEN.Insert(tr, Utilidades.unescape(aValores[2]), Utilidades.unescape(aValores[4]), short.Parse(sCR), bNotificable, bEstado); break; case "U": TAREAORIGEN.Update(tr, short.Parse(aValores[1]), Utilidades.unescape(aValores[2]), Utilidades.unescape(aValores[4]), short.Parse(sCR), bNotificable, bEstado); break; case "D": TAREAORIGEN.Delete(tr, short.Parse(aValores[1])); break; } } Conexion.CommitTransaccion(tr); string[] aTabla = Regex.Split(ObtenerOrigenes(sCR), "@#@"); sResul = "OK@#@" + aTabla[1]; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al actualizar los orígenes.", ex) + "@#@" + sDesc; } finally { Conexion.Cerrar(oConn); } return(sResul); }