Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Implementando Funções de Criptografia com "Nós" e "Trançados"

_Créditos da imagem: Gerada com auxílio do ChatGPT_ # Implementando Funções de Criptografia com "Nós" e "Trançados" A criptografia é um dos campos mais fascinantes da ciência da computação. Recentemente, no projeto experimental [Braided Encryption Message](https://github.com/naldodj/naldodj-braided_encryption_message), explorei como conceitos de "nós" e "trançados" podem ser aplicados na criação de algoritmos de criptografia. Este projeto, embora básico, é uma experiência rica para aprender mais sobre a implementação de funções criptográficas e algumas curiosidades relacionadas ao tema. ## Visão Geral do Projeto O repositório contém duas peças fundamentais: 1. [Arquivo C - `c_braided_encryption_message.c`](https://raw.githubusercontent.com/naldodj/naldodj-braided_encryption_message/refs/heads/main/src/c_braided_encryption_message.c): Implementa funções de criptografia em baixo nível, manipulando diretamente a estrutura dos dados para "...

Protheus :: Disponibilizando os módulos específicos no SIGAMDI

O Microsiga Protheus possibilita ao usuário criar até 3 Módulos Específicos. O SIGAESP, SIGAESP1 e SIGAESP2. Mas, esses módulos só estarão disponíveis para uso através do SIGAMDI se as funções que retornarem o seu nome estiverem compiladas no repositório.

As funções são, respectivamente:

U_ESPNOME();
U_ESP1NOME() ; e
U_ESP2NOME().

Que em sua declaração formal ficariam como:


User Function EspNome()
Return( "SIGAESP" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function EspNome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP

**********************************************************

User Function Esp1Nome()
Return( "SIGAESP1" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function Esp1Nome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP1" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP1

**********************************************************

User Function Esp2Nome()
Return( "SIGAESP2" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function Esp2Nome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP2" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP2
       

Lembrando que, os pontos de Entrada Genéricos para os Módulos, também estão disponíveis para os módulos Específicos, bastando para isso, criar uma "User Function" com o mesmo nome da Função Principal do Módulo, como:


User Function SIGAESP()
 //...Faz Alguma Coisa...
Return( NIL ) 

User Function SIGAESP1()
 //...Faz Alguma Coisa...
Return( NIL )

User Function SIGAESP2()
 //...Faz Alguma Coisa...
Return( NIL )
       

Os Pontos de Entrada Genéricos de um módulo serão sempre executados após a abertura do sistema e sempre que se retornar ao menu principal.


E.T.: Lembrando que os módulos Específicos só estarão disponíveis aos usuários que receberem acesso através da configuração de senha.

[]s
иαldσ dj

...

Comentários

  1. Boa tarde Naldo,
    Só uma dúvida sobre esta postagem, estou necessitando utilizar os pontos de entrada dos módulos conforme postado, porém não funciona no modo Flat e MDI, qual a alternativa neste caso?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas