Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Foram desenvolvidos dois serviços REST para que o cliente possa customizar sua aplicação de acordo com o contexto educacional atual do portal do aluno. Abaixo um detalhe de detalharemos cada um desses serviços.

GetKeySession – Retorna a chave para obter o contexto

O segundo primeiro serviço , chamado de GetKeySession, irá retornar a uma chave criptografada do contexto atual selecionado. Esse serviço do usuário no portal do aluno e deverá ser usada como parâmetro do segundo serviço (GetSession). O serviço GetKeySession utiliza o verbo de requisição GET e pode ser útil caso faça quando for necessário uma customização onde não seja que não possa ser feita através de um cadastro de Url Externa de Globais .O cliente pode, por exemplo, obter a chave por meio deste serviço e posteriormente chamar o primeiro serviço para obter os dados do contexto atual.e necessite das informações do contexto do usuário logado no portal.

Dica
titleO endereço para acessar o

...

endpoint GetKeySession:

http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetKeySession

Image Removed

...

Informações

O serviço GetKeySession necessita da sessão em que o usuário está logado, por isso, só funcionará

...

se for executado dentro do ambiente do portal.

...


Exemplo de uma requisição do endpoint GetKeySession através do Swagger:

Image Added

Utilizando a documentação de customização, na tela de ocorrência do novo portal foi adicionado um botão que irá redirecionar para uma URL externa e passará via QueryString o KeySession, para isso no método de click do botão o serviço GetKeySession é chamado para recuperar a KeySession, essa key é repassada para uma URL externa:

Image Removed

Funcionamento do código de exemplo acima:

Image Removed

GetSession – Retorna o contexto atual do aluno

O primeiro segundo serviço , chamado de GetSession, irá retornar um objeto json Json com os dados de contexto do aluno. Esse serviço utiliza o verbo de requisição GET e recebe como parâmetro uma chave criptografada de nome key obtida pelo primeiro serviço GetKeySession.


Dica
titleO endereço para acessar o

...

endpoint GetSession:

http://<nome_do_servidor_ou_ip>/rm/api/TOTVSEducacional/GetSession?key=<chave_criptografada>

...

Aviso
titleAlias do contexto

O alias do banco de dados utilizado para consultar o contexto do aluno no serviço GetSession é o alias parametrizado no arquivo ...\FrameHTML\Web.Config, no parâmetro ServiceAlias.

Informações

É obrigatório passar uma chave criptografada para

...

que este serviço

...

retorne os dados. Essa chave

...

é obtida por meio

...

do serviço GetKeySession.

É obrigatório configurar a TAG ServiceAlias no arquivo Web.config da pasta FrameHTML para que este serviço funcione corretamente.

O serviço GetSession deve

Ao criar uma Url Externa, no cadastro de globais, essa chave é passada como parâmetro de Url (query string), como por exemplo:

http://meudominio.com.br/?key=<chave_criptografada>

 Image Removed

Como e quando usar?

...

ser executado de fora do ambiente

...

do portal

...

.

...


 
Image Added


Informações

No exemplo, foi criado um sistema Web em Asp.Net MVC em que existe uma Action que recebe a key, esta action chama o serviço GetSession e preenche na view de uma forma amigável os dados do contexto recuperado.

Funcionamento:

...

Modelo do JSON que é retornado pelo GetSession (lembrando que um dado pode ou não estar preenchido baseado no usuário logado):

{
"data":[
{
"CODCOLIGADA":1,
"CODFILIAL":1,
"NOMEFILIAL":"Filial Belo Horizonte",
"CODTIPOCURSO":1,
"NOMETIPOCURSO":"Ensino Superior",
"RA":"ES-00177",
"NOMEALUNO":"Thiago Enzo Sales",
"CODUSUARIOPAI":null,
"NOMEPAI":null,
"CODUSUARIOMAE":null,
"NOMEMAE":null,
"CODUSUARIORACA":null,
"NOMERACA":null,
"CODUSUARIORESPFINANCEIRO":null,
"NOMERESPFINANCEIRO":null,
"CODUSUARIORESPCONTRATO":null,
"NOMERESPCONTRATO":null,
"IDHABILITACAOFILIAL":1,
"CODCURSO":"1-1",
"NOMECURSO":"DIREITO",
"CODHABILITACAO":"1",
"NOMEHABILITACAO":"DIREITO",
"NOMEMATRIZ":"Grade Curricular de Direito",
"NOMETURNO":"MANHÃ",
"IDPERLET":22,
"CODPERLET":"2019/1",
"DTINICIO":"2019-01-01T00:00:00",
"APRESENTACAO":"1",
"CODTURMA":null,
"PERIODO":null,
"SITMATHABILITACAO":"Matriculado",
"SITMATPERLET":"Pré-Matricula",
"CODUSUARIOALUNO":"ES-00177",
"GUID":"L\\FF\\09\\28B\\FDc\\DF\\A4\\21s\\14\\E75\\40\\E6p\\21\\E8\\D5i\\A8m\\C45\\02\\BDI\\2C\\A2\\5E\\C008\\AAn\\8B\\A9l\

...

.."
}
],
"messages":[

],
"length":1,
"HttpStatusCode":200
}

...

Quando e como usar?

Exemplo 1: Cliente precisa customizar a tela de ocorrência do portal adicionando um link para uma aplicação externa.

Para isso, utilizando a documentação de customização, podemos alterar esta tela e adicionar um botão que irá redirecionar para a URL de uma aplicação externa. No código abaixo, no evento do click deste botão, o serviço GetKeySession é chamado para recuperar a KeySession e, posteriormente, essa key será repassada para o aplicativo externo via QueryString.

Image Added

Bloco de código
languagexml
themeMidnight
titleClique para copiar o HTML adicionado no view
collapsetrue
<button
        class="btn btn-default"
        ng-click="controller.abrirAppExterno()">
        Abrir aplicativo externo
</button>


Image Added

Bloco de código
languagejs
themeMidnight
titleClique para copiar o código adicionado no controller
collapsetrue
 self.abrirAppExterno = abrirAppExterno;

        function abrirAppExterno() {
            $.ajax({
                url: "http://localhost:8025/rm/api/TOTVSEducacional/GetKeySession",
                crossDomain: true,
                context: document.body,
                type: "get",
                xhrFields: {withCredentials: true}
            }).done(function(data){
                var url = "http://localhost/testeintegracao/TesteURLExterna?key=" + data;

                window.open(url, '_blank');
            });
        }
Aviso
iconfalse
titleIMPORTANTE!!!

Caso a instalação esteja na versão superior a versão 12.1.27, o caminho da instalação deve ser: url: "http://localhost/FrameHTML/rm/api/TOTVSEducacional/GetKeySession",

Image Added


Bloco de código
languagejs
themeMidnight
titleClique para copiar o código adicionado no controller
collapsetrue
 self.abrirAppExterno = abrirAppExterno;

        function abrirAppExterno() {
            $.ajax({
                url: "http://localhost/FrameHTML/rm/api/TOTVSEducacional/GetKeySession",
                crossDomain: true,
                context: document.body,
                type: "get",
                xhrFields: {withCredentials: true}
            }).done(function(data){
                var url = "http://localhost/testeintegracao/TesteURLExterna?key=" + data;

                window.open(url, '_blank');
            });
        }


Funcionamento do código de exemplo acima:

Image Added


Exemplo 2: Cliente precisa adicionar uma URL externa ao menu do portal do aluno que redireciona para uma aplicativo externo passando o contexto.

Para isto, basta o Cliente realizar o cadastro da URL externa informando a URL do aplicativo externo que receberá o contexto. 

Image Added

Funcionamento:

Image Added


Image Added


Image Added

Informações

Para reproduzir os exemplos basta extrair os fontes em um diretório e criar um aplicativo web.

Isto pode ser feito no Gerenciador de Serviços de Informações da Internet (IIS), por exemplo.

No próprio aplicativo já estão descritas as instruções de uso.

A porta padrão utilizada pelo serviço GetSession é a porta 8080.


Aplicação de exemplo para acesso ao Contexto do portal do aluno (ASP.NET)

   

View file
nameTesteIntegracao.zip
height250


Informações
titleA partir da Versão 12.1.2205

GetKeySession - Retornar e-mail do Aluno 

Implementado a funcionalidade para que ao utilizar a API "GetSession", para retornar os dados do Contexto do Aluno, foi incluído também a informação do e-mail do aluno ( caso essa informações esteja preenchida em seu cadastro).

Image Added


Aplicação de exemplo para acesso ao Contexto do portal do aluno (ASP.NET) ( com a inclusão do e-mail do Aluno)

...

View file
name

...

TesteIntegracao.

...

zip
height250