Entendendo os Registros de Execução

Os registros de execução contêm informações essenciais para rastrear, depurar e auditar a execução de um fluxo de integração.

Você poderá visualizar os seguintes registros de execução no Sensedia Analytics.

  • Requisição do gatilho (trigger) do tipo REST.

  • Requisição e resposta de:

    • Conectores

    • Choice

    • For Each

    • JSON Transformation

Campos em comum

Veja abaixo os componentes existentes em todos os registros de execução, independentemente do tipo de step em execução:

  • runtimeExecutionId: identificador exclusivo referente ao tempo de execução do fluxo de integração. Ajuda a rastrear e monitorar a instância de execução.

  • executionId: identificador da execução. Pode ser usado para rastrear execuções individuais dentro de uma sessão de execução.

  • integrationFlowId: identificador exclusivo do fluxo de integração.

  • integrationFlowName: nome do fluxo de integração.

  • integrationFlowVersion: versão do fluxo de integração em execução.

Campos variáveis

Agora, veja os componentes que variam conforme o tipo de step em execução:

  • name: nome do step do fluxo de integração sendo executado.

  • tag: etiqueta associada ao step, indicando a sua natureza (requisição, resposta, entrada ou saída).

  • mensagem: contém uma string JSON com informações detalhadas sobre o step. Esse componente é especialmente útil para entender o conteúdo e o contexto do step.

Exemplos

Gatilho do tipo REST (trigger)

Aqui temos uma requisição POST. O campo de mensagem fornece uma string JSON com o corpo da requisição, o caminho, o método e os cabeçalhos.

"{
  "runtimeExecutionId": "BD4E80522608F3F-0000000000000000",
  "executionId": null,
  "integrationFlowId": "1120e125-4faf-4c27-8418-ea82d5b857ad",
  "integrationFlowName": "Teste e2e Choice v2",
  "integrationFlowVersion": "1.0.0",
  "name": "REST_Trigger",
  "tag": "Request",
  "message":"{
   "body": "{"teste": "apenas um teste"}",
   "path": "1b277a28726f",
   "method": "POST",
   "headers": {
     "Accept": "*/*",
     "X-Request-Id": "e7dd7de8-16cc-410e-afb7-7ef1550dbba4",
     "User-Agent": "PostmanRuntime/7.29.4",
     "X-Forwarded-Proto": "http",
     "X-Request-Start": "t=1717180375.285",
     "Host": "deploy-b233cf36-0b6b-4eac-9911-1b277a28726f.a1b2c3d4e5.integrations-tst.sensedia-eng.com",
     "Accept-Encoding": "gzip, deflate, br",
     "K-Proxy-Request": "activator",
     "Forwarded": "for=186.209.2.69;proto=http, for=10.251.183.82",
     "X-Forwarded-For": "186.209.2.69, 10.251.183.82, 10.251.171.244",
     "Postman-Token": "a44f3ed7-8c57-4f4a-9443-b07e774a6864",
     "Content-Length": "28",
     "Content-Type": "application/json",
     "X-Envoy-External-Address": "186.209.2.69"
  }
 }"
}"

Conectores

Requisição

No exemplo abaixo, temos a execução do step "Get_Product_List" do "Fluxo 1" (versão 1.0). Durante esta execução, foi feita uma requisição usando o método GET para um endpoint.

"{
  "runtimeExecutionId":"EA66FA90FBEA138-0000000000000004",
  "executionId":null,
  "integrationFlowId":"3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName":"Fluxo 1",
  "integrationFlowVersion":"1.0",
  "name":"Get_Product_List",
  "tag":"Request",
  "message":"{
    "url":"https://api-url.com",
    "path":"/Product",
    "method":"GET"
    }"
}"

Resposta

O exemplo abaixo fornece informações sobre a execução do step "Get_Description", incluindo detalhes sobre a resposta recebida e seu status.

"{
  "runtimeExecutionId": "EA66FA90FBEA138-0000000000000004",
  "executionId": null,
  "integrationFlowId": "3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName": "Fluxo 1",
  "integrationFlowVersion": "1.0",
  "name": "Get_Description",
  "tag": "Response",
  "message": {
    "payload": {
      "@odata.context": "../$metadata#ProductDescription",
      "@odata.metadataEtag": "W/\"20240421022725\"",
      "value": {
        "@odata.etag": "W/\"SADL-201610170000000000000C~20161017000000.0000000\"",
        "Product": "21",
        "Language": "EN",
        "ProductDescription": "Junior Consultant",
        "SAP__Messages": []
      }
    },
    "status": 200
  }
"}"

Choice

O exemplo mostra informações sobre a execução do step Choice, incluindo identificadores relevantes e metadados. A mensagem indica que atualmente o restaurante está offline e que há um erro referente a um token inválido ou vencido.

"{
"runtimeExecutionId":"BD8894B984F316D-0000000000000000",
"executionId":null,
"integrationFlowId":"92324ecb-89ff-4ada-bb7c-80afbcd8ae13\",
"integrationFlowName":"Consulta Mesas Choice EVH\","integrationFlowVersion":"1.0",
"name":"Choice",
"tag":"Input",
"message":"{
    "payload":"{StatusEstabelecimentoResult={Erros=["Token inválido ou vencido."],
    Online=false}}"
    }
"}"

For Each

O step For each está processando uma lista de produtos, e este registro captura a entrada de um desses produtos. Cada produto na lista é representado por um objeto JSON, que contém os detalhes de um produto específico: ID do produto, tipo de produto, data de criação, etc.

"{
  "runtimeExecutionId": "EA66FA90FBEA138-0000000000000004",
  "executionId": null,
  "integrationFlowId": "3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName": "Fluxo 1",
  "integrationFlowVersion": "1.0",
  "name": "For_Each_Product",
  "tag": "Input",
  "message": {
    "input": "[{
      "@odata.etag": "W/"SADL-201610170000000000000C~20161017000000.0000000",
      "Product": "21",
      "ProductType": "SERV",
      "CreationDate": "2016-10-17",
      "CreationTime": "00:00:00",
      "CreationDateTime": "2016-10-17T00:00:00Z",
      "CreatedByUser": "CB9980000160",
      "LastChangeDate": null,
      "LastChangedByUser": "CB9980000160",
      "IsMarkedForDeletion": false,
      "CrossPlantStatus": "\",
      "CrossPlantStatusValidityDate": null,
      "ProductOldID": "\",
      "GrossWeight": 0.0,
      "WeightUnit": "KG",
      "WeightISOUnit": "KGM",
      "ManufacturerNumber": "\",
      "ManufacturerPartProfile": "\",
      "OwnInventoryManagedProduct": "\",
      "SAP_Messages": []
    }]"
  }
"}"
A mensagem foi encurtada para fins de exemplo.

JSON Transformation

O step JSON Transformation está processando informações de um logradouro, e este registro captura a entrada dos dados. A mensagem traz informações como CEP, bairro, UF etc.

{"runtimeExecutionId":"635812E1B03F2FA-0000000000000000",
"executionId":null,
"integrationFlowId":"4fda2927-54dd-4c82-a9bd-de161f59dd13",
"integrationFlowName":"CEP Choice Json Transf",
"integrationFlowVersion":"1.0",
"name":"Json_Transf_2",
"tag":"Input",
"message":"{
  "payload":"{
   cep=13086-510,
   logradouro=Rua Doutor Ricardo Benetton Martins,
   complemento=,
   bairro=Polo II de Alta Tecnologia (Campinas),
   localidade=Campinas,
   uf=SP,
   ibge=3509502,
   gia=2446,
   ddd=19,
   siafi=6291
}"}"}"

Na saída dos dados, vemos a mensagem do JSON transformada:

{"runtimeExecutionId":
"635812E1B03F2FA-0000000000000000\,
"executionId":null,
"integrationFlowId":"4fda2927-54dd-4c82-a9bd-de161f59dd13\",
"integrationFlowName":"CEP Choice Json Transf",
"integrationFlowVersion":"1.0",
"name":"Json_Transf_2",
"tag":"Output",
"message\":"A base da Sensedia fica na Rua Doutor Ricardo Benetton Martins, bairro Polo II de Alta Tecnologia (Campinas), da melhor cidade: Campinas"
"}"
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]