Migrar a Xojo desde FileMaker

FileMaker es una herramienta de bases de datos que funciona tanto en Windows como en OS X. Es denominada con frecuencia como el Access de macOS. Y al igual que ocurre en gran medida con Access, FileMaker tiene su propio motor de base de datos, diseñador de formularios y también lenguaje de scripts.

Migración

Migrar desde una aplicación de FileMaker es por lo general un proceso de tres pasos, en los que es preciso migrar la base de datos propiamente dicha, los formularios utilizados para manipular los datos y también el código correspondiente a los scripts.

Base de Datos

Cuando se migra una aplicación de FileMaker, es preciso considerar en primer lugar la base de datos propiamente dicha. Aunque puedes conectar con una base de datos de FileMaker utilizando ODBC, tendrás que obtener los controladores apropiados. Como alternativa, puedes migrar tus datos a SQLite (una base de datos rápida y multiplataforma), para lo cual deberás de convertir los datos de FileMaker en primer lugar a XML.

También puedes conectar a una base de datos de FileMaker utilizando la característica Publicación de Web Personalizada (Custom Web Publishing, en inglés) y una API.

Formularios

Es más que probable que los formularios de la solución FileMaker se utilicen para editar los datos en las tablas. Puedes crear dichos formularios como Ventanas (o bien Páginas Web o Vistas de iOS) en tu aplicación Xojo. En la mayoría de los casos utilizaras controles Label, TextField y TextArea para recrear dichos campos de formularios, pero también tendrás a tu disposición una buena cantidad de otros controles adicionales.

En cualquier caso, probablemente quieras que tu aplicación se conecte a la base de datos durante el arranque, rellenando el formulario con el primer registro. También puedes añadir botones Siguiente y Anterior para recuperar y mostrar la información correspondiente desde la base de datos.

Código de script

FileMaker se programa utilizando un lenguaje de scripts que es, en cierto modo, similar al lenguaje de programación Xojo.

Tendrás que volver a escribir tu código, pero al mismo tiempo encontrarás que el lenguaje de programación Xojo te resultará familiar.

Estos son algunos de los comandos de FileMaker y sus equivalentes Xojo:

Comando FileMaker Comando Xojo
Exit Script Return
Set Error Capture Try…Catch…End Try
Set Variable Dim
If…End If If…Then…Else…End if
Loop…End Loop Loop…Until
Go to Field TextField.SetFocus
Field assignment TextField.Text = “value”

FileMaker Library (Xojo.FM)

Para facilitar aun más la transición a los desarrolladores desde FileMaker a Xojo, existe una librería de código abierto en GitHub que implementa muchas de las funciones de FileMaker, de modo que puedan usarse por su nombre en Xojo.

Para utilizar dicha librería, descárgala desde GitHub y abre el proyecto. En el Navegador, selecciona el módulo FM y cópialo. A continuación, cambia a tu proyecto y pega el módulo.

Puedes utilizar cualquiera de estas funciones en el módulo empleando el prefijo FM.

Comandos FileMaker… a comandos Xojo

Esta sección destaca las funciones de FileMaker que tienen un comando o función equivalente disponibles de serie en Xojo. Si no hay una función equivalente, se indica la función disponible en Xojo.FM.

Funciones Agregadas

FileMaker Xojo Xojo.FM
Average n/d FM.Average
Min n/d FM.Min
Max n/d FM.Max
Sum n/d FM.Sum

Funciones Container

FileMaker Xojo Xojo.FM
Base64Decode DecodeBase64 FM.Base64Decode
Base64Encode EncodeBase64 FM.Base64Encode

Funciones de Fecha

Fecha, Día, Dïa de la semana, Día del año, mes, año

FileMaker Xojo Xojo.FM
Date Xojo.Core.Date FM.Date
Day Xojo.Core.Date.Day FM.Day
DayName n/d FM.DayName
DayOfWeek Xojo.Core.Date.DayOfWeek FM.DayOfWeek
DayOfYear Xojo.Core.Date.DayOfYear FM.DayOfYear
Month Xojo.Core.Date.Month FM.Month
MonthName n/d FM.MonthName
WeekOfYear n/d FM.WeekOfYear
Year Xojo.Core.Date.Year FM.Year

Funciones de Finanzas

FV, NPV, PMT, PV

Funciones Get

FileMaker Xojo Xojo.FM
Get(ApplicationVersion) XojoVersionString FM.Get.ApplicationVersion
Get(CurrentDate) Xojo.Core.Date.Now FM.Get.CurrentDate
Get(CurrentTime) Xojo.Core.Date.Now FM.Get.CurrentTime
Get(CurrentTimestamp) Xojo.Core.Date.Now FM.Get.CurrentTimestamp
Get(DesktopPath) SpecialFolder.Desktop FM.Get.DesktopPath
Get(Device) n/a FM.Get.Device
Get(DocumentsPath) SpecialFolder.Documents FM.Get.DocumentsPath
Get(DocumentsPathListing) n/a FM.Get.DocumentsPathListing
Get(PreferencesPath) n/a FM.Get.PreferencesPath
Get(ScreenHeight) Screen(0).Height FM.Get.ScreenHeight
Get(ScreenScaleFactor) n/a FM.Get.ScreenScaleFactor
Get(ScreenWidth) Screen(0).Width FM.Get.ScreenWidth
Get(SystemDrive) Volume(0) FM.Get.SystemDrive
Get(SystemPlatform) n/a FM.Get.SystemPlatform
Get(SystemVersion) n/a FM.Get.SystemVersion
Get(TemporaryPath) n/a FM.Get.TemporaryPath
Get(UUID) n/a n/a
Get(WindowContentHeight) Window.Bounds.Height FM.Get.WindowContentHeight
Get(WindowContentWidth) Window.Bounds.Width FM.Get.WindowContentWidth
Get(WindowHeight) Window.Height FM.Get.WindowHeight
Get(WindowLeft) Window.Left FM.Get.WindowLeft
Get(WindowTop) Window.Top FM.Get.WindowTop
Get(WindowWidth) Window.Width FM.Get.WindowWidth

Funciones Lógicas

FileMaker Xojo Xojo.FM
Case Select…Case
Choose Select…Case
Evaluate FM.Evaluate
ExecuteSQL Database.SQLSelect, Database.SQLExecute
If If…Then, If operator

Funciones Numéricas

FileMaker Xojo Xojo.FM

|Abs|Math.Abs||

Ceiling Math.Ceil FM.Ceiling
Exp Math.Exp
Floor Math.Floor
Int CType(value, Integer) FM.Int
Ln Math.Log FM.Ln
Mod Mod
Random Math.RandomInt FM.Random
Round Math.Round
Sign Math.Sign
Sqrt Math.Sqrt
Truncate n/a FM.Truncate

Funciones de Texto

FileMaker Xojo Xojo.FM
Char Text.FromUnicodeCodePoint FM.Char
Code Text.Codepoints FM.Code
Exact Text.Compare FM.Exact
Filter n/a FM.Filter
FilterValues n/a FM.FilterValues
GetAsDate Xojo.Core.Date.FromText FM.GetAsDate
GetAsNumber Integer.FromText, Integer.Parse, Double.FromText, Currency.FromText FM.GetAsNumber
GetAsText Integer.ToText, Double.ToText,Currency.ToText FM.GetAsText
GetAsURLEncoded EncodeURLComponent FM.GetAsURLEncoded
GetValue Arrays
Left Text.Left FM.Left
LeftValues n/d FM.LeftValues
LeftWords n/d FM.LeftWords
Length Text.Length
Lower Text.Lowercase FM.Lower
Middle Text.Mid FM.Middle
MiddleValues n/d FM.MiddleValues
MiddleWords n/d FM.MiddleWords
PatternCount RegEx
Position Text.IndexOf FM.Position
Proper Text.Titlecase FM.Proper
Quote n/d FM.Quote
Replace Text.Replace FM.Replace
Right Text.Right
RightValues n/d FM.RightValues
RightWords n/d FM.RightWords
Substitute Text.ReplaceAll FM.Substitute
Trim Text.Trim
TrimAll n/d FM.TrimAll
Upper Text.Uppercase FM.Upper
ValueCount CountFields FM.ValueCount
WordCount n/d FM.WordCount

Funciones de Formato de Texto

FileMaker Xojo Xojo.FM
RGB Color.RGB
TextColor Cambiar la propiedad TextColor del control. FM.TextColor
TextFont
TextSize

Funciones Horarias

FileMaker Xojo Xojo.FM
Hour Date.Hour
Minute Date.Minute
Seconds Date.Seconds
Time Date
n/d Ticks
n/d Microseconds

Funciones de Trigonometría

FileMaker Xojo Xojo.FM
Acos Math.Acos
Asin Math.Asin
Atan Math.Atan
Cos Math.Cos
Degrees n/d FM.Degrees
Pi n/d FM.Pi
Radians n/d FM.Radians
Sin Math.Sin
Tan Math.Tan

Miscelánea

FileMaker Xojo
Base64Decode DecodeBase64
Base64Encode EncodeBase64
Date Xojo.Core.Date; esta es una clase
Day Xojo.Core.Date.Day

 

Related Posts / Entradas Relacionadas

Javier Rodriguez

Consultor, desarrollador y formador con más de 25 años de experiencia. Reconocido experto en el mundo Apple, autor de varios libros sobre tecnología. Si tienes un proyecto o necesitas ayuda, ¡ponte en contacto conmigo!

Etiquetado con:
Un comentario en “Migrar a Xojo desde FileMaker
  1. Carles dice:

    Hola Javier,

    Antes de poder migrar la base de datos, en mi caso, creo que requiere una modificación de la propia estructura. Normalmente para el ID utilizamos Get(UUID) que nos puede dejar algo parecido a esto “A80BFA3E-EB41-4C57-BC1B-950D87A42DFD”. Habrá que sustituirlo en todas las tablas y relaciones por un Número serial, y esto puede llevarte una mañana o más, depende del tipo de aplicación que tengas hecha..

    Por eficiencia tenemos la costumbre de tener datos duplicados, como el nombre del cliente, se tendrán que eliminar de todas las tablas. A parte de campos globales utilizados en relaciones o para mostrar el mismo valor en todas las presentaciones.

    En los formularios creo que también se tendrá que utilizar el ListBox, me parece lo más parecido a nuestros portales. En cuanto a la librería de FileMaker, puede ser bastante interesante al principio.

    Carles

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*