Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Interfaccia del sistema operativo

Ritorna alla pagina principale


SysCallProgram

Descrizione

Chiama un programma.

Sintassi

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

Note argomento

Nome dell'argomento Descrizione
commandLine Un'espressione di stringa che contiene il nome di un programma eseguibile da chiamare. Se il nome non è qualificato, viene inquiryto il PATH per il programma.
arg Gli argomenti della riga comandi per il programma chiamato. E' necessario che ogni argomento sia di tipo STRING.

Note

SysCallProgram può essere utilizzato solo per avviare un programma.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Esito positivo
-2 Valore sconosciuto
-3 Memoria insufficiente

Consultare anche


SysCreateSession

Descrizione

Avvia un programma in una nuova sessione come figlio della sessione chiamata.

Sintassi

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

Avvertenza: Tutte le sessioni create da un'applicazione vengono chiuse quando termina l'applicazione.

Note argomento

Nome dell'argomento Descrizione
hdlSession Viene restituita l'handle sessione della sessione appena creata. Se la sessione non è stata creata, l'handle è impostata su $Unknown.
program Il nome del programma da eseguire. Se il programma non è nel PATH, è necessario specificare un nome qualificato per esteso.
argList Tutti gli argomenti della riga comandi per il programma chiamato.
xLoc L'ubicazione X dell'angolo in alto a sinistra della nuova sessione. Non tutti i programmi supportano il posizionamento.
yLoc L'ubicazione Y dell'angolo in alto a sinistra della nuova sessione. Non tutti i programmi supportano il posizionamento.
width La larghezza della nuova sessione. Non tutti i programmi supportano il posizionamento.
height L'altezza della nuova sessione. Non tutti i programmi supportano il posizionamento.
style Gli indicatori di stile che controllano il comportamento della nuova sessione. E' possibile combinare ognuno dei seguenti indicatori per creare lo stile:
  • $SessionBackground - $SessionBackground crea lo sfondo. Esso non viene evidenziato durante la creazione.
  • $SessionInvisible - $SessionInvisible crea invisibilmente.
  • $SessionAutoPosition - $SessionAutoPosition posiziona la sessione sullo schermo, ignorando i parametri ubicazione e dimensione.

Note

E' necessario conoscere l'elenco degli argomenti perché questa funzione operi. Se non esiste nessun argomento, è necessario inoltrare una stringa di lunghezza 0 ('').

Nota: Non inoltrare $Unknown.

Da OS/2, è possibile creare una sessione Windows a tutto schermo specificando COMMAND.COM come programma e /c win <nomeprog> come argomenti.

Parametri di dimensionamento finestra

In OS/2, molte applicazioni Presentation Manager impostano impostano la dimensione della propria finestra quando vengono avviate. In questo caso, i parametri xLoc, yLoc, xLen e yLen vengono ignorati.

I parametri xLoc, yLoc, xLen e yLen non vengono utilizzati in Windows. In Windows, tutte le sessioni vengono create presumendo $SessionAutoPosition per questi stili.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto
-4 E' stato impossibile creare la sessione

Consultare anche


SysDelay

Descrizione

Provoca l'interruzione dell'esecuzione per n millisecondi.

Sintassi

FUNCTION SysDelay(VAL time: INTEGER): INTEGER;

Note argomento

Nome dell'argomento Descrizione
time La durata dell'interruzione in millisecondi

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto

Consultare anche


SysGetClipboard

Descrizione

Ottiene una stringa dagli appunti di sistema.

Sintassi

FUNCTION SysGetClipboard(REF clipBoard: STRING): INTEGER;

Note argomento

Nome dell'argomento Descrizione
clipBoard Restituisce il valore degli appunti di sistema. Se non è presente alcun testo negli appunti, esso è impostato su $Unknown

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
0 Gli appunti sono vuoti
-3 Memoria insufficiente
-10 Una delle chiamate del sistema operativo per accedere agli appunti ha avuto esito negativo

Consultare anche


SysGetContext

Descrizione

Completa i campi del record del contesto di riferimento con informazioni sull'ambiente operativo corrente.

Sintassi

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

Note argomento

Nome dell'argomento Descrizione
context Una variabile di tipo $SystemContext

Note

$SystemContext è un tipo RECORD dichiarato nel file .kb di sistema (kml.kb). La dichiarazione di $SystemContext è:

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

Sono di seguito riportate le descrizioni per i campi utilizzati con $SystemContext.

Campo Descrizione
operatingSystem Windows, OS/2 o UNIX.
ASEVersion Correntemente 5.0.
VendorOSName Il nome completo del fornitore per il sistema operativo della workstation. Questo campo differisce dal campo operatingSystem $SystemContext perché contiene il nome reale del sistema operativo, come 'Microsoft Windows 95', invece di un identificativo.
VendorOSVersion Il numero di versione del fornitore per il sistema operativo della workstation. E' possibile che questo campo sia sconosciuto se:
  • E' impossibile determinare con precisione il numero di versione (come nel caso di Microsoft Windows NT).
  • Il numero di versione del sistema operativo fa parte del nome del sistema operativo.
FreeMemory La stima attuale della quantità di memoria libera del sistema operativo (fisica e virtuale) disponibile nel momento in cui è stata effettuata la chiamata di SysGetContext. Il valore restituito viene espresso in kilobyte (KB).
FreeResources Il campo contiene la stima attuale della quantità di risorse libere del sistema operativo disponibili nel momento in cui è stata effettuata la chiamata di SysGetContext. E' possibile che questo campo sia sconosciuto se il sistema operativo non supporta questo concetto (come nel caso di OS/2).
NlsInfo Informazioni NLS (National Language Support). Consultare la descrizione del record di $SystemNlsInfo di seguito.


Il record restituito da SysGetContext comprende le seguenti informazioni NLS (National Language Support):

$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;
Campo Descrizione
CountryCode Il prefisso internazionale della macchina host
CurrencyBefore Se il simbolo della valuta viene visualizzato prima o dopo il numerico

TRUE - Il simbolo della valuta viene collocato prima del numero

FALSE - Il simbolo della valuta viene collocato dopo il numero

CurrencySymbol Il simbolo della valuta della macchina host
DateFourDigitYear Se il formato della data originale visualizza l'anno con due o quattro cifre.

TRUE = Il formato data è 1999

FALSE = Il formato data è 99

DateOrdering Una stringa nel formato MM/DD/YY
DateSeparator Il carattere utilizzato per separare i valori di giorno, mese e anno di una data
DecimalSeparator Il carattere utilizzato per separare un numero dalla parte decimale
DecimalLeadingZero Se i numeri decimali minori di 1 richiedono lo zero iniziale (ad esempio, 0.123 o .123)
IntlCurrencySymbol Il simbolo della valuta utilizzato internazionalmente dove il carattere corretto può non essere sempre disponibile
LocaleId La locale corrente della macchina host.
NumCurrencyDecimalDigit Il numero di cifre comunemente utilizzate a sinistra del decimale
NumCurrencyExtraSpaces Il numero di spazi da inserire tra un simbolo valuta e un numerico
NumericGroupSeparator Il carattere utilizzato per raggruppare le cifre nei numeri lunghi (in altre parole, il separatore delle migliaia)
NumRealDecimalDigits Il numero di cifre da mostrare quando vengono visualizzati numeri reali (ad esempio, 3.14159 o 3.14)
TimeSeparator Il carattere utilizzato per separare ora, minuti e secondi

Il RECORD $SystemContext utilizzato da questa funzione dispone di un nuovo campo denominato GMTBias. Questa è la differenza tra l'ora locale e l'equivalente
Ora GMT in secondi. Questo valore è generalmente richiamato dal sistema operativo dell'host, ma è anche possibile impostarlo manualmente utilizzando SysSetGMTDiff.

Proprietà del campo d'immissione

La pagina Casella di testo di questa casella di dialogo comprende una nuova casella di spunta etichettata "Converti in/da GMT". E' possibile contrassegnare questa casella solo per i campi di immissione che contengono un modello Data o Ora. Spuntando questa casella, si indica che si desidera che Tivoli Service Desk Developer's Toolkit localizzi automaticamente la data o l'ora forniti (consultare SysLocalizeTime).

Proprietà della casella di elenco a più colonne

Il separatore Colonne di questa casella di dialogo comprende una nuova casella di spunta etichettata "Converti in/da GMT". E' possibile impostare questa casella individualmente per ogni
colonna in MCLB. E' necessario che venga impostata solo per colonne che conterranno un valore di tipo DATE o TIME.

Come accoppiare i campi data/ora nei comandi

Quando si utilizzano le caselle di spunta Converti in/da GMT per i campi di immissione e le colonne MCLB (come descritto in precedenza) è necessario osservare una semplice
convenzione di denominazione perché la conversione riesca.

Per ogni campo ora contrassegnato per la conversione GMT è necessario contrassegnare anche un campo data corrispondente. E' necessario che questi due campi siano associati l'uno all'altro tramite una convenzione di denominazione (consultare la documentazione per SysLocalizeTime e SysGlobalizeTime per ulteriori
informazioni).

I campi ora e data devono avere nomi comando che terminano rispettivamente con "_TIME" e "_DATE". Le parti precedenti del nome devono essere identiche. Di seguito sono riportati alcuni esempi:

Validità del nome comando del campo ora e del campo data
----------------------- ----------------------- --------
START_TIME START_DATE Corretto
MY_BIRTH_TIME MY_BIRTH_DATE Corretto
MYBIRTHTIME MYBIRTHDATE Non corretto
THE_TIME_ENDS THE_DATE_ENDS Non corretto

Se i due campi non sono accoppiati in modo corretto, è possibile che non si verifichi la conversione.

Consultare anche

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Il parametro contesto conteneva un riferimento non valido

SysGetEnvironment

Descrizione

La funzione SysGetEnvironment inquiry in un elenco di ambienti, fornito dal sistema operativo, una stringa che corrisponda a una chiave data. Quando viene trovata la chiave, SysGetEnvironment restituisce la stringa associata a quella chiave.

Sintassi

FUNCTION SysGetEnvironment (VAL key: STRING): STRING;

Note argomento

Nome dell'argomento Descrizione
key La chiave da cercare

Note

Se l'elenco di ambiente non contiene una voce che corrisponde alla chiave data, viene restituito $Unknown.

Esempio

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

Codici di ritorno

Quando viene trovata la chiave, SysGetEnvironment restituisce la stringa associata a quella chiave.

Consultare anche

SysSetEnvironment


SysGetTaskList

Descrizione

Chiede al sistema un elenco di tutte le attività disponibili.

Sintassi

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

Avvertenze

Nota: E' possibile utilizzare i comandi della sessione di sistema solo per le sessioni create dalla sessione chiamante.

OS/2 impone delle limitazioni sui messaggi inviati a finestre che appartengono a processi diversi. Per ulteriori informazioni su queste limitazioni, consultare la documentazione di programmazione del sistema OS/2.

Note argomento

Nome dell'argomento Descrizione
taskList Questo argomento deve essere una variabile elenco del tipo di record definito dal sistema $TASKRECORD. $TASKRECORD è definito nel file .kb di sistema (kml.kb) come:
$TASKRECORD IS
 title: STRING;
 hWindow: WINDOW;
 hSession: SESSION;
 hProcess: PROCESS;
          END;

Note

SysGetTaskList restituisce i record dell'attività provenienti da ciascuna delle sessioni aperte, comprese quelle che non sono sessioni TSD Script. Ogni record dell'attività contiene il testo del titolo dalla finestra di livello più alto nella sua sessione corrispondente.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
tutti Restituisce i record dell'attività provenienti da ciascuna delle sessioni aperte, comprese quelle che non sono sessioni TSD Script. Ogni record dell'attività contiene il testo del titolo dalla finestra di livello più alto nella sua sessione corrispondente. Consultare le Note per le differenze tra OS/2 e Windows.
-2 Valore sconosciuto.
-3 Memoria insufficiente.

Consultare anche

SysSelectTask


SysOSShell

Descrizione

Crea una nuova sessione processore comando.

Sintassi

FUNCTION SysOSShell(VAL commandLine: STRING): INTEGER;

Avvertenze

In OS/2, le shell avviate da SysOSShell vengono chiuse quando termina l'applicazione TSD Script (la sessione padre).

Note argomento

Nome dell'argomento Descrizione
commandLine Il comando eseguito dal processore comando. Una stringa vuota crea una nuova richiesta comandi.

Note

In OS/2, SysOSShell avvia una sessione che esegue la shell specificata dalla variabile ambiente COMSPEC. (Questo è, generalmente, il processore comandi OS/2, cmd.exe.) L'argomento per SysOSShell viene inoltrato alla shell come la sua riga comandi. La shell avviata da SysOSShell viene eseguita in modo asincrono rispetto al processo chiamante.

In UNIX, il comando fornito come argomento viene eseguito direttamente come uno dei seguenti:

SysOSShell avvia il programma /usr/bin/X11/xterm (/usr/openwin/bin/xterm per macchine Sun). E' possibile sostituirlo impostando la variabile SAI_XTERM su un programma che può essere trovato nell'ambiente PATH o su un programma con un percorso qualificato per esteso. (E' necessario che SAI_XTERM si trovi nell'ambiente dell'utente prima di eseguire il programma TSD Script che chiama SysOSShell.)

In Windows, SysOSShell effettua quanto segue:

Esistono due argomenti, /C e /K, utilizzati per eseguire la shell da una riga comandi. /C esegue il comando e chiude la shell. /K esegue il comando e lascia aperta la shell. Questi argomenti non sono applicabili a UNIX.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto

Consultare anche

Per ulteriori informazioni su cmd.exe, consultare la documentazione OS/2.

Per ulteriori informazioni su command.com, consultare il sistema guida per DOS.


SysSelectSession

Descrizione

Seleziona una sessione e la evidenzia.

Sintassi

FUNCTION SysSelectSession(VAL hdlSession: SESSION): INTEGER;

Note argomento

Nome dell'argomento Descrizione
hdlSession L'handle della sessione selezionata per

Note

E' necessario che una sessione OS/2 disponga di una finestra con lo stile $WinTaskList perché possa essere selezionata. E' impossibile selezionare le sessioni non visualizzate nell'elenco attività. La sessione deve essere stata creata dalla sessione chiamante. In UNIX, questa funzione restituisce semplicemente 1 (riuscita) senza dover selezionare una sessione.

Esempio

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*)

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito.
-2 Valore sconosciuto.
-369 L'handle della sessione non si riferisce a una sessione valida.
-460 Il processo chiamante non è il padre della sessione. Una sessione può essere selezionata solo dal processo che l'ha creata.

Consultare anche


SysSelectTask

Descrizione

Attiva l'attività selezionata.

Sintassi

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

Note argomento

Nome dell'argomento Descrizione
task Questo argomento deve essere del tipo di record definito dal sistema $TASKRECORD. $TASKRECORD è definito nel file .kb di sistema (kml.kb) come:
$TASKRECORD IS title: STRING;hWindow:
WINDOW; hSession: SESSION;
hProcess: PROCESS; END;

E' necessario che i campi del record siano stati impostati da SysGetTaskList.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito.
-2 Valore sconosciuto.
-10 Una richiesta per un servizio del sistema operativo necessario per completare la funzione ha avuto esito negativo. Le probabili cause sono i valori non validi come argomenti per l'istruzione o le limitazioni delle risorse di sistema.

Consultare anche

SysGetTaskList


SysSetClipboard

Descrizione

Imposta il valore stringa degli appunti di sistema.

Sintassi

FUNCTION SysSetClipboard(VAL clipBoard: STRING): INTEGER;

Note argomento

Nome dell'argomento Descrizione
clipBoard Il nuovo valore sostituisce ogni precedente valore degli appunti.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto
-3 Memoria insufficiente
-10 Una delle operazioni del sistema operativo necessarie per accedere agli appunti ha avuto esito negativo

Consultare anche

SysGetClipboard


SysSetEnvironment

Descrizione

Aggiunge una voce (o modifica una voce) all'elenco ambienti fornito dal sistema operativo, in modo che il nuovo valore (se esiste) venga associato alla chiave data.

Sintassi

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

Avvertenze

DOS e OS/2 non effettuano la copia di una stringa inoltrata a un elenco di ambienti. Essi utilizzano direttamente la stringa inoltrata all'elenco di ambienti direttamente. Questo dispone di due ramificazioni dal punto di vista dell'utilizzo della memoria:

Note argomento

Nome dell'argomento Descrizione
key La stringa chiave nell'elenco di ambienti
newValue La nuova stringa da associare alla chiave

Note

La funzione SysSetEnvironment associa il nuovo valore alla chiave data nell'elenco di ambienti o elimina la chiave data e il valore ad essa associato se viene omesso l'argomento newValue.

La natura esatta dell'elenco di ambienti dipende dal sistema operativo. Tuttavia, un elenco di ambienti viene generalmente copiato da un processo padre a un processo figlio e viene distrutto quando il processo figlio termina.

Una variabile ambiente impostata tramite SysSetEnvironment restituisce il nuovo valore e viene copiata nei processi figlio avviati dalle chiamate di SysCallProgram, SysCreateSession e SysOSShell. La variabile non viene copiata nuovamente nell'ambiente da cui è stato avviato il sistema tempo di esecuzione Tivoli Service Desk Developer's Toolkit.

Nota: Se newValue non viene fornito, la variabile d'ambiente specificata è "unset."

Esempio

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

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-10 La chiamata del sistema operativo ha avuto esito negativo

Consultare anche


SysSetGMTDiff

Descrizione

Generalmente, le voci interne di Tivoli Service Desk Developer's Toolkit chiedono al sistema operativo host di richiamare le differenze tra l'ora locale e quella GMT (Greenwich Mean Time). E' possibile utilizzare questa funzione per impostare la differenza manualmente e sostituire il valore originale.

Sintassi

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

Note argomento

Argomento Descrizione
NewDiff Questa è la nuova differenza tra GMT e l'ora locale. Il numero specificato verrà aggiunto all'ora locale per creare l'ora GMT. Ad esempio, la differenza GMT di default per New York è di +5 ore. La differenza GMT per il Cairo è di -2 ore. L'intervallo valido per un argomento è -12 ore <= NewDiff <= +12 ore.
Units Le unità utilizzate per specificare la differenza.

Codici di ritorno

Codice di ritorno Descrizione
1 Esito positivo
-1 E' stata specificata una differenza non valida

Esempio

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;

Consultare anche


SysSetReturnCode

Descrizione

Imposta il valore numero intero che TSD Script interpreter restituisce alla shell del comando UNIX o alla finestra DOS quando la chiusura ha esito positivo. Interpreter restituisce 1 se non è stato utilizzato SysSetReturnCode.

Sintassi

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

Avvertenza: Se TSD Script Interpreter riscontra un errore irreversibile ed esce, sostituisce tutti i valori impostati da SysSetReturnCode.

Note argomento

Nome dell'argomento Descrizione
code Il codice da restituire alla shell del comando o alla finestra DOS

Note

Se questa funzione viene chiamata più volte, viene utilizzato il valore inoltrato dall'ultima chiamata.

Nota: Non confondere questa funzione con l'istruzione RETURN di TSD Script che imposta il valore restituito da una funzione TSD Script.

Esempio

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

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-10 La chiamata del sistema operativo ha avuto esito negativo

Consultare anche


SysStopSession

Descrizione

Arresta una sessione attiva.

Sintassi

FUNCTION SysStopSession(VAL hdlSession: SESSION): INTEGER;

Note argomento

Nome dell'argomento Descrizione
hdlSession L'handle della sessione da arrestare. La sessione deve essere avviata dal programma chiamante.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto
-369 L'handle non si riferisce a una sessione valida. E' possibile che la sessione non esista più
-460 Il processo chiamante non è il padre della sessione. Un processo può arrestare solo una sessione da esso creata

Consultare anche


SysTone

Descrizione

Emette un segnale acustico dall'altoparlante di sistema.

Sintassi

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

Note argomento

Nome dell'argomento Descrizione
frequency La frequenza in hertz del segnale
duration La durata del segnale in millisecondi

Note

In Windows 98, la durata e la frequenza vengono impostate per default per l'audio di sistema.

Esempio

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;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto

Consultare anche

SysDelay


SysWaitSession

Descrizione

Attende che termini una sessione.

Sintassi

FUNCTION SysWaitSession(VAL hdlSession: SESSION): INTEGER;

Avvertenza: La sessione attende lo stack. Ciò significa che la chiamata più recente di SysWaitSession deve essere restituita prima che vengano restituite tutte le precedenti chiamate, anche se la sessione in attesa è stata terminata.

Note argomento

Nome dell'argomento Descrizione
hdlSession L'handle della sessione per cui attendere. La sessione deve essere avviata dal processo chiamante.

Esempio

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*)

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito
-2 Valore sconosciuto

Consultare anche


SysYield

Descrizione

Blocca l'esecuzione del sottoprocesso corrente fino a quando non sono stati distribuiti tutti i messaggi nella coda.

Sintassi

FUNCTION SysYield

Note

SysYield è di ausilio se è necessario che l'interfaccia utente dell'applicazione riporti i messaggi creati da una funzione che utilizza il processore in modo intensivo.

Consultare anche

SysDelay


SysGlobalizeTime

Descrizione

Data una variabile di tipo ora che si presume sia l'ora locale, questa funzione la adatta all'equivalente ora GMT. E' necessario fornire anche una data nel caso in cui l'adattamento possa riguardare anche questa.

Sintassi

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

Note argomento

Argomento Descrizione
t L'ora da globalizzare
d E' necessario fornire questo valore. Se l'adattamento dell'ora fornita slitta nel giorno successivo (o precedente) viene adattata anche la
data. E' necessario che SysGlobalizeTime venga utilizzato *sempre* in una coppia data/ora.

Codici di ritorno

Codice di ritorno Descrizione
1 Esito positivo
-1 Fornita data o ora sconosciuta

Esempio

Consultare l'esempio per SysSetGMTDiff.

Consultare anche


SysLocalizeTime

Descrizione

Data una variabile di tipo ora che si presume sia l'ora GMT, questa funzione la adatta all'ora locale. E' necessario fornire anche una data nel caso in cui l'adattamento possa riguardare anche questa.

Sintassi

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

Note argomento

Argomento Descrizione
t L'ora da localizzare
d E' necessario fornire questo valore. Se l'adattamento dell'ora fornita slitta nel giorno successivo (o precedente) viene adattata anche la data. E' necessario che SysLocalizeTime venga utilizzato sempre in una coppia data/ora.

Codici di ritorno

Codice di ritorno Descrizione
1 Esito positivo
-1 Fornita data o ora sconosciuta

Esempio

Consultare l'esempio per SysSetGMTDiff.

Consultare anche


Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Ritorna alla pagina principale

Copyright