Crear una solución > 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 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 guion 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 a las soluciones para instalar archivos esté seleccionada en las preferencias del plug-in de FileMaker Pro."]
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 guion 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 guion ["Instalar plug-in"]
End If
Ir al registro/petición/página [Siguiente ; Salir después del último]
End Loop
6. Cree el siguiente guion 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 a las soluciones instalar archivos esté seleccionada en las preferencias del plug-in de FileMaker Pro."]
End If
7. Cree un guion de arranque con el nombre guion de actualización del plug-in que haga referencia a los guiones anteriores cuando se abra la base de datos:
Ejecutar guion ["Comprobar versiones de plug-ins"]
Ejecutar guion ["Comprobar si está activado"]
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 ( Installed FMPlugins ) ; 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 ( InstallFMPlugins ) ; Plugin Name ) = 0 ;
"" ; Middle ( Get ( InstalledFMPlugins ) ; PluginStateStart ; PluginStateLength ) )
)
Temas relacionados 
Crear plug-ins personalizados
Get ( InstalledFMPlugins )
Instalar archivo plug-in