Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do Salesforce

Última atualização: Jun 27, 2026

O Salesforce oferece software sob demanda para gestão de relacionamento com clientes (CRM), incluindo gerenciamento de contatos, catálogos de produtos, pedidos, oportunidades e vendas. A integração de dados do DataWorks permite ler fontes de dados do Salesforce. Este tópico descreve como usar o Salesforce como fonte de dados.

Tipos de campo compatíveis

Tipo de campo

Tipo no DataWorks

address

STRING

anyType

STRING

base64

BYTES

boolean

BOOL

combobox

STRING

complexvalue

STRING

currency

DOUBLE

date

DATE

datetime

DATE

double

DOUBLE

email

STRING

encryptedstring

STRING

id

STRING

int

LONG

json

STRING

long

LONG

multipicklist

STRING

percent

DOUBLE

phone

STRING

picklist

STRING

reference

STRING

string

STRING

textarea

STRING

time

DATE

url

STRING

geolocation

STRING

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar a fonte de dados.

Crie uma fonte de dados do Salesforce de uma das seguintes formas:

  • Salesforce official: Acesse o site do Salesforce para obter automaticamente a URL de acesso e criar a fonte de dados.

  • Customize: Para definir credenciais de conexão dedicadas para o DataWorks, configure a fonte de dados do Salesforce no modo Customize. Faça login no Salesforce e crie um Connected App para obter as credenciais de segurança (Consumer Key e Consumer Secret), que concedem autorização de conexão ao DataWorks. O procedimento de configuração é o seguinte:

    Configuração personalizada

    Criar um Connected App

    1. Acesse a página de criação de aplicativos.

      1. Abra a URL do seu sistema Salesforce e faça login.

      2. No canto superior direito, clique em image e, em seguida, clique em App Manager no painel de navegação à esquerda.

      3. Na página Lightning Experience App Manager, clique em New Connected App.

    2. Configure o Connected App.

      Principais parâmetros:

      Etapa

      Descrição

      1

      Insira um Connected App Name, um API Name e um Contact Email em conformidade com os padrões do Salesforce.

      2

      Selecione Enable OAuth Settings. Em Callback URL, insira https://bff-cn-shanghai.data.aliyun.com/di/oauth/callback/index.html.

      3

      Em Selected OAuth Scopes, adicione os seguintes escopos:

      • Access Connect REST API resources (chatter api)

      • Access the identity URL service (id, profile, email, address, phone)

      • Access unique user identifiers (openid)

      • Manage user data via APIs (api)

      • Perform requests at any time (refresh token, offline_access)

      4

      • Desmarque a caixa de seleção Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows.

      • Marque a caixa de seleção Require Secret for Web Server Flow.

      • Marque a caixa de seleção Require Secret for Refresh Token Flow.

    3. Visualize a Consumer Key and Secret do Connected App.

      1. Na lista do App Manager, localize seu aplicativo. Clique no ícone de seta image ao lado do nome do aplicativo e selecione View.

      2. Na página de detalhes do aplicativo, localize a seção Consumer Key and Secret.

        Clique em Manage Consumer Details para recuperar os valores.

      3. Copie os valores de Consumer Key e Consumer Secret para uso posterior.

    Configurar os parâmetros da fonte de dados

    1. Faça login no console do DataWorks. Na região desejada, clique em Data Integration > Data Integration no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Integration.

    2. No painel de navegação à esquerda, clique em Data Source para acessar a página de gerenciamento de fontes de dados.

    3. Clique em Add Data Source, localize e selecione Salesforce. Na página Add Salesforce Data Source, defina Data Source Type como Customize.

      Principais parâmetros:

      Parâmetro

      Descrição

      Login URL

      Insira https://<YourSalesforceDomain>/services/oauth2/authorize.

      Authentication URL

      Insira https://<YourSalesforceDomain>/services/oauth2/token.

      Consumer Key e Consumer Secret

      Insira a Consumer Key e o Consumer Secret obtidos nos detalhes do Connected App.

      Clique em Log in to Salesforce. Na página de autorização, insira seu nome de usuário e senha e, em seguida, clique em Allow.

Importante

O Salesforce é um serviço de terceiros. Certifique-se de que a VPC do seu grupo de recursos tenha conectividade com a plataforma Salesforce. Caso contrário, não será possível criar a fonte de dados.

Tarefas de sincronização de dados

Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias a seguir.

Tarefa de sincronização offline de tabela única

Apêndice: Exemplos de script e parâmetros

Configurar uma tarefa de sincronização em lote usando o editor de código

Para configurar uma tarefa de sincronização em lote com o editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato. Para mais informações, consulte Configuração no modo script. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote pelo editor de código.

Exemplos de script do Reader

Exemplo 1: Consultar um objeto do Salesforce

{
  "type":"job",
  "version":"2.0",
  "steps":[
    {
      "stepType":"salesforce",
      "parameter":{
        "datasource":"",
        "serviceType": "sobject",
        "table": "Account",
        "beginDateTime": "20230817184200",
        "endDateTime": "20231017184200",
        "where": "",
        "column": [
          {
            "type": "STRING",
            "name": "Id"
          },
          {
            "type": "STRING",
            "name": "Name"
          },
          {
            "type": "BOOL",
            "name": "IsDeleted"
          },
          {
            "type": "DATE",
            "name": "CreatedDate"
          }
        ]
      },
      "name":"Reader",
      "category":"reader"
    },
    {
      "stepType":"stream",
      "parameter":{},
      "name":"Writer",
      "category":"writer"
    }
  ],
  "setting":{
    "errorLimit":{
      "record":"0"
    },
    "speed":{
      "throttle":true,
      "concurrent":1,
      "mbps":"12"
    }
  },
  "order":{
    "hops":[
      {
        "from":"Reader",
        "to":"Writer"
      }
    ]
  }
}

Exemplo 2: Consulta usando Bulk API 1.0

{
  "type":"job",
  "version":"2.0",
  "steps":[
    {
      "stepType":"salesforce",
      "parameter":{
        "datasource":"",
        "serviceType": "bulk1",
        "table": "Account",
        "beginDateTime": "20230817184200",
        "endDateTime": "20231017184200",
        "where": "",
        "blockCompoundColumn":true,
        "bulkQueryJobTimeoutSeconds":86400,
        "column": [
          {
            "type": "STRING",
            "name": "Id"
          },
          {
            "type": "STRING",
            "name": "Name"
          },
          {
            "type": "BOOL",
            "name": "IsDeleted"
          },
          {
            "type": "DATE",
            "name": "CreatedDate"
          }
        ]
      },
      "name":"Reader",
      "category":"reader"
    },
    {
      "stepType":"stream",
      "parameter":{
        "print": true
      },
      "name":"Writer",
      "category":"writer"
    }
  ],
  "setting":{
    "errorLimit":{
      "record":"0"
    },
    "speed":{
      "concurrent":1
    }
  },
  "order":{
    "hops":[
      {
        "from":"Reader",
        "to":"Writer"
      }
    ]
  }
}

Exemplo 3: Consulta usando Bulk API 2.0

{
  "type":"job",
  "version":"2.0",
  "steps":[
    {
      "stepType":"salesforce",
      "parameter":{
        "datasource":"",
        "serviceType": "bulk2",
        "table": "Account",
        "beginDateTime": "20230817184200",
        "endDateTime": "20231017184200",
        "where": "",
        "blockCompoundColumn":true,
        "bulkQueryJobTimeoutSeconds":86400,
        "column": [
          {
            "type": "STRING",
            "name": "Id"
          },
          {
            "type": "STRING",
            "name": "Name"
          },
          {
            "type": "BOOL",
            "name": "IsDeleted"
          },
          {
            "type": "DATE",
            "name": "CreatedDate"
          }
        ]
      },
      "name":"Reader",
      "category":"reader"
    },
    {
      "stepType":"stream",
      "parameter":{},
      "name":"Writer",
      "category":"writer"
    }
  ],
  "setting":{
    "errorLimit":{
      "record":"0"
    },
    "speed":{
      "throttle":true,
      "concurrent":1,
      "mbps":"12"
    }
  },
  "order":{
    "hops":[
      {
        "from":"Reader",
        "to":"Writer"
      }
    ]
  }
}

Exemplo 4: Consulta usando uma instrução SOQL

{
  "type":"job",
  "version":"2.0",
  "steps":[
    {
      "stepType":"salesforce",
      "parameter":{
        "datasource":"",
        "serviceType": "query",
        "query": "select Id, Name, IsDeleted, CreatedDate from Account where Name!='Aliyun' ",
        "column": [
          {
            "type": "STRING",
            "name": "Id"
          },
          {
            "type": "STRING",
            "name": "Name"
          },
          {
            "type": "BOOL",
            "name": "IsDeleted"
          },
          {
            "type": "DATE",
            "name": "CreatedDate"
          }
        ]
      },
      "name":"Reader",
      "category":"reader"
    },
    {
      "stepType":"stream",
      "parameter":{},
      "name":"Writer",
      "category":"writer"
    }
  ],
  "setting":{
    "errorLimit":{
      "record":"0"
    },
    "speed":{
      "throttle":true,
      "concurrent":1,
      "mbps":"12"
    }
  },
  "order":{
    "hops":[
      {
        "from":"Reader",
        "to":"Writer"
      }
    ]
  }
}

Parâmetros do script do Reader

Parâmetro

Obrigatório

Descrição

Padrão

source

Sim

Nome da fonte de dados. No modo script, adicione uma fonte de dados. O valor deste parâmetro deve corresponder exatamente ao nome da fonte de dados adicionada.

Nenhum

serviceType

Não

Modo de sincronização. Valores válidos:

  • sobject: Consulta um objeto do Salesforce.

  • query: Consulta dados por meio de uma instrução SOQL.

  • bulk1: Consulta um objeto do Salesforce usando a Bulk API 1.0.

  • bulk2: Consulta um objeto do Salesforce usando a Bulk API 2.0.

    Importante
    • Os modos bulk1 e bulk2 não aceitam tipos de dados compostos, como address e geolocation.

    • O modo bulk2 não aceita tarefas distribuídas.

    • O desempenho pode variar entre bulk1 e bulk2. Teste ambos os modos em seu objeto do Salesforce para selecionar o mais adequado.

sobject

table

Sim

Objeto do Salesforce, semelhante a um nome de tabela, como Account, Case ou Group. Obrigatório quando serviceType for sobject, bulk1 ou bulk2.

Nenhum

beginDateTime

Não

  • Horários inicial e final para extração de dados. Usado quando serviceType estiver definido como sobject, bulk1 ou bulk2.

  • Filtra dados com base na última modificação do objeto do Salesforce. O campo de última modificação é identificado automaticamente pela seguinte ordem de prioridade: SystemModstamp > LastModifiedDate > CreatedDate.

  • O intervalo de tempo é fechado à esquerda e aberto à direita.

  • String de tempo no formato yyyymmddhhmmss. Combine este parâmetro com parâmetros de agendamento para executar extrações incrementais.

Nenhum

endDateTime

Não

Nenhum

splitPk

Não

  • Chave de fragmentação. Aplicável quando serviceType estiver definido como sobject.

  • Define um campo para atuar como chave de fragmentação, permitindo tarefas concorrentes e melhorando a eficiência da sincronização de dados.

  • Somente os tipos de dados datetime, int e long são aceitos. O uso de outros tipos causará falha na tarefa.

Nenhum

blockCompoundColumn

Não

Define o comportamento ao encontrar um tipo de dado composto. Usado quando serviceType for bulk1 ou bulk2. Valores válidos:

  • true: A tarefa falha. Remova o mapeamento da coluna referente ao tipo de dado composto e execute a tarefa novamente.

  • false: O tipo de dado composto é lido como NULL.

true

bulkQueryJobTimeoutSeconds

Não

  • Tempo limite, em segundos, para a preparação de dados em lote. Aplicável quando serviceType for bulk1 ou bulk2.

  • O servidor do Salesforce prepara os dados em lote antes do início da leitura. A tarefa falhará se essa preparação exceder o tempo limite especificado.

86400

batchSize

Não

  • Tamanho do lote, correspondente ao número de registros baixados por lote. Usado quando serviceType for bulk1 ou bulk2.

  • Para obter desempenho ideal, defina este valor ligeiramente acima do tamanho de lote determinado pela tarefa de preparação de dados do Salesforce.

  • Como os dados são transmitidos em fluxo, aumentar este valor não eleva o uso de memória.

  • Trata-se de um parâmetro avançado, sem suporte no modo assistente.

300000

where

Não

  • Condição de filtro. Usado quando serviceType for sobject, bulk1 ou bulk2.

  • Em cenários reais, filtre os dados conforme necessário. Por exemplo, especifique Name != 'Aliyun'.

  • Se este parâmetro estiver vazio, o sistema sincronizará todos os dados.

  • O valor deve ser uma cláusula WHERE SOQL válida. Por exemplo, limit 10 é inválido, pois LIMIT é uma cláusula separada no SOQL.

Nenhum

query

Não

  • Instrução de consulta. Aplicável quando serviceType for query.

  • Quando o parâmetro where for insuficiente, use query para fornecer uma instrução de consulta SOQL completa. Se especificado, este parâmetro substitui os parâmetros table, column, beginDateTime, endDateTime, where e splitPk. Exemplo: select Id, Name, IsDeleted from Account where Name!='Aliyun'.

  • Parâmetro avançado, sem suporte no modo assistente.

Nenhum

queryAll

Não

  • Define se registros excluídos devem ser incluídos na consulta. Usado quando serviceType for sobject ou query.

  • Se definido como true, os resultados incluirão registros excluídos, identificáveis pelo campo IsDeleted.

false

column

Sim

Colunas a serem sincronizadas. Especifique as colunas como um array JSON.

  • Aceita poda de colunas, permitindo selecionar um subconjunto de colunas para exportação.

  • Permite reordenar colunas, possibilitando exportá-las em uma ordem diferente do esquema da tabela.

  • É possível configurar constantes. Exemplo:

    [
      {
        "name": "Id",
        "type": "STRING"
      },
      {
        "name": "Name",
        "type": "STRING"
      },
      {
        "name": "'123'",
        "type": "LONG"
      },
      {
        "name": "'abc'",
        "type": "STRING"
      }
    ]
    Nota
    • Id e Name são nomes de colunas regulares.

    • '123' é uma constante inteira. Note que deve estar entre aspas simples.

    • 'abc' é uma constante de string. Note que deve estar entre aspas simples.

  • Especifique explicitamente todas as colunas a sincronizar como um array não vazio.

Nenhum

connectTimeoutSeconds

Não

  • Tempo limite, em segundos, para estabelecer uma conexão HTTP. A tarefa falhará se a conexão não for estabelecida dentro desse período.

  • Parâmetro avançado, sem suporte no modo assistente.

30

socketTimeoutSeconds

Não

  • Tempo limite de resposta HTTP, em segundos. A tarefa falhará se o intervalo entre o recebimento de pacotes de dados consecutivos exceder este valor.

  • Parâmetro avançado, sem suporte no modo assistente.

600

retryIntervalSeconds

Não

  • Intervalo entre tentativas, em segundos.

  • Parâmetro avançado, sem suporte no modo assistente.

60

retryTimes

Não

  • Número de tentativas de repetição.

  • Parâmetro avançado, sem suporte no modo assistente.

3