Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

APPLYMAP - IF - Dúvida

  Prezados, bom dia!

Abaixo segue  uma expressão no meu script, nessa expressão ela me informa a situação das notas que varia entre 0, 2, 3, 4 e 6.

applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) as "Situação Nota",

Gostaria de aplicar um nome para cada uma destas situações:

0 - Cancelada

2 - Recusada

3 - Normal

4 - Normal

6 - Anulada

Como devo proceder neste caso?
Desde já, agradeço!


Diego

Labels (2)
1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, bem tem algumas formas de fazer isso.

A mais fácil é criar uma tabela com o Código Situação Nota e Situação Nota e associar pelo campo Código Situação Nota.

[Situacao Nota]:

Load * Inline [

  Código Situação Nota - Situação Nota

  0 - Cancelada

  2 - Recusada

  3 - Normal

  4 - Normal

  6 - Anulada

] (delimiter is '-');

Alterando o nome do campo de Situação Nota para Código Situação Nota, ficando assim:

applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) as "Código Situação Nota",

Outra possibilidade é fazer mais uma tabela de mapping com os valores

MapSituacaoNota:

Mapping

Load * Inline [

  de - para

  0 - Cancelada

  2 - Recusada

  3 - Normal

  4 - Normal

  6 - Anulada

] (delimiter is '-');

e depois fazer um novo applymap, ficando assim:

ApplyMap('MapSituacaoNota',applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0)) as "Situação Nota",
Don't Worry, be Qlik.

View solution in original post

3 Replies
rphpacheco
Creator III
Creator III

Bom, no seu modelo de dados tem que existir uma tabela frete_map_situacao, onde ela deve ser mais ou menos assim:

frete_map_situacao:

Mapping Load * InLine [

De, Para

1|1|645, 0

1|2|655, 2

];


E depois, como o seu exemplo demonstrou, ele pega estes valores.

O que podes fazer é criar mais uma tabela de Mapping, onde você colocará os valores inteiros do status e também sua situação:


frete_map_desc_situação

Mapping Load * InLine [

De, Para

0, Cacelada

2, Recusada

3, Normal

4, Normal

6, Anulada

];


Depois, faça um Applymap dentro de outro:

applymap('frete_map_desc_situação', applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) , 0) as [Desc. Situação da Nota],


fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, bem tem algumas formas de fazer isso.

A mais fácil é criar uma tabela com o Código Situação Nota e Situação Nota e associar pelo campo Código Situação Nota.

[Situacao Nota]:

Load * Inline [

  Código Situação Nota - Situação Nota

  0 - Cancelada

  2 - Recusada

  3 - Normal

  4 - Normal

  6 - Anulada

] (delimiter is '-');

Alterando o nome do campo de Situação Nota para Código Situação Nota, ficando assim:

applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) as "Código Situação Nota",

Outra possibilidade é fazer mais uma tabela de mapping com os valores

MapSituacaoNota:

Mapping

Load * Inline [

  de - para

  0 - Cancelada

  2 - Recusada

  3 - Normal

  4 - Normal

  6 - Anulada

] (delimiter is '-');

e depois fazer um novo applymap, ficando assim:

ApplyMap('MapSituacaoNota',applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0)) as "Situação Nota",
Don't Worry, be Qlik.
Not applicable
Author

Obrigado a todos!!! Criei uma nova tabela.