É possível fazer um join por número de MFN. Neste caso a especificação de formato deverá incluir, no início, a cadeia de caracteres mfn seguida pelo número de registro que deve ser recuperado. O procedimento de join por MFN não requer a existência de um arquivo invertido.
Exemplos:
• Supondo que o arquivo chamado NUMS contenha uma lista com os números de registros que se quer extrair da base CDS .
mx seq=NUMS join=CDS='mfn=',v1 create=EXPORT now -all proc='d1/1d32001'
A base resultante EXPORT tem dois campos que não estão presentes nos registros de CDS . O campo 1 que provem do arquivo NUMS , onde cada linha foi considerada um registro de um só campo, e o campo 32001 que é gerado para registrar o procedimento do join. Estes dois campos são eliminados no final com o procedimento proc. Supondo que o arquivo mestre chamado SORTED contenha seus registros ordenados de acordo com o campo 10 (não repetitivo).
mx SORTED "join=SORTED=if mfn > 1 then 'mfn=',f(mfn-1,1,0) fi" pft=@umavez.pft –all now
A seguinte especificação de formato imprime de uma só vez os diferentes conteúdos do campo 10:
if v10[1] <> v10[2] then v10[1]/ fi
Dica: Note-se que v10[1] á o conteúdo do campo 10 do registro de origem e v10[2] é o conteúdo do
campo 10 do registro obtido pelo parâmetro join. Em outras palavras, v10[1] é a chave atual e
v10[2] é a chave do registro anterior (mfn-1).
Parâmetro [jmax=<n>]
O parâmetro jmax=<n> limita a quantidade de registros que são juntados ao registro original, procedentes da ação do parâmetro join, para cada chave gerada. Este limite se aplica para cada parâmetro join da linha de comandos. Se forem especificados mais de um jmax, só será válido o último deles, por isso se recomenda indicá-lo apenas uma vez e depois detalhar todos os joins e jchks necessários para o processo. Por default o valor de jmax é infinito.
Dica: É possível usar até um máximo de 128 parâmetros join e jchk em conjunto.