Novo objeto de sessão remota 4D com ligação Cliente/Servidor e procedimento armazenado

Nas aplicações 4D, existem quatro tipos de sessões: sessão 4D Remote, sessão Stored Procedure, sessão Mobile e sessão Web.

O comando Session já retornava sessões Web ou Mobile. Isso dá acesso a uma grande quantidade de informação sobre a sessão e um objeto compartilhado por todos os processos na sessão.

Em 4D 20 R5, o comando Session foi estendido para a conexão Cliente/Servidor e procedimento armazenado.

HDI – Sessão remota

Sessão 4D

Tipo diferente

As definições de uma sessão de procedimento armazenado ou uma sessão remota são:

Sessão de procedimentos armazenados

Quando chamar um método com o comando Execute on server 4D cria um processo “Stored procedure”. Todos os processos “Stored procedure” pertencem à mesma sessão, que é dedicada a procedimentos armazenados.

Sessão remota

Métodos com a propriedade “Execute on server” são executados no processo cliente gêmeo no servidor. Todos os processos gémeos do cliente são executados na mesma sessão.

Classe de sessão

Para uma sessão remota ou uma sessão de procedimento armazenado, o comando Session devolve um objeto 4D.Session que contém as seguintes propriedades:

  • id – Identificador único da sessão
  • info – Todas as informações sobre a sessão
  • storage – Um objeto partilhado que pode ser utilizado para armazenar informações disponíveis para todos os processos da sessão remota
  • userName – O nome de usuário associado à sessão

 

As mesmas funções da sessão Web estão disponíveis para escrever código genérico. Mas não fazem nada e retornam sempre o mesmo valor. Convidamos a consultar a documentação da classe Session.

Exemplo:

{
   "id": "B022A91187EF46C6B4D58C2A9BDE3C91",
   "info":{
        "tipo": "remoto",
        "userName": "Designer",
        "machineName": "John Computer",
        "systemUserName": "John Doe",
        "IPAddress": "localhost",
        "hostType": "mac",
        "creationDateTime": "2024-03-27T10:11:31Z",
        "estado": "ativo",
        "ID": "B022A91187EF46C6B4D58C2A9BDE3C91",
        "persistentID": "24336199BADF4BFE945B109E565D1189"
    },
   "storage": {
        "settings": {
            "texto": "teste"
        }
    },
   "userName": "Designer"
}

Partilhar dados entre processos

Quando é criada uma nova sessão, a propriedade “Session.storage” deve ser instanciada com um objeto partilhado vazio. Em seguida, pode armazenar quaisquer dados que pretenda partilhar entre processos na mesma sessão.

Use (Session.storage)
Session .storage.settings:=New shared object("property"; $value; "property2"; $value2)
End use

Casos de utilização

Processo de autenticação e verificação do utilizador

Lança-se um procedimento de autenticação e verificação do utilizador quando um cliente se liga ao servidor. Por exemplo, isto pode implicar a introdução na aplicação de um código enviado por correio eletrônico ou SMS. Então adiciona a informação do usuário ao armazenamento da sessão, permitindo que o servidor identifique o usuário. Dessa forma, o servidor 4D pode acessar a informação do usuário para todos os processos do cliente, permitindo que código personalizado seja escrito de acordo com o papel do usuário (por exemplo, gerente, RH, etc.).

Restringir dados

Com este novo tipo de sessão, é possível restringir os dados apresentados ao utilizador ligado. Por exemplo, numa aplicação de gestão de clientes, o representante de vendas só tem acesso aos dados dos seus clientes. Todas as informações sobre esta nova funcionalidade são explicadas neste blogue.

Seguinte

Sinta-se livre para se juntar a nós no Fórum 4D se tiver alguma pergunta ou quiser partilhar sua experiência ou casos de uso.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.