Sumário

Search

  1. Prefácio
  2. Trabalhando com Transformações
  3. Transformação Agregador
  4. Transformação Personalizada
  5. Funções de Transformação Personalizada
  6. Transformação Mascaramento de Dados
  7. Exemplos de Mascaramento de Dados
  8. Transformação Expressão
  9. Transformação Procedimento Externo
  10. Transformação Filtros
  11. Transformação HTTP
  12. Transformação de Resolução de Identidade
  13. Transformação Java
  14. Referência da API da transformação Java
  15. Expressões Java
  16. Exemplo de Transformação Java
  17. Transformação Joiner
  18. Transformação Pesquisa
  19. Caches de Pesquisa
  20. Cache de Pesquisa Dinâmica
  21. Transformação Normalizador
  22. Transformação Classificação
  23. Transformação Roteador
  24. Transformação de Gerador de Sequência
  25. Transformação Classificador
  26. Transformação de Qualificador de Origem
  27. Transformação SQL
  28. Usando a Transformação SQL em um Mapeamento
  29. Transformação Procedimento Armazenado
  30. Transformação Controle de Transações
  31. Transformação União
  32. Transformação Dados Não Estruturados
  33. Transformação Estratégia de Atualização
  34. Transformações XML

Guia de Transformações

Guia de Transformações

Gerando Mensagens de Erro e Rastreamento

Gerando Mensagens de Erro e Rastreamento

A implementação do procedimento externo Informatica TxINF_BankSoft::FV no Etapa 4. Construindo o Módulo contém as seguintes linhas de código:
ostrstream ss; char* s; ... ss << "The calculated future value is: " << FV->GetDouble() << ends; s = ss.str(); (*m_pfnMessageCallback)(E_MSG_TYPE_LOG, 0, s); (*m_pfnMessageCallback)(E_MSG_TYPE_ERR, 0, s); delete [] s;
Quando o Serviço de Integração cria um objeto do tipo Tx<MODNAME>, ele transfere ao seu construtor um ponteiro para uma função de retorno de chamada, que pode ser usada para escrever mensagens de erro ou depuração no log da sessão. (O código para construtor de Tx<MODNAME> está no arquivo Tx<MODNAME>.cpp.) Este ponteiro é armazenado no membro Tx<MODNAME> variável m_pfnMessageCallback. O tipo deste ponteiro é definido em um typedef no arquivo $PMExtProcDir/include/infemmsg.h:
typedef void (*PFN_MESSAGE_CALLBACK)(   enum E_MSG_TYPE eMsgType,   unsigned long Code,   char* Message );
Também definida nesse arquivo está a enumeração E_MSG_TYPE:
enum E_MSG_TYPE {   E_MSG_TYPE_LOG = 0,   E_MSG_TYPE_WARNING,   E_MSG_TYPE_ERR };
Se você especificar o eMsgType da função de retorno de chamada como E_MSG_TYPE_LOG, tal função escreverá uma mensagem
log
no log da sessão. Se você especificar E_MSG_TYPE_ERR, a função de retorno de chamada escreve uma mensagem de
erro
no log da sessão. Se você especificar E_MSG_TYPE_WARNING, a função de retorno de chamada gravará uma mensagem
aviso
no log da sessão. Use estas mensagens para permitir uma capacidade de depuração simples nos procedimentos externos Informatica.
Para depurar procedimentos externos COM, você pode usar as instalações de saída disponíveis dentro de uma classe do Visual Basic ou C++. Por exemplo, no Visual Basic use um MsgBox para imprimir o resultado de um cálculo para cada linha. Obviamente, você deseja fazer isto somente em amostras pequenas de dados durante a depuração, e não deixe de remover o MsgBox antes de fazer uma execução de produção.
Antes de tentar usar qualquer instalação de saída dentro de uma classe Visual Basic ou C++, adicione o seguinte valor ao registro:
  1. Adicione a seguinte entrada ao registro do Windows:
    \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PowerMart\Parameters\MiscInfo\RunInDebugMode=Yes
    Esta opção inicia o Serviço de Integração como um aplicativo regular, não um serviço. Você pode depurar o Serviço de Integração sem alterar os privilégios de depuração deste serviço enquanto ele está executando.
  2. Inicie o Serviço de Integração a partir da linha de comando, usando o comando PMSERVER.EXE.
    O Serviço de Integração está agora executando no modo de depuração.
Quando terminar a depuração, certifique-se de remover esta entrada do registro ou configurar o RunInDebugMode como Não. Do contrário, quando você tentar iniciar o PowerCenter como um serviço, ele não iniciará.
  1. Interrompa o Serviço de Integração e altere a entrada de registro que você adicionou anteriormente à seguinte configuração:
    \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PowerMart\Parameters\MiscInfo\RunInDebugMode=No
  2. Reinicie o Serviço de Integração como um serviço do Windows.