Criação de um app personalizado > 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 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 [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. 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âmetros: ]
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. 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âmetros: ]
Realizar script [Especificado: Da lista ; "Verificar se ativado" ;
Parâmetros: ]
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 ) )
)

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.

Tópicos relacionados 

Criação de plug-ins personalizados

Get ( InstalledFMPlugins )

Instalar arquivo de plug-in