Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script

Interface de système d'exploitation

Retour à la page principale


SysCallProgram

Description

Appelle un programme.

Syntaxe

FUNCTION SysCallProgram(VAL commandLine: STRING [VAL arg: STRING ... ]): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
commandLine Expression de type chaîne (string) contenant le nom du programme exécutable à appeler. Si ce nom n'est pas qualifié, le programme est recherché dans les chemins d'accès définis dans PATH.
arg Arguments de ligne de commande relatifs au programme appelé. Chaque argument doit être de type STRING (chaîne).

Remarques

L'instruction SysCallProgram ne peut être utilisée que pour exécuter un programme.

Exemple

KNOWLEDGEBASE Make;
ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
ROUTINES
EVENT ErrorEvent IS
ACTIONS
 WHEN $Event IS $MsgLabel THEN
 SysCallProgram( 'aseedit.exe',
 $EventParm( 2, STRING ) );
 END;
 END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
ACTIONS
(* If no file is specified on the command line prompt for one *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1
 THEN
 Exit;
 END;
 fileName := StrDelete( fileName, StrLength ( fileName )- 2, 3 );
 ListInsert( argList, fileName );
 END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Display Progress window *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                      BitOr( $WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* Create a session for the Application Software-Script Parser. The session is
 created invisible. An error file in the IDE format is
 requested *)
 SysCallProgram('kp.exe', '/IDE', '/e', fileName.&:ERR',
                fileName);
 SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN (* Test for error file *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                      BitOr( $WinTitle, $WinBorder,
 $WinAutoPos, $WinAutoSize, $WinSysMenu,
 $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
 END;
 END;
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-3 Mémoire insuffisante.

Voir aussi


SysCreateSession

Description

Exécute un programme dans une nouvelle session, celle-ci étant une session fille de la session appelante.

Syntaxe

FUNCTION SysCreateSession(REF hdlSession: SESSION,
                          VAL program, argList: STRING,
                          VAL xLoc, yLoc, width,
                          height, style: INTEGER): INTEGER;

Attention : Les sessions créées par une application sont fermées lorsque cette application prend fin.

Remarques concernant les arguments

Nom de l'argument Description
hdlSession Renvoie le descripteur de la nouvelle session. Si celle-ci n'est pas créée, le descripteur prend la valeur $Unknown.
program Nom du programme à exécuter. Si ce programme ne figure pas dans les chemins d'accès définis dans PATH, vous devez indiquer un nom qualifié complet.
argList Arguments de ligne de commande relatifs au programme appelé.
xLoc Abscisse (x) de l'angle supérieur gauche de la fenêtre de la nouvelle session. Tous les programmes ne permettent pas le positionnement.
yLoc Ordonnée (y) de l'angle supérieur gauche de la fenêtre de la nouvelle session. Tous les programmes ne permettent pas le positionnement.
width Largeur de la fenêtre de la nouvelle session. Tous les programmes ne permettent pas le positionnement.
height Hauteur de la fenêtre de la nouvelle session. Tous les programmes ne permettent pas le positionnement.
style Indicateurs de style qui contrôlent le comportement de la nouvelle session. Vous pouvez utiliser toute combinaison des indicateurs suivants pour définir le style :
  • $SessionBackground - crée la session à l'arrière-plan. La nouvelle fenêtre n'est donc pas active lors de création.
  • $SessionInvisible - crée une session invisible.
  • $SessionAutoPosition - positionne la session sur l'écran sans tenir compte des paramètres de taille et de position.

Remarques

Pour que cette fonction puisse s'exécuter, la liste d'arguments ne doit pas être indéfinie. En l'absence d'arguments spécifiques à transmettre, vous devez donc indiquer une chaîne de longueur nulle ('').

Remarque : Ne transmettez pas la valeur $Unknown.

Sous OS/2, une session Windows plein écran peut être créée en indiquant COMMAND.COM comme nom de programme, et /c win <progname> comme arguments.

Paramètres de dimensionnement des fenêtres

Sous OS/2, de nombreuses applications Presentation Manager définissent elles-mêmes la taille de leur fenêtre lors de leur démarrage. Dans ce cas, les paramètres xLoc, yLoc, xLen et yLen sont ignorés.

Les paramètres xLoc, yLoc, xLen et yLen parameters ne sont pas utilisés sous Windows. Dans cet environnement, toutes les sessions sont créées en utilisant $SessionAutoPosition pour ces styles.

Exemple

KNOWLEDGEBASE Make;
ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
ROUTINES
EVENT ErrorEvent IS
ACTIONS
 WHEN $Event IS $MsgLabel THEN
SysCallProgram( 'aseedit.exe', $EventParm( 2, STRING ) );
 END;
 END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
ACTIONS
(* If no file is specified on the command line prompt for one *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb',
                  0, 0, 'File to parse?',
                  $FileDlgCenter + $FileDlgOpen ) <1
 THEN
 Exit;
 END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
 END;



 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Display Progress window *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4,
                       'Parsing', $Helvetica, 14,
                      BitOr( $WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl,fileName );
(* Create a session for the Application Software-Script parser. The session is *)
(* created invisibly. An error file in the IDE format *)
(* is requested *)
SysCreateSession( hdlsession, 'kp.exe','/IDE /e' &
                 fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession ); 
(* Close progress window when parser is finished *)
 SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Test for error file *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                      BitOr( $WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
 END;
 END;
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-4 La session n'a pu être créée.

Voir aussi


SysDelay

Description

Entraîne une pause de n millisecondes dans l'exécution.

Syntaxe

FUNCTION SysDelay(VAL time: INTEGER): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
time Durée de la pause, exprimée en millisecondes.

Exemple

KNOWLEDGEBASE Tone;
ROUTINES
PROCEDURE ToneExample;
PRIVATE
ROUTINES
PROCEDURE ToneExample IS
ACTIONS
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 300, 400 );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.

Voir aussi


SysGetClipboard

Description

Extrait une chaîne à partir du presse-papiers du système.

Syntaxe

FUNCTION SysGetClipboard(REF clipBoard: STRING): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
clipBoard Renvoie le contenu du presse-papiers du système. Si le presse-papiers est vide, la valeur renvoyée est $Unknown.

Exemple

KNOWLEDGEBASE Clip;
CONSTANTS
 MENU_REFRESH IS 101;
 MENU_EXIT IS 102;
ROUTINES
 PROCEDURE ClipView;
PRIVATE
CONSTANTS
 menuList IS { '~File', '~Refresh', 'e~xit', '' }: LIST OF
STRING;
ROUTINES
(* ******** EDITOR EVENT HANDLER ******** *)
EVENT ClipboardEvent( REF clipBoard: STRING ) IS
ACTIONS
 WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar( $Handle, menuList );
 SysGetClipboard( clipBoard );
 WinWrite( $Handle, clipBoard );
 ELSWHEN $MsgMenu THEN (* Menu Message *)
 WHEN $MenuSelection IS MENU_REFRESH THEN
 SysGetClipboard( clipBoard );
 WinCLear( $Handle );
 WinWrite( $Handle, clipBoard );
 ELSWHEN MENU_EXIT THEN
 SendMessage( $Handle, $MsgClose );
 END;
 END;
 END;
PROCEDURE ClipView IS
VARIABLES
 whdl: WINDOW;
 result: INTEGER;
ACTIONS
 result := WinCreateScrollWindow( $Desktop, whdl,
                                 ClipboardEvent{''}, 0, 0, 0, 0,
                                 'KML Clipboard viewer', '', 10,
                                 BitOr($WinBorder, $WinTitle,
                                 $WinResize, $WinSysMenu,
                                 $WinMenu, $WinAutoPos,
                                 $WinAutoSize, $WinVScroll,
                                 $WinHScroll, $WinTaskList ))
                                 IF result < 1 THEN
                                 WinMessageBox( $Desktop, 'Error', $mbok + $MBIconError,
                                 'Open failed' & result );
 END;
 WinWait( whdl );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
0 Le presse-papiers est vide.
-3 Mémoire insuffisante.
-10 L'un des appels effectués au système d'exploitation en vue d'accéder au presse-papiers a échoué.

Voir aussi


SysGetContext

Description

Complète les champs de l'enregistrement de contexte concerné avec les informations relatives à l'environnement de fonctionnement en cours.

Syntaxe

FUNCTION SysGetContext (REF context: $SystemContext): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
context Variable de type $SystemContext.

Remarques

$SystemContext est un type RECORD déclaré dans la base de connaissances kml.kb du système. La déclaration de $SystemContext est la suivante :

$SystemContext IS RECORD
 operatingSystem: String;
 ASEVersion: String;
 VendorOSName: String:
 VendorOSVersion: String;
 FreeMemory: Integer:
 FreeResources: Integer:
 NLSInfo: $SystemNlsInfo;
 END;

Voici la description des champs de $SystemContext :

Champ Description
operatingSystem Windows, OS/2 ou UNIX.
ASEVersion Actuellement, 5.0.
VendorOSName Nom complet du fournisseur du système d'exploitation du poste de travail. Ce champ diffère du champ operatingSystem de $SystemContext car il contient le véritable nom du système d'exploitation, tel que 'Microsoft Windows 95,' et non un identificateur.
VendorOSVersion Numéro de version attribué par le fournisseur au système d'exploitation du poste de travail. La valeur de ce champ peut être inconnue dans les cas suivants :
  • le numéro de version ne peut être déterminé avec une précision suffisante (par exemple, dans le cas de Microsoft Windows NT),
  • le numéro de version fait partie du nom du système d'exploitation.
FreeMemory Estimation en cours, effectuée par le système d'exploitation, de la quantité de mémoire disponible (physique et virtuelle) au moment de l'appel SysGetContext. La valeur renvoyée est exprimée en kilo-octets (Ko).
FreeResources Estimation en cours, effectuée par le système d'exploitation, de la quantité de ressources disponibles au moment de l'appel SysGetContext. La valeur de ce champ peut être inconnue si le système d'exploitation ne prend pas ce concept en charge (ce qui est le cas pour OS/2, par exemple).
NlsInfo Informations NLS (support de langue nationale). Reportez-vous à la description de l'enregistrement $SystemNlsInfo ci-après.


L'enregistrement renvoyé par SysGetContext contient les informations NLS suivantes :

$SystemNlsInfo IS RECORD
 CountryCode: Integer;
 CurrencySymbol: String;
 CurrencyBefore: Boolean;
 DateFourDigitYear: Boolean;
 DateOrdering: String;
 DateSeparator: String;
 DecimalSeparator: String;
 DecimalLeadingZero: Boolean;
 NumCurrencyDecimalDigits: Integer;
 NumCurrencyExtraSpaces: Integer;
 NumericGroupSeparator: String;
 NumRealDecimalDigits: Integer;
 TimeSeparator: String;
Champ Description
CountryCode Code pays de la machine hôte.
CurrencyBefore Indique si le symbole monétaire est affiché avant ou après la valeur numérique correspondante.

TRUE - Le symbole monétaire est placé avant la valeur.

FALSE - Le symbole monétaire est placé après la valeur.

CurrencySymbol Symbole monétaire de la machine hôte.
DateFourDigitYear Indique si le format de date natif comporte 2 ou 4 chiffres pour l'année.

TRUE - L'année est codée sur 4 chiffres (par exemple, 1999).

FALSE - L'année est codée sur 2 chiffres (par exemple, 99).

DateOrdering Chaîne de format telle que MM/DD/YY.
DateSeparator Caractère utilisé pour séparer les valeurs représentant le jour, le mois et l'année dans une date.
DecimalSeparator Caractère utilisé pour séparer la partie entière d'un nombre de sa partie décimale.
DecimalLeadingZero Indique si les nombres décimaux inférieurs à 1 nécessitent un zéro initial (par exemple, 0,123 ou ,123).
IntlCurrencySymbol Symbole monétaire à utiliser lorsque le caractère correct n'est pas disponible.
LocaleId Environnement local en cours de la machine hôte.
NumCurrencyDecimalDigit Nombre de chiffres généralement placés avant le symbole décimal.
NumCurrencyExtraSpaces Nombre d'espaces à insérer entre la valeur numérique et le symbole monétaire.
NumericGroupSeparator Caractère à utiliser pour regrouper les chiffres des grands nombres (en d'autres termes, il s'agit du séparateur des milliers).
NumRealDecimalDigits Nombre de chiffres à utiliser pour afficher les nombres réels (par exemple, 3,14159 ou 3,14).
TimeSeparator Caractère à utiliser pour séparer les heures, les minutes et les secondes.

L'enregistrement (RECORD) $SystemContext utilisé par cette fonction comprend un nouveau champ, appelé GMTBias. Il s'agit de la différence, exprimée en secondes, entre l'heure locale
et l'heure GMT équivalente. Cette valeur est généralement obtenue du système d'exploitation hôte, mais elle peut également être définie manuellement à l'aide de SysSetGMTDiff.

Propriétés des zones d'entrée

La page Zone de texte de cette boîte de dialogue comporte une nouvelle case à cocher appelée "Conversion GMT". Cette case ne peut être cochée que pour les zones d'entrée dont le contenu est de type Heure ou Date. Si vous cochez cette case, Tivoli Service Desk Developer's Toolkit convertira automatiquement (voir SysLocalizeTime) l'heure ou la date fournie dans la zone concernée.

Propriétés d'une boîte à liste multicolonne

La page Colonnes de cette boîte de dialogue comporte une nouvelle case à cocher appelée "Conversion GMT". Cette case peut être définie individuellement pour chaque
colonne de la boîte à liste. Elle ne doit être cochée que pour les colonnes qui contiendront des valeurs de type date (DATE) ou heure (TIME).

Appariement des zones date/heure dans les contrôles

Lorsque vous utilisez les cases à cocher Conversion GMT pour les zones d'entrée et les colonnes des boîtes à liste multicolonnes (voir ci-dessus),
vous devez respecter une convention de dénomination simple pour que la conversion puisse fonctionner.

Si la conversion GMT est demandée pour une zone de type Heure, elle doit l'être aussi pour la zone de type Date correspondante. Ces deux zones doivent être associées par l'intermédiaire d'une convention de dénomination (pour plus d'informations, reportez-vous à la description des instructions SysLocalizeTime et SysGlobalizeTime).


Les noms de contrôles de ces zones doivent se terminer respectivement par "_TIME" et "_DATE". Le reste du nom doit être identique pour chacune de ces zones. Par exemple :

Nom de la zone Heure Nom de la zone Date Validité
----------------------- ----------------------- --------
START_TIME START_DATE Correct
MY_BIRTH_TIME MY_BIRTH_DATE Correct
MYBIRTHTIME MYBIRTHDATE Incorrect
THE_TIME_ENDS THE_DATE_ENDS Incorrect

Si les deux zones ne sont pas appariées correctement, la conversion ne peut avoir lieu.

Voir aussi

Code retour Description
1 Opération exécutée avec succès.
-2 Le paramètre de contexte contenait une référence incorrecte.

SysGetEnvironment

Description

La fonction SysGetEnvironment permet de rechercher une clé particulière dans une liste d'environnement fournie par le système d'exploitation. Si la clé est trouvée, SysGetEnvironment renvoie la chaîne correspondante.

Syntaxe

FUNCTION SysGetEnvironment (VAL key: STRING): STRING;

Remarques concernant les arguments

Nom de l'argument Description
key Clé à rechercher.

Remarques

Si la liste d'environnement ne contient aucune entrée correspondant à la clé recherchée, la fonction renvoie la valeur $Unknown.

Exemple

IF UNKNOWN (fileName := SysGetEnvironment ('CONFIG')) THEN
            CreateDefaultConfigFile;\
 END;
ConfigFile :=FOpen (fileName);

Codes retour

Si la clé est trouvée, SysGetEnvironment renvoie la chaîne correspondante.

Voir aussi

SysSetEnvironment


SysGetTaskList

Description

Interroge le système afin d'obtenir la liste des tâches en cours.

Syntaxe

FUNCTION SysGetTaskList(REF taskList: LIST OF $TASKRECORD): INTEGER;

Avertissement

Remarque : Les commandes de session système ne peuvent être utilisées qu'avec les sessions créées par la session appelante.

OS/2 impose des restrictions en ce qui concerne les messages envoyés à des fenêtres appartenant à des processus différents. Pour plus d'informations sur ces restrictions, reportez-vous à la documentation relative à la programmation système de votre version d'OS/2.

Remarques concernant les arguments

Nom de l'argument Description
taskList Cet argument doit être une variable de type liste possédant le type d'enregistrement système $TASKRECORD. $TASKRECORD est défini de la manière suivante dans la base de connaissance kml.kb du système :
$TASKRECORD IS
 title: STRING;
 hWindow: WINDOW;
 hSession: SESSION;
 hProcess: PROCESS;
 END;

Remarques

SysGetTaskList renvoie les enregistrements de tâches de chacune des sessions ouvertes, y compris celles qui ne sont pas de type TSD Script. Chaque enregistrement de tâche contient le texte de titre qui figure dans la fenêtre supérieure de la session considérée.

Exemple

KNOWLEDGEBASE Tasks;
ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
VARIABLES
 taskList: LIST OF $TASKRECORD; 
(* $TASKRECORD is system-
 defined *)
ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN EXIT FALSE;
 END;
 FOR taskList DO (* Search list for task name *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
 END;
 END;
 EXIT FALSE;
 END;

Codes retour

Code retour Description
any Renvoie les enregistrements de tâches de chacune des sessions ouvertes, y compris celles qui ne sont pas de type TSD Script. Chaque enregistrement de tâche contient le texte de titre qui figure dans la fenêtre supérieure de la session considérée. Reportez-vous aux remarques pour connaître les différences de fonctionnement de SysGetTaskList entre OS/2 et Windows.
-2 Valeur inconnue.
-3 Mémoire insuffisante.

Voir aussi

SysSelectTask


SysOSShell

Description

Crée une session de traitement de commandes.

Syntaxe

FUNCTION SysOSShell(VAL commandLine: STRING): INTEGER;

Avertissement

Sous OS/2, les shells démarrés par SysOSShell sont arrêtés lorsque l'application TSD Script (la session mère) prend fin.

Remarques concernant les arguments

Nom de l'argument Description
commandLine Commande exécutée par l'interpréteur de commandes. La transmission d'une chaîne vide entraîne l'affichage d'une nouvelle invite de commande.

Remarques

Sous OS/2, SysOSShell ouvre une session exécutant le shell indiqué dans la variable d'environnement COMSPEC. (Il s'agit généralement de l'interpréteur de commandes d'OS/2, cmd.exe.) L'argument de SysOSShell est transmis au shell sous la forme de sa ligne de commande. Le shell démarré par SysOSShell s'exécute de façon asynchrone par rapport au processus appelant.

Sous UNIX, la commande indiquée comme argument est exécutée directement sous l'une des formes suivantes :

SysOSShell démarre le programme /usr/bin/X11/xterm (/usr/openwin/bin/xterm pour les machines Sun). Pour démarrer un autre programme, indiquez son nom (s'il figure dans PATH) ou son nom qualifié complet (s'il ne figure pas dans PATH) dans la variable SAI_XTERM. (SAI_XTERM doit se trouver dans l'environnement de l'utilisateur avant l'exécution du programme TSD Script qui appelle SysOSShell.)

Sous Windows, SysOSShell effectue les opérations suivantes :

Les deux arguments /C et /K servent à exécuter le shell à partir d'une ligne de commande. /C exécute la commande et ferme le shell, alors que /K exécute la commande et laisse le shell ouvert. Ces arguments ne sont pas applicables à UNIX.

Exemple

KNOWLEDGEBASE OSShell;
ROUTINES
PROCEDURE OSShellExample;
PRIVATE
ROUTINES
PROCEDURE OSShellExample IS
ACTIONS
 (* /C or /K is required to run an external command for
 Windows or OS/2 *)
 SysOSShell( '/C aseedit' );
 (* Child sessions end when parent session is terminated *)
 WinMessageBox( $Desktop, 'Cancel', $mbok, '' );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.

Voir aussi

Pour plus d'informations sur cmd.exe, reportez-vous à la documentation d'OS/2.

Pour plus d'informations sur command.com, reportez-vous à l'aide en ligne de DOS.


SysSelectSession

Description

Sélectionne une session et rend sa fenêtre active.

Syntaxe

FUNCTION SysSelectSession(VAL hdlSession: SESSION): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
hdlSession Descripteur de la session sélectionnée.

Remarques

Pour qu'une session OS/2 puisse être sélectionnée, elle doit comporter une fenêtre possédant le style $WinTaskList. En effet, les sessions qui ne figurent pas dans la liste des tâches ne peuvent être sélectionnées. La session doit avoir été créée par la session appelante. Sous UNIX, cette fonction renvoie 1 (opération réussie) sans tenter de sélectionner une session.

Exemple

KNOWLEDGEBASE Make2;
ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
VARIABLES
 hdlSessionEdit: SESSION;
ROUTINES
EVENT ErrorEvent IS
ACTIONS
 WHEN $Event IS $MsgLabel THEN
 IF SysSelectSession( hdlSessionEdit ) < 1 THEN
 SysCreateSession( hdlSessionEdit, 'vi.exe',
                  $EventParm(2, STRING ),
                  0, 0, 0, 0, $SessionAutoPosition );
 END;
 END;
 END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
ACTIONS
(* If no file is specified on the command line prompt for one *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1
 THEN
 Exit;
 END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
 END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Display Progress window *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                      BitOr( $WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWrIteLN( whdl, fileName );
(* Create a session for the Application Software-Script parser.
The session is created invisible.An error file in the IDE format *)
(* is requested *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE /e' &
                  fileName & '.ERR ' & fileName, 0, 0, 0, 0,
                  $SessionInvisible );
 SysWaitSession( hdlSession );
(* Close progress window when parser is finished *)
 SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Test for error file *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                      BitOr( $WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, $WinReSize ));
 SendMessage( whdl, $MsgOpenFile,
                      fileName & '.ERR',
             fileName,
 $HyperNoWordWrap );
 WinWait( whdl );
 END;
 END; (* end of FOR*)
END; (* end of make KB*)

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-369 Le descripteur de session ne fait pas référence à une session correcte.
-460 Le processus appelant n'est pas le père de la session. Une session ne peut être sélectionnée que par le processus qui l'a créée.

Voir aussi


SysSelectTask

Description

Active la tâche sélectionnée.

Syntaxe

FUNCTION SysSelectTask(VAL task: $TASKRECORD): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
task Cet argument doit posséder le type d'enregistrement système $TASKRECORD. $TASKRECORD est défini de la manière suivante dans la base de connaissance kml.kb du système :
$TASKRECORD IS title: STRING;hWindow:
WINDOW; hSession: SESSION;
hProcess: PROCESS; END;

Les champs de l'enregistrement doivent avoir été définis à l'aide de SysGetTaskList.

Exemple

KNOWLEDGEBASE Tasks;
ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
VARIABLES
 taskList: LIST OF $TASKRECORD;
(* $TASKRECORD is system-defined *)
ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN
 EXIT FALSE;
 END;
 FOR taskList DO (* Search list for task name *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
 END;
 END;
 EXIT FALSE;
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-10 La demande en vue d'obtenir du système d'exploitation un service nécessaire pour exécuter la fonction a échoué. Des valeurs incorrectes pour les arguments de l'instruction, ou des restrictions liées aux ressources du système, peuvent être à l'origine de cet échec.

Voir aussi

SysGetTaskList


SysSetClipboard

Description

Définit la valeur de la chaîne contenue dans le presse-papiers du système.

Syntaxe

FUNCTION SysSetClipboard(VAL clipBoard: STRING): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
clipBoard La nouvelle valeur remplace celle figurant éventuellement dans le presse-papiers.

Exemple

KNOWLEDGEBASE SetClip;
ROUTINES
 PROCEDURE SetClipBoard( VAL clipBoard: LIST OF STRING );
PRIVATE
ROUTINES
PROCEDURE SetClipBoard( VAL clipBoard: LIST OF STRING ) IS
VARIABLES
 clipBoardString: STRING;
ACTIONS
 clipBoardString := '';
 FOR clipBoard DO
 clipBoardString := clipBoardString & ' ' & clipBoard[
                    $CURRENT ];
 END;
 SysSetClipboard( clipBoardString );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-3 Mémoire insuffisante.
-10 L'une des opérations du système d'exploitation effectuée en vue d'accéder au presse-papiers a échoué.

Voir aussi

SysGetClipboard


SysSetEnvironment

Description

Ajoute une entrée à (ou modifie une entrée dans) la liste d'environnement fournie par le système d'exploitation, de sorte que la nouvelle valeur (le cas échéant) soit associée à la clé indiquée.

Syntaxe

FUNCTION SysSetEnvironment (VAL key: STRING [, VAL newValue: STRING]): INTEGER;

Avertissement

DOS et OS/2 n'effectue pas de copie des chaînes transmises à une liste d'environnement. Ils utilisent directement ces chaînes, ce qui a deux implications en termes d'utilisation de la mémoire :

Remarques concernant les arguments

Nom de l'argument Description
key Chaîne de clé de la liste d'environnement.
newValue Nouvelle chaîne à associer à la clé.

Remarques

La fonction SysSetEnvironment associe la nouvelle valeur à la clé correspondante de la liste d'environnement, ou supprime la clé et sa valeur si l'argument newValue est omis.

La nature exacte de la liste d'environnement dépend du système d'exploitation. Toutefois, la liste d'environnement est généralement copiée d'un processus parent dans un processus enfant, et détruite lorsque ce dernier prend fin.

Une variable d'environnement définie à l'aide de SysSetEnvironment doit renvoyer la nouvelle valeur et être copiée dans les processus enfants démarrés par les appels SysCallProgram, SysCreateSession et SysOSShell. Cette variable n'est pas recopiée dans l'environnement dans lequel le système d'exécution de Tivoli Service Desk Developer's Toolkit a démarré.

Remarque : Si l'argument newValue est omis, la variable d'environnement indiquée est supprimée.

Exemple

IF SQLSelectInto ('SELECT ICONS FROM DIRECTORIES',
 iconPATHPATHPATHPATH)
 >= 1 AND
 StrPos (globalPath := SysGetEnvironment ('PATH'), iconPath)
 = 0
 THEN
 SysSetEnvironment ('PATH', globalPath & ';' & iconPath);
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-10 L'appel du système d'exploitation a échoué.

Voir aussi


SysSetGMTDiff

Description

Normalement, Tivoli Service Desk Developer's Toolkit interroge le système d'exploitation pour connaître la différence entre l'heure locale et l'heure GMT (Greenwich Mean Time). Cette fonction peut être utilisée pour définir manuellement cette différence en remplaçant la valeur native.

Syntaxe

FUNCTION SysSetGMTDiff( VAL NewDiff : Integer
 [, $Seconds | $Minutes | $Hours]) : INTEGER;

Remarques concernant les arguments

Argument Description
NewDiff Nouvelle différence entre l'heure GMT et l'heure locale. Le nombre indiqué sera ajouté à l'heure locale pour la convertir en heure GMT. Par exemple, la différence par défaut entre l'heure GMT et l'heure de New York est de +5 heures. Pour le Caire, elle est de -2 heures. La plage admise pour cet argument est : -12 heures <= NewDiff <= +12 heures.
Units Unité de mesure utilisée pour exprimer la différence.

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-1 Une différence incorrecte a été indiquée.

Exemple

KNOWLEDGEBASE GMTTest;
ROUTINES
Procedure Proc1;
PRIVATE
ROUTINES
Procedure Proc1 IS
VARIABLES
 whdl : Window;
 r : $SystemContext;
 t : TIME;
 d : DATE;
 nRC : Integer;
 ACTIONS
 WinCreateScrollWindow($Desktop, whdl, $NullHandler, 15,10,80,20, 'Stuff',
                       $SystemMonospaced, 10, $WinDefaultStyle);
 --Set the GMT bias to something funky. This is the equivalent of
 --the GMT Moscow...
 nRC := SysSetGMTDiff(-3, $hours);
 WinWriteLn(whdl, 'SysSetGMTDiff returned: ' & nRC);
 --Retrieve the GMT bias which should now be -3 hours (but specified in
 --seconds) and display it
 SysGetContext(r);
 WinWriteLn(whdl, 'GMT Bias = ' & r.GMTBias);
 --I picked this time and date at random
 t := {01,07,07}:TIME;
 d := {07,07,1993}:DATE;
 WinWriteLn(whdl, 'Before globalization: ' & d & ' ' & t );
 --Globalize the time and display it
 SysGlobalizeTime(t, d);
 WinWriteLn(whdl, 'After globalization: ' & d & ' ' & t );
 --Localize it again and display it (this should be the same as "before
 --globalization"
 SysLocalizeTime(t, d);
 WinWriteLn(whdl, 'After localization: ' & d & ' ' & t );
 WinWait( whdl );
 END;

Voir aussi


SysSetReturnCode

Description

Définit la valeur entière que l'interpréteur TSD Script renvoie au shell de commande UNIX ou à la fenêtre DOS en cas de succès de l'opération. Si SysSetReturnCode n'est pas utilisée, l'interpréteur renvoie la valeur 1.

Syntaxe

FUNCTION SysSetReturnCode(VAL Code: INTEGER]):INTEGER;

Attention : Si l'interpréteur TSD Script rencontre une erreur fatale et doit s'interrompre, il remplace toute valeur définie par SysSetReturnCode.

Remarques concernant les arguments

Nom de l'argument Description
code Code à renvoyer au shell de commande ou à la fenêtre DOS.

Remarques

Si cette fonction est appelée plusieurs fois, la valeur transmise lors du dernier appel est utilisée.

Remarque : Cette fonction ne doit pas être confondue avec l'instruction TSD Script RETURN, qui définit la valeur renvoyée par une fonction TSD Script.

Exemple

PROCEDURE DeepThought IS
ACTIONS
 SysDelay(1000000);
 SysSetReturnCode(42);
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-10 L'appel du système d'exploitation a échoué.

Voir aussi


SysStopSession

Description

Interrompt une session active.

Syntaxe

FUNCTION SysStopSession(VAL hdlSession: SESSION): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
hdlSession Descripteur de la session à interrompre. Cette session doit avoir été démarrée par le programme appelant.

Exemple

KNOWLEDGEBASE Make;
ROUTINES
 PROCEDURE SessionExp( VAL argList: LIST OF STRING );
PRIVATE
ROUTINES
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
ACTIONS
 SysCreateSession( hdlSession, argList[1], argList[2],
                  0, 0, 0, 0, $SessionAutoPos );
 SysStopSession( hdlSession );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.
-369 Le descripteur de session ne fait pas référence à une session correcte. Il se peut que la session concernée n'existe plus.
-460 Le processus appelant n'est pas le père de la session. Un processus ne peut arrêter une session que s'il l'a créée.

Voir aussi


SysTone

Description

Emet un signal sonore via le haut-parleur du système.

Syntaxe

FUNCTION SysTone(VAL frequency: INTEGER, VAL duration: INTEGER
                 ): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
frequency Fréquence, exprimée en Hertz, du signal sonore à émettre.
duration Durée du signal sonore, exprimée en millisecondes.

Remarques

Sous Windows 98, la durée et la fréquence prennent les valeurs par défaut du signal sonore défini pour le système.

Exemple

KNOWLEDGEBASE Tone;
ROUTINES
PROCEDURE ToneExample;
PRIVATE
ROUTINES
PROCEDURE ToneExample IS
ACTIONS
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 300, 400 );
 END;

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.

Voir aussi

SysDelay


SysWaitSession

Description

Attend la fin d'une session.

Syntaxe

FUNCTION SysWaitSession(VAL hdlSession: SESSION): INTEGER;

Attention : Les attentes de fins de sessions sont placées en pile. Cela signifie que le dernier appel à SysWaitSession doit rendre la main pour que les appels précédents éventuels puissent le faire, et ce même si les sessions concernées par ces derniers ont déjà pris fin.

Remarques concernant les arguments

Nom de l'argument Description
hdlSession Descripteur de la session dont la fin est attendue. Cette session doit avoir été démarrée par le processus appelant.

Exemple

KNOWLEDGEBASE Make;
ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
ROUTINES
EVENT ErrorEvent IS
ACTIONS
 WHEN $Event IS $MsgLabel THEN
SysCallProgram( 'aseedit.exe', $EventParm( 2, STRING ) );
 END;
 END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
ACTIONS
(* If no file is specified on the command line prompt for one *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1

 THEN
 Exit;
 END;
 fileName := StrDelete( fileName,

 StrLength( fileName ) - 2, 3 );
 ListInsert( argList, fileName );
 END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Display Progress window *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                      BitOr( $WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* Create a session for the Application Software-Script parser. The session is
 created invisible. An error file in the IDE format is *)
(* requested *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE
                  /e' & fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession );
(* Close progress window when parser is finished *)
 SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Test for error file *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                      BitOr( $WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, (* created
                      invisible. An error file
                      in the IDE format is requested
                      *) $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
 END;
 END; (* end of FOR*)
END; (* end of make KB*)

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-2 Valeur inconnue.

Voir aussi


SysYield

Description

Bloque l'unité d'exécution en cours jusqu'à ce que tous les messages de la file d'attente aient été envoyés.

Syntaxe

FUNCTION SysYield

Remarques

SysYield est utile si l'interface utilisateur de l'application doit refléter les messages générés par une fonction qui utilise le processeur de façon intensive.

Voir aussi

SysDelay


SysGlobalizeTime

Description

Cette fonction convertit en son équivalent GMT une variable de type Heure (TIME) dont on suppose qu'elle contient une heure locale. Une date doit également être fournie pour le cas où la conversion l'affecterait aussi.

Syntaxe

FUNCTION SysGlobalizeTime(REF t : TIME, REF d : DATE) : INTEGER;

Remarques concernant les arguments

Argument Description
t Heure à "globaliser" (convertir).
d La valeur de date associée doit être fournie. En effet, si la conversion de l'heure entraîne un passage au jour suivant ou précédent, la date est modifiée en conséquence. SysGlobalizeTime doit TOUJOURS être utilisée sur une paire Date/Heure.

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-1 Une date ou une heure inconnues ont été fournies.

Exemple

Reportez-vous à l'exemple de SysSetGMTDiff.

Voir aussi


SysLocalizeTime

Description

Cette fonction convertit en son équivalent local une variable de type Heure (TIME) dont on suppose qu'elle contient une heure GMT. Une date doit également être fournie pour le cas où la conversion l'affecterait aussi.

Syntaxe

FUNCTION SysLocalizeTime(REF t : TIME, REF d : DATE) : INTEGER;

Remarques concernant les arguments

Argument Description
t Heure à "localiser" (convertir).
d La valeur de date associée doit être fournie. En effet, si la conversion de l'heure entraîne un passage au jour suivant ou précédent, la date est modifiée en conséquence. SysLocalizeTime doit TOUJOURS être utilisée sur une paire Date/Heure.

Codes retour

Code retour Description
1 Opération exécutée avec succès.
-1 Une date ou une heure inconnues ont été fournies.

Exemple

Reportez-vous à l'exemple de SysSetGMTDiff.

Voir aussi


Tivoli Service Desk 6.0 Developer's Toolkit Script - Manuel de référence du langage TSD Script

Retour à la page principale

Copyright