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

Etapa 3. Preencher o Stub de Método com Implementação

Etapa 3. Preencher o Stub de Método com Implementação

A etapa final é codificar o procedimento.
  1. Abra o arquivo stub
    <Nome_Procedimento>
    .cpp gerado para o procedimento.
    No exemplo do BankSoft, abra o fv.cpp para codificar o procedimento TxINF_BankSoft::FV.
  2. Insira o código C++ para o procedimento.
    O código a seguir implementa o procedimento FV:
    INF_RESULT TxINF_BankSoft::FV() {   // Input port values are mapped to the m_pInParamVector array in   // the InitParams method. Use m_pInParamVector[i].IsValid() to check   // if they are valid. Use m_pInParamVector[i].GetLong or GetDouble,   // etc. to get their value. Generate output data into m_pOutParamVector.   //  TODO: Fill in implementation of the FV method here.     ostrstream ss;     char* s;     INF_BOOLEAN bVal;     double v;     TINFParam* Rate = &m_pInParamVector[0];     TINFParam* nPeriods = &m_pInParamVector[1];     TINFParam* Payment = &m_pInParamVector[2];     TINFParam* PresentValue = &m_pInParamVector[3];     TINFParam* PaymentType = &m_pInParamVector[4];     TINFParam* FV = &m_pOutParamVector[0];     bVal =       INF_BOOLEAN(         Rate->IsValid() &&         nPeriods->IsValid() &&         Payment->IsValid() &&         PresentValue->IsValid() &&         PaymentType->IsValid()       );     if (bVal == INF_FALSE)     {       FV->SetIndicator(INF_SQL_DATA_NULL);       return INF_SUCCESS;     }     v = pow((1 + Rate->GetDouble()), (double)nPeriods->GetLong());     FV->SetDouble(       -(          (PresentValue->GetDouble() * v) +          (Payment->GetDouble() *            (1 + (Rate->GetDouble() * PaymentType->GetLong()))) *          ((v - 1) / Rate->GetDouble())       )     );     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;     return INF_SUCCESS; }
    O Designer gera o perfil de função, incluindo argumentos e valor de retorno. Você deve inserir o código real na função, como indicado nos comentários. Como você referenciou a função POW e definiu uma variável
    ostrstream
    , deve incluir também as instruções do pré-processador:
    No Windows:
    #include <math.h> #include <strstream> using namespace std;
    No UNIX, as instruções incluídas devem ser as seguintes:
    #include <math.h> #include <strstream.h>
  3. Salve o arquivo modificado.