Como: Referência: |
Linguagens Disponíveis: Reporting, MODIFY
Você pode utilizar a função DB_LOOKUP para obter um valor a partir de uma fonte de dados durante a execução de uma solicitação que utiliza outra fonte de dados sem unir ou combinar as duas fontes.
A função DB_LOOKUP compara pares de campos da fonte e das fontes de dados de pesquisa para localizar registros correspondentes e obter o valor para enviar à solicitação. Você pode especificar quantos pares desejar para alcançar o registro de pesquisa que possui o valor que você deseja obter. Se os seus pares de lista de campo não chegarem a um único registro de pesquisa, o primeiro registro correspondente obtido será utilizado.
DB_LOOKUP pode ser chamado em um comando DEFINE, TABLE COMPUTE, MODIFY COMPUTE ou fluxo DataMigrator.
Não há restrições no arquivo fonte. O arquivo de pesquisa pode ser qualquer fonte de dados não FOCUS com suporte como o arquivo de referência cruzada em uma união em cluster. Os campos de pesquisa utilizados para encontrar o registro correspondente estão sujeitos às regras sobre campos de união de referência cruzada para a fonte de dados de pesquisa. Um arquivo sequencial de formato fixo pode ser o arquivo de pesquisa caso seja classificado na mesma ordem que o arquivo fonte.
DB_LOOKUP(look_mf, srcfld1, lookfld1, srcfld2, lookfld2, ..., returnfld);
onde:
É o Arquivo Master de pesquisa.
São campos do arquivo de origem usados para localizar um registro correspondente no arquivo de pesquisa.
São colunas do arquivo de pesquisa que compartilham valores com os campos de origem. Só podem ser usadas colunas na tabela ou arquivo; não é possível usar colunas criadas com DEFINE. Para sinônimos de vários segmentos só podem ser usadas colunas no segmento superior.
É o nome de uma coluna no arquivo de pesquisa cujo valor é retornado do registro de pesquisa correspondente. Só podem ser usadas colunas na tabela ou arquivo; não é possível usar colunas criadas com DEFINE.
Além disso, se uma solicitação DB_LOOKUP em uma arquivo sequencial for emitida em um comando DEFINE FILE, vocÊ deverá limpar o comando DEFINE FILE no fim da solicitação TABLE que faz referência a ele para que o arquivo não continue aberto. Não será reutilizável até que seja fechado e pode causar problemas quando você sair. Outros tipos de arquivos de pesquisa pode ser reutilizados sem limpar o DEFINE. Serão limpos automaticamente quando todos os campos DEFINE forem limpos.
O procedimento a seguir cria um arquivo sequencial de formato fixo chamado GSALE a partir da fonte de dados GGSALES. Os campos neste arquivo são PRODUCT (descrição do produto), CATEGORY (categoria do produto) e PCD (código do produto). O arquivo é classificado no campo PCD:
SET ASNAMES = ON TABLE FILE GGSALES SUM PRODUCT CATEGORY BY PCD ON TABLE HOLD AS GSALE FORMAT ALPHA END
O Arquivo Master a seguir é gerado como resultado do comando HOLD:
FILENAME=GSALE, SUFFIX=FIX , $ SEGMENT=GSALE, SEGTYPE=S1, $ FIELDNAME=PCD, ALIAS=E01, USAGE=A04, ACTUAL=A04, $ FIELDNAME=PRODUCT, ALIAS=E02, USAGE=A16, ACTUAL=A16, $ FIELDNAME=CATEGORY, ALIAS=E03, USAGE=A11, ACTUAL=A11, $
A solicitação TABLE a seguir na fonte de dados GGPRODS classifica o relatório no campo que corresponde ao campo da chave no arquivo de pesquisa. O comando DEFINE obtém o valor do campo CATEGORY a partir do arquivo de pesquisa GSALE correspondendo os campos de código de produto e descrição de produto. Observe que o comando DEFINE FILE está limpo no fim da solicitação:
DEFINE FILE GGPRODS PCAT/A11 MISSING ON = DB_LOOKUP(GSALE, PRODUCT_ID, PCD, PRODUCT_DESCRIPTION, PRODUCT, CATEGORY); END TABLE FILE GGPRODS PRINT PRODUCT_DESCRIPTION PCAT BY PRODUCT_ID END DEFINE FILE GGPRODS CLEAR END
O Arquivo Master GSALE não define o campo CATEGORY com o atributo MISSING=ON. Portanto, a coluna PCAT exibe um espaço em branco nestas linhas que não possuem um registro correspondente no arquivo de pesquisa:
Product Code | Product | PCAT |
------- | ------- | ---- |
B141 | Hazelnut | |
B142 | French Roast | |
B144 | Kona | |
F101 | Scone | Food |
F102 | Biscotti | Food |
F103 | Croissant | Food |
G100 | Mug | Gifts |
G104 | Thermos | Gifts |
G110 | Coffee Grinder | Gifts |
G121 | Coffee Pot | Gifts |
Se você adicionar o atributo MISSING=ON ao campo CATEGORY do Arquivo Master GSALE, a coluna PCAT exibirá um símbolo de dados ausentes nas linhas que não possuem registros correspondentes no arquivo de pesquisa:
Product Code Product PCAT ------- ------- ---- B141 Hazelnut . B142 French Roast . B144 Kona . F101 Scone Food F102 Biscotti Food F103 Croissant Food G100 Mug Gifts G104 Thermos Gifts G110 Coffee Grinder Gifts G121 Coffee Pot Gifts
Information Builders |