GeneXus - Blob Local Storage Path

 
Vista:
Imágen de perfil de Patricio Ojeda V
Val: 73
Oro
Ha aumentado 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Blob Local Storage Path

Publicado por Patricio Ojeda V (475 intervenciones) el 11/03/2008 15:21:26
Foristas,

Tengo una aplicación Net WIN C/S que tiene un modulo de Postulantes, y a cada Postulante se les puede asociar documentos de tipo doc, xls, pdf y jpg, los cuales se van grabando en un segundo nivel especial para esta finalidad. Hasta aquí vamos bien.

Ahora bien, el inconveniente e inquietud es que tengo seteada la propiedad “Blob Local Storage Path”, y a la hora de entrar en modo DSP o UPD a la Trn en ésta carpeta se me crean los archivos que tengo asociado al Postulante, pero me crea la cantidad de archivos multiplicado por 6. Es decir, si a una persona le tengo asociado un documento Pdf y un documento Word, me crea 12 archivos (6 archivos pdf + 6 archivos word).  Además a la hora de salir de la Trn esos archivos que se crearon no se van borrando de la carpeta, y con el paso del tiempo termino quedando con una carpeta que tiene muchísimos archivos los cuales ni se ocupan.

Por estos motivos, les agradecería que me comenten si a alguien le pasa lo mismo, también sería bueno que me comentaran sus experiencias respecto al trabajo con archivos en un Sistema GX.

Por otra parte quizás estoy entendiendo mal el funcionamiento del “Blob Local Storage Path” o me está faltando configurar algo.

Cualquier comentario se agradece y es bienvenido…

Gx 9 U4 – Net U4 ambiente Win.

Saludos

Patricio Ojeda V
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Zarate

RE:Blob Local Storage Path

Publicado por Leonardo Zarate (32 intervenciones) el 20/03/2008 13:27:22
Hola Patricio: en mi caso con el BLOB me sapas muy parecido, es decir lo estoy usando en ambiente WEB, asignandole a un registro, una imagen, hasta ahi vamos bien como vos, pero cada ves que ingreso al sitio, me genera 1 (un) archivo por cada imagen que muestro en la pagina, tambien los va acumulando y no me los borra (Hay un SAC en el GXTECHNICAL.. que dice como borrarlos mediante un archivo .ASA.. pero no me funciono)
actualmente estoy probando borrar todo el DIR cada ves que entra al sitio... si encuentro alguna solucion te aviso.-

Saludos
Leonardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Patricio Ojeda V
Val: 73
Oro
Ha aumentado 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

RE:Blob Local Storage Path

Publicado por Patricio Ojeda V (475 intervenciones) el 20/03/2008 14:52:50
Hola Leonardo,

Te comento que yo igual lo solucioné de la misma manera. Cada vez que entro a la aplicacion hago un borrado de los archivos y dejo la carpeta del Blob Local Storage Path vacia.

Esta solucion para mi no es una solucion completa, pues si bien es cierto con esto consigo mantener la carpeta vacia, para mi el peor problema es que cada vez que ingreso a la Trn con un registro, y este registro tiene asocido archivos, estos archivos se copian "TODOS" a la carpeta definida en el Blob Local Storage Path, lo cual obviamente hace mas lento al Sistema.

Saludos y gracias por responder... :-) Por lo menos se ahora que no soy el unico que tiene el mismo problema

Patricio Ojeda V
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Blob Local Storage Path

Publicado por Lucho (1 intervención) el 02/12/2008 13:07:25
Hola como estan?? espero poder ayudar con el tema en mi caso la unica solucion que encontre es hacer el borrado fisico del archivo creado en la carpeta blob cuando voy a otro webpanel, es decir cuando el usuario cambia de web panel el archivo generado en el Blob Local Storage Path se borra para esto le paso la solucion...

tienen que definir en Events del web panel siguiente al que genera el archivo temporal una variable del tipo Directory (&directory), despues en el "source" le dan la ruta completa del Blob Local Storage Path como muestro en el ejemplo, en el "for" me fijo si hay archivos en el directorio y en el caso de ser asi en la linea del "GetFile" hago el borrado fisico del archivo, bueno espero haber ayudado, saludos y hasta la proxima.

Ejemplo:

&directory.Source="C:ResolucionesWebwebBlob"
for &index=1 to &directory.GetFiles().Count
&directory.GetFiles().Item(&index).Delete()
EndFor

PD: esto lo tengo en el Event Start...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Blob Local Storage Path

Publicado por Antonio (1 intervención) el 10/03/2015 19:40:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
var ajax;
 
var entradaLlevar = false;
$(function () {
    PrepararXMLHttp();
    if (!ajax) {
        alert("No se puede crear el objero XMLHttp");
    } else {
        Mostrar();
        $(":radio").click(cargarPrecio);
        $("#arroces").change(CargarIngredientes);
        $("#raciones").keypress(Patron);
        $("#ingredientes").change(cargarPrecio);
        $("#raciones").change(cargarPrecio);
        $("#grabar").click(prepararGrabar);
        $("#listar").click(mostrarListado);
    }
 
});
 
function PrepararXMLHttp() {
    if (window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();
    } else if (window.ActiveXbject) {
        try {
            ajax = new ActiveXbject("MSXML2.XMLHTTP");
        } catch (event) {
            ajax = new ActiveXbject("Microsoft.XMLHTTP");
        }
    }
}
 
function Mostrar() {
    ajax.open("POST", "arroces.php", true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.onreadystatechange = function () {
        if (ajax.readyState === 4 && ajax.status === 200) {
            var xml = ajax.responseXML;
            var arroz = xml.getElementsByTagName("arroz");
            var precio = xml.getElementsByTagName("precio");
            for (var i = 0; i < arroz.length; i++) {
                $("#arroces").append("<option id='" + (i + 1) + "' class='" + precio[i].firstChild.nodeValue + "'>" + arroz[i].firstChild.nodeValue + "</option>");
            }
        }
    };
    ajax.send();
}
 
function CargarIngredientes() {
    //precio=$("#arroces :selected").attr("class");
    var valor = $("#arroces :selected").attr("id");
    $.ajax({
        url: "ingredientes.php",
        type: "POST",
        dataType: "xml",
        data: {cod: valor},
        success: MostrarIngredientes,
        error: Error
    });
}
 
function MostrarIngredientes(data) {
    $("#ingredientes").html("");
    $("#ingredientes").append("<option class='0'>Seleccionar...</option>");
    var precioIngrediente = new Array();
    $(data).find("precio").each(function (i) {
        precioIngrediente[i] = $(this).html();
    });
 
    $(data).find("ingre").each(function (i) {
        $("#ingredientes").append("<option class='" + precioIngrediente[i] + "'>" + $(this).html() + "</option>");
    });
    cargarPrecio();
}
 
function cargarPrecio() {
    var precio = 0;
    var valorRadio = $(":radio:checked").val();
    var valorTipo = Number($("#arroces :selected").attr("class"));
    var valorIngredientes = Number($("#ingredientes :selected").attr("class"));
    var valorRaciones = Number($("#raciones").val());
 
    if (!valorRaciones) {
        valorRaciones = 1;
    }
    if (valorRadio === "Llevar") {
        precio += 1;
    }
    precio += (valorTipo + valorIngredientes) * valorRaciones;
    $("#precio").val(precio);
}
 
function Patron(event) {
    var key = event.keyCode;
    if (key == 94) {
        return true;
    } else {
        return false;
    }
}
 
function Error() {
    alert("Error al introducir ingredientes");
}
 
function prepararGrabar() {
    if (window.localStorage) {
        grabarDatos();
    } else {
        alert("No lo soporta el navegador");
    }
 
}
 
function grabarDatos() {
    var valorTipo = $("#arroces :selected").val();
    var valorIngredientes = $("#ingredientes :selected").val();
    var valorRaciones = $("#raciones").val();
    var precio = $("#precio").val();
    var clave="pedido"+localStorage.length;
 
    var datos={tipo:valorTipo,ingredientes:valorIngredientes,raciones:valorRaciones,precio:precio};
    datos=JSON.stringify(datos);
    localStorage.setItem(clave,datos);
}
 
function mostrarListado(){
    for (var i=0;i<localStorage.length;i++){
       var valor=JSON.parse(localStorage.getItem("pedido"+i));
        $("#listadoPedidos").append(valor.tipo+" "+valor.ingredientes+" "+valor.raciones+" "+valor.precio+"<br>");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar