# tSalesforceInput

Ce composant récupère les données d'un objet Salesforce à l'aide d'une requête.

Note InformationsRemarque :

Ce composant n'est pas intégré par défaut à votre Studio Talend. Vous devez l'installer à l'aide du gestionnaire des fonctionnalités. Pour plus d'informations, consultez [Installer les fonctionnalités à l'aide du Gestionnaire des fonctionnalités](https://help.qlik.com/talend/r/fr-FR/8.0/studio-user-guide/install-features-to-talend-studio).

## Propriétés du tSalesforceInput Standard

Ces propriétés sont utilisées pour configurer le tSalesforceInput s'exécutant dans le framework de Jobs Standard.

Le composant tSalesforceInput Standard appartient aux familles Applications Métier et Cloud.

Le composant de ce framework est disponible dans tous les produits Talend.

## Basic settings

| Propriétés | Description |
| --- | --- |
| Property Type | Sélectionnez la manière de configurer les informations de connexion.<br><br><ul> <li> <p> <span>Built-In</span>&nbsp;: les paramètres de connexion seront définis localement pour ce composant. Vous devez spécifier manuellement les valeurs pour toutes les propriétés de connexion.</p> </li> <li> <p> <span>Repository</span>&nbsp;: les paramètres de connexion stockés centralement dans le <span><span>Repository</span><abbr> &gt; </abbr><span>Metadata</span></span> seront réutilisés par ce composant. </p> <p>Vous devez cliquer sur le bouton <span>[...]</span> et, dans la boîte de dialogue <span>Repository Content</span>, sélectionnez les détails de connexion à réutiliser. Toutes les propriétés de connexion seront automatiquement renseignées.</p> </li> </ul><br><br>Cette propriété n'est pas disponible lorsqu'un autre composant de connexion est sélectionné dans la liste Connection Component. |
| Connection Component | Sélectionnez le composant établissant la connexion à la base de données à réutiliser par ce composant. |
| Connection type | Sélectionnez dans la liste déroulante le type de connexion. Les propriétés de la connexion varient selon le type de connexion sélectionné.<br><br><ul> <li> <p><span>Basic (deprecated)</span>&nbsp;: cette option utilise l'identifiant, le mot de passe et le jeton de sécurité ("SOAP API login()") hérités pour vous authentifier avec Salesforce. Le support par Salesforce de l'API SOAP login() sera supprimé dans les versions 31.0 à 64.0 de l'API, en commençant par la version Summer ‘27, et n'est pas disponible pour les versions 65.0 et supérieures de l'API. Ainsi, l'authentification basique est dépréciée et pourra ne plus fonctionner à l'avenir, quelle que soit la version sélectionée de l'API.</p> </li> <li> <p><span>OAuth</span>&nbsp;: cette option utilise le protocole OAuth (Open Authorization) 2.0 pour authentifier l'utilisateur ou l'utilisatrice à l'aide du type de flux d'authentification OAuth 2.0 <span>Json Web Token Flow (Flux JSON Web Token)</span>. Pour utiliser cette option, vous devez créer une application connectée dans Salesforce, afin de configurer un fournisseur d'authentification Salesforce.</p> <p>Pour plus d'informations concernant le flux d'authentification OAuth, consultez <a href="https://help.salesforce.com/articleView?id=remoteaccess_authenticate.htm&amp;type=5" target="_blank">Authenticate Apps with OAuth</a> (en anglais).</p> <p>Pour plus d'informations concernant la création d'une application connectée dans Salesforce, consultez <a href="https://help.salesforce.com/articleView?id=connected_app_create.htm&amp;type=5" target="_blank">Create a Connected App</a> (en anglais).</p> </li> </ul> |
| User Id | Identifiant Salesforce.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion Basic est sélectionné. |
| Password | Mot de passe Salesforce associé à l'identifiant.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion Basic est sélectionné. |
| Security Token | Jeton de sécurité Salesforce. Pour plus d'informations, consultez [Reset Your Security Token](https://help.salesforce.com/articleView?id=user_security_token.htm&type=5) (en anglais).<br><br>Cette propriété est disponible uniquement lorsque le type de connexion Basic est sélectionné. |
| Issuer | Consumer Key d'OAuth, générée lorsque votre application connectée est créée et affichée dans la page d'informations de l'application connectée dans Salesforce. Pour plus d'informations, consultez [Create a Connected App](https://help.salesforce.com/articleView?id=connected_app_create.htm&type=5) (en anglais).<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Subject | Identifiant Salesforce.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Audience | Audience Json Web Token.<br><br>Vous pouvez définir votre propre audience Json Web Token.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Expiration time (in seconds) | Délai d'expiration de l'assertion (en secondes) durant les cinq prochains minutes.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Key store | Chemin pointant vers le fichier Keystore au format Java Keystore (JKS).<br><br>Le fichier Keystore peut être généré en créant un certificat signé par Salesforce et en l'exportant vers le Keystore. Pour plus d'informations, consultez [Generate a Self-Signed Certificate](https://help.salesforce.com/articleView?id=security_keys_creating.htm&type=5) (en anglais).<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Key store password | Mot de passe du Keystore.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Certificate alias | Nom unique du certificat signé par Salesforce.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Mutual authentication | Sélectionnez cette option pour activer l'authentification mutuelle afin d'établir des connexions à Salesforce. Pour plus d'informations concernant l'authentification mutuelle dans Salesforce, consultez [Set Up a Mutual Authentication Certificate](https://help.salesforce.com/s/articleView?id=sf.security_keys_uploading_mutual_auth_cert.htm&type=5) (en anglais).<br><br>Si vous utilisez cette option :<br><br><ul> <li> <p>Du côté composant, utilisez un composant <a href="https://help.qlik.com/talend/r/fr-FR/8.0/components/keystore/tsetkeystore">tSetKeystore</a> pour fournir le keystore authentification mutuelle et de mot de passe.</p> </li> <li>Du côté des métadonnées, allez dans <span><span>Window (Fenêtre)</span><abbr> &gt; </abbr><span>Preferences (Préférences)</span><abbr> &gt; </abbr><span>Talend</span><abbr> &gt; </abbr><span>Security (Sécurité)</span><abbr> &gt; </abbr><span>SSL</span></span> et paramétrez la configuration du keystore correspondant.</li> </ul><br><br>Par défaut, cette option n'est pas sélectionnée. |
| Mutual auth keystore (Deprecated) | Saisissez le chemin d'accès au fichier Keystore d'authentification mutuelle, fichier protégé par un mot de passe et contenant plusieurs clés et certificats.<br><br>Cette option est dépréciée. Il est recommandé d'utiliser un composant [tSetKeystore](https://help.qlik.com/talend/r/fr-FR/8.0/components/keystore/tsetkeystore) pour fournir le keystore authentification mutuelle et de mot de passe.<br><br>Cette option est disponible lorsque le type de connexion Basic est sélectionné et que la case Mutual authentication est cochée. |
| Mutual auth keystore password | Saisissez le mot de passe pour le fichier Keystore d'authentification mutuelle.<br><br>Cette option est disponible lorsque le type de connexion Basic est sélectionné et que la case Mutual authentication est cochée. |
| Module Name | Cliquez sur le bouton [...] à côté du champ et, dans la boîte de dialogue qui s'ouvre, sélectionnez le module à utiliser, ou cochez la case Use custom object et spécifiez le nom du module dans le champ Object Name. |
| Schema et Edit schema | Un schéma est une description de lignes. Il définit le nombre de champs (colonnes) à traiter et à passer au composant suivant. Lorsque vous créez un Job Spark, évitez le mot réservé line lors du nommage des champs.<br><br>Créez le schéma en cliquant sur le bouton Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :<br><br><ul> <li> <p> <span>View schema</span>&nbsp;: sélectionnez cette option afin de voir uniquement le schéma.</p> </li> <li> <p> <span>Change to built-in property</span>&nbsp;: sélectionnez cette option pour passer le schéma en mode <span>Built-In</span> et effectuer des modifications locales.</p> </li> <li> <p> <span>Update repository connection</span>&nbsp;: sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs.</p> <p>Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur <span>No</span> et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre <span>Repository Content</span>.</p> </li> </ul><br><br>Dans ce composant, le schéma est relatif au Module sélectionné.<br><br>Pour récupérer une colonne d'un module lié, il est nécessaire de définir la colonne d'une manière précise dans la vue Edit Schema, sinon la requête relationnelle ne fonctionnera pas. La syntaxe correcte est : NameofCurrentModule\_Nameof-<br><br>LinkedModule\_NameofColumnofInterest<br><br>Ce composant offre la fonction de schéma dynamique. Cela vous permet de récupérer des colonnes inconnues de fichiers sources ou de copier des lots de colonnes d'une source sans avoir à mapper chaque colonne individuellement. Pour plus d'informations concernant les schémas dynamiques, consultez [Schéma dynamique](https://help.qlik.com/talend/r/fr-FR/8.0/studio-user-guide/dynamic-schema).<br><br>Cette fonctionnalité de schéma dynamique est conçue pour permettre de récupérer des colonnes inconnues d'un module. Il est recommandé de l'utiliser uniquement à cet effet et non pour créer des modules. |
| Query Mode | Sélectionnez le mode de requête dans la liste déroulante : Query, Bulk ou BulkV2.<br><br><ul> <li> <p> <span>Query</span>&nbsp;: requête simple, ordinaire.</p> </li> <li> <p> <span>Bulk</span>&nbsp;: requête de masse utilisée pour interroger des jeux de données volumineux de manière efficace et réduire le nombre de requêtes de l'API.</p> </li> <li> <span>BulkV2</span>&nbsp;: requête de masse utilisée pour une requête sur une plus grande quantité de données. Cliquez sur <a href="https://developer.salesforce.com/docs/atlas.en-us.api_bulk_v2.meta/api_bulk_v2/introduction_bulk_api_2.htm" target="_blank">BULK API 2.0</a> (en anglais) pour plus d'informations.</li> </ul> |
| Condition | Saisissez entre guillemets doubles la requête utilisée pour sélectionner les données à extraire. Par exemple : *&quot;name='Talend'&quot;* ou *&quot;name like '%talend\_user%'&quot;*.<br><br>Cette propriété est disponible uniquement lorsque la case Manual Query est cochée. |
| Manual query | Cochez cette case et, dans le champ Full SOQL query string qui s'affiche, saisissez, entre guillemets doubles, l'instruction complète SOQL (Salesforce Object Query Language) utilisée pour sélectionner les données à récupérer. Pour plus d'informations concernant SOQL, consultez [Salesforce Object Query Language (SOQL)](https://developer.salesforce.com/docs/atlas.en-us.200.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm) (en anglais). |
| Guess schema | Cliquez sur ce bouton pour générer les colonnes du schéma à l'aide d'une requête spécifiée dans le champ Full SOQL query string. Si vous utilisez un proxy réseau, cette fonction est utilisable avec un proxy SOCKS uniquement. Vous pouvez créer un proxy SOCKS en sélectionnant l'option Use Proxy et en fournissant les paramètres associés dans la vue Advanced settings.<br><br>Cette propriété est disponible uniquement lorsque la case Manual Query est cochée.<br><br>Notez que certaines limitations existent. Vous devez les prendre en compte lorsque vous utilisez cette fonctionnalité. Veuillez vous référer à la section Limitations connues dans les Notes de Version pour plus de détails. |
| Guess query | Cliquez sur ce bouton pour générer la requête dans le champ Full SOQL query string, en se basant sur le module et le schéma définis.<br><br>Pour plus d'informations concernant la configuration correcte du module et du schéma lors de la génération de requêtes SOQL, consultez [Configurer le schéma pour la fonctionnalité de récupération de requêtes du tSalesforceInput](https://help.qlik.com/talend/fr-FR/components/8.0/salesforce/how-to-set-schema-for-guess-query-feature-of-tsalesforceinput).<br><br>Cette propriété est disponible uniquement lorsque la case Manual Query est cochée.<br><br>Notez que certaines limitations existent. Vous devez les prendre en compte lorsque vous utilisez cette fonctionnalité. Veuillez vous référer à la section Limitations connues dans les Notes de Version pour plus de détails. |
| Include deleted records | Cochez cette case pour interroger tous les enregistrements, y compris les enregistrements supprimés. |

## Advanced settings

| Propriétés | Description |
| --- | --- |
| Salesforce URL | URL de Service Web, requise pour vous connecter à Salesforce.<br><br>Note InformationsAvertissement : Après un [changement majeur](https://help.salesforce.com/s/articleView?id=release-notes.rn_security_mutual_authentication.htm&release=246&type=5) (en anglais) dans les dernières versions de Salesforce, si vous utilisez le type de connexion Basic (Basique) avec authentification mutuelle, vous devez ajuster l'endpoint afin d'empêcher les erreurs lors de l'exécution du Job. Exemple : https://MyDomainName.my.salesforce.com:8443/services/Soap/u/version |
| API version | Version de l'API Salesforce.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion OAuth est sélectionné. |
| Use or save the connection session | Cochez cette case et, dans le champ Session directory qui s'affiche, spécifiez le chemin vers le fichier de session de connexion à sauvegarder ou utiliser.<br><br>Ce fichier de sessions peut être partagé par différents Jobs afin de récupérer une session de connexion tant que l'ID correct de l'utilisateur ou de l'utilisatrice est fourni par le composant. Ainsi, vous n'avez pas besoin de vous connecter au serveur pour récupérer la session.<br><br>Lorsqu'une session expirée est détectée, si les informations des connexion correctes (ID utilisateur·trice, mot de passe, clé de sécurité) sont fournies, le composant se connecte au serveur afin de récupérer les informations de la nouvelle session et mettre à jour le fichier de sessions de connexion.<br><br>Cette propriété est disponible uniquement lorsque le type de connexion Basic est sélectionné. |
| Need compression | Cochez cette case pour activer la compression des messages SOAP, ce qui peut conduire à améliorer les performances. |
| Trace HTTP message | Cochez cette case pour écrire en sortie les interactions HTTP dans la console.<br><br>Cette propriété est disponible uniquement lorsque l'option Bulk est sélectionnée dans la liste déroulante Query Mode. |
| Use HTTP Chunked | Cochez cette case pour utiliser le mécanisme de transfert des données HTTP morcelées.<br><br>Cette propriété est disponible uniquement lorsque l'option Query est sélectionnée dans la liste déroulante Query Mode. |
| Client Id | Saisissez l'ID d'un utilisateur ou d'une utilisatrice réel afin de différencier les utilisateurs et utilisatrices d'un même compte et mot de passe pour accéder au site Web de Salesforce. |
| Timeout | Saisissez, en millisecondes, le délai avant suspension des requêtes dans Salesforce. |
| Use Proxy | Cochez cette case pour utiliser un serveur proxy et, dans les champs Host, Port, User Id et Password qui s'affichent, spécifiez les paramètres de connexion du serveur proxy.<br><br>Note InformationsRemarque : Pour utiliser un proxy de n'importe quel type autorisé (proxy HTTP, HTTPS ou SOCKS), utilisez le composant tSetProxy. |
| Batch Size | Saisissez le nombre d'enregistrements dans chaque lot traité.<br><br>Cette propriété est disponible uniquement lorsque l'option Query est sélectionnée dans la liste déroulante Query Mode. |
| Normalize Delimiter | Saisissez le caractère, la chaîne ou l'expression régulière utilisé·e pour normaliser les données collectées à l'aide de requêtes effectuées sur les relations hiérarchiques entre les différents objets Salesforce.<br><br>Cette propriété est disponible uniquement lorsque l'option Query est sélectionnée dans la liste déroulante Query Mode. |
| Column Name Delimiter | Saisissez le caractère, la chaîne ou l'expression régulière utilisé·e pour séparer le nom de l'objet parent du nom de l'objet enfant lorsque vous effectuez une requête sur les relations hiérarchiques entre les différents objets Salesforce.<br><br>Sélectionnez soigneusement le séparateur des noms de colonnes pour éviter des conflits entre les noms des colonnes. Par exemple, si un objet Salesforce parent nommé *Case* contient deux colonnes *Region\_c* et *Case\_Region\_c* et que le caractère *\_* est utilisé comme séparateur des noms de colonnes, la requête ne réussira pas à récupérer les données de la colonne *Case\_Region\_c*. La raison est la suivante : *Case\_Region\_c* identifie la colonne *Region\_c*.<br><br>Cette propriété est disponible uniquement lorsque l'option Query est sélectionnée dans la liste déroulante Query Mode. |
| Safety Switch | Décochez cette case si la longueur d'une colonne du module à interroger est supérieure à 100 000 caractères. Par défaut, cette case est cochée pour éviter une consommation excessive de mémoire.<br><br>Cette propriété est disponible uniquement lorsque l'option Bulk ou BulkV2 est sélectionnée dans la liste déroulante Query Mode. |
| All return null if value is empty | Sélectionnez cette option pour retourner des valeurs nulles pour les valeurs vides.<br><br>Cette propriété est disponible uniquement lorsque l'option Bulk ou BulkV2 est sélectionnée dans la liste déroulante Query Mode. |
| Complete Job timeout | Valeur du délai avant suspension, en secondes, au cours de laquelle votre Job de requête de masse doit être terminé. Par défaut, la valeur est configurée à 0, ce qui signifie qu'il n'y a aucune limite de temps pour la fin de votre Job.<br><br>Salesforce a sa propre limite pour les requêtes de masse. Si le traitement d'un lot dépasse la limite de Salesforce, le lot est placé dans une file et traité ultérieurement. Le Job peut donc prendre trop de temps pour s'exécuter. Dans ce cas, vous pouvez définir la valeur du délai avant suspension dans ce champ pour terminer le Job en avance. Pour plus d'informations concernant la limite de Salesforce, consultez [Limite de l'API Bulk - Temps de traitement par lots](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_concepts_limits.htm) (en anglais).<br><br>Cette propriété est disponible uniquement lorsque l'option Bulk ou BulkV2 est sélectionnée dans la liste déroulante Query Mode. |
| Split query results into small sets | Sélectionnez cette option pour scinder les résultats de la requête en jeux de données. Vous pouvez configurer le nombre maximal d'enregistrements qu'un jeu de données peut contenir dans le champ Maximum number of records per set.<br><br>Cette option est disponible uniquement lorsque vous sélectionnez BulkV2 dans la liste déroulante Query Mode de la vue Basic settings. |
| Enable PK Chunking | Cochez cette case pour autoriser l'encodage par morceau de la PK (clé primaire, c'est-à-dire, l'identifiant de l'enregistrement de l'objet) lors de l'extraction de grands volumes d'enregistrements ou si la requête est systématiquement suspendue.<br><br><ul> <li> <p>Dans le champ <span>Chunk size</span> affiché, spécifiez le nombre d'enregistrements dans les limites de l'identifiant pour chaque morceau.</p> </li> <li> <p>Cochez la case <span>Specify the parent object</span> pour déterminer les limites de division en morceaux à l'aide des ID des enregistrements de l'objet parent. Saisissez le nom de l'objet parent dans le champ <span>Parent object</span>.</p> <p>Dans le cas d'un objet supporté, la division en morceaux de la clé primaire peut être utilisée pour effectuer une requête sur la table de partage de l'objet. Spécifier l'objet parent définit les limites de la division en morceaux, ce qui rend la requête plus efficace. </p> </li> <li> <p>Dans le champ <span>Salesforce API call delay</span> affiché, spécifiez le temps (en secondes) entre deux appels d'API Salesforce pendant le traitement de chaque lot.</p> </li> </ul><br><br>Pour plus d'informations, consultez [Use PK Chunking to Extract Large Data Sets from Salesforce](https://developer.salesforce.com/blogs/engineering/2015/03/use-pk-chunking-extract-large-data-sets-salesforce.html) (en anglais).<br><br>Cette propriété est disponible uniquement lorsque l'option Bulk est sélectionnée dans la liste déroulante Query Mode. |
| Use UTC time for datetime | Sélectionnez cette option pour utiliser l'heure UTC pour le type de données datetime. Si cette option n'est pas sélectionnée, l'heure locale est utilisée. |
| tStatCatcher Statistics | Cochez cette case pour collecter les métadonnées de traitement du Job, aussi bien au niveau du Job qu'au niveau de chaque composant. |

## Variables globales

| Variables | Description |
| --- | --- |
| NB\_LINE | Nombre de lignes traitées. Cette variable est une variable After et retourne un entier. |
| ERROR\_MESSAGE | Message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. |

## Utilisation

| Conseils d'utilisation | Description |
| --- | --- |
| **Règle d'utilisation** | Ce composant est généralement utilisé comme composant de début dans un Job ou un sous-Job et nécessite un lien de sortie. |

**Concepts associés**

* [Effectuer un upsert sur des données Salesforce en se basant sur des ID externes](https://help.qlik.com/talend/fr-FR/components/8.0/salesforce/tsalesforceinput-tsalesforceconnection-tlogrow-upserting-salesforce-data-based-on-external-ids-standard-component-the-job "Voici un exemple d'utilisation des composants Talend pour insérer et mettre à jour des données d'un objet Salesforce Contact, en vous basant sur les relations de mapping avec les ID externes de l'objet Account.")