Passer au contenu principal
Adaptive Planning
Dernière mise à jour : 2023-06-23
Concept : conception

Concept : conception

L’API CCDS est conçue pour aider l’opérateur d’intégration à se connecter à la source de données, à créer des objets dans la source de données, à analyser du XML, à convertir des dates et à utiliser fréquemment des éléments lors de la création d’une source de données.

Espaces de noms

Le moteur Prospectus donne accès aux éléments intégrés
Adaptive Planning
Intégration via les espaces de noms 'Adaptive' ou 'ai' (
Adaptive Planning
) espace de noms (alias). Cette bibliothèque est semblable aux bibliothèques Java sociaux populaires comme j défaut (https://jquery.com/).
// JavaScript short namespace example. ai.log.logError('this is a log'); // JavaScript long namespace example. adaptive.log.logError('this is a log');
Sous l'espace de noms racine '
ai
', un certain nombre de fonctions de base sont présentées pour permettre à Java d'interagir avec Internet et
Adaptive Planning
Fonctions Discovery/Integration. Ces API Java externes sont modélisées à l’aide des API Node.js (https://nodejs.org/) comme guide.

Fonctions

Les fonctions acquièrent et définissent des données pour rendre l’API cohérente, fournissent une encapsulation et autorisent explicitement les personnes autorisées à définir et à obtenir. Les fonctions fournissent également l’encapsulation des objets C# pour présenter uniquement les fonctionnalités du code Java et empêcher le dépassement inutile de la limite Java/C$ afin d’améliorer la performance. Les Obtenir ont un préfixe Get et les Setter ont un préfixe Set.
var isEnabled= item.getIsEnabled(); item.setIsEnabled(true);

Contexte Fonctions

Chaque fonction appelée par un CCDS prend un objet Contexte. Le contexte contient des objets en lecture seule pour faciliter le traitement.
function importData(context) { var tableId = context.getTableId(); var tables = context.getDataSource().getTables(); var setting = context.getDataSource().getSetting('password'); }
Le contexte est composé d’objets transmis à partir de C#. Pour améliorer la performance, nous éviter d’exposer les objets C# dans le Java en encapsulant chaque objet dans un objet Java. Cela permet de gérer la communication au-delà de la limite Javascript/C#. Par exemple, lorsque vous demandez le contexte pour les tables, l’objet C# est encapsulé dans un objet Javascript. Quand il y a une hiérarchie d’objets, nous enveloppons chaque niveau dans un objet Javascript. Lorsque vous demandez les colonnes d’un tableau, nous renvoyons une liste d’objets enrobés de Javascript.

Limites

Les limites ci-dessous s'appliquent à une session de traitement de script CCDS en cours d'exécution.
Paramètre
Description
Valeur par défaut
ApplicationConfigurableSetting?
Paramètre de locataire configurable?
Mégaoctets de tas max
Quantité de RAM que le moteur V8 peut consommer.
800
Oui
Oui
Temps limite processeur
La durée pendant laquelle le moteur V8 peut utiliser les ressources du processeur.
10 minutes
Oui
Oui
Limite de durée d'exécution
La durée pendant laquelle le moteur V8 peut s’exécuter, qu’il utilise ou non les ressources du processeur.
60 minutes
Oui
Oui
Délai entre les appels réseau
1 seconde
Oui
Oui
Limite de journaux par seconde
Nombre maximum de journaux pouvant être créés à partir d’un script par seconde.
5
Oui
Oui
Limite de journaux par heure
Nombre maximum de journaux pouvant être créés à partir d’un script par heure.
1000
Oui
Oui
Limite d'utilisation du réseau en mégaoctets
Mégaoctets maximums qu’un script peut envoyer et recevoir sur le réseau.
5 Go
Oui
Oui
Millisecondes entre les demandes de service de script asynchrone
Utilisé pour limiter la circulation entre le service de tâches et un processus de exécution de script. Si le traitement de gestionnaire de scripts peut suivre la demande du service Task, le temps d’attente tombe à 0 milliseconde.
200 millisecondes
Non
Non
Nombre maximum de pages de résultats de script par demande
Nombre de pages de données que le service de tâches peut demander à partir du référentiel d’un exécuteur de scripts.
50
Non
Non
Taille maximum de la page
Nombre de rangées de données que le service de tâches demandera dans chaque page de données
10000
Oui
Oui
Les limites ci-dessous s’appliquent au gestionnaire de bassins de scripts CCDS.
Paramètre
Description
Valeur par défaut
ApplicationConfigurableSetting?
Paramètre de locataire configurable?
Taille maximum du bassin de scripts
Nombre maximum de traitements par script exécutés simultanément.
100
Oui
Non
Taille minimum du bassin de scripts
Nombre minimum de traitements de script à exécuter en même temps (utilisé pour préactiver les traitements de générateur de scripts).
0
Oui
Non
Expiration du délai d'attente pour un bassin de scripts
La durée maximum pendant laquelle une demande pour un traitement de gestionnaire de script peut être mise en file d’attente.
180 secondes
Oui
Non
Taille maximum de la file d'attente du bassin de scripts
Nombre maximum de demandes en attente pour un traitement de gestionnaire de scripts.
1000
Non
Non

Autres limites :

  • Sans utiliser la méthode ai.https.sax.parser dans votre script, il y a une limite à la taille d’un fichier XML pour l’analyse. La limite supérieure de la taille est inconnue, mais pour référence, il est possible d’analyser un fichier de 10 Mo avec une taille de tas de 100 Mo. Nous vous recommandons d’utiliser ai.https.sax.parser pour les fichiers volumineux.
  • Les scripts ne peuvent pas accéder aux adresses IP dans la section
    Adaptive Planning
    réseau.
  • HTTP n'est pas pris en charge, uniquement HTTPS.

Problèmes connus

  • Pendant ImportData/importStructure, une source de données s’appelle testConnection. Dans CCDS, cela signifie deux processus de gestionnaire de script distincts. Il est possible que le premier processus soit créé pour exécuter testConnect. Le deuxième processus pour exécuter ImportData/importStructure peut être mis en file d’attente dans le gestionnaire de bassins et éventuellement dépassé, puis échouer.
  • Les paramètres flexibles apparentés peuvent avoir le même nom d’affichage. Par conséquent, dans les scripts qui accèdent à un paramètre via getSetting(displayName), une seule instance est renvoyée, et il n’est pas garanti que l’une d’elles soit retournée. Il faut empêcher les utilisateurs de créer des paramètres flexibles de congés avec le même nom d’affichage.