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). O arquivo encontra-se dentro do diretório do THF em: "js/menu/services/service-context.js". 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étodo | Parâmetros | Descrição | Exemplo |
---|
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 |
---|
language | js |
---|
firstline | 0 |
---|
title | setContext |
---|
linenumbers | true |
---|
collapse | true |
---|
| 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 |
---|
language | js |
---|
firstline | 0 |
---|
title | getLastContext |
---|
linenumbers | true |
---|
collapse | true |
---|
| 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;
});
};
}]);
}); |
|
getContextItemInfo(itemName, callback) | - itemName - Nome do item de contexto
- callback - Função a ser chamada após as informações do item de contexto serem recuperadoas do banco de dados.
| 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. | Bloco de código |
---|
language | js |
---|
firstline | 0 |
---|
title | getContextItemInfo |
---|
linenumbers | true |
---|
collapse | true |
---|
| define(['index'], function (index) {
'use strict';
index.register.controller('usuarioListController', ['$scope', 'contextService', function ($scope, contextService) {
var self = this,
scope = $scope;
this.init = function () {
contextService.getContextItemInfo('idPrj', function (info) {
// ...
});
};
}]);
}); |
|
|
Observações: | Observações: | - Quando o contexto é alterado utilizando o Seletor de Contexto ou quando é utilizada a função setContext do serviço contextService, é disparado o evento TOTVSEvent.currentContextChanged para que seja possível identificar a mudança do contexto. O evento passa como parâmetro um array de itens de contexto que sofreram alterações em seu valor. Ex: $rootScope.$broadcast(TOTVSEvent.currentContextChanged, ['codColigada', 'idPrj']);
| |