Versões comparadas

Chave

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

...

Produto:

TOTVS HTML Framework

Versões:

12.1.8 e posteriores

Ocorrência:

Contexto

Ambiente:

WEB

Passo a passo:

O contexto do RM no TOTVS HTML Framework pode ser manipulado através da API RMSRestContext que possui 3 métodos. Abaixo está a descrição de cada um desses métodos e seus respectivos endereços.

  • GetLastContext
    Esse método deve ser utilizado para recuperar o último contexto utilizado pelo usuário. Os dados serão recuperados da tabela GUltimoContextoUsuario utilizando os mesmos serviços que o CorporeRM.
    URL: http://hostname/rm/api/rmsrestcontext?user={username} Verbo: GET
  • SetContextItem
    Esse método deve ser utilizado para salvar um ou mais valores de contexto na tabela GUltimoContextoUsuario. Não é necessário que todos os itens de contexto sejam enviados, somente os que possuem alguma alteração no seu valor.
    URL: http://hostname/rm/api/rmsrestcontext/setcontextItem?user={username} Request Body: [ { "caption": "string", "name": "string", "value": {} } ] Verbo: POST
  • GetContextItemInfo
    Este método deve ser utilizado para recuperar as informações detalhadas de um item do contexto. Essas informações são: a mensagem para seleção de valor, a mensagem quando não existem opções para seleção e todas as valores disponíveis para seleção do item.
    URL: http://hostname/rm/api/rmsrestcontext/getcontextiteminfo?user={username}&item={context item name}&module={module} Verbo: GET
  • SetContextByTenantId
    Este método deve ser utilizado para ajustar os valores do contexto do usuário basenado-se no tenantId do Fluig.
    URL: http://hostname/rm/api/rmsrestcontext/setcontextbytenantid?user={username} Request Body: "83614726000141_MG" Verbo: POST

 

Para viabilizar a manipulação do contexto nas páginas que foram criadas utilizando o THF, foi criado o serviço contextService (AngularJS). Para utilizar esse serviço, basta que o analista o injete em seus serviços e/ou controladores. É recomendável que o serviço seja utilizado ao invés de acessar diretamente a API afim de garantir que as regras de negócio sejam mantidas. Os métodos disponíveis no serviço são:

MétodoParâmetrosDescriçãoExemplo
setContext(itemName, value)
  • itemName - Nome do item de contexto
  • value - Novo valor do item de contexto

Altera o valor de um item de contexto. Os nomes dos itens de contexto que podem ser utilizados são:

codSistema, environment, codUsuario, codUsuarioServico, codColigada, codFilial, dataSistema, idPrj, codTipoCurso, codUnidadeBib, codLocPrt, eduTipoUsr, rhTipoUsr, chapaFuncionario, codigoExterno, exercicioFiscal

Bloco de código
languagejs
firstline0
titlesetContext
linenumberstrue
collapsetrue
define(['index'], function (index) {
    'use strict';
    index.register.controller('usuarioListController', ['$scope', 'contextService', function ($scope, contextService) {
        var self = this,
            scope = $scope;
        this.init = function () {
            contextService.setContext('codSistema', 'G');
        };
    }]);
});
getLastContext(user, callback)
  • user - Código do usuário
  • callback - Função a ser chamada após o contexto ser recuperado do banco de dados.
Recupera o último contexto do usuário. É uma função assíncrona.
Bloco de código
languagejs
firstline0
titlegetLastContext
linenumberstrue
collapsetrue
define(['index'], function (index) {
    'use strict';
    index.register.controller('usuarioListController', ['$scope', 'contextService', function ($scope, contextService) {
        var self = this,
            scope = $scope;
        this.init = function () {
            contextService.getLastContext('mestre', function (result) {
            	var context = result;
            });
        };
    }]);
});

 

 

Observações:

Todas as telas html do RM que são sensíveis ao contexto, devem assinar o evento TOTVSEvent.currentContextChanged afim de serem notificados sobre alterações no contexto.

Todas as telas html do RM devem alterar o item de contexto "codSistema" assim que for iniciado algum de seus controllers. Isso é fundamental para que o módulo seja enviado corretamente para o servidor durante as requisições.

...