Hola buen día, recientemente tuve un caso donde el usuario tiene la necesidad de realizar una integración desde un sistema externo a GP para lo cual utiliza Integration Manager. Al realizar la inspección fue de nuestro conocimiento que el cliente tiene Windows 2003 server en español, GP en español, e Integration Manager en inglés.

Al revisar el caso nos dimos cuenta que el cliente maneja como separador de decimales la “,” y no el “.” Como usualmente lo utilizamos en algunos países. Esto daba como consecuencia que cantidades como 1,00 fuesen interpretados como 100, o un valor de 125,00 fuese integrado como 12,500.

Integration Manager requiere que la configuración regional sea utilizada la americana donde el separador de miles es una coma y el separador de decimales sea un punto.

Dentro de la asesoría que proporcionamos recomendamos cambiar la configuración regional para que no hubiese problema al realizar la integración. El problema se suscita cuando el cliente nos indica que no es posible realizar el cambio de configuración regional.

Finalmente el cliente logra instalar Integration Manager en un equipo que cumple con los requisitos de instalación, pero ahora el problema es que el archivo fuente, viene con los separadores no como los necesita IM, ya que este archivo es generado en el equipo que tiene la configuración regional distinta.

La primera opción fue abrir el archivo hacer los reemplazos necesarios utilizando un carácter de triangulación por ejemplo de “,” a “|” luego de “.” a “,” y al final de “|” a “.” Pero este procedimiento haría más tedioso el proceso además que no se cuenta con personal suficiente en el horario que este documento es creado así mismo integrado a GP.

Así que nuestra segunda opción fue procesar el archivo como fue exportado y al momento de realizar la integración pedirle a Integration Manager, que realice la sustitución “on the fly” al momento.

Pero como logramos esto?

Integration manager nos permite tener como fuente de datos campos de fuente, constantes así como scripts. Así que utilizamos un script que nos realice la conversión y estos son los pasos que realizamos:

·         Abrimos la definición de integración en IM

·         En la sección Destination Mapping abrimos la fuente lines

·         Seleccionamos el campo Unit Cost cambiamos la fuente del campo a Use Script en vez de utilizar la fuente Use Source Field

·         En la sección izquierda, baja de la ventana de integración nos muestra un campo llamado Script Text

·         Damos click al botón browse comúnmente su símbolo son 3 puntos  

·         Se abre una ventana donde nos permite insertar el código, y añadimos el código al final del post

·         Después de agregado el código procedemos a cerrar la ventana de código

·         Grabamos los cambios realizados en nuestra definición de integración y…

·         Estamos listos para realizar nuestra prueba de integración

‘********************

‘Creado por FHillyer 09/10/2010

‘Script para reemplazar la , en el separador de decimales por un .

‘********************

sMonto = SourceFields(“Lines Order.Unit Cost”)

sResultado = “”

Do While Len(sMonto) > 0

    sCar = Left(sMonto, 1)

    IF IsNumeric(sCar) then

        sResultado = sResultado & sCar

    elseIf sCar = “,” Then

        sResultado = sResultado & “.”

    End if

    sMonto = Right(sMonto, len(sMonto)-1)

Loop

CurrentField = sResultado

 

Hasta nuestro próximo post

Francisco G. Hillyer Dynamics GP LatAm