4D v14

Processos

Página Inicial

 
4D v14
Processos

Processos    


 

 



Além das manipulações explicadas no vídeo, deve levar em conta que:

Um processo é um entorno que tem:

  • Seu próprio espaço de memória
  • Suas seleções atuais (uma por tabela)
  • Suas próprias variáveis (variáveis processos)Possivelmente sua própria interface
  • etc.

Os processos podem se comunicar entre si de diferentes maneiras:

  • Variáveis interprocesso
  • Leitura ou escritura de variáveis
  • etc.

Eles podem:

  • Colocar a dormir (sleep process)
  • Colocar em modo hibernação (suspended process) até que outro processo o acorde.

Um processo só morre quando termina o método que o executa.
Não se pode obrigar a um processo a morrer por programação, a pesar de que pode programar para que morra em certas condições (ver o comando CALL PROCESS

Os processos geralmente servem para:

  • Criar processos particulares (batches, controles “submarine”),
  • Criar paletas de ferramentas (janelas independentes com funções específicas)
  • Mostrar diálogos de entrada/visualização para que o usuário possa trabalhar com múltiplas janelas.
4D gera diretamente certos processos.

Um processo é criado utilizando o comando New process:

 vProcessNumber:=New process(Method;Stack;Processname;Settings;...)

Esta linha de comando deve estar no método. Recomendamos-lhe que utilize o conceito que é mostrado a continuação, economizará tempo e claridade:

 C_TEXT($1)
 If(Count parameters=0) // Se o método não recebe nenhum parâmetro, você deve criar o processo
    C_LONGINT(<>ProcessNumber)
    <>ProcessNumber:=New process("Display_Stats2";1024*1024;"Statistics";"Fictitious_Parameter") // criamos o processo
 Else // Se o método recebe ao menos um parâmetro, deve executar o método de visualização
    C_LONGINT($Window//Criar a janela (recipiente) no qual é mostrado o diálogo (conteúdo)
    $Window:=Open form window("STATS";Plain form window;Horizontally centered;Vertically centered)
    DIALOG("STATS") //Mostrar o diálogo
    CLOSE WINDOW($Window// Uma vez fechado o diálogo, fechar a janela
 End if

  • Quando é chamado o método (sem parâmetros), 4D cria um processo no qual é executado um método.
  • O método é chama a si mesmo (é criado uma segunda instância do método no novo processo)
  • E se passa um parâmetro:
  • A primeira instância do método termina
  • Ainda que o método executado pelo processo continue e apresente o array de estatísticas.

Você pode seguir trabalhando enquanto tenha a janela de estatísticas a seu alcance.

Para traçar a execução de um processo (quando executa a linha New Process), utilize o botão “step-by-step new process”. Este botão executa a linha e abre uma segunda janela de depuração na qual pode seguir o progresso do método executado no processo, independentemente do método de chamada.

Por exemplo, pode criar um processo que mostre a hora e o tempo passado desde que o novo processo começou. Este exemplo lhe dará os fundamentos para a criação de um contador de tempo.

Os processos permitem considerar evoluções rápidas em sua programação:
  • Pode conceituar seus processos,
  • testar em várias linhas de código,
  • logo pode configurar para uma execução independente em um processo.

Há inúmeros exemplos do uso de processos. Este é mais um: você tem que fazer atualizações em um banco de dados importante, no entanto, essas atualizações podem ser atrasadas por vários segundos ou minutos, inclusive sem ter um impacto sobre o desempenho da sua empresa. Assim, você pode:

  • Prever uma tabela na qual aonde guarde uma lista de tarefas a realizar.
  • Para cada uma destas tarefas, você especifica uma data, uma hora e possivelmente um nível de prioridade e uma descrição da tarefa a realizar (que? em qual tabela? qual registro? etc.)
  • Logo, iniciou um processo cuja única missão é consultar esta tabela e realizar o conjunto de tarefas nela.
  • Quando termina, se suspende até que uma nova tarefa se registre e o processo se reativa.

Esta operação é muito factível em modo cliente/servidor onde um processo (procedimento armazenado) "corre" no servidor e leva a cabo as tarefas a realizar:

  • Importações
  • Reprocessar
  • Impressão PDF
  • Envio de correios eletrônicos
  • etc.

 
 

 
PROPRIEDADES 

Produto: 4D
Tema: Processos

 
ARTICLE USAGE

Autoformação ( 4D v13)
Autoformação ( 4D v14)