Compartilhamento de Registros
O Ownership Service é uma API para gerenciamento do Compartilhamento de Registros disponível na plataforma. Por meio do Ownership Service é possível compartilhar registros com usuários, times e classificar o nível de compartilhamento entre acesso total e somente leitura.
Estrutura básica:
module.exports = (function() {
'use strict';
var _osBd = null;
function getOwnershipService() {
if (_osBd == null) {
var OwnershipService = Java.type('br.com.inpaas.entity.ownership.OwnershipService');
_osBd = new OwnershipService(scriptContext);
}
return _osBd;
}
function getCurrentOwnership(entityName, entityRecordID) {
var entity = require('inpaas.core.entity.dao').getEntity(entityName);
return getOwnershipService().get(entity, entityRecordID);
}
function setOwnership(entityName, entityRecordID, owners) {
var entity = require('inpaas.core.entity.dao').getEntity(entityName);
return getOwnershipService().set(entity, entityRecordID, owners);
}
function addToCurrentOwnershipList(entityRecordID, type, id, entityName, readonly) {
var owners = getCurrentOwnership(entityName, entityRecordID);
var read = (readonly) ? true : false;
owners.add({
'type': type,
'id': id,
'readonly': read
});
setOwnership(entityName, entityRecordID, owners);
}
return {
'getCurrentOwnership': getCurrentOwnership,
'addToCurrentOwnershipList': addToCurrentOwnershipList,
'setOwnership': setOwnership
};
})();
Métodos da Estrutura Inicial
getCurrentOwnership(entityName, entityRecordID):
Responsável por retornar uma lista com os usuários, times e permissões no compartilhamento de registros atual.
Utilização:
var owners = getCurrentOwnership('INPAAS_REEMBOLSO', 1)
addToCurrentOwnershipList(entityRecordID, type, id, entityName, readonly):
Adiciona um novo usuário/time na lista de compartilhamento de registros atual.
O parâmetro "type" deve ser repassado com uma string que classifica o tipo de compartilhamento, sendo: "U" para usuários e "T" para times.
O parâmetro "readonly" é opcional, o mesmo aceita um valor boolean que classifica o tipo de acesso ao registro, sendo: true para acesso somente leitura e false para acesso total.
Utilização:
var record_id = 1;
var type = "U";
var id_user = "32";
var entity_name = "INPAAS_REEMBOLSO";
addToCurrentOwnershipList(record_id, type, id_user, entity_name, true):
setOwnership(entityName, entityRecordID, owners):
Substituí o compartilhamento de registros atual pelo passado no parâmetro do método. Você pode chamar esse método diretamente para atualizar a lista de compartilhamento de forma customizada, ou seja, sem manter o histórico.
Utilização:
var entity_name = "INPAAS_REEMBOLSO";
var record_id = 1;
var owners = [
{
'type': "U",
'id': 32,
'readonly': false
},
{
'type': "T",
'id': 4,
'readonly': true
}
];
setOwnership(entity_name, 1, owners);
Updated over 1 year ago