Cálculo da Medida de Impacto

A fórmula padrão da Medida de Impacto é a exibida abaixo. Como resultado, ela retorna a média dos maiores valores de cada tipo de impacto do componente de negócio.

 

#MaxOperationalImpact = Max(#Operational1Day, #Operational3Days, #Operational5Days, #Operational7Days, #Operational15Days, #Operational30Days);

#MaxFinancialImpact =  Max(#Financial1Day, #Financial3Days, #Financial5Days, #Financial7Days, #Financial15Days, #Financial30Days);

#MaxReputationImpact = Max(#Reputation1Day, #Reputation3Days, #Reputation5Days, #Reputation7Days, #Reputation15Days, #Reputation30Days);

#MaxRegulatoryImpact = Max(#Regulatory1Day, #Regulatory3Days, #Regulatory5Days, #Regulatory7Days, #Regulatory15Days, #Regulatory30Days);

#ImpactScore = (#MaxOperationalImpact + #MaxFinancialImpact + #MaxReputationImpact + #MaxRegulatoryImpact) / 4;

 

É possível customizar essa fórmula padrão utilizando atributos dos componentes de negócio. Para editá-la, é necessário abrir o arquivo web.config, que fica na pasta de instalação do módulo de Continuidade. O atributo value, da chave CriticalityFormula, deve ser editado (veja abaixo).

 

 

As fórmulas podem ser compostas por uma ou mais linhas, separadas por ponto e vírgula (;). O valor retornado será calculado de acordo com o resultado da última linha executada.

A forma de escrita mais comum segue a sintaxe abaixo, onde [x] é opcional:

Linha 1:               variável A = <expressão 1>;
Linha 2:               variável B = <expressão 2>;

Linha N:              variável Z = <expressão N>;

 

As tabelas abaixo listam as variáveis​​, os operadores e as funções disponíveis com suas descrições:

Variável

Descrição

#[CustomVarAttribName]

Retorna o valor de um atributo do componente de negócio.

 

Exemplo: #LimiarImpacto = valor do atributo com nome de variável igual a "LimiarImpacto".

 

Tipos de atributos suportados:

Número

Texto

Parágrafo

Data/Hora (com subtipo "Data")

Lista de Opções

Tópicos

Relacionamento

#MTPD

MTPD, conforme definido na aba Dados de BIA do componente de negócio.

#RPO

RPO, conforme definido na aba Dados de BIA do componente de negócio.

#RTO

RTO, conforme definido na aba Dados de BIA do componente de negócio.

#Financial1Day

Impacto financeiro após 1 dia de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Financial3Days

Impacto financeiro após 3 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Financial5Days

Impacto financeiro após 5 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Financial7Days

Impacto financeiro após 7 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Financial15Days

Impacto financeiro após 15 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Financial30Days

Impacto financeiro após 30 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation1Day

Impacto na imagem após 1 dia de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation3Days

Impacto na imagem após 3 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation5Days

Impacto na imagem após 5 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation7Days

Impacto na imagem após 7 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation15Days

Impacto na imagem após 15 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Reputation30Days

Impacto na imagem após 30 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory1Day

Impacto regulatório após 1 dia de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory3Days

Impacto regulatório após 3 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory5Days

Impacto regulatório após 5 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory7Days

Impacto regulatório após 7 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory15Days

Impacto regulatório após 15 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Regulatory30Days

Impacto regulatório após 30 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

#Operational1Day

Impacto operacional após 1 dia de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

# Operational3Days

Impacto operacional após 3 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

# Operational5Days

Impacto operacional após 5 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

# Operational7Days

Impacto operacional após 7 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

# Operational15Days

Impacto operacional após 15 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

# Operational30Days

Impacto operacional após 30 dias de indisponibilidade, conforme definido na aba Dados de BIA do componente de negócio.

 

Operadores Relacionais

Descrição

==

Retorna verdadeiro caso os dois elementos sejam iguais e falso caso contrário. Ex.: "#result = #var == 1"

!=

Retorna verdadeiro caso os dois elementos sejam diferentes e falso caso contrário. Ex.: "#result = #var != 1"

Retorna verdadeiro caso o elemento da esquerda seja menor que o elemento da direita. Ex.: "#result = #var < 1"

<=

Retorna verdadeiro caso o elemento da esquerda seja menor ou igual ao elemento da direita. Ex.: "#result = #var <= 1"

Retorna verdadeiro caso o elemento da esquerda seja maior que o elemento da direita. Ex.: "#result = #var > 1"

>=

Retorna verdadeiro caso o elemento da esquerda seja maior ou igual ao elemento da direita. Ex.: "#result = #var >= 1"

in

Retorna verdadeiro caso o elemento esteja contido no vetor. Ex.: "#result = 3 in {1,2,3,4}"

between

Retorna verdadeiro caso o elemento esteja contido no intervalo definido. Ex.: "#result = 3 between {1,4}"

 

Operadores Lógicos

Descrição

or

Retorna verdadeiro caso uma condição seja aceita. Ex.: "#result = (#var == 1) or (#var == 2)"

and

Retorna verdadeiro caso todas as condições sejam aceitas. Ex.: "#result = (#var != 1) and (#var != 2)"

!

Nega o resultado booleano de uma expressão. Se o resultado for verdadeiro, retorna falso. Se for falso, retorna verdadeiro. Ex.: "#result = !(2 == 1)"

 

Operadores Matemáticos

Descrição

+

Soma. Ex.: "#result = 2 + 3"

Retorno: 5

-

Subtração. Ex.: "#result = 2 - 3"

Retorno: -1

*

Multiplicação. Ex.: "#result = 2 * 3"

Retorno: 6

/

Divisão. Ex.: "#result = 2.0 / 3.0"

Retorno: 0.66666

%

Módulo. Ex.: "#result = 3.0 % 2.0"

Retorno: 1

^

Potência. Ex.: "#result = 2 ^ 3"

Retorno: 8

 

Atribuição e Variáveis

Descrição

=

Utilizado para atribuições a uma variável. Ex.: "#var = 5"

#nome

Declara o nome de uma variável. Ex.: "#var = 'hello'"

 

Operação Ternária (operador condicional)

Descrição

<boolean expression> ? <if true then…> : <if false then…>

Cria uma condição para execução de uma expressão. Ex.:

#var >= 5 ? 'High' : 'Low'

 

Funções e Constantes Matemáticas

Descrição

E

Consulte também outras funções disponíveis na classe Math do framework .NET 4 em:

http://msdn.microsoft.com/en-us/library/system.math.aspx

 

PI

Ceiling(double a)

Floor(double d)

IEEERemainder(double x, double y)

Pow(double x, double y)

Round(double a)

Round(double value, int digits)

Sign(double value)

Sqrt(double d)

Truncate(double d)

Max(object val1, object val2, …)

Estas funções aceitam qualquer número de parâmetros.

O retorno é um número do tipo double.

 

Os parâmetros do tipo object significam ser capazes de receber qualquer parâmetro de tipo numérico (int, long, double, etc.) ou qualquer parâmetro/objeto cuja representação textual (.toString()) possa ser convertida para um número em ponto flutuante (double). Por exemplo: um parâmetro do tipo string de valor “101.23” pode ser usado como parâmetro e será considerado o número 101.23.

 

Exemplo: Max(10, $result, “15.3”);

 

Retorna o maior valor entre os parâmetros considerando que todos são convertidos para números em ponto flutuante mesmo que o parâmetro seja um texto (string).

Min(object val1, object val2,…)

 

Outras Funções

Descrição

Lookup(object valueToLookup, object expectedResult1, object result1, …)

Função para realizar uma busca em uma coleção de itens.

 

Ex.: Lookup(#Severidade, "Baixo", 1, "Médio", 2, "Alto", 3);

 

Neste exemplo, a função retorna 1 caso o valor da variável #Severidade seja igual a "Baixo", 2 se for igual a "Médio" e 3 se for "Alto". Caso ela não se enquadre em nenhum destes valores, a função retorna 0.

LookupRange(double valueToLookup, string range1, double val1, string range2, double val2, … )

Função que permite comparar um valor numérico com vários intervalos, resultando em um novo valor.

 

Ex.: LookupRange(#ValorDoAtivo,  “0:1000”, 1,   “1000:10000”, 2,   “10000:1000000”, 3);

 

Neste exemplo, a função retorna 1 caso o valor da variável #ValorDoAtivo esteja entre 0 e 1000; 2 caso esteja entre 1.000 e 10.000 e 3 caso esteja entre 10.000 e 100.000.

 

Caso o valor da variável não seja encontrado em nenhum dos intervalos, a função retorna 0.

FirstBiggerThan(object valueToCompare, value1, value2, …)

Retorna o índice do primeiro valor que for maior do que o valor sendo procurado.

 

Ex: FirstBiggerThan(#ImpactValue, 1000, 10000, 20000);

 

Neste exemplo, a função retorna 0 se o valor da variável #ImpactValue for maior do que 1.000; 1 se for maior do que 10.000 e 2 se for maior do que 20.000

FirstBiggerThanOrEqualTo(object valueToCompare, value1, value2, …)

Retorna o índice do primeiro valor que for maior ou igual ao valor sendo procurado.

 

Ex: FirstBiggerThan( #ImpactValue, 1000, 10000, 20000);

 

Neste exemplo, a função retorna 0 se o valor de #ImpactValue for maior ou igual a 1000; 1 se for maior ou igual a 10000 e 2 se for maior ou igual a 20000

FirstLessThan(object valueToCompare, value1, value2, …)

Retorna o índice do primeiro valor que seja maior do que o valor sendo procurado.

 

Ex: FirstLessThan(#ImpactValue, 1000, 10000, 20000);

 

Neste exemplo, a função retorna 0 se o valor de #ImpactValue for menor do que 1.000; 1 se for menor do que 10.000 e 2 se for menor do que 20.000

FirstLessThanOrEqualTo(object valueToCompare, value1, value2, …)

Retorna o índice do primeiro valor que seja menor ou igual ao o valor sendo procurado.

 

Ex: FirstLessThanOrEqualTo(#ImpactValue, 1000, 10000, 20000);

 

Neste exemplo, a função retorna 0 se o valor de #ImpactValue for menor ou igual a 1.000; 1 se for menor ou igual a 10.000 e 2 se for menor ou igual a 20.000

 

O avaliador de expressões da fórmula da Medida de Impacto é baseado no avaliador de expressões do Spring Framework. Maiores informações acerca das capacidades deste avaliador de expressões podem ser encontradas em http://www.springframework.net/doc-latest/reference/html/expressions.html#expressions-language-ref.