Pular para o conteúdo
Kitegra
← Voltar ao blog

Módulo deste artigo: Message Monitor

Encontre qualquer mensagem do SAP CPI por Message ID ou Correlation ID

De onde vêm o Message ID, o Correlation ID e o Application ID do SAP CPI, como buscá-los no monitor e na API, e como abrir uma mensagem e as mensagens relacionadas a ela.

Encontre qualquer mensagem do SAP CPI por Message ID ou Correlation ID

Um parceiro diz que um pedido falhou e envia um ID. É um Message ID, um Correlation ID ou o número de pedido dele? E qual dos seus iFlows o processou? No SAP Cloud Integration (SAP CPI), cada um desses IDs significa algo diferente, e cada um é encontrado de um jeito diferente.

Este artigo explica os três IDs, como buscá-los no monitor do SAP e na API dele, como deixar as suas próprias mensagens mais fáceis de encontrar e como abrir qualquer mensagem, com as mensagens relacionadas, em um único passo.

Message ID, Correlation ID e Application ID

  • Message ID: o ID de um log de processamento de mensagens (MPL). Dentro do iFlow, o header SAP_MessageProcessingLogID o contém, e um sender HTTPS o devolve a quem chamou em um header de resposta com o mesmo nome.
  • Correlation ID: compartilhado pelos logs de mensagens que andam juntas, por exemplo uma mensagem e as que ela repassa por ProcessDirect ou JMS. O header SAP_MplCorrelationId o contém.
  • Application ID: a sua própria chave de negócio, como um número de pedido, definida no header SAP_ApplicationID. O monitor a exibe e permite buscá-la.

Quando alguém envia um ID, o Message ID encontra uma mensagem, o Correlation ID encontra a cadeia inteira e o Application ID encontra a mensagem de que a pessoa está falando, nos termos dela.

Buscando no monitor do SAP

  1. Abra Monitor Message Processing.
  2. Amplie o intervalo de tempo para cobrir quando a mensagem rodou: uma mensagem fora do intervalo selecionado não aparece.
  3. Digite o ID no campo de pesquisa, ou escolha antes o iFlow e um status para filtrar a lista.
  4. Abra a mensagem para ver o log, o erro e, se ela foi rastreada na última hora, o trace.

Buscando com a API

A API OData do Cloud Integration lê os mesmos logs. Ela é útil em scripts e ferramentas de suporte, e não depende do intervalo de tempo do monitor:

GET https://<tenant>/api/v1/MessageProcessingLogs('<Message ID>')

GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=CorrelationId eq '<Correlation ID>'&$orderby=LogStart

GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=ApplicationMessageId eq '<your ID>'

As chamadas precisam de um usuário com permissões de monitoramento no tenant.

Deixe suas mensagens fáceis de encontrar

Nem o Message ID nem o Correlation ID significam algo para o negócio. Escreva você mesmo a chave de negócio no log: como Application ID e como custom header property, que o monitor exibe e permite buscar:

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    def orderId = message.getProperty("orderId") as String
    // Shown and searchable in the monitor as a custom header property.
    messageLogFactory.getMessageLog(message)?.addCustomHeaderProperty("OrderId", orderId)
    // Shown in the monitor as the message's Application ID.
    message.setHeader("SAP_ApplicationID", orderId)
    return message
}

Para valores que devem viajar entre iFlows, o artigo sobre headers de ProcessDirect e JMS explica o que atravessa cada ligação.

Abra qualquer mensagem pelo designer

  1. No designer, clique no botão “Ferramentas do Kitegra” e escolha “Logs de mensagens”. O visualizador de logs abre em uma nova aba; mantenha a aba do designer aberta, porque o visualizador lê o SAP por meio dela.
  2. Cole o ID na caixa “Message ID ou Correlation ID” e escolha “Buscar”. Mensagens de qualquer iFlow do tenant abrem ali.
  3. Leia a mensagem nas abas: “Resumo”, “Body e headers”, “Adaptador”, “Persistidos” e “Anexos”.
  4. Abra a aba “Linha do tempo”: ela lista todas as mensagens que compartilham o Correlation ID, com iFlow, status, início e duração. Não precisa de trace.
  5. Para navegar em vez de buscar, filtre por iFlow (ou “Todos os iFlows”), por status e por um horário “De” e “Até”.

No painel “Mensagens” de um iFlow aberto, “Copiar ID” copia o ID de uma mensagem, e “Abrir no monitor de mensagens do SAP” abre a página do próprio SAP para ela. Para rastrear uma mensagem que você encontrou, veja como rastrear uma mensagem etapa por etapa; para criar uma de propósito, teste um iFlow HTTPS com uma service key.

Como o Kitegra ajuda

O visualizador de logs faz parte do Message Monitor do Kitegra. O conteúdo das mensagens é exibido na página, nunca armazenado nem enviado para a Kitegra.

O Helper, o Message Monitor, o iFlow Inspector e o iFlow Docs contam, cada um, os iFlows em que você os usa: 5 por módulo sem uma conta Kitegra, 50 no plano Free, 100 no Starter e 300 no Pro; o Startup Team dá 300 a cada membro, e o Growth Team e o Scale Team não têm limite. A Toolbox e os extras do espaço de trabalho não contam iFlows. Enquanto o Kitegra é lançado, todas as ferramentas ficam liberadas para todos que entrarem, inclusive no plano Free. Compare os planos.

Experimente no seu próximo iFlow

Veja o que o Kitegra acrescenta ao redor do designer do SAP Integration Suite, ou confira-o ao lado das outras extensões do Chrome da Kitegra.

Perguntas frequentes

Qual é a diferença entre Message ID e Correlation ID no SAP CPI?

O Message ID identifica um log de processamento de mensagens. O Correlation ID é compartilhado pelos logs de mensagens que andam juntas, por exemplo por ProcessDirect ou JMS.

Onde encontro o Message ID de uma chamada HTTPS?

Nos headers de resposta: um sender HTTPS devolve SAP_MessageProcessingLogID a quem chamou.

Por que o monitor não encontra o meu Message ID?

Normalmente o intervalo de tempo está estreito demais. Amplie-o para cobrir quando a mensagem rodou, ou leia o log pela API.

Posso buscar mensagens do SAP CPI pelo meu próprio número de pedido?

Sim, se o iFlow o escrever no log, por exemplo como SAP_ApplicationID ou como custom header property.

O visualizador de logs precisa de um trace?

Não. Encontrar uma mensagem, o resumo e a linha do tempo dela funcionam sem trace. Bodies e headers antes de cada etapa exigem uma mensagem que rodou com TRACE na última hora.

A Kitegra vê as mensagens que eu abro?

Não. O conteúdo das mensagens é exibido na página e nunca armazenado nem enviado para a Kitegra.

Trabalhe em iFlows sem sair do designer

Adicione o Kitegra ao Chrome ou ao Microsoft Edge. Comece grátis, sem precisar de conta.