GlideApplicationProperty - com escopo, global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 4 min. de leitura
  • 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].

    Nota:
    Se o domínio especificado for um domínio secundário e não houver uma propriedade da aplicação para o domínio secundário, o método retornará a propriedade da aplicação do domínio primário, se disponível.
    Tabela 1. Parâmetros
    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

    Tabela 2. Retorna
    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));
    
    Saída:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco

    GlideApplicationProperty - 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 seguir estão as diretrizes para usar este método:
    • 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.
    Tabela 3. Parâmetros
    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

    Tabela 4. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se a operação de salvamento foi bem-sucedida.
    Valores válidos:
    • verdadeiro: o valor foi salvo com sucesso.
    • falso: ocorreu um erro e a propriedade da aplicação não foi criada/atualizada.

    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));
    
    Saída:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco