Gerenciador de transações: Integração - POST

  • Versão de lançamento: Australia
  • Atualizado 12 de mar. de 2026
  • 6 min. de leitura
  • Saiba como gravar dados em uma aplicação de terceiros, como o Salesforce, usando a PÓS-integração.

    Pré-requisitos

    Este artigo presume que você tenha um CPQ Ambiente integrado a um ambiente do Salesforce correspondente. Antes de continuar, consulte Instalando a extensão do pacote de integração do gerenciador de transações do Salesforce para concluir as integrações necessárias.

    Quando o usuário final inicia uma função que grava CPQ Dados de volta para o registro de transação correspondente do Salesforce, CPQ Deve ter o identificador de registro da transação do Salesforce disponível. Para entender como recuperar o ID de transação do Salesforce e salvá-lo em CPQ para uso futuro, consulte Gerenciador de transações: Integração - OBTER.

    Configuração do Salesforce

    Neste exemplo, gravamos dados de LGK nos campos do Salesforce listados abaixo. Revise os objetos Transação do Salesforce e TransactionLine para garantir que esses campos estejam presentes.

    Campos de cabeçalho (objeto do Salesforce: LGK__Transaction__c)

    • LGK__Stage__cmantém a fase do CPQ transação.
    • LGK__PricingExtendedNet__c é o total líquido da transação (nível de cabeçalho).
    • LGK__Id__cestá mapeado para idda transação primária.

    Campos de linha (objeto do Salesforce: LGK__TransactionLine__c)

    • LGK__Quantity__c: a quantidade no nível de linha.
    • LGK__PricingList__c: o preço de lista no nível da linha.
    • LGK__PricingNet__c: o preço líquido da linha ou preço da peça com desconto.
    • LGK__PricingExtendedNet__c: o total líquido da linha ou preço líquido estendido (inclui quantidade).
    • LGK__ParentTransactionLineId__cverifica se txn.line.custom.parentLineReferenceIdexiste. Se isso acontecer, ele atribui as linhas correspondentes id; caso contrário, define o valor como null.
    • LGK__Product2Id__cestá mapeado para partnerIddo produto associado à linha de transação atual.

    PÓS-integração usando Gráfico composto

    A integração POST DO LGK usa a API de gráfico composto do Salesforce para atualizar vários objetos do Salesforce simultaneamente em uma única chamada de API, permitindo que os campos no nível do cabeçalho e no nível da linha sejam atualizados na mesma solicitação.

    A API de gráfico composto do Salesforce permite agrupar várias operações em uma única solicitação, tornando-a altamente eficiente para integrações. Ele permite gravar em vários objetos do Salesforce em uma única PÓS-chamada, reduzindo o uso da API, garantindo a consistência dos dados e permitindo transações atômicas, em que todas as operações são bem-sucedidas ou nenhuma é aplicada. Isso simplifica os processos de integração e melhora o tratamento de erros. Para obter mais detalhes sobre a construção Gráfico composto, consulte Gráfico composto | Guia do desenvolvedor da REST API | Desenvolvedores do Salesforce .

    Como a API de gráfico composto é um recurso principal do Salesforce, nenhuma configuração é necessária. No entanto, introduzimos o conceito aqui, antes de preencher um Gráfico composto na PÓS-chamada de LGK, descrita abaixo. No exemplo abaixo para POST, a integração usa os campos de nível de cabeçalho e nível de linha mencionados anteriormente na seção Configuração do Salesforce acima, com a opção para que os usuários adicionem ou removam campos de acordo com seus requisitos.

    Configuração do Gerenciador de transações

    Os mapeamentos de ID da transação mencionados na ajuda da seção Configuração do Salesforce CPQ Envie os IDs de linha corretos para o Salesforce e gerencie atualizações, exclusões e adições com eficiência. Ao mapear LGK__TransactionId__c para o ID da transação primária, o Salesforce pode vincular todas as mudanças no nível de linha à transação correta, garantindo a associação adequada. O LGK__ParentTransactionLineId__c verifica se há uma referência de linha primária; se presente, ele atribui o ID de linha correspondente, garantindo que somente as linhas válidas sejam atualizadas ou excluídas. Se não houver referência, ele definirá o valor como nulo. O LGK__Product2Id__c é mapeado para o ID do parceiro do produto, garantindo que o produto correto esteja vinculado à linha para obter preços precisos e aplicação de descontos. Esses mapeamentos dinâmicos garantem que a Salesforce possa atualizar quantidades com precisão, excluir linhas e adicionar novas, preservando os descontos no nível de linha do usuário, mantendo associações adequadas com dados de transação e produto.

    Esta transformação de integração requer o uso de dois campos de linha personalizados, lineReferenceIde. parentLineReferenceId. Esses campos devem ser configurados para armazenar uma variação do txn.line.ide (potencialmente) txn.line.parent.idcampos do sistema.

    Regras

    A API de gráfico composto do Salesforce não oferece suporte a hifens em determinados identificadores, o que pode causar problemas ao enviar dados que incluem IDs hifenizados, como os IDs de linha de LGK. Para fazer a integração funcionar, o sistema remove todos os hífens presentes nos IDs de linha de LGK antes de enviá-los para a Salesforce. Isso garante que os IDs estejam em conformidade com os requisitos de formato do Salesforce e que a integração funcione corretamente sem erros relacionados a caracteres inválidos. Ao remover os hífens, o sistema garante que todos os identificadores sejam aceitos pela Salesforce, permitindo que a integração processe atualizações e outras operações sem problemas.

    Para remover hifens usando uma regra, crie uma ação de regra de determinação para tornar os campos de ID de referência no nível de linha compatíveis com Salesforce. Você pode adicionar a ação de determinação lineReferenceId e a ação de determinação parentLineReferenceId em uma única regra.

    Abaixo estão dois scripts de determinação (nível de linha de transação) para como os campos devem ser definidos.

    // lineReferenceId Determination Action
    
    var original = txn.line.id;
    var result = "";
    for (var i = 0; i < original.length; i++) {
      if (original.charAt(i) !== "-") {
    	    result += original.charAt(i);
    	  }
    }
    return result;
    // parentLineReferenceId Determination Action
    
    var original = txn.line.parent.id;
    var result = "";
    if (txn.line.parent.id != txn.id) {
      for (var i = 0; i < original.length; i++) {
        if (original.charAt(i) !== "-") {
            result += original.charAt(i);
          }
      }
    }
    return result;

    A regra deve ser configurada da seguinte forma, com duas ações de determinação a serem manipuladas txn.line.custom.lineReferenceIde. txn.line.custom.parentLineReferenceId:

    Configuração do Gerenciador de transações

    Configuração do Gerenciador de transações

    Adicionar conexão

    A captura de tela abaixo mostra a conexão externa como "Salesforce" na PÓS-integração.

    Se você quiser criar uma nova conexão, consulte a seção "Criar uma conexão" em Gerenciador de transações: Integrações.

    Configuração do Gerenciador de transações

    Para PUBLICAR dados de volta no Salesforce, você precisa do ID de registro de transação do Salesforce. Se você ainda não configurou a integração OBTER para buscar o ID da transação, consulte Gerenciador de transações: Integração - OBTER.

    Adicionar integração

    1. Navegue até a seção Integrações e crie uma nova integração.
      • Método HTTP: POST
      • Caminho adicional: /services/data/vXX.X/composite/graph, onde vXX.Xé a versão de gráfico composto mais recente. Você pode verificar a versão mais recente aqui .
      • Detalhes do item de linha a serem incluídos: Linhas selecionadas
      • Conexão: Salesforce

        Configuração do Gerenciador de transações

    2. Na seção Solicitar transformação, adicione este JSON de transação de amostra (os campos de cabeçalho e nível de linha podem variar de acordo com sua preferência):
    {
      "graphs": [
        {
          "graphId": "graph0",
          "compositeRequest": [
            {
              "method": "PATCH",
              "url" : "/services/data/v61.0/sobjects/LGK__Transaction__c/LGK__TransactionUUID__c/{{txn.id}}",
              "referenceId": "parentTransaction",
              "body": {
                "LGK__Stage__c": "{{txn.stage}}",
                "LGK__NetTotal__c": "{{txn.pricing.total}}"
              }
            }
            {{#if lines}}
    				{{~#each lines~}}
    				{{#if txn.line.product.partnerId}}
    				,
            {
              "method": "PATCH",
              "url": "/services/data/v61.0/sobjects/LGK__TransactionLine__c/LGK__TransactionLineId__c/{{txn.line.id}}",
              "referenceId": "line_{{txn.line.custom.lineReferenceId}}",
              "body": {
                "LGK__TransactionId__c": "@{parentTransaction.id}",
                "LGK__ParentTransactionLineId__c": {{#if txn.line.custom.parentLineReferenceId}}"@{line_{{txn.line.custom.parentLineReferenceId}}.id}"{{else}}null{{/if}},
                "LGK__Product2Id__c": "{{txn.line.product.partnerId}}",
                "LGK__Quantity__c": "{{txn.line.quantity}}",
                "LGK__ListPrice__c": "{{txn.line.pricing.list}}",
                "LGK__NetPrice__c": "{{txn.line.pricing.net}}",
                "LGK__NetTotal__c": "{{txn.line.pricing.extendedNet}}"
              }
            }
            {{/if}}
    		{{/each}}
    		{{/if}}
          ]
        }
      ]
    }

    Este modelo de transformação é adicionado à área Modelo de transformação da seção Solicitar transformação da seguinte forma:

    Configuração do Gerenciador de transações

    Para obter mais informações sobre a sintaxe do handlebar, consulte Gerenciador de transações: Integrações - Sintaxe do handlebars.

    Depurando a PÓS-chamada

    Para usar a interface do administrador de integração para depurar uma PÓS-chamada que não está funcionando como esperado, siga estas etapas:

    1. Copie o ID da transação para a qual a integração não está funcionando, cole-o na caixa ID da transação pequena e clique em Buscar JSON .

      Configuração do Gerenciador de transações

      A aplicação preenche a caixa JSON de transação de amostra.

      Configuração do Gerenciador de transações

    2. Clique em Executar transformação . Isso processa as informações da transação contidas na entrada JSON de transação de amostra por meio da lógica de transformação e gera um resultado que você pode testar usando o Postman.

      Para obter mais informações sobre como configurar o Postman para interagir com sua organização do Salesforce, consulte Conecte o Postman ao Salesforce .

      Configuração do Gerenciador de transações