Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script
Ritorna alla pagina principale
Chiama un programma.
FUNCTION SysCallProgram(VAL commandLine: STRING [VAL arg: STRING ... ]): INTEGER;
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. |
SysCallProgram può essere utilizzato solo per avviare un programma.
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;
Codice di ritorno | Descrizione |
1 | Esito positivo |
-2 | Valore sconosciuto |
-3 | Memoria insufficiente |
Avvia un programma in una nuova sessione come figlio della sessione chiamata.
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.
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:
|
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.
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.
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;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Valore sconosciuto |
-4 | E' stato impossibile creare la sessione |
Provoca l'interruzione dell'esecuzione per n millisecondi.
FUNCTION SysDelay(VAL time: INTEGER): INTEGER;
Nome dell'argomento | Descrizione |
time | La durata dell'interruzione in millisecondi |
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;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Valore sconosciuto |
Ottiene una stringa dagli appunti di sistema.
FUNCTION SysGetClipboard(REF clipBoard: STRING): INTEGER;
Nome dell'argomento | Descrizione |
clipBoard | Restituisce il valore degli appunti di sistema. Se non è presente alcun testo negli appunti, esso è impostato su $Unknown |
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;
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 |
Completa i campi del record del contesto di riferimento con informazioni sull'ambiente operativo corrente.
FUNCTION SysGetContext (REF context: $SystemContext): INTEGER;
Nome dell'argomento | Descrizione |
context | Una variabile di tipo $SystemContext |
$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:
|
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.
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).
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.
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.
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Il parametro contesto conteneva un riferimento non valido |
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.
FUNCTION SysGetEnvironment (VAL key: STRING): STRING;
Nome dell'argomento | Descrizione |
key | La chiave da cercare |
Se l'elenco di ambiente non contiene una voce che corrisponde alla chiave data, viene restituito $Unknown.
IF UNKNOWN (fileName := SysGetEnvironment ('CONFIG')) THEN CreateDefaultConfigFile;\ END; ConfigFile :=FOpen (fileName);
Quando viene trovata la chiave, SysGetEnvironment restituisce la stringa associata a quella chiave.
Chiede al sistema un elenco di tutte le attività disponibili.
FUNCTION SysGetTaskList(REF taskList: LIST OF $TASKRECORD): INTEGER;
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.
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; |
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.
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;
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. |
Crea una nuova sessione processore comando.
FUNCTION SysOSShell(VAL commandLine: STRING): INTEGER;
In OS/2, le shell avviate da SysOSShell vengono chiuse quando termina l'applicazione TSD Script (la sessione padre).
Nome dell'argomento | Descrizione |
commandLine | Il comando eseguito dal processore comando. Una stringa vuota crea una nuova richiesta comandi. |
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.
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;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Valore sconosciuto |
Per ulteriori informazioni su cmd.exe, consultare la documentazione OS/2.
Per ulteriori informazioni su command.com, consultare il sistema guida per DOS.
Seleziona una sessione e la evidenzia.
FUNCTION SysSelectSession(VAL hdlSession: SESSION): INTEGER;
Nome dell'argomento | Descrizione |
hdlSession | L'handle della sessione selezionata per |
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.
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*)
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. |
Attiva l'attività selezionata.
FUNCTION SysSelectTask(VAL task: $TASKRECORD): INTEGER;
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. |
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;
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. |
Imposta il valore stringa degli appunti di sistema.
FUNCTION SysSetClipboard(VAL clipBoard: STRING): INTEGER;
Nome dell'argomento | Descrizione |
clipBoard | Il nuovo valore sostituisce ogni precedente valore degli appunti. |
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;
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 |
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.
FUNCTION SysSetEnvironment (VAL key: STRING [, VAL newValue: STRING]): INTEGER;
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:
Nome dell'argomento | Descrizione |
key | La stringa chiave nell'elenco di ambienti |
newValue | La nuova stringa da associare alla chiave |
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."
IF SQLSelectInto ('SELECT ICONS FROM DIRECTORIES', iconPATHPATHPATHPATH) >= 1 AND StrPos (globalPath := SysGetEnvironment ('PATH'), iconPath) = 0 THEN SysSetEnvironment ('PATH', globalPath & ';' & iconPath); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-10 | La chiamata del sistema operativo ha avuto esito negativo |
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.
FUNCTION SysSetGMTDiff( VAL NewDiff : Integer [, $Seconds | $Minutes | $Hours]) : INTEGER;
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. |
Codice di ritorno | Descrizione |
1 | Esito positivo |
-1 | E' stata specificata una differenza non valida |
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;
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.
FUNCTION SysSetReturnCode(VAL Code: INTEGER]):INTEGER;
Avvertenza: Se TSD Script Interpreter riscontra un errore irreversibile ed esce, sostituisce tutti i valori impostati da SysSetReturnCode.
Nome dell'argomento | Descrizione |
code | Il codice da restituire alla shell del comando o alla finestra DOS |
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.
PROCEDURE DeepThought IS ACTIONS SysDelay(1000000); SysSetReturnCode(42); END;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-10 | La chiamata del sistema operativo ha avuto esito negativo |
Arresta una sessione attiva.
FUNCTION SysStopSession(VAL hdlSession: SESSION): INTEGER;
Nome dell'argomento | Descrizione |
hdlSession | L'handle della sessione da arrestare. La sessione deve essere avviata dal programma chiamante. |
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;
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 |
Emette un segnale acustico dall'altoparlante di sistema.
FUNCTION SysTone(VAL frequency: INTEGER, VAL duration: INTEGER ): INTEGER;
Nome dell'argomento | Descrizione |
frequency | La frequenza in hertz del segnale |
duration | La durata del segnale in millisecondi |
In Windows 98, la durata e la frequenza vengono impostate per default per l'audio di sistema.
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;
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Valore sconosciuto |
Attende che termini una sessione.
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.
Nome dell'argomento | Descrizione |
hdlSession | L'handle della sessione per cui attendere. La sessione deve essere avviata dal processo chiamante. |
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*)
Codice di ritorno | Descrizione |
1 | Completamento riuscito |
-2 | Valore sconosciuto |
Blocca l'esecuzione del sottoprocesso corrente fino a quando non sono stati distribuiti tutti i messaggi nella coda.
FUNCTION SysYield
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.
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.
FUNCTION SysGlobalizeTime(REF t : TIME, REF d : DATE) : INTEGER;
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. |
Codice di ritorno | Descrizione |
1 | Esito positivo |
-1 | Fornita data o ora sconosciuta |
Consultare l'esempio per SysSetGMTDiff.
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.
FUNCTION SysLocalizeTime(REF t : TIME, REF d : DATE) : INTEGER;
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. |
Codice di ritorno | Descrizione |
1 | Esito positivo |
-1 | Fornita data o ora sconosciuta |
Consultare l'esempio per SysSetGMTDiff.
Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script
Ritorna alla pagina principale