Passer au contenu principal
Adaptive Planning
Dernière mise à jour : 2023-06-23
Référence : tables de source de données et types de données NetSuite

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.
  • Source
    de 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 Planning
    Comptes)
  • 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 Planning
    Pé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 NetSuite
Type de données Integration
SearchColumnStringField
Text
SearchColumnSelectField
Text
SearchColumnEnumSelectField
Text
SearchColumnDoubleField
Float
SearchColumnBooleanField
Boolean
SearchColumnLongField
Integer
SearchColumnTextNumberField
Text
SearchColumnDateField
DateTime
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 standard
Type de données Integration
String
Text
RecordRef
Text
Double
Text
Boolean
Float
Long
Boolean
System.DateTimeFloat
Integer
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 NetSuite
Type de données Integration
Commentaire
_checkBox
Float
_currency
DateTime
_date
DateTime
_decimalNumber
Float
_document
Texte
Fait référence à un autre enregistrement
_eMailAddress
Texte
_freeFormText
Texte
_help
Texte
StoreValue n'est pas défini.NetSuite ne permet pas de récupérer ce type.
_hyperlink
Texte
_image
Texte
Fait référence à un autre enregistrement
_inlineHTML
Texte
_integerNumber
Integer
_listRecord
Texte
Fait référence à un autre enregistrement
_longText
Texte
_multipleSelect
Texte
Fait référence à zéro ou à plusieurs autres enregistrements d'un type donné
_password
Texte
_percent
Float
_phoneNumber
Texte
_richText
Texte
_textArea
Texte
_timeOfDay
DateTime

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 NetSuite
Motifs d'exclusion
Client :ccExDate
Les informations de carte de crédit sont exclues pour des raisons de confidentialité.
Client :ccInternalId
Les informations de carte de crédit sont exclues pour des raisons de confidentialité.
Salarié :socialSecurityNumber
Exclu pour des raisons de confidentialité.
SalesTaxItem: zip
Liste 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 :ccExDate
Les 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 depuis
Adaptive Planning
Revenir à 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 sur
Montants 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 section
Montants 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 sous
Pré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.