Operadores de cadeia de caracteres

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.
NULL se os índices especificados forem inválidos

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.
NULL se os índices especificados forem inválidos ou o operando for NULL

Erro

Se o tipo de dados for inválido (não TEXT)

Exemplo:

<subtext beginindex="-3" endindex="-1">
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</subtext>

Exemplo

<subtext>
<beginindex>-3</beginindex>
<endindex>-1</endindex>
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</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.