O exemplo a seguir compara a versão do plug-in instalado com a versão localizada em um campo de container no arquivo do FileMaker Pro Advanced. Caso necessário, o plug-in é atualizado.
1. No arquivo de solução, crie uma tabela nomeada Atualização do plug-in
para armazenar informações de plug-in.
2. Defina os seguintes campos:
Nome do campo | Tipo de campo |
Nome do plug-in | texto |
Versão do plug-in necessária | número |
Versão do plug-in instalada | cálculo (não armazenado). Para obter o código do exemplo, consulte Cálculo de atualização de plug-in do cliente abaixo. |
Estado do plug-in instalado | cálculo (não armazenado). Para obter o código do exemplo, consulte Cálculo de estado de ativado de plug-in do cliente abaixo. |
Arquivo do plug-in | container |
3. Crie um layout chamado Informações da atualização do plug-in e adicione os campos definidos na etapa 2 a ele.
4. Crie o seguinte script e nomeie-o Instalar plug-in:
Definir captura de erro [Ativado]
Instalar arquivo de plug-in [Atualização do plug-in::Arquivo do plug-in]
#
#Lidar com erros
If [Get (LastError) ≠ 0]
If [Get (LastError) = 3]
Mostrar caixa de diálogo personalizada [Atualização do plug-in::Arquivo do plug-in & "não pode ser instalado. A opção Permitir que Soluções instale arquivos deve estar selecionada nas preferências de plug-in do FileMaker Pro Advanced."]
Else If [Get (LastError) = 1550]
Mostrar caixa de diálogo personalizada [Atualização do plug-in::Arquivo do plug-in & "foi instalado, mas não pode ser iniciado."]
Else If [Get (LastError) = 1551]
Mostrar caixa de diálogo personalizada [Atualização do plug-in::Arquivo do plug-in & "não pode ser instalado."]
Else
Mostrar caixa de diálogo personalizada ["Um erro geral " & Get (LastError) & " ocorreu durante a instalação de " & Atualização do plug-in::Arquivo do plug-in]
End If
End If
5. Crie o seguinte script e nomeie-o Verificar versões de plug-in:
Ir para layout ["Informações da atualização do plug-in"]
Ir para registro/solicitação/página [Primeiro]
Loop
Se [Atualização do plug-in::Versão do plug-in instalada < Atualização do plug-in::Versão do plug-in necessária]
#O plug-in precisa ser instalado ou atualizado.
Realizar script [Especificado: Da lista ; "Instalar plug-in" ;
Parâmetro: ]
End If
Ir para registro/solicitação/página [Próximo; Sair depois do último: Ativado]
End Loop
6. Crie o seguinte script e nomeie-o Verificar se ativado:
Definir captura de erro [Ativado]
Realizar busca [Restaurar]
#Pesquisar por "Ativado" no campo Estado do plug-in instalado
If[Get (FoundCount) ≠ 0]
Mostrar caixa de diálogo personalizada ["Alguns plug-ins necessários não estão ativados. A opção Permitir que Soluções instale arquivos deve estar selecionada nas preferências de plug-in do FileMaker Pro Advanced."]
End If
7. Crie um script de inicialização nomeado Script de atualização do plug-in que faça referência aos scripts acima em ordem quando o banco de dados for aberto:
Realizar script [Especificado: Da lista ; "Verificar versões de plug-in" ;
Parâmetro: ]
Realizar script [Especificado: Da lista ; "Verificar se ativado" ;
Parâmetro: ]
Ir para layout [layout original]
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 ) )
)
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 ) )
)
•Para que plug-ins sejam instalados, a opção Permitir que Soluções instale arquivos deve estar selecionada nas preferências de plug-in do cliente. Consulte Configuração de preferências de plug-in.
•Se um plug-in tiver sido desativado nas preferências de plug-in do cliente, ele será instalado, mas não ficará acessível até ser ativado manualmente pelo usuário.
•Somente um plug-in pode ser armazenado em cada campo de container, mas você pode visualizar as informações de plug-in criando vários campos de container de plug-in em um único layout.