---
title: "Una solución rápida para funciones complejas"
date: "2011-06-27"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "version-2011"
description: Altova MapForce 2011 simplifica la compleja tarea de mapeo de datos al permitir a los usuarios combinar funciones de forma gráfica. Ofrece pruebas paso a paso para garantizar conversiones de datos precisas.
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #version-2011

Categories: [Altova](/blog/es/category/altova.md) 
# Una solución rápida para funciones complejas

Algunas conversiones de datos requieren múltiples pasos para cumplir con las complejas necesidades de comunicación de datos actuales. [Altova MapForce 2011](https://www.altova.com/es/mapforce.html) le permite combinar gráficamente una amplia variedad de funciones matemáticas, lógicas, de cadenas de texto y otras [funciones especializadas](https://www.altova.com/es/mapforce/data-processing-functions.html) para crear complejas "ecuaciones de datos" y obtener los resultados que necesita. Si está trabajando en un mapeo complejo y extenso, si está utilizando una función que no conoce o si su función genera un resultado intermedio que necesita ser procesado posteriormente, es útil probar su trabajo en cada etapa del proceso de creación. Puede utilizar un [archivo de texto sencillo](https://www.altova.com/es/mapforce/flat-file-mapping.html) como destino temporal para ver el resultado de su función en desarrollo. Supongamos que queremos añadir una marca de fecha y hora a una asignación existente de un archivo de salida, para registrar el momento en que se generaron los datos. Ahora podemos experimentar fácilmente con la función "MapForce" en un nuevo mapeo que simplemente se conecta a un archivo de texto. 

[![Una función asociada a un archivo de texto](https://lh4.ggpht.com/-NecSm6arE0g/Tf-MKZyrP4I/AAAAAAAAAZM/DyO5RHvbDpU/technote27_1_thumb%25255B2%25255D.png?imgmax=800 "A function connected to a text file")](http://lh3.ggpht.com/-nlHcCbcvjFc/Tf-MJ9mMqQI/AAAAAAAAAZI/lFddbb7blzc/s1600-h/technote27_1%25255B4%25255D.png)

Al hacer clic en el botón "Salida" que se encuentra en la parte inferior de la ventana de mapeo, se muestra el resultado inmediato: 

[![Resultado de la función "now"](https://lh3.ggpht.com/-d_iemv_ykrc/Tf-MLG7DA1I/AAAAAAAAAZU/tPounch7Ofc/technote27_2_thumb%25255B2%25255D.png?imgmax=800 "Output of the now function")](http://lh5.ggpht.com/-_I-NteTD0tE/Tf-MK-qeWAI/AAAAAAAAAZQ/byuCmyEmvrA/s1600-h/technote27_2%25255B4%25255D.png) 

De acuerdo, eso funciona, pero quizás el usuario que utilice el archivo de salida preferiría ver una versión con un formato más elegante. Podemos utilizar diversas funciones de fecha y hora, así como funciones de texto, y crear una función compleja hasta que nuestro mapeo tenga este aspecto: 

[![Función compleja para generar una cadena de caracteres](https://lh3.ggpht.com/-zuEPfPxnuLY/Tf-MMIRLZKI/AAAAAAAAAZc/zj0xQr561RU/technote27_3_thumb%25255B2%25255D.png?imgmax=800 "Complicated function to produce a string")](http://lh6.ggpht.com/-429i3ML-88k/Tf-MLsxsfjI/AAAAAAAAAZY/n5PU6-z0sjs/s1600-h/technote27_3%25255B4%25255D.png) 

O bien, podríamos utilizar simplemente la función de conversión "format-dateTime" con una constante de cadena para definir el formato: 

[![Utilizar la función "format-dateTime" para obtener resultados personalizados](https://lh3.ggpht.com/-It_hoxtBz5I/Tf-MM0Jw2oI/AAAAAAAAAZk/bsKoKQGZkNc/technote27_4_thumb%25255B2%25255D.png?imgmax=800 "Using the format-dateTime function for customized output")](http://lh5.ggpht.com/-aHLThUl46bI/Tf-MMWQUnkI/AAAAAAAAAZg/oVQM37fNsAg/s1600-h/technote27_4%25255B4%25255D.png) 

Mientras trabajamos, podemos presionar el botón de "Salida" en cualquier momento, hasta que estemos satisfechos con un resultado que se vea así: 

[![Cadena de caracteres personalizada para la fecha y la hora](https://lh4.ggpht.com/-94YVgt5hGAc/Tf-MNzI5DaI/AAAAAAAAAZs/f1hokVgdvBo/technote27_5_thumb%25255B2%25255D.png?imgmax=800 "Custom string for date and time")](http://lh3.ggpht.com/-mOgE_ufw_ds/Tf-MNTQyQvI/AAAAAAAAAZo/gMCh3pkDtSI/s1600-h/technote27_5%25255B4%25255D.png) 

Si no trabaja con tipos de datos de fecha y hora a diario, ¡es difícil crear una cadena de formato a la primera que genere el resultado deseado! Después de varios intentos, modificaciones y consultas con la ayuda de MapForce, aquí está el formato que desarrollamos y que se almacenó en la constante de cadena conectada a la entrada de formato de la función de conversión "formatear fecha y hora": 

[![Cadena de texto para definir el formato de la fecha y hora](https://lh4.ggpht.com/-vJlxfpnWDLE/Tf-MOqGOehI/AAAAAAAAAZ0/5kU5pfLXnjI/technote27_6_thumb%25255B2%25255D.png?imgmax=800 "String to define format for dateTime")](http://lh6.ggpht.com/-HT699QUkXRg/Tf-MOSslQNI/AAAAAAAAAZw/qAjirhgmTKw/s1600-h/technote27_6%25255B4%25255D.png)

Hasta ahora, hemos utilizado un archivo de texto que se define como un archivo CSV básico con un solo campo, pero puede abrir el cuadro de diálogo de propiedades del archivo y agregar campos o crear un archivo de salida más personalizado.

[![Configuración de propiedades para un archivo de texto simple](https://lh6.ggpht.com/-uU2CKqIDYDQ/Tf-MPvuAgYI/AAAAAAAAAZ8/SzheowFYP3w/technote27_7_thumb%25255B3%25255D.png?imgmax=800 "Properties settings for a simple text file")](http://lh4.ggpht.com/-qZ5CeImVIuI/Tf-MPNq4zRI/AAAAAAAAAZ4/lfbmBTAuC_g/s1600-h/technote27_7%25255B5%25255D.png) 

Una ventaja de utilizar un archivo de texto como destino de salida es que no se realiza ninguna verificación del tipo de resultado de la función. Por lo tanto, el destino de archivo de texto le permite examinar y verificar la salida de cualquier función. En la captura de pantalla que se muestra a continuación, creamos una función matemática y agregamos un segundo campo al destino de archivo de texto para mapear el resultado. 

[![Archivo de texto con dos campos de destino](https://lh4.ggpht.com/-bkqK8zHzSGc/Tf-MQXFDV8I/AAAAAAAAAaE/lXmO7FFVIVE/technote27_8_thumb%25255B2%25255D.png?imgmax=800 "Text file with two target fields")](http://lh5.ggpht.com/-i2GuUy7xGa4/Tf-MP0AmpQI/AAAAAAAAAaA/DoEDCUBTPRw/s1600-h/technote27_8%25255B4%25255D.png)

Ahora, el resultado es una única línea con valores separados por comas, como este:

[![Dos campos en un archivo de texto sencillo](https://lh6.ggpht.com/-pZMEjI9YzCA/Tf-MRRwlbrI/AAAAAAAAAaM/H61gauIPrpw/technote27_9_thumb%25255B2%25255D.png?imgmax=800 "Two fields in a simple text file")](http://lh3.ggpht.com/-4qI-JEQq6KU/Tf-MREv_AEI/AAAAAAAAAaI/TlRYz1Ucn_o/s1600-h/technote27_9%25255B4%25255D.png) 

Si nuestro objetivo final es un campo de una base de datos o un elemento XML con un tipo de dato entero, entonces podemos ver inmediatamente que esta función matemática no produce el tipo de dato esperado. Una vez que haya perfeccionado su función en la prueba de mapeo, puede simplemente seleccionarla, copiarla y pegarla directamente en su mapeo principal. Luego, puede conectar la salida de la función a su objetivo final. En la captura de pantalla que se muestra a continuación, nuestra función de formato "dateTime" está mapeada a un elemento en un esquema XML que está definido como una cadena de texto.

[![Función insertada en un esquema más amplio](https://lh4.ggpht.com/-yWufMDEjtr4/Tf-MSSrvKUI/AAAAAAAAAaU/jy-aqhTO4vI/technote27_10_thumb%25255B2%25255D.png?imgmax=800 "Function pasted into larger mapping")](http://lh3.ggpht.com/-V7xU_lpVjpA/Tf-MR4WsmXI/AAAAAAAAAaQ/hfRmKCiFRFM/s1600-h/technote27_10%25255B4%25255D.png) 

Si esta es una función que probablemente necesitará utilizar de nuevo en el futuro, puede convertirla en una función definida por el usuario y guardarla en su biblioteca para poder reutilizarla fácilmente. 

[![Menú de funciones de Altova MapForce](https://lh6.ggpht.com/-Qx5nsgVq1MA/Tf-MS30X-JI/AAAAAAAAAac/_IyIHiUGYWE/technote27_11_thumb%25255B5%25255D.png?imgmax=800 "Altova MapForce Function menu")](http://lh6.ggpht.com/-sL7Qf6AitKg/Tf-MSuQoegI/AAAAAAAAAaY/Yz14z0P3Uvo/s1600-h/technote27_11%25255B9%25255D.png) 

Puede incluso utilizar un archivo de texto como un destino temporal para construir y probar una función compleja directamente dentro de su mapeo más amplio. En ese caso, su mapeo incluye múltiples resultados posibles. El botón con el icono de un ojo, ubicado en la esquina superior derecha de cada archivo de salida, permite seleccionar qué archivo de salida se muestra en la ventana de resultados.

[![Archivo de texto como objetivo temporal dentro de un mapeo más amplio](https://lh6.ggpht.com/-ROHTGmMGhCc/Tf-MUbPViPI/AAAAAAAAAak/1OdyEKLbGvY/technote27_12_thumb%25255B2%25255D.png?imgmax=800 "Text file as a temporary target")](http://lh3.ggpht.com/-JEuO0O-O1d8/Tf-MTy-EOVI/AAAAAAAAAag/q10Mjah9tBQ/s1600-h/technote27_12%25255B4%25255D.png) 

Cuando selecciona un archivo de texto como vista previa de la salida, el motor de ejecución de MapForce no procesa la transformación completa, sino solo la función conectada al archivo de texto. Esto puede ahorrar mucho tiempo cuando solo desea examinar el resultado de la función y su transformación principal procesa un gran volumen de datos, o si no desea correr el riesgo de introducir datos incorrectos en una base de datos, y en muchas otras situaciones. **¡Descubra por sí mismo lo fácil que es aplicar MapForce a sus propios proyectos de transformación de datos!** [**Descargue una versión de prueba gratuita de 30 días**](https://www.altova.com/es/download/mapforce/data_mapping_enterprise.html) **de MapForce.**
