Share via


Ejemplo de bucle controlado por tablas

En esta sección se describe brevemente un mapa mediante los functoids Bucle de tabla y Extractor de tablas . Para obtener información detallada sobre cómo seleccionar, colocar, vincular y configurar los functoids, vea How to Add Table Looping and Table Extractor Functoids to a Map.

Suponga que tiene una lista de direcciones que necesita utilizar en un documento que requiera distintas direcciones de envío y de facturación. Las direcciones podrían ser similares al siguiente código.

<ns0:Root xmlns:ns0="http://TableLoopingSample.Addresses">  
    <Address>  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City>  
        <State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address>  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
</ns0:Root>  

Una manera de expresar el resultado sería el siguiente código, en el que las direcciones están duplicadas pero se han marcado con distintos atributos.

<ns0:Root xmlns:ns0="http://TableLoopingSample.POAddresses">  
    <Address Type="ShipTo">  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City>  
        <State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address Type="BillTo">  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City><State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address Type="ShipTo">  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
    <Address Type="BillTo">  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
</ns0:Root>  

The following figure shows a map using theExtractorde tablas en bucle defunctoid andtablasfunctoids to generate the desired output instance message.

Asignar el functoid table looping y table extractor
Functoids de bucle de tabla y de extractor de tablas

Observe que el functoid Bucle de tabla se vincula al elemento de nivel de registro en los esquemas de entrada y salida. El vínculo asegura la creación de la estructura envolvente y por lo tanto la creación de elementos dentro del registro. Observe también que hay un functoid Extractor de tabla para cada campo del esquema de salida.

El vínculo al registro del esquema de entrada es el primer parámetro del cuadro de diálogo Configurar <functoid> functoid.

El segundo parámetro es el número de columnas de la tabla de cuadrícula del functoid: una columna para el tipo de dirección, el nombre, la calle, la ciudad, el estado y el código postal. Después del segundo parámetro, se encuentra una lista con todos los valores que pueden aparecer en la tabla de la cuadrícula. Entre los que se incluyen las constantes de las cadenas para el tipo de dirección ("ShipTo", "BillTo"), así como vínculos a los campos de la dirección. Observe que los vínculos de los campos de dirección tienen nombres. Al darles nombres a estos vínculos se simplifica la construcción de la tabla. De lo contrario, las rutas de acceso completas aparecen en el cuadro de diálogo Configurar functoid bucle de tabla .

Después de configurar el functoid Bucle de tabla, puede construir la tabla mediante el cuadro de diálogo Configurar bucle de tabla functoid . El cuadro de diálogo aparece al hacer clic en el botón de puntos suspensivos (...) asociado a la propiedad Cuadrícula de bucle de tabla en la ventana Propiedades .

Observe que hay seis columnas como se especifica en el cuadro de diálogo Configurar functoid bucle de tabla : una columna para cada campo del esquema de salida. En la lista desplegable se muestran los valores posibles de un campo, también según lo especificado por el tercero y los parámetros siguientes en el cuadro de diálogo Configurar functoid bucle de tabla . La tabla tiene dos filas, una para cada tipo de registro del esquema de salida. Al haber dos filas, esta asignación crea dos registros por cada registro de entrada. Si hubiera cuatro filas, habría cuatro registros de salida por cada registro de entrada.

A medida que el functoid Bucle de tabla toma cada registro, rellena la tabla con los valores del registro y, a continuación, envía una fila a la vez a los functoids Extractor de tablas. Cada functoid extractor de tablas extrae un valor de la fila de tabla y lo pasa al campo vinculado en el mensaje de la instancia de salida.

Consulte también

Functoid Bucle de tabla
Functoid Extractor de tablas
Configuración de bucles controlados por tablas
Cómo agregar functoids de bucle de tabla y de extractor de tablas a una asignación
Functoids avanzados
Functoid de índice
Functoid de iteración
Functoid de bucle
Functoid de número de registros