GlideApplicationProperty - com escopo, global
A API GlideApplicationProperty fornece métodos para obter e definir valores de propriedade da aplicação para um domínio específico.
As propriedades da aplicação permitem que os provedores de serviço personalizem a funcionalidade da aplicação com base no domínio. Em vez de ter apenas uma única propriedade do sistema (tabela Propriedade do sistema [sys_properties]) que define a funcionalidade para todos os domínios e usuários, as propriedades da aplicação podem ser implementadas para definir a funcionalidade para domínios específicos.
Para acessar esta API, você deve ativar o plug-in Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer).
Para obter informações adicionais sobre propriedades da aplicação específicas do domínio, consulte Propriedades da aplicação separada por domínio.
GlideApplicationProperty - getValue(cadeia de caracteres name, cadeia de caracteres domainSysId)
Retorna o valor da propriedade da aplicação e do domínio sys_id especificados.
A lista de propriedades da aplicação disponíveis está localizada nas tabelas Propriedades da aplicação [sys_application_property] e Valores de propriedade da aplicação [sys_application_property_value].
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da propriedade da aplicação a ser retornada. Nota: Se a aplicação não for global, você deverá prefixar o nome de sys_application_property com o escopo da aplicação. |
| domainSysId | Cadeia de caracteres | Opcional. Sys_id do domínio associado à propriedade da aplicação. Padrão: domínio da sessão |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor da propriedade da aplicação especificada para o domínio especificado. Se domainSysId não for passado na chamada, retornará o domínio da sessão. Se a propriedade da aplicação especificada não existir, retornará o valor da propriedade do sistema same-name. Se o usuário não tiver direitos de acesso ao domínio especificado, lançará uma exceção e nenhum valor será retornado. |
Este exemplo mostra como criar uma nova propriedade de aplicação e substituir seu valor para domínios ACME e Cisco.
var MY_APP_PROP_NAME = 'my-app-prop';
var ACME_DOMAIN_ID = 'c90d4b084a362312013398f051272c0d';
var CISCO_DOMAIN_ID = 'c90f91924a362312001bdefae0f35d68';
// create a new app_config entry:
var now_GR = new GlideRecord('sys_application_property');
now_GR.name = MY_APP_PROP_NAME;
now_GR.default_value = 'my-app-prop-default_value';
now_GR.insert();
// Override the value for ACME domain, catch exception if user can't access the specified domain
try {
GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-ACME', ACME_DOMAIN_ID);
gs.info('Value for ACME domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME, ACME_DOMAIN_ID));
} catch (ex) {
gs.info('Exception: ' + ex);
}
// Override the value for Cisco domain -- assuming that the current session domain is Cisco. Notice that we don't pass domain-id explicitly
session.setDomainID(CISCO_DOMAIN_ID); // NOTE: this API is not available from non-global scope (use domain-picker to switch to Cisco)
gs.info('Domain: ' + session.getCurrentDomainID());
GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-Cisco');
gs.info('Value for current session (Cisco) domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME));
*** Script: Value for ACME domain: prop-value-ACME
*** Script: Domain: c90f91924a362312001bdefae0f35d68
*** Script: Value for current session (Cisco) domain: prop-value-CiscoGlideApplicationProperty - setValue(String name, String value, String domainSysId)
Armazena o valor especificado na propriedade da aplicação especificada para o domínio especificado ou o domínio da sessão atual, se não for especificado.
- A propriedade da aplicação não será criada se seu nome contiver uma das seguintes cadeias de caracteres:
- glide.properties.blacklist
- glide.properties.no_db_override
- glide.properties.safe_overrides
- glide.properties.maint_write_roles
- A propriedade da aplicação não será criada se houver uma propriedade do sistema existente com o mesmo nome e a propriedade do sistema estiver marcada como privada.
- A propriedade da aplicação não será criada se houver uma propriedade do sistema existente e a propriedade da aplicação não fizer referência a ela.
- O nome da propriedade da aplicação na tabela sys_application_property será prefixado com o escopo da aplicação se não for global.
- Este método não pode ser chamado de um escopo diferente.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da propriedade da aplicação a ser salva. Nota: Se a aplicação não for global, você deverá prefixar o nome de sys_application_property com o escopo da aplicação. |
| valor | Cadeia de caracteres | Valor a ser armazenado na propriedade da aplicação especificada. |
| domainSysId | Cadeia de caracteres | Opcional. Sys_id do domínio associado à propriedade da aplicação. Padrão: domínio da sessão atual |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a operação de salvamento foi bem-sucedida. Valores válidos:
Se o usuário não tiver direitos de acesso ao domínio especificado, lançará uma exceção e nenhum valor será retornado. |
Este exemplo mostra como criar uma nova propriedade de aplicação e substituir seu valor para domínios ACME e Cisco.
var MY_APP_PROP_NAME = 'my-app-prop';
var ACME_DOMAIN_ID = 'c90d4b084a362312013398f051272c0d';
var CISCO_DOMAIN_ID = 'c90f91924a362312001bdefae0f35d68';
// create a new app_config entry:
var now_GR = new GlideRecord('sys_application_property');
now_GR.name = MY_APP_PROP_NAME;
now_GR.default_value = 'my-app-prop-default_value';
now_GR.insert();
// Override the value for ACME domain, catch exception if user can't access the specified domain
try {
GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-ACME', ACME_DOMAIN_ID);
gs.info('Value for ACME domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME, ACME_DOMAIN_ID));
} catch (ex) {
gs.info('Exception: ' + ex);
}
// Override the value for Cisco domain -- assuming that the current session domain is Cisco. Notice that we don't pass domain-id explicitly
session.setDomainID(CISCO_DOMAIN_ID); // NOTE: this API is not available from non-global scope (use domain-picker to switch to Cisco)
gs.info('Domain: ' + session.getCurrentDomainID());
GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-Cisco');
gs.info('Value for current session (Cisco) domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME));
*** Script: Value for ACME domain: prop-value-ACME
*** Script: Domain: c90f91924a362312001bdefae0f35d68
*** Script: Value for current session (Cisco) domain: prop-value-Cisco