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.
- Crie o seguinte script e chame-o de Instalar plug-in:Copiar
Definir captura de erro [Ativado]
Instalar arquivo de plug-in [Atualização do plug-in::Arquivo do plug-in]
#
#Tratar dos 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 pôde ser instalado. Certifique-se de que a opção Permitir que soluções instalem 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 pôde ser inicializado."]
Else If [Get(LastError) = 1551]
Mostrar caixa de diálogo personalizada [Atualização do plug-in::Arquivo do plug-in & " não pôde ser instalado."]
Else
Mostrar caixa de diálogo personalizada ["Um erro geral " & Get(LastError) & " ocorreu ao instalar " & Atualização do plug-in::Arquivo do plug-in]
End If
End If - Crie o script a seguir e chame-o de 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
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 [Ativado]
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. A opção Permitir que soluções instalem arquivos deve estar selecionada nas preferências 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
Copiar
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
Copiar
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 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.