Criação de uma solução > Utilização de plug-ins > Exemplo de atualização de plug-in
 
Exemplo de atualização de plug-in
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 e atualiza o plug-in, se necessário.
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 [Ativo]
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. Certifique-se que Permitir que Soluções instale arquivos esteja selecionada nas preferências de plug-in do FileMaker Pro."
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 ["Instalar plug-in"]
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 [Ativo]
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. Certifique-se que Permitir que Soluções instale arquivos esteja selecionada nas preferências de plug-in do FileMaker Pro."
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 ["Verificar versões de plug-in"]
Realizar script ["Verificar se ativado"]
Ir para layout [layout original]
Cálculo de atualização de plug-in do 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 de ativado de plug-in do 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 ) )
)
Tópicos relacionados 
Criação de plug-ins personalizados
Get ( InstalledFMPlugins )
Instalar arquivo de plug-in