- Este debate tiene 7 respuestas, 3 mensajes y ha sido actualizado por última vez el hace 7 años, 6 meses por
santi.galan.
-
AutorEntradas
-
15 enero 2019 a las 18:07 #7875
santi.galanParticipanteHola a todos,
Tengo un “Poltergeist” a ver si me podeis echar un cable. Estoy llamando un XML de exportación de la tabla Item desde una codeunit mediante el siguiente código:
RecItem.GET(‘ART1800001’);
CustXmlfile.CREATE(‘C:\Xml\styles\PLM\’+ ‘Archivo’ + ‘.xml’);
CustXmlfile.CREATEOUTSTREAM(xmlstream);
XMLPORT.EXPORT(50019,xmlstream,RecItem) ;
CustXmlfile.CLOSE;
MESSAGE(‘XML Creado’);El problema es que no filtra los registros que se van a exportar y me exporta todo el fichero… 🙁
Alguna idea?
Un saludo y gracias
15 enero 2019 a las 22:33 #7877
Laura NicolàsSuperadministradorHola Santi,
Sin probarlo, creo que el problema es que estás haciendo un GET en lugar de un SETRANGE.
Con el GET te posicionas en un registro, pero no filtras. Cambia el GET por SETRANGE(“No.”,‘ART1800001’);
Salut!
Laura Nicolàs16 enero 2019 a las 11:00 #7880
santi.galanParticipanteMuchas Gracias Laura,
Tienes razón ese es el motivo. Aprovecho para hacerte otra pregunta:
Quiero importar a NAV cualquier fichero de una tipología (XML) que exista en un directorio en concreto, el tema es que importar un fichero en concreto ya lo tengo hecho, el problema se me plantea es cuando quiero ir procesando TODOS los ficheros que hayan en un directorio.
Se te ocurre algo?
Un saludo,
Santi
16 enero 2019 a las 12:03 #7881
Cristina NicolàsSuperadministradorHola Santi,
Hace mucho tiempo que no programo algo así y no sé si aún funciona o no.
En versiones antiguas recuerdo que existía una tabla de estas de sistema con numeración por los 20000000, que tenía información de los directorios y los archivos. Ponías un filtro sobre el Path en la carpeta que te interesara y después podías recorrer los registros de esta tabla para ir encontrando todos los ficheros que contenía.
No recuerdo como se llamaba la tabla y ahora haciendo una búsqueda rápida en BC no veo cual puede ser. No sé si es que ya no existe o si es que al no recordar el nombre de la tabla no soy capaz de encontrarla.Otra opción sería crearse una variable de tipo DotNet para recorrer archivos en un directorio.
No sé exactamente como se tendría que hacer, pero como ejemplo buscaría en la codeunit 419 File Management donde por ejemplo hay unas funciones llamadas GetClientDirectoryFilesList y GetServerDirectoryFilesList que tienen toda la pinta que te van a poder servir para tu propósito.Un saludo,
Cristina Nicolàs16 enero 2019 a las 14:42 #7883
santi.galanParticipanteMuchísimas gracias Cristina!!
Voy a probarlo.
Un saludo,
Santi
17 enero 2019 a las 18:09 #7894
santi.galanParticipanteHola Cristina
Otra cosa que me está pasando es que cuando quiero importar un XML que tiene varios registros de una misma tabla me sale el error:
Hay varios elementos Raíz…
Este error sale cuando va a leer el segundo registro del XML.
Gracias
17 enero 2019 a las 18:47 #7897
santi.galanParticipanteSolucionado!!!! Me había olvidado poner un Nivel por encima de la tabla
23 enero 2019 a las 17:20 #8088
santi.galanParticipanteHola Cristina,
Respecto al tema de leer todos los ficheros de un directorio efectivamente existe una tabla (2000000022) que se puede usar para recorrerla aplicando filtros. (Uso NAV 2018).
Muchísimas gracias
Santi
-
AutorEntradas
- Debes estar registrado para responder a este debate.