Una idea feliz: Construir una cadena de ordenación de ficheros

En ocasiones, hacemos procesos que generan ficheros de forma masiva. Estos ficheros se acumulan en una ruta especificada y, cuando tenemos que consultarlos, no vemos la forma sencilla de ordenarlos por fecha. Es cierto que una de las propiedades de un fichero es la fecha de modificación pero en ocasiones esta no puede ser del todo fiable. Con esta función, podemos construir fácilmente una cadena que contiene AÑO MES DÍA HORA MINUTO SEGUNDO que resulta ideal para utilizar como nombre de un fichero:


FechaInversa

l_txtAnyo := FORMAT(DATE2DMY(TODAY,3));
l_txtMes := FORMAT(DATE2DMY(TODAY,2));
l_txtDia := FORMAT(DATE2DMY(TODAY,1));

l_txtHoraCompleta := FORMAT(TIME);
l_txtHora := COPYSTR(l_txtHoraCompleta,1,STRPOS(l_txtHoraCompleta,':')-1);

l_txtHoraCompleta := COPYSTR(l_txtHoraCompleta,STRPOS(l_txtHoraCompleta,':')+1);
l_txtMinuto := COPYSTR(l_txtHoraCompleta,1,STRPOS(l_txtHoraCompleta,':')-1);

l_txtHoraCompleta := COPYSTR(l_txtHoraCompleta,STRPOS(l_txtHoraCompleta,':')+1);
l_txtSegundo := l_txtHoraCompleta;

IF STRLEN(l_txtAnyo) = 2 THEN l_txtAnyo := '20'+l_txtAnyo;
IF STRLEN(l_txtMes) = 1 THEN l_txtMes := '0'+l_txtMes;
IF STRLEN(l_txtDia) = 1 THEN l_txtDia := '0'+l_txtDia;
IF STRLEN(l_txtHora) = 1 THEN l_txtHora := '0'+l_txtHora;
IF STRLEN(l_txtMinuto) = 1 THEN l_txtMinuto := '0'+l_txtMinuto;
IF STRLEN(l_txtSegundo) = 1 THEN l_txtSegundo := '0'+l_txtSegundo;

EXIT(l_txtAnyo+l_txtMes+l_txtDia+l_txtHora+l_txtMinuto+l_txtSegundo);

Espero que os sea muy útil.

Cuando NAS nos dice que las opciones posibles son Yes/No…

En este blog se ha hablado largo y tendido sobre NAS. Es posible que alguna vez os hayáis encontrado con algún tipo de problema al arrancar el servicio y que este os diga algo parecido a “Sí no es una opción. Las opciones posibles son Yes/No”. El principal problema de esto es el idioma que está utilizando NAS para entrar en NAV. Buscando un poco de información he visto que se comenta lo siguiente:

  • Copiar las carpetas de idiomas de la carpeta client a la carpeta application server.
  • Utilizar código en la codeunit 1 (evento NasHandler) que modifique el idioma que se utiliza al entrar en la base de datos. Para esto se suele utilizar GLOBALLANGUAGE.

Pero últimamente lo que me ha funcionado ha sido lo siguiente:

  • Abrir la carpeta %AppData% (se puede escribir directamente en inicio > ejecutar).
  • Buscar y borrar el archivo NaviBP.xml. Este archivo sólo contiene una lista con los breakpoints que el usuario ha marcado en el debbuger de NAV.

Puede parecer absurdo, pero en algunas ocasiones, borrar este fichero ha sido la solución al problema.