private string Borrar()
    {
        string sResul = "";

        try
        {
            NODO_NATURALEZA.DeleteAll(null);
            sResul = "OK";
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al eliminar la parametrización de nodos-naturaleza.", ex, false);
        }
        return(sResul);
    }
    private string Grabar(string strNaturalezas, string strDatos)//string strNodos,
    {
        string sResul            = "";
        int?   idFicepiValidador = null;

        try
        {
            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                return(sResul);
            }
            #endregion

            NODO_NATURALEZA.DeleteAll(tr);

            //string[] aNodos = Regex.Split(strNodos, "///");
            //foreach (string oNodo in aNodos)
            //{
            //    if (oNodo == "") continue;
            //    string[] aValoresNodo = Regex.Split(oNodo, "##");
            //    /// aValoresNodo[0] = idNodo
            //    /// aValoresNodo[1] = defectoPIG

            //    NODO.UpdateDefectoPIG(tr, int.Parse(aValoresNodo[0]), (aValoresNodo[1] == "1") ? true : false);
            //}
            string[] aNaturalezas = Regex.Split(strNaturalezas, "///");
            foreach (string oNaturaleza in aNaturalezas)
            {
                if (oNaturaleza == "")
                {
                    continue;
                }
                string[] aValoresNat = Regex.Split(oNaturaleza, "##");
                /// aValoresNat[0] = idNaturaleza
                /// aValoresNat[1] = meses vigencia
                /// aValoresNat[2] = Permite usuarios de otros nodos

                NATURALEZA.UpdateDefectoVIG(tr, int.Parse(aValoresNat[0]), byte.Parse(aValoresNat[1]), (aValoresNat[2] == "1")? true:false);
            }
            string[] aNodoNat = Regex.Split(strDatos, "///");

            foreach (string oNodoNat in aNodoNat)
            {
                if (oNodoNat == "")
                {
                    continue;
                }
                string[] aValores = Regex.Split(oNodoNat, "##");
                /// aValores[0] = idNodo
                /// aValores[1] = idNaturaleza
                /// aValores[2] = Permite usuarios de otros nodos(replica)
                /// aValores[3] = hereda nodo
                /// aValores[4] = imputable GASVI
                /// aValores[5] = IdUsuario responsable
                /// aValores[6] = idficepi validador GASVI
                if (aValores[6] == "" || aValores[6] == "null")
                {
                    idFicepiValidador = null;
                }
                else
                {
                    idFicepiValidador = int.Parse(aValores[6]);
                }

                NODO_NATURALEZA.Insert(tr, int.Parse(aValores[0]), int.Parse(aValores[1]),
                                       (aValores[2] == "1") ? true : false,
                                       (aValores[3] == "1") ? true : false,
                                       (aValores[4] == "1") ? true : false,
                                       int.Parse(aValores[5]),
                                       idFicepiValidador
                                       );
            }

            Conexion.CommitTransaccion(tr);
            sResul = "OK";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos.", ex, false);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }