Le MAINVIEW Data Server maintient des demandes pour identifier les champs sorties des vues des produits MAINVIEW qui doivent êtres suivis. Chaque demande lie un champ avec un exit qui exportera les valeurs selon le désir de l'utilisateur. Des exits de base sont inclus avec le programme par la BMC Software. Ceux-ci sont à modifier pour répondre aux besoins de chaque client.
Pour des informations sur l'utilisation de l'exit ODBC, cliquez ici.
Le MAINVIEW Data Server est écrit en Java, un langage élaboré par la SUN Microsystems dans le but d'avoir un seul langage de programmation, puissant et capable d'être utilisé sans modifications sur tous les ordinateurs. Quelque connaissances du Java sont nécessaires si vous cherchez a modifier les exits. Outre tout un tas de livres sur le sujet, la documentation du Java se trouve à developer.java.sun.com/developer/infodocs/
Les exits sont écrits dans un dialecte du Java qui s'appelle BeanShell. Il s'agit ici d'un projet "Open Source" . La documentation complète se trouve à www.beanshell.org/docs.html . ci-dessous vous trouverez en gros les différences entre BeanScript et Java. Puisque la définition des deux langages est en anglais, ce texte l'est aussi:
Un exit MAINVIEW Data Server est un fichier BeanShell dans le répertoire "Exits" qui contient les quatre méthodes suivantes.
Declaration | Usage |
---|---|
String id() |
Retourne l'identification de cet exit qui paraîtra dans les écrans d'installation. |
boolean begin() |
Invoqué pour initialiser un cycle de rapportage. S'il retourne false, l'enregistrement est annulé. |
boolean record() |
Invoqué une fois pour chaque rang d'une vue. S'il retourne false, l'enregistrement est annulé. |
boolean end() |
Invoqué lorsque tous les rangs demandés ont étés passées à la méthode record(). S'il retourne false, l'enregistrement sera repris plus tard. |
Dans chaque exit du MAINVIEW Data Server, certains valeurs son définis auparavant dans le cadre global. Lesquels, dépend de la méthode étant invoqué.
Ces valeurs sont les mêmes dans tous les exits:
Declaration | Usage |
---|---|
java.util.logging.Logger log |
Access au log de MAINVIEW Data Server. |
java.util.Hashtable anchor |
Une table ou ont peut déposer des objets afin de les passer d'un exit a un autre, ou d'une invocation à une autre. Tous les exits ont acces au même "anchor" et peuvent faire appel a put(key,object) et get(key) pour se communiquer entre eux.. |
Ces valeurs sont disponibles pendant l'invocation des méthodes begin(), record(), et end().
Declaration | Usage |
---|---|
String context |
Le nom du contexte défini dans CASDEF |
String system |
Le nom du système ou tourne le produit |
String server |
Le nom du Product Address Space (PAS) du produit |
String product |
Le nom du produit MAINVIEW auquel appartient la vue |
String view |
Le nom de la vue étant contrôlée. |
com.bmc.mainview.nvbapi.XML |
La définition interne de la vue. On peut en tirer un String avec viewDef.toString() |
java.util.Date time |
La date et l'heure de la fin de l'intervalle d'échantillonnage. |
int duration |
La longueur de l'intervalle en minutes |
java.util.Vector fields |
Un Vector de Strings contenant les noms des champs demandés. |
Ces valeurs sont utiliser pour présenter le contenu de chaque rang a être enregistré.
Declaration | Usage |
---|---|
int row |
Le numéro du rang commençant par 1 |
java.util.Vector values |
Un Vector de String contenant les valeurs des champs nommés dans le Vector fields. S'il s'agit d'un champ numérique, tout suffixe «K» ou «M» aura déjà été remplacé par les nombre requis de zéros. |
java.util.Vector types |
Un Vector de String
contenant le format de chaque champ. Cela pourait être un des suivants:
|
Le code qui suit est un exit nul qui implémente les méthodes requises:
/* Sample recording exit for MAINVIEW Data Server This script is written for use with BeanShell, a Java interpreter. For documentation of Java see http://developer.java.sun.com/developer/infodocs/ For documentation of BeanShell see: http://www.beanshell.org/docs.html Items available from the caller: Logger log The product log service Hashtable anchor A common area for exits to store things */ // Identify this exit String id() { return "Dummy test exit"; } /* Begin recording data from one interval Items available for "begin", "record", and "end" String context The MAINVIEW Context (see CASDEF) String system The system where the product is running String server The product address space (PAS) String product The product that owns the view String view The view that provides the fields Date time The ending time of this interval Vector fields The names of the fields being recorded Note: All of the calls for a single interval will use the same data space. */ boolean begin() { log.info("Sample server entered to record view "+product+"."+view); return true; // Signal success } // Finish recording data from one interval boolean end() { return true; } /* Receive the data from one row of the view Items available for each call int row The row number starting with 1 Vector values The data values. Same size() as fields Vector types The data types: char, number, hex, date, or time */ boolean record() { return true; }