Openflow Connector for Salesforce Bulk API : Champs de formule Salesforce¶
Note
Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.
Ce chapitre décrit comment Openflow Connector for Salesforce Bulk API traduit les champs de formule Salesforce en vues SQL Snowflake, comprenant les fonctions prises en charge et les limitations.
Fonctionnement des vues de formule¶
Lorsque Enable Views Creation est défini sur true, le connecteur effectue les opérations suivantes pour chaque objet comportant des champs de formule :
Récupère les expressions de formule des métadonnées de l’objet Salesforce via l’API Describe.
Analyse chaque expression de formule et la traduit en équivalent SQL Snowflake.
Génère une instruction
CREATE OR REPLACE VIEWqui combine les colonnes hors formules de la table de base avec les expressions de formule traduites en colonnes calculées.Exécute l’instruction DDL dans Snowflake pour créer ou mettre à jour la vue.
La vue résultante est nommée <Object Type>_FORMULA_VW. Par exemple, l’objet Account produit une vue nommée``ACCOUNT_FORMULA_VW``. Vous pouvez interroger cette vue pour obtenir les valeurs des champs de formule en plus des données répliquées.
La vue est automatiquement mise à jour chaque fois que le connecteur détecte des modifications de schéma dans l’objet source, garantissant ainsi que les définitions de formule restent synchronisées avec Salesforce.
Champs de calcul inter-objets¶
Les formule Salesforce peuvent faire référence à des champs provenant d’objets associés à l’aide du parcours de relation (Relationship Traversal) (par exemple, Account.Owner.Name). Le connecteur prend en charge ces références inter-objets en générant des clauses LEFT JOIN dans la définition de la vue. Chaque parcours de relation produit une jointure avec la table associée correspondante dans Snowflake.
Pour que les formules inter-objets fonctionnent correctement, les objets associés doivent également être répliqués par le connecteur. Le connecteur ne vérifie pas si les tables référencées existent dans Snowflake au moment de la traduction. Si un objet connexe n’est pas synchronisé, l’instruction CREATE OR REPLACE VIEW générée fait référence à une table qui n’existe pas dans Snowflake et la création de la vue échoue. Pour résoudre ce problème, assurez-vous que tous les objets associés référencés par les champs de formule sont inclus dans le paramètre Filter. La vue est automatiquement recréée lors de l’exécution suivante du connecteur, une fois que les tables référencées existent.
Commentaires de colonne de vue de formule¶
Chaque colonne de formule dans la vue générée comprend une annotation SQL COMMENT :
Pour les formules correctement traduites, le commentaire contient l’expression de formule Salesforce d’origine.
Pour les formule qui n’ont pas pu être traduites, le commentaire contient le code de motif d’échec.
Vous pouvez inspecter ces commentaires en exécutant DESCRIBE VIEW <view_name> dans Snowflake.
Fonctions de formule prises en charge¶
Les fonctions de formule Salesforce suivantes sont traduites en équivalents SQL Snowflake :
Catégorie |
Fonction Salesforce |
Équivalent Snowflake |
|---|---|---|
Logique |
|
|
Logique |
|
|
Logique |
|
|
Traitement des nuls |
|
|
Traitement des nuls |
|
|
Traitement des nuls |
|
|
Traitement des nuls |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
|
Texte |
|
Littéral de caractère de nouvelle ligne |
Conversion |
|
|
Conversion |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Calcul |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Date et heure |
|
|
Liste de sélection |
|
|
Outre les fonctions, les opérateurs suivants sont pris en charge :
Arithmétique :
+,-,*,/,^(exponentiation, traduite enPOWER)Comparaison :
=,==,!=,<>,<,<=,>,>=Logique :
AND,OR,&&,||Concaténation de chaînes :
&(transformé en||avec traitement des nulsCOALESCE)Unaire :
-(négation),NOT
Constructions de formule non prises en charge¶
Les constructions de formule suivantes ne sont pas encore prises en charge. La prise en charge de fonctions et de constructions supplémentaires sera ajoutée dans les prochaines versions. Lorsqu’une formule utilise l’un de ces éléments, la colonne correspondante de la vue renvoie NULL et le commentaire de la colonne indique la raison de l’échec.
Motif d’échec |
Description |
|---|---|
|
La formule utilise une fonction qui n’a pas d’équivalent dans Snowflake ou qui est spécifique à l’UI Salesforce. Cela inclut : |
|
La formule fait référence à une variable globale de Salesforce telle que |
|
La formule fait référence à un autre champ de formule. Les références de formule chaînées (un champ de formule qui dépend d’un autre champ de formule) ne sont pas prises en charge. |
|
Le champ est un champ de résumé de cumul plutôt qu’un champ de formule. Les résumés de cumul agrègent les données des enregistrements enfants et ne peuvent pas être exprimés sous la forme d’une simple vue SQL. |
|
La formule fait référence à une relation qui ne peut pas être résolue à partir des métadonnées d’objet Salesforce. Cela se produit généralement lorsque le nom de la relation dans la formule ne correspond à aucune relation connue sur l’objet. |
|
La formule contient un ID Salesforce de 15 caractères codés en dur. Salesforce utilise des IDs de 15 caractères en interne, mais l’API en masse renvoie des IDs de18 caractères. Les formats avec des IDs de 15 caractères codés en dur ne peuvent pas être traduit de manière fiable. |
|
La formule fait référence à un champ composé (tel que``MailingAddress``) qui n’est pas stocké comme une seule colonne dans Snowflake. |
|
Impossible d’analyser l’expression de la formule. Cela peut indiquer une syntaxe que le connecteur ne reconnaît pas encore. |
|
La formule utilise une construction syntaxique reconnue mais non traduite (par exemple, une fonction |