Em algum momento já precisou referenciar um segmento de flexfield numa validação de value set de outro segmento?
Dessa maneira é possível fazer com que o nosso flexfield fique dependente do conteúdo de outro flexfield, confuso?
Vamos a um exemplo para deixar fácil de entender:
Imagine dois segmentos de flexfields:
- O primeiro armazena os estados do Brasil
- O segundo armazena as cidades
Ao escolher Santa Catarina no primeiro, não faria sentido mostrar todas as cidades do Brasil, de todos os estados, não é mesmo?
É exatamente isso que podemos fazer com a referência de flexfields. O flexfield de cidades faria uma referência ao flexfield de estados, utilizando o conteúdo informado para filtrar e mostrar apenas as cidades daquele estado.
Interessante, não é mesmo?
Então acompanhe esse artigo para saber mais sobre:
- Variáveis Bind
- Como referenciar outro segmento de flexfield
O que são variáveis bind (bind variables)
De uma maneira resumida, uma variável bind permite utilizar um conteúdo dinâmico como referência.
Esse conceito é utilizado em diversas situações, mas nesse contexto de value sets quer dizer que podemos utilizar essas variáveis para referenciar outros componentes de um mesmo cenário.
Basicamente temos três tipos de bind variables (falando de value sets):
- Referência de segmentos de flexfield ou parâmetros de programas concorrentes
- Referência de campos de um form
- Referência de profiles
O foco desse artigo será em como referenciar outros segmentos de flexfield.
Referenciando outro segmento
A referência é feita com auxílio do termo :$FLEX$.
Será utilizado um value set com tipo de validação Table.
A sintaxe é:
:$FLEX$ + “.” + <NOME DO VALUE SET DO OUTRO SEGMENTO>
Utilizando o exemplo do começo do artigo, digamos que o segmento de flexfield de estados utilize um value set chamado XX_UF e o segmento de cidades um value set chamado XX_CIDADE.
A referência ao value set de estados (XX_UF) dentro do value set de cidades (XX_CIDADE) ficaria:
:$FLEX$.XX_UF
Então, para listar apenas cidades daquele estado em questão, colocaríamos uma cláusula where da seguinte maneira:
ESTADO = :$FLEX$.XX_UF
(O campo ESTADO é fictício e serve apenas para exemplo)
⚠ Importante: O segmento referenciado deve sempre vir antes do segmento que está fazendo a referência
Essa referência pode ser feita em três lugares:
#01. Meaning
#02. Where/Order By
#03. Additional Columns
Conclusão
Trabalhar com value sets pode parecer algo simples e básico, mas se for mesmo esgotar todas as possibilidades, daria para escrever um livro sobre o tema.
Como em todas as áreas de um sistema, quando conhecemos apenas o trivial de um recurso, dificilmente poderemos imaginar e criar soluções que aproveitem todo o seu potencial.
E em muitos casos, customizações desnecessárias são criadas.
Essa parte de variáveis bind é apenas um pedaço de tudo que pode ser feito com value sets dentro do E-Business Suite, caso tenha interesse em se aprofundar nesse componente que considero essencial (assim como vários outros) para qualquer profissional EBS, convido a conhecer o treinamento Oracle EBS Essentials.
Se gostou desse artigo e acha que pode ser útil para outras pessoas, não esqueça de compartilhar com a sua rede de contatos.