Référence : tables de source de données et types de données NetSuite
Tables NetSuite prises en charge
Le tableau ci-dessous présente les informations des tables prises en charge dans l'intégration de NetSuite. Les colonnes pour cette table affichent les informations suivantes :
- Table d'intégration: nom de la table comme indiqué dans la source de données d'intégration.
- Sourcede la table: nom de la table utilisé dans le Navigateur de schéma NetSuite.
- Accès: mécanisme d'accès pour chaque table NetSuite. Les types sont les suivants :
- "Recherche" signifie qu'Integration rassemble tous les enregistrements qui correspondent aux critères de recherche à l'aide de l'API indiquée. "Recherche avec contraintes" signifie qu'Integration impose des contraintes supplémentaires à la recherche en plus des contraintes de recherche que NetSuite peut imposer.
- "Tout obtenir" signifie qu'Integration rassemble tous les enregistrements à l'aide de l'API indiquée.
- "Différentiel" signifie qu'Integration rassemble uniquement les données modifiées.
- Commentaires: commentaires concernant les tables.
Integration prend également en charge les tables NetSuite personnalisées qui sont exposées par l'API Services web NetSuite. Vous pouvez choisir la table ou les colonnes à importer pour chacune d'entre elles.
Table Integration | Source de la table | Accès | Commentaires |
|---|---|---|---|
Account | AccountSearchRowBasic | Rechercher | |
AccountingPeriod | AccountingPeriodSearchRowBasic | Rechercher | |
AdaptivePostingTransactionSummary | Table créée dans la source de données Integration, non disponible dansNetSuite. AttacheLa table PostingTransactionSummary avec les tables de catégories standard (Account, Time Period, Subsidiary, Department, Class, Location, Item, Customer) | ||
AllCustomLists | CustomList | Tout obtenir | |
Budget | BudgetSearchRowBasic | Rechercher | |
BudgetExchangeRate | Spécial :getBudgetExchangeRate | Recherche avec contraintes | |
CalendarEvent | CalendarEventSearchRowBasic | Rechercher | |
Campaign | CampaignSearchRowBasic | Différentiel | |
CampaignCategory | CampaignCategory | Tout obtenir | |
CampaignFamily | CampaignFamily | Tout obtenir | |
Classification | ClassificationSearchRowBasic | Rechercher | |
ConsolidatedExchangeRate | Spécial :getConsolidatedExchangeRate | Recherche avec contraintes | |
Contact | ContactSearchRowBasic | Rechercher | |
Currency | Currency | Tout obtenir | |
CustomerCategory | CustomerSearchRowBasic | Différentiel | |
CustomerStatus | CustomerCategorySearchRowBasic | Rechercher | |
DeletedRecord | Special: getDeleted | Recherche avec contraintes | Ne peut pas être utilisée par l'utilisateur final |
Department | DepartmentSearchRowBasic | Rechercher | |
Employee | EmployeeSearchRowBasic | Différentiel | |
EntityGroup | EntityGroupSearchRowBasic | Différentiel | |
ExpenseCategory | ExpenseCategorySearchRowBasic | Rechercher | |
Item | ItemSearchRowBasic | Différentiel | |
Job | JobSearchRowBasic | Différentiel | |
JobStatus | JobStatusSearchRowBasic | Rechercher | |
JobType | JobTypeSearchRowBasic | Rechercher | |
Location | LocationSearchRowBasic | ||
NetSuiteServerTime | Spécial :getServerTime | ||
Opportunity | OpportunitySearchRowBasic | ||
Partner | PartnerSearchRowBasic | ||
PostingTransactionBalance | Spécial :getPostingTransactionSummary | Recherche avec contraintes | Table créée dans la source Integration, non disponible dansNetSuite. Cette table contient des soldes de fin de période. |
PostingTransactionSummary | Spécial :getPostingTransactionSummary | Recherche avec contraintes | |
ProjectTask | ProjectTaskSearchRowBasic | Différentiel | |
PromotionCode | PromotionCodeSearchRowBasic | Rechercher | |
SalesTaxItem | SalesTaxItem | Tout obtenir | |
Subsidiary | SubsidiarySearchRowBasic | Rechercher | |
SupportCase | SupportCaseSearchRowBasic | Différentiel | |
SupportCasePriority | SupportCasePriority | Tout obtenir | |
SupportCaseStatus | SupportCaseStatus | Tout obtenir | |
SupportIssue | IssueSearchRowBasic | Rechercher | |
SupportSolution | SolutionSearchRowBasic | Rechercher | |
SupportTopic | TopicSearchRowBasic | Rechercher | |
Task | TaskSearchRowBasic | Rechercher | |
TaxGroup | TaxGroup | Tout obtenir | |
TaxType | TaxType | Tout obtenir | |
Timebill | TimeBillSearchRowBasic | Différentiel | |
Transaction | TransactionSearchRowBasic | Différentiel | |
Vendor | VendorSearchRowBasic | Différentiel |
Tables couramment utilisées dans Integration
Les tables suivantes sont importées et prêtes à l'emploi dans l'adaptateur NetSuite :
- AdaptivePostingTransactionSummary (table source principale pour Planning)
- Compte (mappé à)Adaptive PlanningComptes)
- Classification (mappage facultatif)
- Client (mappage facultatif)
- Department (mappage facultatif)
- Items (mappage facultatif)
- Location (mappage facultatif)
- Posting Transaction Summary
- Filiale (généralement mappée àAdaptive PlanningPérimètres)
Les tables AdaptivePostingTransactionSummary et PostingTransactionSummary retournent un delta mensuel, alors que la table PostingTransactionBalance retourne des soldes de période. Les tables AdaptivePostingTransactionSummary et PostingTransactionSummary prennent en charge les catégories standard (Account, Time Period, Subsidiary, Department, Class, Location, Item, Customer). Si vous avez besoin de catégories supplémentaires, vous devez utiliser la table Transaction.
Tables mises à jour de manière différentielle
Dans la source de données NetSuite actuelle, les tables suivantes sont mises à jour de manière différentielle :
- Campaign
- Customer
- Employee
- EntityGroup
- Item
- Job
- Opportunity
- Partner
- ProjectTask
- SupportCase
- TimeBill
- Transaction
- Vendor
De plus, tous les types d'enregistrements personnalisés sont mis à jour de manière différentielle. Vous ne pouvez pas utiliser la colonne Date différentielle dans votre filtre d'import des données pour des tables mises à jour différentiellement. Le système ne vous empêche pas d'essayer de le faire, mais ceci provoquera l'échec du mécanisme de mise à jour différentielle.
Vous pouvez limiter la quantité de données importées dans une table différentielle lorsque vous "explorez", c'est-à-dire lorsque vous modifiez les colonnes et les paramètres de filtre. Il existe un mécanisme dans la source de données pour court-circuiter la pleine charge des données différentielles.
La table ci-dessous contient toutes les tables différentielles ainsi que leurs colonnes de date différentielle et de création.
Table
| Colonne de date différentielle
| Colonne de date de création
|
|---|---|---|
Campaign | LastModifiedDate | CreatedDate |
Customer | LastModifiedDate | DateCreated |
CustomRecord (*) | LastModified | Created |
Employee | LastModifiedDate | CreatedDate |
EntityGroup | LastModifiedDate | -- Aucune -- |
Item | Modified | Created |
Job | LastModifiedDate | DateCreated |
Opportunity | LastModifiedDate | DateCreated |
Partner | LastModifiedDate | DateCreated |
ProjectTask | LastModifiedDate | CreatedDate |
SupportCase | LastModifiedDate | CreatedDate |
TimeBill | LastModified | DateCreated |
Transaction | LastModifiedDate | DateCreated |
Vendor | LastModifiedDate | DateCreated |
(*) - S'applique à tous les enregistrements personnalisés.
Si vous spécifiez un filtre supérieur à ou supérieur ou égal à la colonne Date de création pour votre table, le code contournera l'import complet et mettra uniquement à jour à partir de la date et de l'heure indiqués. Ceci permet de limiter les données importées car lorsque vous commencez à explorer une table volumineuse chargée de façon différentielle, vous pouvez définir le filtre pour extraire uniquement les derniers jours (ou semaines) de données. Ce type de charge s'exécute très rapidement. Vous pouvez ensuite déterminer les colonnes dont vous avez besoin et les autres conditions de filtrage que vous souhaitez utiliser. Une fois que vous êtes satisfait, vous pouvez supprimer le filtre de date de création et redémarrer la charge de données complète.
Pour certaines tables, vous souhaitez peut-être ne pas afficher des enregistrements plus anciens qu'une certaine date. Pour ces tables, vous pouvez continuer à utiliser le filtre de date de création avec une valeur appropriée.
Types de données NetSuite pris en charge
Lorsque les données de NetSuite sont importées dans Integration, le "type" de ces données doit être mappé à l'un des types de données pris en charge par Integration
- Champs de données NetSuite standard
- Pour les champs de données NetSuite standard dans les tables recherchées, les mappages suivants sont utilisés :Type de données de recherche standard NetSuiteType de données IntegrationSearchColumnStringFieldTextSearchColumnSelectFieldTextSearchColumnEnumSelectFieldTextSearchColumnDoubleFieldFloatSearchColumnBooleanFieldBooleanSearchColumnLongFieldIntegerSearchColumnTextNumberFieldTextSearchColumnDateFieldDateTime
- Champs de données NetSuite standard dans les tables
- Pour les champs de données NetSuite standard dans des tables (qui sont toujours récupérés dans leur intégralité), les mappages suivants sont utilisés :Type de données NetSuite standardType de données IntegrationStringTextRecordRefTextDoubleTextBooleanFloatLongBooleanSystem.DateTimeFloatInteger
- Champs personnalisés
- La source de données NetSuite prend en charge un sous-ensemble de champs personnalisés NetSuite possibles.Les champs personnalisés sont pris en charge par les types d'enregistrement suivants :
- Champs personnalisés CRM
- CalendarEvent
- Campaign
- SupportCase
- SupportIssue
- SupportSolution
- ProjectTask
- Tâche
- Champs d'entité personnalisée
- Contact
- Customer
- Employee
- Entity Group
- Job
- Partner
- Vendor
- Champs d'article personnalisé
- Item
- Champs de transaction personnalisé
- Transaction Body
- Transaction Column
- Transaction Item
- Autres champs personnalisés
- Compte
- Classification
- Department
- Location
- PromotionCode
Notez que l'attribut "STORE VALUE" doit être coché dans les champs personnalisés pour que le champ soit exposé dans l'API Services web NetSuite. - Types de données des champs personnalisés
- Integration prend en charge tous les types de données des champs personnalisés NetSuite définis. Cependant, étant donné qu'Integration ne met en œuvre que cinq types de données de base en interne, les types de données des champs personnalisés NetSuite sont mappés vers la plupart des types de données Integration appropriés. La table suivante illustre ce mappage :Type de données NetSuiteType de données IntegrationCommentaire_checkBoxFloat_currencyDateTime_dateDateTime_decimalNumberFloat_documentTexteFait référence à un autre enregistrement_eMailAddressTexte_freeFormTextTexte_helpTexteStoreValue n'est pas défini.NetSuite ne permet pas de récupérer ce type._hyperlinkTexte_imageTexteFait référence à un autre enregistrement_inlineHTMLTexte_integerNumberInteger_listRecordTexteFait référence à un autre enregistrement_longTextTexte_multipleSelectTexteFait référence à zéro ou à plusieurs autres enregistrements d'un type donné_passwordTexte_percentFloat_phoneNumberTexte_richTextTexte_textAreaTexte_timeOfDayDateTime
Informations complémentaires
Les sections suivantes décrivent quelques considérations supplémentaires pour l'accès aux données NetSuite.
- Filtre d'import des données
- Chaque champ d'une recherche peut avoir un filtre au maximum. Les filtres sont traités ensemble, avec l'opérateur AND, par NetSuite lors de l'exécution d'une demande de recherche.Des filtres de synchronisation peuvent uniquement être configurés pour les tables accessibles via une recherche.De plus, seuls ces champs suivants qui existent dans [TableName]SearchRowBasic et dans [TableName]SearchBasic peuvent être utilisés dans les filtres de synchronisation.
- Interroger NetSuite directement depuis la zone de stockage temporaire
- Lorsque vous interrogez directement NetSuite (plutôt que d'interroger des enregistrements importés dans la zone de stockage temporaire depuis NetSuite), les expressions de filtres sont limitées aux fonctionnalités exposées par NetSuite via les services web.
- Des filtres de colonne simples avec des expressions de comparaison et logiques peuvent être utilisés lorsque vous interrogez NetSuite.
- Les filtres peuvent être traités ensemble, avec l'opérateur AND, mais pas avec l'opérateur OR.
- Les opérateurs (+, -, /, *, $, ||) ne peuvent pas être utilisés.
- Les fonctions scalaires ne peuvent pas être utilisées.
- Les déclarations Case ne peuvent pas être utilisées.
- Pour filtrer une colonne personnalisée, cette dernière doit être marquée pour l'import.
- Le fonctionnement de certains filtres de colonne nécessite l'activation de fonctions NetSuite spécifiques.
Certaines tables et colonnes ne prennent pas en charge le filtrage. - Champs exclus
- Un certain nombre de champs NetSuite sont exclus de l'import pour diverses raisons. La table ci-dessous présente certains de ces champs exclus.Champ NetSuiteMotifs d'exclusionClient :ccExDateLes informations de carte de crédit sont exclues pour des raisons de confidentialité.Client :ccInternalIdLes informations de carte de crédit sont exclues pour des raisons de confidentialité.Salarié :socialSecurityNumberExclu pour des raisons de confidentialité.SalesTaxItem: zipListe délimitée de codes postaux. Ce champ de texte peut être excessivement long (plus long que la limite de caractères de 1 024 caractères par défaut pour un champ de texte) et n'est pas considéré comme étant particulièrement utile pour les opérations Integration.Transaction :ccExDateLes informations de carte de crédit sont exclues pour des raisons de confidentialité.
- Informations concernant les champs
- Informations complémentaires concernant les champs NetSuite standard et personnalisés :
- Les champs de texte sont limités à une taille maximale de 1 024 caractères.
- Les personnalisations des champs NetSuite standard ne sont pas prises en charge.
- Les champs masqués personnalisés sont visibles. (NetSuite les fait apparaître via leurs services web.)
- Seuls les champs NetSuite personnalisés, dont les ensembles d'attributs "Store Value" sont importés dans Integration.
- Recherches enregistrées
- Pour configurer une recherche NetSuite enregistrée, consultez la section Importer des recherches NetSuite enregistrées dans Étapes : configurer des sources de données NetSuite.
- Exploration transversale depuisAdaptive PlanningRevenir à NetSuite
- Les clients peuvent activer l'exploration des données importées de NetSuite. Les liens d'exploration seront disponibles dans les feuilles Planning et les rapports pour les montants réels importés de NetSuite. Afin de configurer l'exploration pour NetSuite, vous devez vous assurer que vos identifiants internes sont utilisés pour le mappage des colonnes dans le chargeur Planning. Vous devrez configurer un système externe NetSuite et le joindre à un profil utilisé par le chargeur Planning.Si vous configurez plusieurs colonnes sur NetSuite pour procéder à des mappages vers une seule dimension de planification, alors ces colonnes devront être combinées dans la source de données à l'aide d'une colonne SQL tuple. Pour en savoir plus, voir les sections Integration concernant le mappage des colonnes/données et les profils.
Conseils et bonnes pratiques
- Bonnes pratiques relatives à la configuration de Planning pour importer les montants réels GL
- Pour importer des montants réels GL à l'aide de la table Transaction, définissez les comptes GL dans Planning surMontants réels par delta mensuel. Accédez à Administrateur de comptes, sélectionnez le compte GL et consultez les détails du compte pour afficher la sectionMontants réels par. Dans cette méthode, Planning s'assure d'accumuler des montants sur les comptes de bilan.
- Bonnes pratiques relatives à la gestion des messages d'expiration NetSuite
- L'une des erreurs que NetSuite peut envoyer est la suivante :Votre recherche a expiré. Si votre recherche inclut l'opérateur "contient", essayez alors d'utiliser l'opérateur "hasKeywords". Si votre recherche inclut des critères de recherche généraux, essayez de limiter les critères.Cette erreur indique que la demande s'exécute depuis trop longtemps dans NetSuite. Cette situation se produit généralement parce que les critères de filtrage dans la demande génèrent un nombre de résultats extrêmement important. NetSuite accorde environ 3 minutes pour traiter chaque demande. (Notez qu'il s'agit du temps accordé pour la requête de base de données proprement dite dans NetSuite. Le temps nécessaire pour le renvoi d'un résultat peut être beaucoup plus long, car il est lié aux politiques de trafic de NetSuite.)Il existe plusieurs façons de traiter cette erreur. En règle générale, il est recommandé de s'assurer que la demande générée est aussi précise que possible. Par exemple, n'incluez que les types de transactions que les chargeurs utilisent réellement. Une autre façon d'empêcher ou de résoudre cette erreur est d'utiliser la propriété Durée du lot de remblayage. Pour les tables qui sont mises à jour de façon différentielle, cette propriété détermine la taille du bloc de mise à jour. La durée du lot de remblayage est définie sur 168 heures (une semaine) par défaut. Cependant, il est possible que cette valeur soit trop élevée si vous traitez une demande pour des données à haute densité. La diminution de cette valeur réduit la taille de la demande individuelle en délimitant le filtre temporel, ce qui peut empêcher ou résoudre cette erreur.La valeur minimale de la propriété Durée du lot de remblayage est d'une heure. Le compromis ici consiste à "grignoter" plutôt qu'à "dévorer" les données, c'est-à-dire que de nombreuses demandes supplémentaires doivent être envoyées à NetSuite pour terminer la mise à jour. Par exemple, si vous diminuez la valeur de 168 à 24, cela signifie que vous optez pour une approche progressive, mais en effectuant sept fois plus de demandes.Étant donné qu'il n'existe pas de solution pratique pour anticiper la densité des données, vous pouvez essayer de tester vos demandes et d'ajuster la propriété Durée du lot de remblayage, selon vos besoins, pour gérer le problème.
- Créer des listes individuelles à partir de la table temporaire AllCustomLists
- Une table de jointure peut être utilisée pour extraire/filtrer une liste individuelle de la table temporaire AllCustomLists. Par exemple, pour créer une table contenant les membres de la liste nommée Resolutiontime (avec InternalId 19), procédez comme suit :Dans cette expression de jointure, la valeur InternalId est le "sélecteur" qui choisit la liste personnalisée de votre choix.
- Créez une nouvelle table de jointure. Un nom raisonnable pour la table serait "CustomList[*]" où [*] correspond à la valeur "Name" de la liste qui est extraite. Donc, pour cet exemple, le nom serait "CustomListResolutiontime".
- Définissez la table principale sur "AllCustomLists".
- Ajoutez une jointure.
- Table principale :AllCustomLists
- JoinedTable :AllCustomLists
- Type :Inner
- Préfixe de colonne :(vide)
- Expression de jointure :P."InternalId" = '19' and R."InternalId" = '19' and P."ValueId" = R."ValueId"
Dans cette expression de jointure, la valeur InternalId fonctionne comme le "sélecteur" qui choisit la liste personnalisée de votre choix.Puis, dans la table de jointure, choisissez uniquement les colonnes de la table principale dont vous avez besoin (généralement, "Value" et "ValueId").La capture d'écran suivante illustre ce résultat :
- Conseil pour préparer les données de comptes et de périmètres
- Même si les données de comptes et de périmètres varient d'un client à un autre, les quelques exemples suivants montrent comment un concepteur de données peut créer des colonnes SQL dans la zone de stockage temporaire pour préparer des données avant de les charger dans Planning.
- Compte :
- CASE WHEN "acct.Number" is null THEN TRIM("acct.Name") ELSE TRIM("acct.Number") END
- Périmètre :
- CASE WHEN "Department.Name" is null THEN 'No Department' ELSE TRIM("Department.Name") END || ' ' || "Location.Name"
- Conseil pour l'utilisation des règles de gestion
- Le concepteur de données vous permet de créer des règles de gestion pour un chargement facile. Voici quelques conseils pour gérer les règles relatives aux informations de compte :
- Les codes de compte doivent être des valeurs numériques afin de pouvoir ajouter facilement la plage de comptes GL à inverser.
- Évitez d'utiliser des traits de soulignement pour ces types de comptes. Si vous utilisez un trait de soulignement, vous devez ajouter manuellement tous les codes de compte dont vous avez besoin pour modifier les signes.
- Les codes de compte ne peuvent pas contenir d'espaces intégrés.
- Configurer le fuseau horaire
- Le fuseau horaire du compte pour la source de données NetSuite dans Integration doit correspondre au fuseau horaire trouvé dans l'interface graphique NetSuite sousPréférences > Fuseau horaire régional.Si les deux ne correspondent pas, procédez de l'une des manières suivantes :
- Modifiez le fuseau horaire du compte dans Integration pour qu'ils correspondent.
- Modifiez le paramètre Fuseau horaire dans NetSuite pour l'utilisateur associé à la source de données afin qu'ils correspondent.
- Références externes
- La ressource principale pour l'API NetSuite est le système d'aide en ligne du site web de NetSuite : http://www.netsuite.com. NetSuite génère un PDF de cette aide en ligne avec chaque version de son produit. Pour trouver une copie récente, recherchez "Guide des enregistrements (services web) SuiteTalk".Pour obtenir plus d'informations concernant NetSuite, consultez le site à l'adresse suivante : https://www.oracle.com/technical-resources/. Si vous créez un compte, vous pouvez demander à accéder aux contenus se rapportant à NetSuite.