¿Cómo funciona la importación de archivos XML uno con la repetición de campos en una base de datos FileMaker?

StackOverflow https://stackoverflow.com/questions/1256478

  •  12-09-2019
  •  | 
  •  

Pregunta

Estoy usando FileMaker Pro 9 y quiero tener una base de datos con registros de repetición (por ejemplo, un campo es "Líneas" y puede tener hasta 9 cuerdas) e importar datos en él desde un archivo XML.

En este momento, con el siguiente archivo XML, solo me dan la primera entrada importada ( "Sala"):

<?xml version="1.0" encoding="UTF-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
    <ERRORCODE>0</ERRORCODE>
    <PRODUCT NAME="" VERSION="" BUILD=""/>
    <DATABASE NAME="New Invoice" RECORDS="1" DATEFORMAT="M/d/yyyy" TIMEFORMAT="" LAYOUT="hh/mm/a"/>
    <METADATA>
        <FIELD NAME="Description Index" TYPE="TEXT" EMPTYOK="NO" MAXREPEAT="9"/>
    </METADATA>
    <RESULTSET FOUND="1">
        <ROW RECORDID="" MODID="">
            <COL>
                <DATA>Room</DATA>
                <DATA>Equipment</DATA>
                <DATA>Labor</DATA>
            </COL>
         </ROW>
    </RESULTSET>
</FMPXMLRESULT>

¿Cómo puedo obtener el resto de las entradas ( "Equipo" y "Trabajo") importado?

Otros consejos

puede importación y exportación campos repetidos (arrays) en Filemaker, pero no de un formato XML.

Me imaginé a cabo. Puede exportar e importar campos repetidos de Filemaker, siempre y cuando usted utiliza su fusión (.mer) formato o valores separados por comas (CSV), u otro formato de texto sin formato delimitado. De lo contrario, sólo le dará la primera de las repeticiones en el campo. XML no es una opción para esto. Para este ejemplo, voy a utilizar un archivo csv.

En primer lugar, con el fin de importar campos repetidos correctamente, usted tiene que entender algunas cosas ...

  1. Cuando la exportación o importación de repetición de datos de campo de FileMaker, se utiliza un carácter especial oculta para separar los elementos que se repiten. El carácter es el ASCII-29, pero no se puede simplemente escribir que como se puede hacer otros personajes. En un Mac o PC, la clave es ctr +] (mantenga pulsada la tecla de control y el corchete derecho).

  2. Esto se maneja mejor en un editor de texto que puede mostrar caracteres invisibles, como Coda o texto Wrangler. En Coda, encendí "Mostrar caracteres invisibles", porque a menos que esté en un editor de texto con el encendido, no verá nada suceda, ya que inserta el carácter detrás del texto y no hay ningún espacio entre la repetición artículos.

  3. En un CSV, los campos están contenidos entre comillas y separados por una coma. Records están separados por un retorno de carro (la tecla Intro o Retorno). encabezados de campo están separados por una coma, pero no están contenidos en comillas.

A continuación se muestra un ejemplo en formato CSV. Voy designo el carácter oculto con el número 29 entre corchetes ([29]):

  

Número de buzón, Contenido

     

"1", "manzanas [29] naranjas [29] plátanos"

     

"2", "bacalao [29] atún [29] salmón [29] trucha"

     

"3", "Mi pequeño pony [29] He-Man"

Box 1 tenía manzanas, naranjas y plátanos.

Box 2 tenía el bacalao, el atún, el salmón y la trucha.

Box 3 tenía mi pequeño pony y He-Man.

Y ahí lo tienen. Filemaker lo reconoce como campos repetidos. Valdría la pena exportar algunos campos repetidos de Filemaker primero y echar un vistazo al archivo desde un editor de texto (con personajes ocultos que muestra), sólo para obtener una representación visual de lo que se le tratando de lograr.

No se puede. Pero se puede conseguir alrededor de él:

Por lo que yo puedo decir, FileMaker parece utilizar el carácter ASCII-29 internamente para dividir los datos que están en la repetición de campos. Usted tiene un par de opciones.

  1. Si usted puede resolver los problemas de codificación, sólo tiene el único elemento de habitaciones y de división, equipo y mano de obra con el carácter ASCII-29 en el medio.

  2. Añada su propio separador y escribir una función script / personalizado que toma los datos importados y la metió en el campo repetido requerido. (Este script se verá repulsivo)

  3. No utilice campos repetidos

En lo personal me quedo tan lejos de campos repetidos como sea posible.

Si es posible, utilice una nueva tabla relacionada para los datos que se repiten. Se puede utilizar un portal o similar a mostrarlo si así lo desea, o incluso se puede tirar de él en un campo calculado en la tabla principal si tiene que estar allí. Algo como esto:

INVOICE
-------
ID
Invoice Date

LINES
-------
ID
fk_InvoiceID
Item
FACTURA

A continuación, pueden estar relacionadas :: identificación - LÍNEAS <:: fk_InvoiceID y puede mostrar todos los elementos en un portal

.

También puede tener un campo calculado que se ve algo como esto en la tabla Factura:

cLines = List(LINES::Item)

¿Qué le dará algo como:

Room
Equipment
Labor

En aquel campo.

Las respuestas anteriores son incorrectas. Puede, de hecho, la importación delimitado listas de valores de archivos XML a las tablas de FileMaker. Sin embargo, para ser justos, FileMaker no puede hacerlo utilizando intrínsecamente es de importación XML nativo. Con el fin de hacer esto se debe crear un archivo de transformación XSL para ser usado en conjunción con el archivo XML cuando se importan. Dentro de la etiqueta de datos en el archivo de transformación utilizar una estructura para recorrer y concatenar los valores en el archivo XML.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top