Os seguintes operadores estão disponíveis: concat, subtext, indexof.
Concatenação de cadeias de caracteres
Marca XML: |
Concat |
|
Operandos: |
exatamente um conjunto de valores (cadeias de caracteres) |
|
Resumo: |
<concat> <Value set 1> </concat> |
|
Operandos: |
TEXT |
|
Resultado: |
Valor (cadeia de caracteres) |
|
Tipo de resultado: |
TEXT |
|
Cálculo (PPM3/PPM4) |
Resultado |
Resultado da concatenação de todas as cadeias de caracteres contidas no conjunto de valores. NULL se o operando for um conjunto vazio |
Erro |
Se pelo menos um valor for de um tipo de dados inválido |
|
Exemplo: |
- |
Extração de subcadeias de caracteres
Marca XML: |
Subtext |
|
Operandos: |
exatamente um valor (cadeia de caracteres) |
|
Resumo: |
<subtext beginindex="..." [endindex=" "]> <Valor> </subtext> Exemplo <subtext> <Valor> <beginindex>...</beginindex> <endindex>...</endindex> </subtext> Deve usar apenas uma das duas variações descritas (índice especificado como um atributo XML ou um elemento XML). |
|
Operandos: |
TEXT |
|
Resultado: |
Valor (cadeia de caracteres extraída) |
|
Tipo de resultado: |
TEXT |
|
Descrição: |
Extrai uma subcadeia de uma cadeia de caracteres especificando índices positivos (a partir do início da cadeia de caracteres) ou índices negativos (a partir do final da cadeia de caracteres). |
|
Cálculo (PPM3) |
Resultado |
Retorna uma subcadeia de caracteres da cadeia de caracteres transferida pelo operando. |
Erro |
Se o operando for NULL ou de um tipo de dados inválido |
|
Cálculo (PPM4) |
Resultado |
Retorna uma subcadeia de caracteres da cadeia de caracteres transferida pelo operando. |
Erro |
Se o tipo de dados for inválido (não TEXT) |
|
Exemplo: |
<subtext beginindex="-3" endindex="-1"> Exemplo <subtext> Assumindo o valor ABCDE para o atributo AT_XYZ, a subcadeia de caracteres CD é extraída. |
Identificar a posição do subtexto em outro texto
Marca XML |
<indexof> |
|||
Descrição |
Retorna o índice em um texto (operando 1), onde está localizada a primeira ocorrência de um subtexto (operando 2), iniciado em um índice especificado (operando 3). |
|||
Operandos (Position/ Data type) |
1 / TEXT 2 / TEXT [ 3 / LONG ], opcional, valor padrão é 0 |
|||
Cálculo |
do PPM 9.0 |
|||
Cálculo (PPM4) |
Resultado |
-1, se pelo menos 1 operando for igual a NULL ou se a subcadeia de caracteres não for encontrada Índice da primeira ocorrência do texto determinado pelo operando 2, no texto determinado pelo operando 1, a partir do índice especificado no operando 3 (como Java String.indexOf(String, int)). |
||
Tipo de dados |
LONG |
|||
Exceção |
Se pelo menos 1 operando for de um tipo de dados inválido ou operando 3 < 0 |
|||
|
||||
|
||||
|
||||
Exemplo |
<subtext mode="PPM4"> <filteredattribute name="AT_TEXT" … /> <beginindex> <indexof> <filteredattribute name="AT_TEXT" … /> <constant> <dataitem> XYZ <datatypename="TEXT">Text</datatype> </dataitem> </constant> </beginindex> </subtext> |
|||
|
No exemplo, os operadores indexof e subtext são usados em conjunto. indexof determina a posição do texto XYZ no valor de atributo do atributo AT_TEXT. Depois, o operador subtext identifica a subcadeia de caracteres a partir dessa posição. Se o atributo AT_TEXT tiver o valor ABCDEXYZAC, a regra de cálculo acima retornará o valor XYZAC. |