Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script

Interface de Sistema Operacional

Retornar à Página Principal


SysCallProgram

Descrição

Chama um programa.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
commandLine Uma expressão de cadeia que contém o nome de um programa executável a ser chamado. Se o nome não estiver completo, o PATH será procurado pelo programa.
arg Os argumentos da linha de comandos do programa sendo chamado. Cada argumento deve ser do tipo STRING.

Notas

SysCallProgram só pode ser utilizado para iniciar um programa.

Exemplo

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
 (* Se não for especificado nenhum arquivo no prompt da linha de comandos para um *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'Arquivo para analisar?', $FileDlgCenter +
                  $FileDlgOpen ) <1
                 THEN
 Exit;
              END;
 fileName := StrDelete( fileName, StrLength ( fileName )- 2, 3 );
 ListInsert( argList, fileName );
              END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Exibir Janela de progresso *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Analisando', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* Criar uma sessão para o Analisador do Script do Aplicativo. A sessão é
 criada invisível. Um arquivo de erros no formato IDE é
 solicitado *)
 SysCallProgram('kp.exe', '/IDE', '/e', fileName.&:ERR',
                fileName);
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN (* Teste para arquivo de erros *)
 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;

Códigos de Retorno

Código de Retorno Descrição
1 Sucesso
-2 Valor Desconhecido
-3 Memória insuficiente

Consulte também


SysCreateSession

Descrição

Inicia um programa em uma nova sessão como um filho da sessão que está chamando.

Sintaxe

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

Atenção: Todas as sessões criadas por um aplicativo são encerradas quando o aplicativo termina.

Notas do Argumento

Nome do Argumento Descrição
hdlSession O identificador da sessão criada recentemente é retornado. Se a sessão não estiver criada, o identificador é definido como $Unknown.
program O nome do programa a ser executado. Se o programa não estiver no PATH, um nome completo deverá ser especificado.
argList Todos os argumentos da linha de comandos do programa sendo chamado.
xLoc A localização X do canto superior esquerdo da nova sessão. Nem todos os programas suportam o posicionamento.
yLoc A localização Y do canto superior esquerdo da nova sessão. Nem todos os programas suportam o posicionamento.
width A largura da nova sessão. Nem todos os programas suportam o posicionamento.
height A altura da nova sessão. Nem todos os programas suportam o posicionamento.
style Sinalizadores de estilo que controlam o procedimento da nova sessão. Qualquer um dos seguintes sinalizadores podem ser combinados para formar o estilo:
  • $SessionBackground - o $SessionBackground cria no background. Ele não recebe foco na criação.
  • $SessionInvisible - o $SessionInvisible cria invisivelmente.
  • $SessionAutoPosition - $SessionAutoPosition posiciona a sessão na tela, ignorando os parâmetros de tamanho e localização.

Notas

A lista de argumentos deve ser conhecida para que esta função funcione. Se não houver nenhum argumento, deverá ser passada uma cadeia de comprimento 0 ('').

Nota: Não passe $Unknown.

No OS/2, uma sessão de tela inteira do Windows pode ser criada especificando-se COMMAND.COM como o programa e /c win <progname> como os argumentos.

Parâmetros de Dimensionamento da Janela

No OS/2, vários aplicativos do Presentation Manager definiram seu próprio tamanho de janela quando foram iniciados. Se este for o caso, os parâmetros xLoc, yLoc, xLen e yLen serão ignorados.

Os parâmetros xLoc, yLoc, xLen e yLen não são utilizados no Windows. No Windows, todas as sessões são criadas assumindo-se $SessionAutoPosition para esses estilos.

Exemplo

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
 (* Se não for especificado nenhum arquivo no prompt da linha de comandos para um *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb',
                  0, 0, 'Arquivo para analisar?',
                  $FileDlgCenter + $FileDlgOpen ) <1
                 THEN
 Exit;
              END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
              END;



 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Exibir Janela de progresso *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4,
                       'Analisando', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl,fileName );
(* Criar uma sessão para o analisador Application Software-Script. A sessão é *)
(* criada invisível. Um arquivo de erros no formato IDE *)
(* é solicitado *)
SysCreateSession( hdlsession, 'kp.exe','/IDE /e' &
                 fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession ); 
 (* Fechar janela de progresso quando o analisador for encerrado *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Teste para arquivo de erros *)
 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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido
-4 A sessão não pôde ser criada

Consulte também


SysDelay

Descrição

Faz com que a execução seja pausada durante n milissegundos.

Sintaxe

FUNCTION SysDelay(VAL time: INTEGER): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
time Duração do atraso em milissegundos

Exemplo

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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido

Consulte também


SysGetClipboard

Descrição

Obtém uma cadeia da área de transferência do sistema.

Sintaxe

FUNCTION SysGetClipboard(REF clipBoard: STRING): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
clipBoard Retorna o valor da área de transferência do sistema. Se não houver texto na área de transferência, o valor é definido como $Unknown

Exemplo

KNOWLEDGEBASE Clip;
CONSTANTS
 MENU_REFRESH IS 101;
 MENU_EXIT IS 102;
    ROUTINES
 PROCEDURE ClipView;
PRIVATE
CONSTANTS
 menuList IS { '~Arquivo', 'A~tualizar', '~sair', '' }: 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 (* Mensagem do Menu *)
 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,
                                 'Visualizador de área de transferência KML', '', 10,
                                 BitOr($WinBorder, $WinTitle,
                                 $WinResize, $WinSysMenu,
                                 $WinMenu, $WinAutoPos,
                                 $WinAutoSize, $WinVScroll,
                                 $WinHScroll, $WinTaskList ))
                                 IF result < 1 THEN
                                 WinMessageBox( $Desktop, 'Erro', $mbok + $MBIconError,
                                 'Falha na abertura' & result );
              END;
 WinWait( whdl );
              END;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
0 A área de transferência está vazia
-3 Memória insuficiente
-10 Uma das chamadas do sistema operacional para acessar a área de transferência falhou

Consulte também


SysGetContext

Descrição

Conclui os campos do registro de contexto referido com informações sobre o ambiente operacional atual.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
context Uma variável do tipo $SystemContext

Notas

$SystemContext é um tipo RECORD declarado na base de informações kml.kb do sistema. A declaração de $SystemContext é:

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

Seguem descrições dos campos utilizados com $SystemContext.

Campo Descrição
operatingSystem Windows, OS/2 ou UNIX.
ASEVersion Atualmente 5.0.
VendorOSName O nome completo do fornecedor para o sistema operacional da estação de trabalho. Este campo é diferente do campo operatingSystem do $SystemContext por conter o nome real do sistema operacional, como 'Microsoft Windows 95,' em vez de um identificador.
VendorOSVersion O número de versão do fornecedor para o sistema operacional da estação de trabalho. É possível que este campo seja desconhecido se:
  • O número da versão não puder ser determinado com exatidão razoável (como no caso do Microsoft Windows NT).
  • O número da versão do sistema operacional fizer parte do nome do sistema operacional.
FreeMemory A estimativa atual da quantidade de memória livre do sistema operacional (física e virtual) disponíveis na hora em que a chamada SysGetContext é feita. O valor retornado é expresso em kilobytes (KB).
FreeResources Este campo contém a estimativa atual da quantidade de recursos livres do sistema operacional disponíveis na hora em que a chamada SysGetContext é feita. É possível que este campo seja desconhecido se o sistema operacional não suportar este conceito (como no caso do OS/2).
NlsInfo Informações do National Language Support. Consulte a descrição do registro $SystemNlsInfo abaixo.


O registro retornado por SysGetContext inclui as seguintes informações do National Language Support (NLS):

$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 Descrição
CountryCode O código de país da máquina do host
CurrencyBefore Se o símbolo monetário é exibido antes ou depois do valor numérico

TRUE - O símbolo monetário é colocado antes do número

FALSE - O símbolo monetário é colocado depois do número

CurrencySymbol Símbolo monetário da máquina do host
DateFourDigitYear Se o formato de data nativa possui um ano de dois ou quatro dígitos.

TRUE = Date é formatado como 1999

FALSE = Date é formatado como 99

DateOrdering Uma cadeia formatada como MM/DD/YY
DateSeparator O caractere utilizado para separar os valores de dia, mês e ano de uma data
DecimalSeparator O caractere utilizado para separar um número da parte decimal
DecimalLeadingZero Se os números decimais menores que 1 requerem um zero à esquerda (por exemplo, 0,123 ou ,123)
IntlCurrencySymbol Símbolo monetário utilizado internacionalmente onde o caractere correto pode nem sempre estar disponível
LocaleId O locale atual da máquina do host.
NumCurrencyDecimalDigit O número de dígitos utilizados em geral à esquerda do decimal
NumCurrencyExtraSpaces O número de espaços a serem inseridos entre um símbolo monetário e um valor numérico
NumericGroupSeparator O caractere utilizado para agrupar dígitos em números grandes (isto é, o separador de milhares )
NumRealDecimalDigits O número de dígitos a serem exibidos ao mostrar números reais (por exemplo, 3,14159 ou 3,14)
TimeSeparator O caractere utilizado para separar hora, minutos e segundos

O $SystemContext RECORD utilizado por esta função possui um novo campo chamado GMTBias. Esta é a diferença entre a hora local e a Hora
GMT equivalente em segundos. Este valor é normalmente obtido do sistema operacional do host, mas também pode ser definido manualmente através de SysSetGMTDiff.

Propriedades do Campo de Entrada

A página Caixa de Texto desta caixa de diálogo inclui uma nova caixa de opções rotulada "Converter para/de GMT". Esta caixa só pode ser marcada para campos de entrada que contenham um padrão de Hora ou de Data. Marcando esta caixa, você indica que deseja que o Tivoli Service Desk Developer's Toolkit localize automaticamente (consulte SysLocalizeTime) a hora ou data fornecida.

Propriedades do Quadro de Listagem de Várias Colunas

O separador Colunas desta caixa de diálogo inclui uma nova caixa de opções rotulada "Converter para/de GMT". Esta caixa pode ser definida individualmente para cada
coluna no MCLB. Só deve ser definida para colunas que irão conter um valor do tipo DATE ou TIME.

Como emparelhar campos de data/hora nos controles

Ao utilizar as caixas de opções Converter para/de GMT para campos de entrada e colunas MCLB (conforme descrito acima) você deve observar uma única
convenção de nomenclatura para que a conversão funcione.

Para cada campo de hora marcado para conversão GMT, um campo de data correspondente também deve ser marcado. Esses dois campos devem ser associados entre si utilizando uma convenção de nomenclatura (consulte a documentação para SysLocalizeTime e SysGlobalizeTime para obter mais
informações).

Os campos de data e hora devem ter nomes de controle que terminem com "_TIME" e "_DATE" respectivamente. As partes que precedem o nome devem ser idênticas. Alguns exemplos:

Nome de Contr do Campo de Hora Nome de Contr do Campo de Data Validade
----------------------- ----------------------- --------
START_TIME START_DATE Correct
MY_BIRTH_TIME MY_BIRTH_DATE Corrent
MYBIRTHTIME MYBIRTHDATE Incorrect
THE_TIME_ENDS THE_DATE_ENDS Incorrect

Se os dois campos não forem emparelhados corretamente, a conversão poderá não ocorrer.

Consulte também

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 O parâmetro de contexto continha uma referência inválida

SysGetEnvironment

Descrição

A função SysGetEnvironment pesquisa uma lista de ambiente, fornecida pelo sistema operacional, para uma cadeia que corresponda à chave fornecida. Quando a chave é encontrada, SysGetEnvironment retorna a cadeia associada a essa chave.

Sintaxe

FUNCTION SysGetEnvironment (VAL key: STRING): STRING;

Notas do Argumento

Nome do Argumento Descrição
key A chave na qual pesquisar

Notas

Se a lista de ambientes não contiver uma entrada que corresponda à chave fornecida, $Unknown será retornado.

Exemplo

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

Códigos de Retorno

Quando a chave é encontrada, SysGetEnvironment retorna a cadeia associada a essa chave.

Consulte também

SysSetEnvironment


SysGetTaskList

Descrição

Consulta o sistema para obter uma lista de todas as tarefas ativas.

Sintaxe

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

Atenção

Nota: Os comandos da sessão do sistema só podem ser utilizados para sessões criadas pela sessão que está chamando.

O OS/2 impõem limites a mensagens enviadas a janelas pertencentes a processos diferentes. Para obter mais informações sobre esses limites, consulte a documentação de programação do sistema OS/2.

Notas do Argumento

Nome do Argumento Descrição
taskList Este argumento deve ser uma variável de listas do tipo de registro $TASKRECORD definido pelo sistema. $TASKRECORD é definido na base de informações kml.kb do sistema como:
$TASKRECORD IS
 title: STRING;
 hWindow: WINDOW;
 hSession: SESSION;
 hProcess: PROCESS;
              END;

Notas

SysGetTaskList retorna os registros de tarefas de cada uma das sessões abertas, incluindo sessões que não sejam TSD Script. Cada registro de tarefa contém o texto de título da janela de nível superior em sua sessão correspondente.

Exemplo

KNOWLEDGEBASE Tasks;
    ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
    ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
VARIABLES
 taskList: LIST OF $TASKRECORD; 
(* $TASKRECORD é definido pelo
 sistema *)
ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN EXIT FALSE;
              END;
 FOR taskList DO (* Procurar o nome da tarefa na lista *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
              END;
              END;
 EXIT FALSE;
              END;

Códigos de Retorno

Código de Retorno Descrição
any Retorna os registros de tarefas de cada uma das sessões abertas, incluindo sessões que não sejam TSD Script. Cada registro de tarefa contém o texto de título da janela de nível superior em sua sessão correspondente. Consulte Notas para obter as diferenças entre o OS/2 e o Windows.
-2 Valor desconhecido.
-3 Memória insuficiente.

Consulte também

SysSelectTask


SysOSShell

Descrição

Cria uma nova sessão do processador de comandos.

Sintaxe

FUNCTION SysOSShell(VAL commandLine: STRING): INTEGER;

Atenção

No OS/2, interfaces iniciadas por SysOSShell terminam quando o aplicativo TSD Script (a sessão pai) termina.

Notas do Argumento

Nome do Argumento Descrição
commandLine O comando executado pelo processador de comandos. Uma cadeia vazia cria um novo prompt de comandos.

Notas

No OS/2, SysOSShell inicia uma sessão executando a interface especificada pela variável de ambiente COMSPEC. (Em geral, é o processador de comandos do OS/2, cmd.exe.) O argumento para SysOSShell é passado para a interface como sua linha de comandos. A interface iniciada por SysOSShell é executada assincronamente com o processo de chamada.

No UNIX, o comando fornecido como um argumento é executado diretamente como um dos seguintes:

SysOSShell lança o programa /usr/bin/X11/xterm (/usr/openwin/bin/xterm para máquinas Sun). Isso pode ser substituído pela definição da variável SAI_XTERM em um programa que pode ser encontrado no ambiente PATH ou em um programa com um caminho completo. (SAI_XTERM deve estar no ambiente do usuário antes de executar o programa TSD Script que chama o SysOSShell.)

No Windows, SysOSShell faz o seguinte:

Há dois argumentos, /C e /K, que são utilizados para executar a interface a partir da linha de comandos. /C executa o comando e fecha a interface. /K executa o comando e deixa a interface aberta. Esses argumentos não são aplicáveis no UNIX.

Exemplo

KNOWLEDGEBASE OSShell;
    ROUTINES
PROCEDURE OSShellExample;
PRIVATE
    ROUTINES
PROCEDURE OSShellExample IS
ACTIONS
 (* /C ou /K é necessário para executar um comando externo para o
 Windows ou o OS/2 *)
 SysOSShell( '/C aseedit' );
 (* Sessões filhas terminam quando a sessão pai termina *)
 WinMessageBox( $Desktop, 'Cancel', $mbok, '' );
              END;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido

Consulte também

Para obter mais informações sobre o cmd.exe, consulte a documentação do OS/2.

Para obter mais informações sobre o command.com, consulte o sistema de auxílio do DOS.


SysSelectSession

Descrição

Seleciona uma sessão e fornece a ela o foco.

Sintaxe

FUNCTION SysSelectSession(VAL hdlSession: SESSION): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
hdlSession Identificador da sessão selecionada para

Notas

Uma sessão do OS/2 deve ter uma janela com o estilo $WinTaskList para poder ser selecionada. Sessões que não são exibidas na lista de tarefas não podem ser selecionadas. A sessão deve ser criada pela sessão que chamou. No UNIX, esta função retorna 1 (sucesso) simplesmente, sem tentar selecionar uma sessão.

Exemplo

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
 (* Se não for especificado nenhum arquivo no prompt da linha de comandos para um *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'Arquivo para analisar?', $FileDlgCenter +
                  $FileDlgOpen ) <1
                 THEN
 Exit;
              END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
              END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Exibir Janela de progresso *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Analisando', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWrIteLN( whdl, fileName );
(* Criar uma sessão para o analisador Application Software-Script.
A sessão é criada invisível. Um arquivo de erros no formato IDE *)
(* é solicitado *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE /e' &
                  fileName & '.ERR ' & fileName, 0, 0, 0, 0,
                  $SessionInvisible );
 SysWaitSession( hdlSession );
 (* Fechar janela de progresso quando o analisador for encerrado *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Teste para arquivo de erros *)
 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; (* fim de FOR*)
END; (* fim de make KB*)

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida.
-2 Valor desconhecido.
-369 O identificador de sessão não indica uma sessão válida.
-460 O processo de chamada não é o pai da sessão. Uma sessão só pode ser selecionada pelo processo que a criou.

Consulte também


SysSelectTask

Descrição

Ativa uma tarefa selecionada.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
task Este argumento deve ser do tipo de registro $TASKRECORD definido pelo sistema. $TASKRECORD é definido na base de informações kml.kb do sistema como:
$TASKRECORD IS title: STRING;hWindow:
WINDOW; hSession: SESSION;
hProcess: PROCESS; END;

Os campos do registro devem ter sido definidos por SysGetTaskList.

Exemplo

KNOWLEDGEBASE Tasks;
    ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
    ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
VARIABLES
 taskList: LIST OF $TASKRECORD;
(* $TASKRECORD é definido pelo sistema *)
ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN
 EXIT FALSE;
              END;
 FOR taskList DO (* Procurar o nome da tarefa na lista *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
              END;
              END;
 EXIT FALSE;
              END;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida.
-2 Valor desconhecido.
-10 Um pedido falhou para um serviço do sistema operacional necessário para concluir a função. As causas prováveis são valores inválidos como argumentos para a instrução ou limites nos recursos do sistema.

Consulte também

SysGetTaskList


SysSetClipboard

Descrição

Define o valor da cadeia da área de transferência do sistema.

Sintaxe

FUNCTION SysSetClipboard(VAL clipBoard: STRING): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
clipBoard O novo valor substitui os valores anteriores da área de transferência.

Exemplo

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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido
-3 Memória insuficiente
-10 Uma das operações do sistema operacional necessárias para acessar a área de transferência falhou

Consulte também

SysGetClipboard


SysSetEnvironment

Descrição

Adiciona (ou altera) uma entrada na lista de ambientes fornecida pelo sistema operacional, para que o novo valor (se houver) seja associado à chave fornecida.

Sintaxe

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

Atenção

O DOS e o OS/2 não fazem uma cópia de uma cadeia passada para a lista de ambientes. Em vez disso, eles utilizam a cadeia que é passada para a lista de ambientes diretamente. Isso tem duas ramificações em termos de utilização de memória:

Notas do Argumento

Nome do Argumento Descrição
key A cadeia de chaves na lista de ambientes
newValue A nova cadeia a ser associada à chave

Notas

A função SysSetEnvironment associará o novo valor à chave fornecida na lista de ambientes ou removerá a chave fornecida e seu valor associado se o argumento newValue for omitido.

A natureza exata da lista de ambientes depende do sistema operacional. No entanto, uma lista de ambientes é copiada, em geral, de um processo pai para um processo filho e é destruída quando o processo filho termina.

Uma variável de ambiente definida através de SysSetEnvironment deve retornar o novo valor e deve ser copiada para processos filhos iniciados pela chamadas SysCallProgram, SysCreateSession e SysOSShell. A variável não é copiada de volta no ambiente a partir do qual o sistema de tempo de execução do Tivoli Service Desk Developer's Toolkit foi iniciado.

Nota: Se newValue não for fornecido, a variável de ambiente especificada ficará "indefinida."

Exemplo

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

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-10 A chamada do sistema operacional falhou

Consulte também


SysSetGMTDiff

Descrição

Normalmente, o Tivoli Service Desk Developer's Toolkit consulta o sistema operacional do host para obter a diferença entre a hora local e a Hora Média de Greenwich (GMT). Esta função pode ser utilizada para definir a diferença manualmente e substituir o valor nativo.

Sintaxe

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

Notas do Argumento

Argumento Descrição
NewDiff Esta é a nova diferença entre o GMT e a hora local. O número especificado será adicionado a uma hora local para criar um horário de GMT. Por exemplo, a diferença padrão de GMT para Nova Iorque é +5 horas. A diferença de GMT para o Cairo é -2 horas. A faixa válida para um argumento é -12 horas <= NewDiff <= +12 horas.
Units As unidades utilizadas para especificar a diferença.

Códigos de Retorno

Código de Retorno Descrição
1 Sucesso
-1 Foi especificada uma diferença inválida

Exemplo

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);
 --Definir a tendência de GMT para algo original. Isso é o equivalente ao
 --GMT de Moscow...
 nRC := SysSetGMTDiff(-3, $hours);
 WinWriteLn(whdl, 'SysSetGMTDiff returned: ' & nRC);
 --Obter a tendência de GMT que deve ser, agora, -3 horas (mas especificada em
 --segundos) e exibi-la
 SysGetContext(r);
 WinWriteLn(whdl, 'GMT Bias = ' & r.GMTBias);
 --A hora e a data foram escolhidas aleatoriamente
 t := {01,07,07}:TIME;
 d := {07,07,1993}:DATE;
 WinWriteLn(whdl, 'Antes da globalização: ' & d & ' ' & t );
 --Globalizar a hora e exibi-la
 SysGlobalizeTime(t, d);
 WinWriteLn(whdl, 'Depois da globalização: ' & d & ' ' & t );
 --Localizá-la novamente e exibi-la (deve ser o mesmo de "antes da
 --globalização"
 SysLocalizeTime(t, d);
 WinWriteLn(whdl, 'Depois da localização: ' & d & ' ' & t );
 WinWait( whdl );
              END;

Consulte também


SysSetReturnCode

Descrição

Define o valor de inteiro que o Interpretador do TSD Script retorna para a interface de comandos UNIX ou janela do DOS na saída bem-sucedida. O interpretador retornará 1 se SysSetReturnCode não for utilizado.

Sintaxe

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

Atenção: Se o Interpretador do TSD Script encontrar um erro fatal e sair, ele substituirá todos os valores definidos por SysSetReturnCode.

Notas do Argumento

Nome do Argumento Descrição
code O código a ser retornado para a interface de comandos ou janela do DOS

Notas

O valor passado pela última chamada será utilizado se esta função for chamada várias vezes.

Nota: Não confunda esta função com a instrução RETURN do TSD Script, que define o valor retornado por uma função TSD Script.

Exemplo

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

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-10 A chamada do sistema operacional falhou

Consulte também


SysStopSession

Descrição

Encerra uma sessão ativa.

Sintaxe

FUNCTION SysStopSession(VAL hdlSession: SESSION): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
hdlSession Identificador da sessão a ser encerrada. A sessão deve ser iniciada pelo programa chamador.

Exemplo

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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido
-369 O identificador não indica uma sessão válida. A sessão pode não existir mais
-460 O processo de chamada não é o pai da sessão. Um processo só pode encerrar uma sessão que tenha criado

Consulte também


SysTone

Descrição

Emite um tom no alto-falante do sistema.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
frequency A freqüência em hertz do tom que soa
duration A duração do tom em milissegundos

Notas

No Windows 98, a duração e freqüência padrões para o som do sistema.

Exemplo

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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido

Consulte também

SysDelay


SysWaitSession

Descrição

Espera uma sessão terminar.

Sintaxe

FUNCTION SysWaitSession(VAL hdlSession: SESSION): INTEGER;

Atenção: A sessão espera a pilha. Isso significa que a chamada mais recente para SysWaitSession deve ser retornada antes de qualquer chamada anterior ser retornada, mesmo se a sessão sendo esperada tiver terminado.

Notas do Argumento

Nome do Argumento Descrição
hdlSession Identificador da sessão para a qual esperar. A sessão deve ser iniciada pelo processo chamador

Exemplo

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
 (* Se não for especificado nenhum arquivo no prompt da linha de comandos para um *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'Arquivo para analisar?', $FileDlgCenter +
                  $FileDlgOpen ) <1

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

 StrLength( fileName ) - 2, 3 );
 ListInsert( argList, fileName );
              END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* Exibir Janela de progresso *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Analisando', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* Criar uma sessão para o analisador Application Software-Script. A sessão é
 criada invisível. Um arquivo de erros no formato IDE é *)
(* solicitado *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE
                  /e' & fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession );
 (* Fechar janela de progresso quando o analisador for encerrado *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* Teste para arquivo de erros *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                    BitOr($WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, (* criado
                      invisível. Um arquivo de erros
                      no formato IDE ´solicitado
                      *) $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
              END;
 END; (* fim de FOR*)
END; (* fim de make KB*)

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-2 Valor Desconhecido

Consulte também


SysYield

Descrição

Bloqueia o encadeamento atual de execução até que seja feito o dispatch de todas as mensagens na fila.

Sintaxe

FUNCTION SysYield

Notas

SysYield será útil se a interface com o usuário do aplicativo precisar refletir mensagens geradas por uma função intensiva do processador.

Consulte também

SysDelay


SysGlobalizeTime

Descrição

Dada uma variável do tipo hora, suposta como sendo uma hora local, esta função irá ajustá-la para a hora GMT equivalente. Também deverá ser fornecida uma data no caso do ajuste afetá-la.

Sintaxe

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

Notas do Argumento

Argumento Descrição
t Esta é a hora a ser globalizada
d Este valor deve ser fornecido. Se o ajuste da hora fornecida mudar a data para o dia seguinte (ou anterior), a data será ajustada para refletir
essa mudança. SysGlobalizeTime deve ser *sempre* utilizada em um par data/hora.

Códigos de Retorno

Código de Retorno Descrição
1 Sucesso
-1 Fornecida data ou hora desconhecida

Exemplo

Consulte o exemplo para SysSetGMTDiff.

Consulte também


SysLocalizeTime

Descrição

Dada uma variável do tipo hora, suposta como sendo uma hora GMT, esta função irá ajustá-la para a hora local. Também deverá ser fornecida uma data no caso do ajuste afetá-la.

Sintaxe

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

Notas do Argumento

Argumento Descrição
t Esta é a hora a ser localizada
d Este valor deve ser fornecido. Se o ajuste da hora fornecida mudar a data para o dia seguinte (ou anterior), a data será ajustada para refletir essa mudança. SysLocalizeTime deve ser sempre utilizada em um par data/hora.

Códigos de Retorno

Código de Retorno Descrição
1 Sucesso
-1 Fornecida data ou hora desconhecida

Exemplo

Consulte o exemplo para SysSetGMTDiff.

Consulte também


Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script

Retornar à Página Principal

Copyright