Crear una app personalizada > Trabajar con plug-ins > Ejemplo de actualización de un plug-in
 

Ejemplo de actualización de un plug-in

En el siguiente ejemplo se compara la versión de un plug-in instalado con la versión ubicada en un campo contenedor del archivo de FileMaker Pro Advanced y se actualiza, si es necesario.

1. En el archivo de la solución, cree una tabla denominada Actualización del plug-in para almacenar la información del plug-in.

2. Defina los siguientes campos:

 

Nombre de campo

Tipo de campo

Nombre del plug-in

texto

Versión del plug-in necesaria

número

Versión del plug-in instalada

cálculo (no almacenado). Para ver un ejemplo de código, consulte el Cálculo de versión del plug-in del cliente mostrado a continuación.

Estado del plug-in instalado

cálculo (no almacenado). Para ver un ejemplo de código, consulte el Cálculo de estado del plug-in del cliente mostrado a continuación.

Archivo de plug-in

contenedor

3. Cree una presentación con el nombre Información de actualización del plug-in y añádala a los campos definidos en el paso 2.

4. Cree el siguiente guión y asígnele el nombre Instalar plug-in:

Establecer captura de errores [Activo]
Instalar archivo plug-in [Actualización del plug-in::Archivo de plug-in]
#
#Solucionar errores
If [Get (LastError) 0]
If [Get (LastError) = 3]
Mostrar cuadro de diálogo personalizado [Actualización del plug-in::Archivo de plug-in & " no se ha podido instalar. Asegúrese de que la opción Permitir soluciones para instalar archivos esté seleccionada en las preferencias del plug-in de FileMaker Pro Advanced."]
Else If [Get (LastError) = 1550]
Mostrar cuadro de diálogo personalizado [Actualización del plug-in::Archivo de plug-in & " se ha instalado, pero no se ha podido inicializar."]
Else If [Get (LastError) = 1551]
Mostrar cuadro de diálogo personalizado [Actualización del plug-in::Archivo de plug-in & " no se ha podido instalar."]
Else
Mostrar cuadro de diálogo personalizado ["Se ha producido un error general " & Get (LastError) & " al instalar " & Actualización del plug-in::Archivo de plug-in]
End If
End If

5. Cree el siguiente guión y asígnele el nombre Comprobar versiones del plug-in:

Ir a la presentación ["Información de actualización del plug-in"]
Ir al registro/petición/página [Primero]
Loop
If [Actualización del plug-in::Versión del plug-in instalada < Actualización del plug-in::Versión del plug-in necesaria]
#El plug-in debe estar instalado o actualizado.
Ejecutar guión [Especificado: Desde la lista ; "Instalar plug-in" ;
Parámetro: ]
End If
Ir al registro/petición/página [Siguiente; Salir después del último: Activo]
End Loop

6. Cree el siguiente guión y asígnele el nombre Comprobar si está activado:

Establecer captura de errores [Activo]
Ejecutar búsqueda [Restaurar]
#Buscar "Activado" en el campo Estado del plug-in instalado
If[Get (FoundCount) 0]
Mostrar cuadro de diálogo personalizado ["Algunos plug-ins necesarios no están activados. Asegúrese de que la opción Permitir soluciones para instalar archivos esté seleccionada en las preferencias del plug-in de FileMaker Pro Advanced."]
End If

7. Cree un guión de arranque con el nombre Guión de actualización del plug-in que haga referencia a los guiones anteriores cuando se abra la base de datos:

Ejecutar guión [Especificado: Desde la lista ; "Comprobar versiones del plug-in" ;
Parámetro: ]
Ejecutar guión [Especificado: Desde la lista ; "Comprobar si está activado" ;
Parámetro: ]
Ir a la presentación [presentación original]

Cálculo de versión del plug-in del cliente

Let (
[
PluginNamePosition = Position ( Get (InstalledFMPlugins); Plugin Name ; 1 ; 1 );
PluginVersionStart = PluginNamePosition + Length( Plugin Name ) + 1;
PluginVersionEnd = Position ( Get (InstalledFMPlugins); ";" ; PluginNamePosition ; 2 );
PluginVersionLength = PluginVersionEnd - PluginVersionStart
];
If ( PatternCount ( Get (InstalledFMPlugins) ; Plugin Name ) = 0 ; "" ; Middle ( Get (InstalledFMPlugins) ; PluginVersionStart ; PluginVersionLength ) )
)

Cálculo de estado del plug-in del cliente

Let (
[
PluginNamePosition = Position ( Get (InstalledFMPlugins); Plugin Name ; 1 ; 1 );
PluginStateStart = Position ( Get (InstalledFMPlugins); ";" ; PluginNamePosition ; 2 ) + 1;
PluginStateEnd = If ( Position ( Get (InstalledFMPlugins); "¶" ; PluginNamePosition ; 1 ) > 0; Position ( Get (InstalledFMPlugins); "¶" ; PluginNamePosition ; 1 ); Length( Get (InstalledFMPlugins) ) + 1 );
PluginStateLength = PluginStateEnd - PluginStateStart
];
If ( PatternCount ( Get (InstalledFMPlugins) ; Plugin Name ) = 0 ;
"" ; Middle ( Get (InstalledFMPlugins) ; PluginStateStart ; PluginStateLength ) )
)

Notas 

Para que los plug-ins puedan instalarse, la opción Permitir a las soluciones instalar archivos debe seleccionarse en las preferencias del plug-in del cliente. Consulte Configurar preferencias de plug-ins.

Si se ha desactivado el plug-in en las preferencias del plug-in del cliente, éste se instalará, pero no estará accesible hasta que el usuario lo active manualmente.

Sólo se puede almacenar un plug-in en cada campo contenedor, aunque se puede ver la información de todos los plug-ins si se crean varios campos contenedor de plug-ins en una única presentación.

Temas relacionados 

Función Get ( InstalledFMPlugins )

Función Instalar archivo plug-in