Exemplo de como usar pdm_deref

O exemplo a seguir mostra como usar o utilitário pdm_deref em um sistema de acompanhamento de ticket do CA SDM.
casm173
O exemplo a seguir mostra como usar o utilitário pdm_deref em um sistema de acompanhamento de ticket do CA SDM.
Suponha que um sistema de rastreamento de ticket existente implementado em uma planilha tem colunas chamadas Descrição do problema, Nome e sobrenome do técnico e Data de entrada. Essas colunas correspondem aos campos descrição, responsável e open_date na tabela Change_Request do CA SDM. O campo Descrição do problema contém o mesmo tipo de dados que o campo Descrição. Mas o campo responsável é um campo numérico, enquanto o campo Técnico na planilha está no formato “sobrenome, nome”.
Siga estas etapas:
  1. Carregue os nomes dos técnicos na tabela Contato.
  2. Prepare um arquivo de entrada pdm_deref com as informações existentes.
  3. Crie um arquivo de especificações para mapear os novos nomes de contato para valores de responsável.
  4. Prepare um arquivo de entrada pdm_userload a ser usado para atualizar a tabela Change_Request.
Esse processo é descrito com mais detalhes nas etapas a seguir:
  1. Prepare um arquivo de entrada do pdm_userload, local.dat, para a tabela Location da seguinte forma:
    TABLE ca_location location_name address_2 address_2 {"Boulder NCC - NQ", "716 Main Street","Boulder, CO 84302"} {"Colorado Springs NCC", "2765 Spring Street", "Colorado Springs, CO 84303"} {"Denver NCC", "3765 Stoneridge Way", "Denver, CO 80254"}
  2. Carregue os dados da seguinte forma:
    pdm_load -f location.dat
  3. Prepare um arquivo de entrada, contact.dat, com as informações originais da seguinte forma:
    TABLE ca_contact last_name first_name middle_name location pri_phone_number {"Harrison", "Frank," "Harold", "NCC - HQ", "303-555-2333"} {"Hertzog", "William", "I.", "Colorado Springs NCC", "303-966-1987"} {"Lyman", "Jeanie", "L.", "Denver NCC", "303-966-5301"}
  4. Prepare um arquivo de especificações de ferramenta de retirada de referência, contact.spec, da seguinte forma:
    Deref { input = c_location output = location_uuid rule = "SELECT id FROM ca_location WHERE location_name=?" }
    Não coloque um espaço em branco na frente da palavra-chave SELECT. O Deref usa os nomes e sobrenomes dos novos contatos para obter os campos ID numérico adequado para carregar a tabela Change_Request. Além disso, os “ganchos” representados por pontos de interrogação (?) correspondem aos campos de entrada especificados. Você deve ter o mesmo número de ganchos como campos de entrada e eles devem estar na mesma requisição.
  5. Execute pdm_deref da seguinte forma:
    pdm_deref -s contact.spec < contact.dat > contact.out
    O arquivo de saída, contact.out, é semelhante a:
    TABLE ca_contact last_name first_name middle_name location.uuid pri_phone_number {"Harrison", "Frank", "Harold", "69499D5A2424884887E62EC9823F5E47", "303-555-2333"} {"Hertzog", "William", "I.", "86873FA40BA4234A8CF7A418D7C8B2DB", "303-966-1987"} {"Lyman", "Jeanie", "L.", "58AA42789957734E8BEE146D07F7AD49", "303-966-5301"}
  6. Carregue o arquivo contact.out no banco de dados do CA SDM da seguinte forma:
    pdm_load -i -f contact.out
    É necessário usar o comando pdm_load para usar a opção –i.
  7. (somente UNIX, opcional) Crie um script, Convert_Ticket, como mostrado a seguir:
    #!/bin/sh pdm_load -i $1 cat $2 | pdm_deref -s $3 | pdm_load -i
    É possível executar esse script, como pode ser visto a seguir:
    Convert Ticket location.dat contact.dat contact.spec
Neste exemplo, pdm_load com o sinalizador i é usado para acelerar o processo. Se estiver fazendo essas atualizações regularmente, é possível descartar o sinalizador i de modo que pdm_load verifique se existem registros duplicados
A seguir, exemplos adicionais dos arquivos de especificação de ferramenta de retirada de referência:
Deref { input = first_name, last_name, middle_name output = assignee rule = " SELECT id from ca_contact \ WHERE first_name=? \ AND last_name=? \ AND middle_name=? " }
Essa regra converte três campos rotulados como first_name, last_name e middle_name na UUID do contato apropriado. Se todos os três campos de entrada não estiverem presentes, a regra não será aplicada. Nenhuma correspondência gera uma mensagem de erro e o processamento continua. Para várias correspondências, o primeiro valor é usado; uma mensagem de erro é gerada e o processamento continua.