Passer au contenu principal

logoCorrectSize.png

Workday Adaptive Planning Knowledge Center

Tables de source de données et types de données NetSuite

Depuis Adaptive Integration 2017.1, l’adaptateur NetSuite compatible avec les services Web de NetSuite’ 2016.2 SuiteTalk. Tous les adaptateurs fournis avant 2017.1 seront disponibles dans l’offre de services Web NetSuite’ 2013.2. Il n’y a pas de migration automatique de l’adaptateur Adaptive Insights NetSuite de NetSuite 2013.2 vers NetSuite 2016.2

 Tables NetSuite prises en charge

Le tableau ci-dessous présente des informations sur les tables prises en charge dans NetSuite Integration. Les colonnes pour cette table présentent les informations suivantes :

  • Table Integration: Le nom de la table comme indiqué dans la source de données d’intégration.
  • Source de la table: Le nom de la table utilisé dans le Navigateur de schéma NetSuite .
  • Accès : Le mécanisme d’accès pour chaque table NetSuite . Les types sont :
  • “Rechercher” signifie que Integration rassemble tous les enregistrements qui correspondent aux critères de recherche à l’aide de l’API spécifiée. “Recherche limitée” signifie que Integration impose des contraintes supplémentaires sur la recherche en plus des contraintes de recherche que NetSuite peut imposer.
  • “Tout obtenir” signifie que Integration rapporte tous les enregistrements à l’aide de l’API spécifiée.
  • “Différentiel” signifie que Integration rapporte uniquement les données modifiées.
  • Commentaires: Commentaires concernant les tables.

Integration prend également en charge les tables NetSuite exposées par l’API services WebNetSuite . Vous pouvez choisir la table/colonnes à importer pour chacune d’elles.

 

Table IntegrationSource de tableAccèsCommentaires
Account AccountSearchRowBasic Rechercher  
AccountingPeriod AccountingPeriodSearchRowBasic Rechercher  
AdaptivePostingTransactionSummary    

Table créée par Adaptive dans la source de données Integration, non disponible dans NetSuite. Joint la table PostingTransactionSummary aux tables de catégories standard (Compte, Période, Filiale, Département, Classe, Emplacement, Article, Client)

AllCustomLists CustomList Tout obtenir  
Budget BudgetSearchRowBasic Rechercher  
BudgetExchangeRate Spécial : getBudgetExchangeRate Recherche limitée  
CalendarEvent CalendarEventSearchRowBasic Rechercher  
Campaign CampaignSearchRowBasic Différentiel  
CampaignCategory CampaignCategory Tout obtenir  
CampaignFamily CampaignFamily Tout obtenir  
Classification ClassificationSearchRowBasic Rechercher  
ConsolidatedExchangeRate Spécial : getConsolidatedExchangeRate Recherche limitée  
Contact ContactSearchRowBasic Rechercher  
Currency Currency Tout obtenir  
CustomerCategory CustomerSearchRowBasic Différentiel  
CustomerStatus CustomerCategorySearchRowBasic Rechercher  
DeletedRecord Special: getDeleted Recherche limitée Pas pour utilisation 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   Recherche limitée

Table créée par Adaptive dans la source Integration, non disponible dans NetSuite. Cette table contient des soldes de fin de période.

PostingTransactionSummary Spécial : getPostingTransactionSummary Recherche limitée  
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 AI

Les tables suivants sont importées en dehors de la boîte dans l’adaptateur NetSuite  :

  • AdaptivePostingTransactionSummary (table source principale pour la planification)
  • Compte (mappé aux comptes Adaptive)
  • Classification (mappage facultatif)
  • Client (mappage facultatif)
  • Service (mappage facultatif)
  • Éléments (mappage facultatif)
  • Emplacement (mappage facultatif)
  • Résumé des transactions de comptabilisation
  • Filiale (généralement mappée aux niveaux Adaptive)

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 (Compte, Période, Filiale, Département, Classe, Lieu, Article, Client). Si vous avez besoin de catégories supplémentaires, vous devez utiliser la table de transaction.

Tables mises à jour différentiellement

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’importation de données pour des tables mises à jour différentiellement. Le système ne vous empêche pas d’essayer de le faire, mais cela entraînera 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," ce qui consiste à modifier 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.

Le tableau ci-dessous contient toutes les tables différentielles ainsi que leurs colonnes de date différentielle et de création.

Tableau Colonne de date différentielle Colonne Date de création
Campaign LastModifiedDate CreatedDate
Customer LastModifiedDate DateCreated
CustomRecord (*) LastModified Created
Employee LastModifiedDate CreatedDate
EntityGroup LastModifiedDate -- Aucun --
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

(*) -Ceci 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 contourne l’importation complète et met à jour uniquement les mises à jour de la date et de l’heure spécifiées. Ceci permet de limiter les données importées car lorsque vous commencez à explorer une table volumineuse téléchargée, 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 ne voulez peut-être pas que des enregistrements soient plus anciens qu’une certaine date. Pour ces tableaux, 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 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 :

NetSuite Type de données standardType 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
    • Client
    • Employé
    • Groupe d’entités
    • Poste
    • Partenaire
    • Vendeur
  • Champs d’article personnalisé
    • Élément
  • Champs de transaction personnalisé
    • Corps de transaction
    • Colonne de transaction
    • Élément de transaction
  • Autres champs personnalisés
    • Compte
    • Classification
    • Département
    • Emplacement
    • Code de promotion

 Notez que les champs personnalisés doivent avoir l’attribut "STORE VALUE" coché pour que le champ soit exposé sur l’API services Web NetSuite .

Types de données de champ personnalisé

Adaptive Integration prend en charge tous les types de données de champ personnalisé NetSuite définis. Cependant, du fait que Integration met en œuvre en interne seulement cinq types de données de base, les types de données de champ personnalisé NetSuite sont mappés à la plupart des types de données Integration appropriés. Le tableau suivant illustre ce mappage :

NetSuite Type de donnéesType de données IntegrationCommentaire
_checkBox Flottant  
_currency Date et heure  
_date Date et heure  
_decimalNumber Flottant  
_document Texte Référence à un autre enregistrement
_eMailAddress Texte  
_freeFormText Texte  
_help Texte StoreValue non définie. NetSuite ne permet pas de récupérer ce type.
_hyperlink Texte  
_image Texte Référence à un autre enregistrement
_inlineHTML Texte  
_integerNumber Entier  
_listRecord Texte Référence à un autre enregistrement
_longText  Texte  
_multipleSelect Texte Référence à zéro ou à plus d’enregistrements d’un type donné
_password Texte  
_percent Flottant  
_phoneNumber Texte  
_richText Texte  
_textArea Texte  
_timeOfDay Date et heure  
     

Types de transactions NetSuite

Informations complémentaires

Les sections suivantes décrivent quelques considérations supplémentaires pour l’accès aux données NetSuite .

Filtre d'importation des données

Chaque champ d’une recherche peut avoir un maximum d’un filtre. Les filtres sont traités ensemble par NetSuite lorsque la requête de recherche est exécutée.

Seules les tables accessibles via une "recherche" peuvent avoir des filtres de synchronisation.

En outre, seuls les champs qui existent dans [TableName]SearchRowBasic et dans [TableName]SearchBasic peuvent être utilisés dans les filtres de synchronisation.

Interrogation de NetSuite directement depuis la zone de stockage

Lors de l’interrogation de NetSuite directement (plutôt que de demander des enregistrements importés dans la zone de stockage depuis NetSuite) les expressions de filtre sont limitées aux capacité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 lors des requêtes 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 sur une colonne personnalisée, la colonne personnalisée doit être marquée pour l’importation.
  • Certains filtres de colonne nécessitent l’activation de fonctions NetSuite spécifiques pour que le filtre fonctionne. 

Certaines tables et certaines colonnes ne prennent pas en charge le filtrage.

Champs exclus

Un certain nombre de champs NetSuite sont exclus de l’importation pour diverses raisons. Le tableau ci-dessous présente certains de ces champs exclus.

NetSuite champ Raisons d’exclusion
Client : ccExpDate Les informations de carte de crédit sont exclues aux fins de protection de la vie privée.
Client : ccInternalId Les informations de carte de crédit sont exclues aux fins de protection de la vie privée.
Employé : socialSecurityNumber Exclu pour la protection de la vie privée.
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 par défaut de 1 024 caractères pour un champ de texte) et n’est pas considéré comme particulièrement utile pour les opérations d’intégration.
Transaction : ccExpDate Les informations de carte de crédit sont exclues aux fins de protection de la vie privée.

Informations sur les champs

Informations supplémentaires sur les champs standard et personnalisés NetSuite  :

  • Les champs de texte sont limités à une taille maximale de 1 024 caractères.
  • Les personnalisations des champs standard NetSuite ne sont pas prises en charge.
  • Les champs personnalisés sont visibles. (NetSuite les expose via leurs services Web.)
  • Uniquement les champs personnalisés NetSuite qui ont les ensembles d’attributs "Valeur de magasin" sont importés dans Adaptive Integration.

Recherches enregistrées

Voir la section Adaptive Integrationsur Importation de Recherches enregistrées NetSuitesur la manière de configurer une recherche enregistrée NetSuite .

Explorer depuis Adaptive Insights  vers NetSuite

Les clients peuvent activer l’exploration des données importées de NetSuite. Les liens d’exploration seront disponibles sur les feuilles de planification et les rapports pour les données réelles importées de NetSuite. Afin de configurer l’exploration pour NetSuite, vous devez vous assurer que vos identifiants internes sont utilisés dans le cadre du mappage des colonnes dans le chargeur de planification. Vous devrez configurer un système externe NetSuite et l’attacher à un profil utilisé par le chargeur de planification.

Si vous configurez plusieurs colonnes sur le versant NetSuite pour mapper à une seule dimension de planification, alors ces colonnes NetSuite doivent être combinées dans la source de données à l’aide d’une colonne SQL Tuple. Pour plus de détails, reportez-vous aux sections Integration  sur le mappage des colonnes/données et profils.

Conseils et meilleures pratiques

Meilleures pratiques pour configurer la planification pour l’importation des données réelles GL

Pour importer des données réelles de GL à l’aide de la table Transaction, il est recommandé de définir les comptes GL dans Planification Données réelles par delta mensuel. Dans cette méthode, la planification s’assure d’accumuler des montants sur les comptes de bilan.

Meilleures pratiques pour la négociation NetSuite Messages d’expiration

L’une des erreurs que NetSuite peut retourner :

“Votre recherche a expiré. Si votre recherche inclut l’opérateur 'contient', essayez d’utiliser ’hasKeywords’. Si votre recherche inclut des critères de recherche généraux, essayez de limiter les critères.”

Cette erreur indique que la requête a été exécutée trop longtemps dans NetSuite. Cette condition se produit généralement parce que les critères de filtre dans la requête engendrent un résultat extrêmement important. NetSuite permet environ 3 minutes de traitement pour une requête. (Notez qu’il s’agit du temps imparti pour la requête de base de données réelle dans NetSuite. Le temps nécessaire pour que le résultat soit renvoyé peut être beaucoup plus long puisqu’il est synchronisé par les politiques de trafic de NetSuite.)

Il existe plusieurs façons de traiter cette erreur. Une bonne recommandation générale est de s’assurer que la requête générée est aussi précise que possible. Par exemple, n’incluez que les types de transaction qui sont réellement utilisés par les chargeurs. 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 différentiellement, 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). Cependant, cette valeur peut être trop élevée si vous traitez une requête pour des données à haute densité. Réduire cette valeur réduit la taille de la requête individuelle en resserrant le filtre de temps, 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 est que vous "grignotez" les données plutôt que de les "dévorer", cela signifie que de nombreuses requêtes supplémentaires doivent être envoyées à NetSuite pour terminer la mise à jour. Par exemple, la réduction de 168 à 24 signifie que vous n’essayez que d’attraper un jour à la fois, mais cela signifie sept fois plus de requêtes.

Étant donné qu’il n’existe pas de manière pratique d’indiquer la densité des données à l’avance, vous pouvez essayer d’expérimenter vos requêtes et d’ajuster la propriété Durée du lot de remblayage selon les besoins pour gérer le problème.

Création de listes individuelles à partir de la table de stockage AllCustomLists

Une table de jointure peut être utilisée pour extraire/filtrer une liste individuelle de la table de stockage AllCustomLists . Par exemple, pour créer une table qui a les membres de la liste appelée Resolutiontime (avec InternalId 19), effectuez les étapes suivantes :

Dans cette expression de jointure, la valeur InternalId est le « sélecteur » qui sélectionne la liste personnalisée spécifique que vous souhaitez.

  • Créez une nouvelle table de jointure. Un nom raisonnable pour la table serait "CustomList[*]" où [*] est la valeur « Nom » de la liste qui est extraite. Pour cet exemple, le nom serait "CustomListResolutiontime".
    • Définissez la table principale sur "AllCustomLists".
    • Ajoutez une jointure.
      • Table principale : AllCustomLists
      • Table de jointure : AllCustomLists
      • Type : Interne
      • 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 est le « sélecteur » qui sélectionne la liste personnalisée spécifique que vous souhaitez.

Dans la table de jointure, choisissez uniquement les colonnes de la table principale dont vous avez besoin (généralement uniquement "Value" et "ValueId").

La capture d’écran suivante capture ce résultat :

Conseil pour préparer les données de compte et de niveau

Même si les données de compte et de niveau varient d’un client à l’autre, voici quelques exemples pour montrer comment un concepteur de données peut créer des colonnes SQL dans la zone de stockage pour préparer les données avant de les charger dans la planification.

Compte :

 CASE WHEN "acct.Number" is null THEN TRIM("acct.Name") ELSE TRIM("acct.Number") END 

Niveau :

 CASE WHEN "Department.Name" is null THEN 'No Department' ELSE TRIM("Department.Name") END || ' ' || "Location.Name"

Conseil concernant l’utilisation des règles métier

Le concepteur de données vous permet de créer des règles métier 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 qu’il soit facile d’ajouter la plage de comptes GL à inverser.
  • Évitez d’utiliser des traits de soulignement pour ce type 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.

Configuration de fuseau horaire

Le fuseau horaire du compte pour la source de données NetSuite dans Adaptive Integration doit correspondre au fuseau horaire trouvé dans l’interface graphique NetSuite’s sous Préférences > Fuseau horaire régional.

Si les deux ne correspondent pas, effectuez l’une des opérations suivantes :
 

  • Modifiez le fuseau horaire du compte dans Adaptive Integration pour qu’ils correspondent.
  • Modifiez le paramètre fuseau horaire 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 NetSuite , http://www.netsuite.com. NetSuite génère un PDF de cette aide en ligne avec chaque version de son produit. Vous pouvez trouver une copie récente en recherchant Guide des enregistrements "SuiteTalk (Services Web).”

Les informations NetSuite  sont disponibles sur  https://www.oracle.com/technical-resources/. Si vous inscrivez pour un compte, vous pouvez demander l’accès aux sujets NetSuite.

  • Cet article vous a été utile ?