XMLPorts en el RTC (I)
Últimamente hemos visto varios temas relacionados con XMLPorts que queremos compartir con vosotros por si os resultan útiles. En un post anterior ya comentamos una forma alternativa de importar datos de un csv que contenía caracteres especiales, ahora nos centraremos en un par de cosas relacionadas con los XMLPorts en el RTC, empezando por el formato de los XML.
Formato de ficheros XML en el RTC
Digamos que tenemos un XMLPort para importar datos a la tabla 27 Producto / Item, y tenemos algo así:
Donde en las propiedades de Vendor, damos los siguientes valores para LinkTable y LinkFields:
Si exportamos utilizando este XMLPort, para entradas sin Vendor NO. desde el RTC y desde el Cliente Clásico obtenemos resultados diferentes:
Como podéis ver, aunque no tenga Vendor, cuando exportamos desde el RTC incluye las etiquetas para los campos mientras que en el Cliente Clásico no.
¿Por qué tenemos que tener esto en cuenta si trabajamos con XMLPorts de este tipo en el RTC? Pues porque si queremos importar datos este mismo principio se cumple, es decir, si por ejemplo intentamos importar usando el mismo XMLPort el XML que obtuvimos antes desde el Cliente Clásico (el de la derecha, que no incluye etiquetas para Vendor) tendremos un error donde nos dice que el contenido (elementos) de Vendor está incompleto:
Y por tanto lo único que tenemos que hacer es asegurarnos de utilizar el tipo de XML apropiado para el RTC (el de la izquierda, con etiquetas) cuando quedamos importar datos para evitarnos estos errores:
Juliet R. Moreiro Bockhop
Microsoft Dynamics NAV Support Engineer
“Los ejemplos aquí expuestos se proporcionan sólo como ejemplo ilustrativo y en ningún caso el autor se hace responsable del contenido ni efectos que pueda tener su uso.”
Comments
- Anonymous
August 09, 2012
Hola Juliet, En primer lugar darte las gracias por el aporte. Estoy haciendo algo similar pero cambiando las tablas que exporto/importo. En mi caso son los movimientos contables y sus respectivas dimensiones.Ledger Entry Dimension, y con la propiedad SourceTableView, cogiendo solo aquellos registros cuya tabla sea la 17. La exportación funciona igual que como muestras para el RTC. El problema es que al importar, me falla cuando algún movimiento no tiene dimensión. El mensaje es: "Los datos están en conflicto con las opciones de LinkTable y LinkFields de la tabla Entry_Dimension". He conseguido que no me falle, poniendo por código, en el trigger OnAfterInitRecord de la tabla de dimensiones lo siguiente: IF "Ledger Entry Dimension"."Table ID" = 0 THEN currXMLport.SKIP; Me desaparece el mensaje de error, me importa los movimientos, pero ninguna dimensión. ¿Alguna sugerencia? Gracias a todos! Un saludo.