Usando scripts BeanShell

Um script BeanShellarrow-up-right é um programa na linguagem BeanShell, que pode ser usado para gerar o valor do mapeamento de um campo.

O uso de um script BeanShell representa a forma mais flexível e abrangente de geração de valores dinamicamente nos mapeamentos de provisionamento.

Objetos disponíveis no contexto do script

Para cada um dos eventos de provisionamento tem-se um contexto, com uma variável com o nome entry, com campos disponíveis para realizar o mapeamento.

Pode-se ver nas tabelas abaixo a relação do evento de provisionamento com os objetos disponíveis na variável entry para serem usados nos scripts BeanShell, no mapeamento de atributos:

Criação de nova conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Atualização de conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Inativação de conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Ativação de conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Revogação de conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Troca de senha

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Concessão de direito

O evento de provisionamento de concessão de direito tem dois mapeamentos, um para o direito e outro para a conta. Isso ocorre porque um membro de direito é uma relação entre um direito e uma conta.

Mapeamento do direito

Variável
Objeto
Exemplo

entry

return entry.entitlement.name;

Mapeamento da conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Revogação de direito

O evento de provisionamento de revogação de direito também tem dois mapeamentos, um para o direito e outro para a conta. Isso ocorre porque um membro de direito é uma relação entre um direito e uma conta.

Mapeamento do direito

Variável
Objeto
Exemplo

entry

return entry.entitlement.name;

Mapeamento da conta

Variável
Objeto
Exemplo

entry

return entry.account.accountIdentifier;

Criação de direito

Variável
Objeto
Exemplo

entry

return entry.entitlement.name;

Atualização de direito

Variável
Objeto
Exemplo

entry

return entry.entitlement.name;

Remoção de direito

Variável
Objeto
Exemplo

entry

return entry.entitlement.name;

Serviços disponíveis

Além da variável entry, no contexto de execução do script tem disponível a referência para vários serviços da API do Blazon, como destacados na tabela abaixo:

Variável
Serviço
Exemplo

userServiceAPI

User usuario = userServiceAPI.get(10L); return usuario.username;

accountServiceAPI

Account conta = accountServiceAPI.get(20L); return conta.accountIdentifier;

entitlementServiceAPI

Entitlement dir = entitlementServiceAPI.get(30L); return dir.getName();

roleServiceAPI

Role papel = roleServiceAPI.get(40L); return papel.name;

resourceServiceAPI

List<User> owners = resourceServiceAPI.getOwners(25L); return owners.get(0).getLastName();

organizationUnitServiceAPI

OrganizationUnit org = organizationUnitServiceAPI.get(12L); return org.getType();

membershipEntitlementServiceAPI

MembershipEntitlement me = membershipEntitlementServiceAPI.get(22L); return me.accountId;

membershipRoleServiceAPI

MembershipRole mr = membershipRoleServiceAPI.get(10L); return mr.roleId;

Exemplos de scripts de mapeamento

O script pode ter várias linhas e o valor final da execução do script será o valor dado como retorno, através do comando 'return', ou o valor da ultima atribuição.

A tabela abaixo ilustra alguns exemplos de scripts beanShell:

Script
Resultado

return entry.user.firstName;

Retorna o valor do campo firstName do usuário.

lastName = entry.user.lastName; if(lastName == null) { return ""; } return lastName.toUpperCase();

Retorna o valor do campo lastName do usuário, caso exista. Se não, retorna uma string vazia.

return entry.account.accountIdentifier;

Retorna o valor do campo accounIdentifier da conta.

accId = entry.account.accountIdentifier; return accId + "_ID";

Retorna o valor do campo accounIdentifier dda conta, concatenado com o termo "_ID".

return entry.user.get('occupationCode');

Retorna o valor do campo adicional occupationCode do usuário.

return entry.entitlement.name;

Retorna o valor do campo name do direito.

return entry.user.department.name;

Retorna o valor do campo name do departamento do usuário.

User user = userServiceAPI.get(10L); return user.username;

Retorna o valor do campo username do usuário de identificador 10L (long).

Atualizado

Isto foi útil?