Exemplo de atualização de plug-in
O exemplo a seguir compara a versão de um 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.
- No arquivo de app personalizado, crie uma tabela chamada
Atualização do plug-in
para armazenar informações de plug-in. - Defina os seguintes campos:
- Crie um layout chamado Informações da atualização do plug-in e adicione os campos definidos na etapa 2 a ele.
- Create the following script and name it Install Plug-in:Copiar
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. Confirme se “Permitir que soluções instale arquivos” está selecionado nas configurações de plug-in do FileMaker Pro."]
Else If [Get(LastError) = 1550]
Mostrar caixa de diálogo presonalizada [Plugin Update::Plugin File & " foi instalado, mas não pôde ser inicializado."]
Else If [Get(LastError) = 1551]
Mostrar caixa de diálogo presonalizada [Plugin Update::Plugin File & " não pôde ser instalado."]
Else
Mostrar caixa de diálogo presonalizada ["Um erro geral " & Get(LastError) & " ocorreu ao instalar " & Plugin Update::Plugin File]
End If
End If - Crie o seguinte script e nomeie-o Verificar versões de plug-in:Copiar
Ir para layout ["Informações de atualização do plug-in"]
Ir para registro/solicitação/página [Primeiro]
Loop [ Liberar: Sempre ]
If [Atualização do plug-in::Versão instalada do plug-in < Atualização do plug-in::Versão necessária do plug-in]
#O plug-in precisa estar instalado ou atualizado.
Realizar script [Especificado: Na lista ; "Instalar plug-in" ;
Parâmetro: ]
End If
Ir para registro/solicitação/página [Próximo; Sair depois do último: Ativado]
End Loop - Crie o seguinte script e chame-o de Verificar se ativado:Copiar
Definir captura de erro [Ativo]
Realizar busca [Restaurar]
#Buscar por "Ativado" no campo Estado do plug-in instalado
If[Get(FoundCount) < Get(TotalRecordCount)]
Mostrar caixa de diálogo personalizada ["Alguns plug-ins necessários não estão ativados. Confirme se “Permitir que soluções instale arquivos” está selecionado nas configurações de plug-in do FileMaker Pro."]
End If - 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:Copiar
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 ; Animação: Nenhum ]
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 código de exemplo, consulte Cálculo de atualização de plug-in do cliente, abaixo. |
Estado do plug-in instalado |
cálculo (não armazenado). Para código de exemplo, consulte Cálculo de estado de ativado de plug-in do cliente, abaixo. |
Arquivo do plug-in |
container |
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 ) )
)
Notas
- Para que plug-ins sejam instalados, a opção Permitir que soluções instalem arquivos deve estar selecionada nas configurações de plug-in do cliente. Veja Alteração das configurações do plug-in.
- Se um plug-in tiver sido desativado nas configurações 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.