Connecteur source NetSuite
Le connecteur source NetSuite dans DataSync vous permet de récupérer des données de NetSuite pour les charger ou les synchroniser dans votre entrepôt de données. Pour configurer une connexion dans DataSync, vous devez d'abord créer une application NetSuite personnalisée dans l'interface NetSuite. Les identifiants de l'application générés sont nécessaires pour remplir les propriétés de connexion dans DataSync. Après avoir créé toutes les connexions sources requises, configurez votre connexion de destination pour finaliser la configuration.
Schémas API
NetSuite prend en charge deux schémas API pour récupérer des données : SuiteTalk et SuiteQL. Chaque schéma a des capacités et des options de connexion différentes.
| Schéma API | Description |
|---|---|
| SuiteTalk | API basé sur SOAP pour communiquer avec NetSuite. Fournit un accès complet aux enregistrements personnalisés, champs et listes. Les recherches enregistrées sont prises en charge via l'API SOAP et les RESTLets. La mise en groupe et les agrégations ne sont pas prises en charge côté serveur et doivent être gérées côté client. Ne prend en charge que l'authentification basée sur les jetons ; OAuthHeadless n'est pas pris en charge. |
| SuiteQL | API de type SQL pour interroger les données de NetSuite. Prend en charge les jointures, la mise en groupe, les agrégations et la sélection de colonnes spécifiques. SuiteQL est en lecture seule et destiné à la récupération de données. Recommandé lorsque seule la récupération de données est nécessaire. |
Vous devez avoir un compte NetSuite avec des autorisations Administration pour configurer la connexion.
Configurer une connexion pour NetSuite
Authentification basée sur les jetons
Créer une intégration
- Connectez-vous à NetSuite avec un compte administrateur.
- Sous Setup, sélectionnez Integration, puis Manage Integrations.
- Cliquez sur New.
- Entrez un nom et une description pour l'intégration.
- Définissez la Limite de Concurrence (maximum 5 sessions).
- Sous Authentication, activez Token-Based Authentication.
- Cliquez sur Save et copiez le Client ID et le Client Secret — vous en aurez besoin dans DataSync.
Activer la fonction d'authentification basée sur les jetons
- Dans l'onglet Setup, cliquez sur Company.
- Sélectionnez Enable Features.
- Sous SuiteCloud, choisissez Manage Authentication.
- Sélectionnez Token-Based Authentication et enregistrez les modifications.
Créer ou éditer un rôle
- Dans l'onglet Setup, sélectionnez User/Roles.
- Cliquez sur Manage Roles.
- Créez un nouveau rôle ou modifiez un rôle existant.
- Dans General, activez Core Administration Permissions.
- Dans Subsidiary Restrictions, sélectionnez All et cochez Allow cross-subsidiary record viewing.
- Sous Permissions et Setup, ajoutez :
- Gestion des jetons d'accès (Complet)
- Connexion en utilisant des jetons d'accès (Complet)
- Services Web REST (Complet) – pour SuiteQL uniquement
- Services Web SOAP (Complet) – pour SuiteQL uniquement
- Configurer les services Web SOAP (Complet)
- Jeton d'accès utilisateur (Complet)
- Dans Reports, ajoutez SuiteAnalytics Workbook (Éditer).
- (Optionnel) Ajoutez les autorisations nécessaires pour vos tables cibles dans Transactions et Lists (voir Permissions NetSuite).
Attribuer un rôle à un utilisateur
- Dans l'onglet List, sélectionnez Employees.
- Ouvrez l'enregistrement de l'employé cible.
- Dans Access, puis Roles, attribuez le rôle de jeton personnalisé créé ci-dessus et enregistrez.
Créer un jeton d'accès
- Dans l'onglet Setup, sélectionnez User/Roles.
- Choisissez Access Tokens, puis créez un nouveau jeton d'accès.
- Sélectionnez l'application d'intégration, l'utilisateur cible, et le rôle.
- Cliquez sur Save et copiez le Client ID généré (OAuthAccessToken) et le Client Secret (OAuthAccessTokenSecret) — vous en aurez besoin dans DataSync.
Permissions NetSuite
Utilisez ces permissions si vous créez un rôle personnalisé (requis pour l'authentification basée sur les jetons, optionnel pour OAuthHeadless). Si vous utilisez le rôle Administrator avec OAuthHeadless, toutes les permissions requises sont déjà présentes. Voir les permissions dans les différents onglets : Transactions, Rapports, Listes, Configuration, Enregistrements Personnalisés.
| Permission | Description |
|---|---|
| SuiteAnalytics Workbook (View) | Accès aux requêtes SQL dans SuiteAnalytics. |
| Customer (View) | Accès à des clients échantillons pour tester les connexions RESTlet. |
| Gestion des jetons d'accès | Permission pour la création et la gestion des jetons d'accès pour l'authentification basée sur les jetons. |
| Champs personnalisés <type> (View) | Accès aux champs personnalisés du type sélectionné. Requis lors de l'utilisation de Inclure des colonnes de listes personnalisées:
|
| Autres Champs Personnalisés (View) | Accès à d'autres types de champs personnalisés. Utilisé avec Inclure des colonnes de champs personnalisés. |
| Listes personnalisées (View) | Accès aux métadonnées pour les tables de listes personnalisées. Utilisé avec Inclure des tables de listes personnalisées. |
| Types d'enregistrements personnalisés (View) | Accès aux métadonnées pour les tables d'enregistrements personnalisés. Utilisé avec Inclure des tables d'enregistrements personnalisés. |
| Enregistrements supprimés (View) | Accès à l'information sur les enregistrements supprimés. |
| Connexion en utilisant des jetons d'accès | Accès d'authentification aux services REST ou SOAP en utilisant un jeton. |
| Connexion en utilisant des jetons d'accès OAuth 2.0 | Accès d'authentification aux services REST en utilisant OAuth 2.0. |
| Services Web REST | Accès aux RESTlet et aux services web. Requis lorsque le schéma est défini sur SuiteQL. |
| Services Web SOAP | Accès aux services web SOAP. Requis pour les tests et certaines opérations sur les champs personnalisés lorsque le schéma est défini sur SuiteTalk (par défaut). |
| Jetons d'accès utilisateur | Permission pour la création de jetons spécifiques à l'utilisateur avec l'authentification basée sur les jetons. |
| [Nom d'enregistrement personnalisé] | Accès à la table d'enregistrement personnalisé spécifiée. |
Authentification OAuthHeadless
- Connectez-vous à NetSuite avec un compte administrateur.
- Sous Setup, sélectionnez Integration, puis Manage Integrations.
- Cliquez sur New.
- Entrez un nom et une description pour l'intégration.
- Définissez la Limite de Concurrence (maximum 5 sessions).
- Activez TBA: Issue token endpoint et TBA: Authorization Flow.
- Ouvrez DataSync, démarrez Créer une connexion source pour NetSuite, et copiez l'URL de rappel à partir des Propriétés de connexion.
- Ajoutez l'URL de rappel dans NetSuite dans les champs Callback URL et Redirect URI.
- Activez Authorization Code Grant et Public Client.
- Sélectionnez les scopes appropriés (recommandation : Restlets et Rest Web Services).
- Définissez la Politique de Consentement OAuth 2.0 sur Toujours demander.
- Sélectionnez User Credentials.
- Cliquez sur Save et copiez le Client ID et le Client Secret — vous en aurez besoin dans DataSync.
Créer une connexion source dans DataSync
- Connectez-vous à DataSync.
- Depuis l'écran d'accueil, sélectionnez Connections.
- À côté de Source Connections, cliquez sur New.
- Sélectionnez NetSuite.
- Dans le panneau Propriétés de la connexion, entrez les propriétés de connexion.
- (Optionnel) Dans le panneau Autres propriétés de la connexion, sélectionnez Ajouter une propriété et entrez les paramètres pour chaque propriété.
- Dans le panneau Paramètres avancés, configurez les paramètres, y compris le Type de suivi et d'autres valeurs selon vos besoins.
- Cliquez sur Save. Si OAuthHeadless a été sélectionné, vous serez redirigé vers une page web d'autorisation. Sélectionnez Continue pour compléter la connexion.
Paramètres
Propriétés de la connexion
| Paramètre | Description |
|---|---|
| Description | Nom unique pour la connexion. Exemple : NetSuite |
| Schéma | Schéma NetSuite utilisé pour la connexion : SuiteQL ou SuiteTalk. Pour SuiteTalk, utilisez l'authentification basée sur les jetons. |
| Account ID | Identifiant de compte NetSuite. Trouvé dans Setup > Company > Company Information. Exemple : 1234567_SB1 |
| Application ID | Identifiant de l'application NetSuite fourni après l'enregistrement de l'application dans Setup > Integration > Manage Integrations. Incluez-le toujours pour garantir un accès approprié. |
| Scope | Liste des scopes pour OAuthHeadless. Valeurs : restlets, rest_webservices, ou restlets rest_webservices (les deux, séparés par un espace). Utilisé pour obtenir des jetons d'accès et de rafraîchissement. |
| Mode d'authentification | Méthode d'authentification. Options : TokenBased ou OAuthHeadless. Les connexions SuiteTalk nécessitent le mode TokenBased et ne peuvent pas être modifiées. Les connexions OAuthHeadless restent actives pendant un maximum de 7 jours avant de nécessiter une ré-authentification manuelle. |
| URL de rappel | URL générée par DataSync lors de l'utilisation d'OAuthHeadless. Copiez et collez dans la configuration de l'application de NetSuite. |
| Identité du client | Identifiant de client d'application OAuth fourni par NetSuite lors de l'enregistrement. Exemple : abc123clientid |
| Secret du client | Secret d'application OAuth fourni par NetSuite lors de l'enregistrement. Exemple : xyz987secretkey |
| Jeton d'accès | (Seulement TokenBased et SuiteTalk) Jeton utilisé au lieu du nom d'utilisateur et du mot de passe pour les connexions SuiteTalk. Exemple : abc123accesstoken |
| Secret du jeton d'accès | (Seulement TokenBased et SuiteTalk) Secret utilisé avec le jeton d'accès pour l'authentification. Exemple : xyz987tokensecret |
| Analyse des lignes | Nombre de lignes scannées pour déterminer la structure des colonnes de la table. Plage : 1–999. Par défaut : 50. |
| Délai | Temps en secondes à attendre pour l'ouverture de la connexion et l'exécution de la requête avant le timeout. Les requêtes de longue durée (par exemple, récupérer 1 000 commandes de vente avec AggregateColumnMode défini sur ListAndRetrieve) peuvent prendre plus de 10 minutes. Pour les tables enfants ou les colonnes agrégées, envisagez de définir un timeout à 0. |
| Inclure les tables enfants | Option d'inclusion de tables enfants. Ajoute des tables pour toutes les listes enfants d'une entité (par exemple, table CashRefund avec table enfant ItemList comme CashRefund_ItemList). Utile pour afficher les articles sous forme de lignes individuelles. Peut considérablement augmenter le nombre de tables. |
| Inclure des colonnes de champs personnalisés | Option d'inclusion de champs personnalisés. Ajoute des champs personnalisés aux tables de base en tant que colonnes individuelles. Peut réduire la performance de chargement des métadonnées lors de la première fois. Les métadonnées sont mises en cache par connexion et effacées lorsque la connexion se ferme. |
| Inclure les tables de listes personnalisées | Option d'inclusion de listes personnalisées. Ajoute des types de listes personnalisées en tant que tables séparées. Peut réduire la performance de chargement des métadonnées lors de la première fois. Les métadonnées sont mises en cache par connexion et effacées lorsque la connexion se ferme. |
| Inclure les tables d'enregistrements personnalisés | Option d'inclusion d'enregistrements personnalisés. Ajoute des types d'enregistrements personnalisés en tant que tables séparées. Peut réduire la performance de chargement des métadonnées lors de la première fois. Les métadonnées sont mises en cache par connexion et effacées lorsque la connexion se ferme. |
| Colonnes agrégées | Option d'inclusion de colonnes agrégées. Affiche les valeurs agrégées des collections enfants. Nécessite que Inclure les tables enfants soit activé. |
| Verbosité |
|
| Activer la mise en Pool | Option de pooling de connexion pour la performance. |
| Délai d'inactivité du Pool | Temps d'inactivité maximal pour les connexions avant de les retourner au pool, en secondes. |
| Taille maximale du Pool | Nombre maximum de connexions autorisées dans le pool. |
| Temps d'attente du Pool | Temps d'attente maximal pour l'attribution de connexion avant qu'une erreur ne soit générée, en secondes. |
Autres propriétés de la connexion
Propriétés de chaîne de connexion supplémentaires non spécifiées dans le panneau Propriétés de connexion. Pour chaque propriété ajoutée, vous pouvez choisir Visible ou Crypé. En sélectionnant Crypé, la valeur est cachée de l'interface et stockée de manière cryptée dans le backend, comme lors de la définition des mots de passe.
| Paramètre | Description |
|---|---|
| Propriété | Propriété de chaîne de connexion qui définit l'action ou le comportement. Exemple : ReadOnly |
| Valeur | Valeur pour la propriété. Exemple : True |
| Type | Visibilité de la propriété : Visible ou Crypé. |
Paramètres avancés
Les paramètres avancés contrôlent comment le connecteur NetSuite suit les changements, gère la configuration régionale et horaire, et traite les lots de données pendant l'extraction. Ces options permettent un ajustement fin pour la performance et l'exactitude, et doivent être configurées selon votre environnement système et vos exigences opérationnelles.
| Paramètre | Description |
|---|---|
| Type de suivi | Méthode de suivi des changements : Aucun ou Date. |
| Région | Paramètre de région pour le connecteur, si nécessaire pour votre configuration. |
| Fuseau horaire | Fuseau horaire correspondant au serveur d'application NetSuite. |
| Décalage horaire | Décalage de rafraîchissement en secondes pour compenser les problèmes de synchronisation lors de la sélection des enregistrements. La valeur minimale est 0 ; la valeur maximale est 3600 secondes. |
| Taille des lots | Quantité d'enregistrements traités dans chaque lot pendant l'extraction. Des tailles de lots plus importantes augmentent l'utilisation de la mémoire mais peuvent améliorer les performances jusqu'à un certain point. La valeur par défaut est 2000 et le maximum ne doit pas dépasser 10000 enregistrements. Ajustez selon votre vitesse de réseau et les performances disque ; dans la plupart des cas, la valeur par défaut (2000) fonctionne mieux. |