Solaris Common Desktop Environment: Guía avanzada del usuario y del administrador del sistema

Capítulo 12 Creación manual de acciones

Hay dos maneras de crear acciones:

Para crear una acción manualmente se debe primero editar un archivo de base de datos. Este capítulo describe cómo crear definiciones de acciones manualmente.

Razones para crear una acción manualmente

Existen tres tipos básicos de acciones:

La herramienta Crear acción se ha diseñado para crear ciertos tipos de acciones COMMAND y MAP. Todas las acciones TT_MSG deben crearse manualmente.

Para obtener más información, véase Limitaciones de Crear acción.

Acciones COMMAND

Una acción command ejecuta un comando que inicia una aplicación o utilidad, una secuencia de shell o un comando del sistema operativo. La definición de la acción incluye el comando que se ha de ejecutar (EXEC_STRING).

Puede utilizarse la herramienta Crear acción para crear los tipos más comunes de acciones command. Sin embargo, se pueden dar situaciones en las que sea necesario crear la acción manualmente; por ejemplo, deberá crear una acción COMMAND manualmente si la acción especifica:

Acciones MAP

Una acción map está reasignada a otra acción, en vez de especificar directamente un comando o un mensaje de ToolTalk

La reasignación ofrece la capacidad de especificar nombres alternativos a las acciones. Por ejemplo, existe una acción command incorporada llamada IconEditor que inicia el Editor de iconos. La base de datos incluye también una acción Open, restringida por definición a archivos de tipo mapa de bits y mapa de píxels (mediante el campo ARG_TYPE), asignada a la acción IconEditor. Esto permite al usuario iniciar el editor de iconos seleccionando primero un archivo de mapa de bits o de mapa de píxels en el Gestor de archivos y luego Abrir en el menú Seleccionada.

Crear acción ofrece una capacidad de asignación limitada para las acciones Open y Print. Todas las otras acciones de tipo map deben crearse manualmente.

Acciones TT_MSG (mensaje ToolTalk)

Las acciones TT_MSG envían un mensaje ToolTalk. Todas las acciones TT_MSG deben crearse manualmente.

Creación manual de una acción: Pasos generales

Esta sección explica cómo crear un archivo de configuración para una definición de acción.

Archivos de configuración de acciones

Los archivos de configuración que contienen definiciones de acciones deben cumplir los siguientes requisitos:

Para obtener información sobre cómo modificar la ruta de búsqueda de acciones y tipos de datos, véase Establecimiento del valor de una ruta de búsqueda.

Para crear una acción manualmente

  1. Abra un archivo de base de datos existente o cree uno nuevo.

    Véase la sección anterior, Archivos de configuración de acciones.

  2. Cree la definición de la acción mediante la sintaxis:

    	ACTION nombre_acción
    	{
    		TYPE		tipo_acción
    		campo_acción
     …
     }

    donde:

    nombre_acción: es el nombre utilizado para ejecutar la acción.

    tipo_acción: es el COMMAND (predeterminado), MAP o TT_MSG.

    campo_acción: es uno de los campos opcionales u obligatorios para este tipo de acción. Todos los campos constan de una palabra clave y un valor.

    En este capítulo se tratan diversos campos de acción. Para obtener más información, véase la página de comando man dtactionfile(4).

  3. Guarde el archivo.

  4. Si quiere que el icono de la acción sea exclusivo, cree un icono específico para la acción. La ubicación predeterminada para los iconos es:

    • Iconos personales: DirectorioInicio/.dt/icons

  5. Haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio.

  6. Cree un archivo de acción para la acción; éste crea un icono en el Gestor de archivos o el Gestor de aplicaciones que representa la acción. (Si la acción inicia una aplicación, el icono se llama icono de aplicación.)

    Para crear el archivo de acción, cree un archivo ejecutable con el nombre nombre_acción. Puede colocar el archivo en cualquier directorio para el que tenga permiso de escritura. Puede crear tantos archivos de acción como desee.

Ejemplo de creación de una acción COMMAND

Siga estos pasos para crear una acción personal que inicia una aplicación de fax en el sistema remoto AppServerA. El comando para iniciar la aplicación de fax es:

/usr/fax/bin/faxcompose [nombre_archivo]
  1. Cree el archivo DirectorioInicio/.dt/types/Fax.dt.

  2. Escriba en el archivo la siguiente definición de acción:

    	ACTION FaxComposer
     {
       TYPE					COMMAND
       ICON					fax
       WINDOW_TYPE	   	NO_STDIO
       EXEC_STRING		   /usr/fax/bin/faxcompose -c %Arg_1%
       EXEC_HOST    	 	AppServerA
       DESCRIPTION    	Ejecuta el creador de fax
    	}

    Los campos WINDOW_TYPE y EXEC_STRING describen el comportamiento del sistema.

    WINDOW_TYPE: la palabra clave NO_STDIO especifica que no tiene que ejecutarse la acción en una ventana de emulador de terminal.

    Véase Especificación del soporte de ventanas para la acción.

    EXEC_STRING: la sintaxis %Arg_1% acepta un archivo soltado sobre el icono. Si se pulsa dos veces el icono de la acción, ésta abre una ventana vacía del editor de faxes.

    Véase Creación de la cadena de ejecución para una acción COMMAND.

  3. Guarde el archivo.

  4. Utilice el editor de iconos para crear las siguientes imágenes de iconos en el directorio DirectorioInicio/.dt/icons:

    • fax.m.pm, tamaño 32 por 32 píxels

    • fax.t.pm, tamaño 16 por 16 píxels

  5. Haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio.

  6. Cree un archivo ejecutable llamado FaxComposer en un directorio para el que disponga de permiso de escritura (por ejemplo, su directorio de inicio).

Ejemplo de creación de una acción MAP

Suponga que la mayoría de los archivos que envía por fax se crean con el editor de texto y son del tipo de datos TEXTFILE (archivos de nombre * .txt).

Los pasos siguientes agregan el elemento de menú "Fax" en el menú Seleccionada del tipo de datos.

  1. Abra el archivo DirectorioInicio/.dt/types/Fax.dt creado en el ejemplo anterior.

  2. Agregue al archivo la siguiente definición de acción map:

    	ACTION Fax
     {
       ARG_TYPE			TEXTFILE
       TYPE				MAP
       MAP_ACTION		FaxComposer
     } 
  3. Guarde el archivo.

  4. Copie la definición de atributos de datos de TEXTFILE desde /usr/dt/appconfig/types/idioma/dtpad.dt a un nuevo archivo, DirectorioInicio/.dt/types/textfile.dt. Agregue la acción Fax en el campo ACTIONS.

    	DATA_ATTRIBUTES TEXTFILE
     {
       ACTIONS			Open,Print,Fax
       ICON				Dtpenpd
       …
     }
  5. Guarde el archivo.

  6. Abra el Gestor de aplicaciones y haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio.

Para recargar la base de datos de acciones/tipos de datos

Para que las acciones nuevas o modificadas surtan efecto, el escritorio debe volver a leer la base de datos.

    Abra el grupo de aplicaciones Herramientas_Escritorio y haga doble clic en Recargar acciones

    O bien, ejecute el comando:

    	dtaction ReloadActions

    ReloadActions es el nombre de la acción cuyo icono está etiquetado como ``Recargar acciones''.

    Así se vuelve a leer la base de datos de acciones cuando el usuario:

    • Inicia la sesión

    • Reinicia el Gestor de área de trabajo

    • Guarda una acción en la ventana Crear acción, seleccionando Guardar en el menú Archivo.

Creación de un archivo de acción (icono) para una acción

Un archivo de acción es un archivo creado para proporcionar una representación visual de la acción en el Gestor de archivos o el Gestor de aplicaciones.

Figura 12–1 Archivos de acción (iconos de acción) en el Gestor de aplicaciones

Graphic

Dado que el icono de un archivo de acción representa una acción, se denomina a veces icono de acción, pero si la acción subyacente inicia una aplicación, recibe el nombre de icono de aplicación.

Al hacer doble clic en el icono de acción, ésta se ejecuta. También se puede soltar archivos sobre el icono de acción.

Para crear un archivo de acción (icono de acción)

    Cree un archivo ejecutable con el mismo nombre que la acción. El contenido es irrelevante.

Por ejemplo, si la definición de la acción es:

ACTION  MiAplFavorita
 {
   EXEC_STRING				Maf -file %Arg_1%
   DESCRIPTION				Ejecuta MiAplFavorita
   ICON						MAplf
 }

el archivo de acción será un archivo ejecutable llamado MiAplFavorita, el cual, en el Gestor de archivos y el Gestor de aplicaciones, utilizará la imagen de icono Maplf.tamaño. tipo. Si pulsa dos veces el icono de MiAplFavorita, se ejecutará la cadena de ejecución de la acción y la ayuda sobre el tema del icono será el contenido del campo DESCRIPTION (“Ejecuta MiAplFavorita”).

Etiquetas de acción

Si la definición de la acción incluye el campo LABEL, el archivo de acción estará etiquetado en el Gestor de archivos y el Gestor de aplicaciones con el contenido de este campo en lugar del nombre de archivo (action_name). Por ejemplo, si la definición de acción incluye:

ACTION  MiAplFavorita
 {
   LABEL      Aplicación Favorita
    …
 }

el icono de acción se etiquetará "Aplicación favorita".

Especificación de la imagen de icono utilizada por una acción

Utilice el campo ICON para especificar el icono usado en el Gestor de archivos y el Gestor de aplicaciones para los iconos creados para la acción.

Si no especifica ningún icono, el sistema utilizará los archivos de imágenes de iconos de acción predeterminados /usr/dt/appconfig/icons/idioma/Dtactn.*.

Figura 12–2 Imagen del icono de acción predeterminado

Graphic

El icono de acción predeterminado puede cambiarse mediante el recurso:

*actionIcon:    nombre_archivo_icono

donde nombre_archivo_icono puede ser un nombre base o una ruta absoluta.

El valor del campo ICON puede ser:

Tabla 12–1 Nombres y tamaños de los iconos de acción

Tamaño en píxels 

Nombre del mapa de bits 

Nombre del mapa de píxels 

48 por 48 

nombre.l.bm

nombre.l.pm

32 por 32 

nombre.m.bm

nombre.m.pm

16 por 16 

nombre .t.bm

nombre .t.pm

Para modificar una definición de acción existente

Se puede modificar cualquiera de las acciones disponibles en el sistema, incluidas las incorporadas.


Nota –

Tenga cuidado al modificar la base de datos de acciones incorporadas, ya que están diseñadas para funcionar correctamente con las aplicaciones de escritorio.


  1. Localice la definición de la acción que desea modificar.

    Las ubicaciones predeterminadas para las definiciones de acciones son:

    • Acciones incorporadas: /usr/dt/appconfig/types/idioma

    • Acciones accesibles en el sistema: /etc/dt/appconfig/types/idioma

    • Acciones personales: DirectorioInicio/.dt/types

      Posiblemente su sistema incluya ubicaciones adicionales. Para ver una lista de las ubicaciones que el sistema utiliza para las acciones, ejecute el comando:

      	dtsearchpath -v
      

      Su sistema utiliza los directorios listados en DTDATABASESEARCHPATH.

  2. Si es necesario, copie el texto de la definición de acción en un archivo nuevo o existente de uno de estos directorios:

    • Acciones accesibles en el sistema: /etc/dt/appconfig/types/idioma

    • Acciones personales: DirectorioInicio/.dt/types

      Debe copiar las acciones incorporadas, ya que no es aconsejable editar los archivos del directorio /usr/dt/appconfig/types/idioma.

  3. Edite la definición de la acción.

  4. Cuando haya terminado, guarde el archivo.

  5. Haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio.

Prioridad en las definiciones de acciones

Cuando el usuario invoca una acción, el sistema busca en la base de datos un nombre de acción que coincida. Si existe más de una acción con el mismo nombre, el sistema utiliza reglas de prioridad para decidir cuál debe utilizar.

Creación de la cadena de ejecución para una acción COMMAND

Los requisitos mínimos de una acción COMMAND son dos campos: ACTION y EXEC_STRING.

ACTION nombre_acción
 { 
      EXEC_STRING cadena_ejecución
 }

La cadena de ejecución es la parte más importante de una definición de acción COMMAND. Utiliza una sintaxis similar a la de la línea de comandos que se ejecutaría en una ventana Terminal, pero incluye sintaxis adicional para manejar argumentos de archivo y de cadena.

Características generales de las cadenas de ejecución

Las cadenas de ejecución pueden incluir:

Argumentos de acción

Un argumento es la información que un comando o aplicación necesita para ejecutarse correctamente. Por ejemplo, examinemos la línea de comandos que se podría utilizar para abrir un archivo en el Editor de textos:

dtpad nombre_archivo

En este comando, nombre_archivo es un argumento de archivo del comando dtpad.

Las acciones, al igual que las aplicaciones y los comandos, pueden tener argumentos. Una acción COMMAND puede utilizar dos tipos de datos:

Uso de shells en cadenas de ejecución

La cadena de ejecución se ejecuta directamente, en lugar de hacerlo a través de un shell. Sin embargo, se puede invocar un shell de forma explícita en la cadena de ejecución.

Por ejemplo:

EXEC_STRING				\
 /bin/sh -c \ 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\
 echo "\\n*** Seleccione Cerrar en el menú Ventana para cerrarla ***"'

Nombre o ruta absoluta del ejecutable

Si su aplicación está ubicada en un directorio que aparece listado en la variable PATH, puede utilizar el nombre simple del ejecutable. Si la aplicación está en otro lugar, deberá utilizar la ruta absoluta al archivo ejecutable.

Creación de una acción que no utiliza argumentos

Utilice para EXEC_STRING la misma sintaxis que usaría para iniciar la aplicación desde una línea de comandos.

Ejemplos

Creación de una acción que acepta un archivo soltado

Utilice esta sintaxis para el argumento de archivo:

%Arg_n%

o

%(File)Arg_n%

(File) es opcional, pues se supone que, de manera predeterminada, los argumentos proporcionados a Arg_n son archivos. (Véase Interpretación de un argumento de archivo como si fuera una cadena para conocer el uso de la sintaxis %(String)Arg_n%.)

Esta sintaxis permite al usuario soltar un objeto archivo de datos sobre el icono de la acción, para iniciar ésta con un argumento de archivo. Sustituye el argumento n de la línea de comandos. El archivo puede ser local o remoto.

Ejemplos

Creación de una acción que solicita un argumento de archivo

Utilice esta sintaxis para el argumento de archivo:

%(File)"solicitud"% 

Esta sintaxis crea una acción que muestra una solicitud de nombre de archivo cuando el usuario pulsa dos veces el icono de acción.

Por ejemplo, esta cadena de ejecución muestra un cuadro de diálogo que solicita el argumento de archivo del comando wc -o comando:

EXEC_STRING wc -w %(File)"Contar palabras en archivo:"%

Creación de una acción que acepta un archivo soltado o solicita un archivo

Utilice esta sintaxis para el argumento de archivo:

%Arg_n"solicitud"%

o

%(File)Arg_n"solicitud"%

Esta sintaxis produce una acción que:

Creación de una acción que solicita un argumento no de archivo

Utilice esta sintaxis para el parámetro no de archivo:

%"solicitud"%

o

%(String)"solicitud"%

(String) es opcional, dado que el texto entre comillas se interpreta, de manera predeterminada, como datos de tipo cadena. Esta sintaxis muestra un cuadro de diálogo que solicita datos que no sean archivos; no la utilice para solicitar un nombre de archivo.

Por ejemplo, esta cadena de ejecución ejecuta el comando xwd y solicita un valor para sumar a cada píxel:

EXEC_STRING xwd -add %"Sumar valor:"% -out %Arg_1"Nombre de archivo:"%

Interpretación de un argumento de archivo como si fuera una cadena

Utilice esta sintaxis para el argumento:

%(String)Arg_n%

Por ejemplo, esta cadena de ejecución imprime un archivo con una carátula que contiene el nombre de archivo, mediante el comando lp -rcarátula nombre_archivo.

EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Archivo a imprimir:"%

Inclusión de capacidades de shell en una acción

Especifique el shell en la cadena de ejecución:

/bin/sh -c 'comando'
/bin/ksh -c 'comando'
/bin/csh -c 'comando'

Ejemplos

Creación de acciones COMMAND con múltiples argumentos de archivo

Hay tres procedimientos para que las acciones manejen múltiples argumentos de archivo:

Creación de una acción con argumentos no intercambiables

Utilice uno de los siguientes convenios de sintaxis:

Creación de una acción con argumentos de archivo intercambiables

Utilice uno de los siguientes convenios de sintaxis:

Ejemplos

Creación de una acción para múltiples archivos soltados

Para aceptar múltiples argumentos de archivo soltados y ejecutar una línea de comandos con el formato:

comando  archivo 1  archivo 2

utilice la sintaxis:

%Args%

Ejemplos

Soporte de ventanas y emuladores de terminal para acciones COMMAND

Existen diversos procedimientos para que las acciones COMMAND soporten ventanas en el escritorio.

Especificación del soporte de ventanas para la acción

Utilice el campo WINDOW_TYPE para especificar el tipo de soporte de ventanas que la acción requiere, tal como se muestra en la Tabla 12–2.

Tabla 12–2 Campo WINDOW_TYPE y soporte de ventanas proporcionado

WINDOW_TYPE

Soporte de ventanas proporcionado 

NO_STDIO

Ninguna. Utilice NO_STDIO si la aplicación tiene su propia ventana, o si el comando no tiene salida visible.

PERM_TERMINAL

Ventana de emulador de terminal permanente. La acción abre una ventana de terminal que permanece abierta hasta que el usuario la cierra explícitamente. El usuario puede introducir datos en la ventana. Utilícelo con comandos que aceptan una entrada, producen una salida y luego terminan (por ejemplo, ls directorio).

TERMINAL

Ventana de emulador de terminal temporal. La acción abre una ventana de terminal que se cierra tan pronto como se completa el comando. Utilícelo con comandos de pantalla completa (por ejemplo, vi).

Especificación de opciones de línea de comandos para el emulador de terminal

Utilice el campo TERM_OPTS en la definición de la acción para especificar opciones de línea de comandos para el emulador de terminal.

Por ejemplo, la siguiente acción solicita el sistema de ejecución:

ACTION OpenTermOnSystemUserChooses 
{ 
   WINDOW_TYPE					PERM_TERMINAL
   EXEC_HOST    				%(String)"Terminal remoto en:"%
   TERM_OPTS    				-title %(String)"Título de ventana:"%
   EXEC_STRING  				$SHELL 
}

Especificación de un emulador de terminal predeterminado diferente

El emulador de terminal predeterminado utilizado por las acciones es dtterm. Se puede cambiar este emulador de terminal por otro; se utiliza cuando la acción no especifica explícitamente el emulador de terminal que se debe utilizar.

El emulador de terminal utilizado por las acciones debe tener estas opciones de línea de comandos:

Restricción de acciones para argumentos determinados

Si se restringe una acción para un determinado tipo de argumentos, se perfecciona. Por ejemplo, es útil restringir una acción que invoca un visor de archivos PostScript únicamente a argumentos de archivo PostScript; con tal restricción, la acción devolverá un cuadro de diálogo de error si se especifica como argumento un archivo que no sea PostScript.

Puede restringir las acciones de acuerdo con:

Restricción de una acción para un tipo de datos específico

Utilice el campo ARG_TYPE para especificar los tipos de datos para los cuales la acción es válida. Use el nombre de atributo de los datos.

Puede introducir una lista de tipos de datos, separando las entradas con comas.

Por ejemplo, la siguiente definición de acción asume que se ha creado un tipo de datos GIF.

ACTION Open_Gif 
{
   TYPE					COMMAND
   LABEL					"Mostrar Gif"
   WINDOW_TYPE			NO_STDIO
   ARG_TYPE				Gif
   ICON					xgif
   DESCRIPTION			Muestra archivos gif
   EXEC_STRING			xgif
 }

Restricción de una acción según el número de argumentos

Utilice el campo ARG_COUNT para especificar el número de argumentos aceptado por la acción. Los valores válidos son:

* (Predeterminado): cualquier número de argumentos. Los otros valores tienen prioridad sobre *.

n: cualquier entero no negativo, incluido 0.

>>n: más de n argumentos.

<n: menos de n argumentos.

Una de las finalidades de ARG_COUNT es proporcionar un comportamiento diferente del icono de la acción, dependiendo de si el usuario pulsa dos veces el icono o suelta un archivo sobre él. Véase la sección siguiente, “Para proporcionar un comportamiento diferente al hacer doble clic y al soltar.”

Para proporcionar un comportamiento diferente al hacer doble clic y al soltar

Utilice este procedimiento para crear una acción que acepte un archivo soltado pero que no solicite un archivo al hacer doble clic en el icono de acción.

  1. Cree una definición de acción para el comportamiento de doble clic.

    Utilice el campo ARG_COUNT para especificar 0 argumentos. Utilice una sintaxis para EXEC_STRING que no acepte un argumento soltado.

  2. Cree una segunda definición de acción para el comportamiento de soltar argumento.

    Utilice el campo ARG_COUNT para especificar >0 argumentos. Utilice una sintaxis para EXEC_STRING que acepte un archivo soltado.

    Por ejemplo, supongamos que se puede utilizar cualquiera de las dos líneas de comandos siguientes para iniciar un editor llamado vedit:

    • Para iniciar el editor sin ningún argumento de archivo:

      	vedit
    • Para iniciar el editor con un argumento de archivo que se abre como documento de sólo lectura:

      	vedit -R nombre_archivo
      

      Las dos acciones siguientes crean funciones de soltar y hacer doble clic para una acción llamada Vedit. La primera acción tiene prioridad cuando se busca en la base de datos de acciones, dado que ARG_COUNT 0 es más específico que el ARG_COUNT * implícito de la definición del comportamiento al soltar.

      # Función doble clic 
      ACTION Vedit 
      {
       TYPE						COMMAND
       ARG_COUNT				0
       WINDOW_TYPE			PERM_TERMINAL
       EXEC_STRING			vedit 
      }
      
      # Función de soltar 
      ACTION Vedit 
      {
       TYPE						COMMAND
       WINDOW_TYPE			PERM_TERMINAL 
       EXEC_STRING			vedit -R %Arg_1% 
      }

Restricción de una acción según el modo del argumento

Utilice el campo ARG_MODE para especificar el modo de lectura/escritura del argumento. Los valores válidos son:

* (Predeterminado) : cualquier modo

!w: no se puede escribir

w: se puede escribir

Creación de acciones que ejecutan aplicaciones en sistemas remotos

Al tratar de las acciones y la ejecución remota, se utilizan con frecuencia dos términos:

sistema de bases de datos: sistema que contiene la definición de la acción

sistema de ejecución: sistema donde se ejecuta el archivo ejecutable

En la mayoría de las situaciones, las acciones y sus aplicaciones se encuentran en el mismo sistema; dado que el sistema de ejecución predeterminado de una acción es el sistema de base de datos, no se requiere ninguna sintaxis especial.

No obstante, cuando los sistemas de ejecución y de base de datos son distintos, la definición de la acción debe especificar dónde debe ejecutarse la cadena de ejecución.

La capacidad para localizar acciones y aplicaciones en sistemas diferentes forma parte de la arquitectura cliente/servidor del escritorio. Para obtener una información más exhaustiva acerca de las aplicaciones en red, véase Administración de servicios de aplicaciones.

Creación de una acción que ejecuta una aplicación remota

Utilice el campo EXEC_HOST en la definición de la acción para especificar la ubicación de la aplicación.

Los valores válidos de EXEC_HOST son:

%DatabaseHost%: sistema donde se encuentra la definición de la acción.

%LocalHost%: sistema donde se invoca la acción (el servidor de sesiones).

%DisplayHost%: sistema que ejecuta el servidor X (no permitido para terminales X).

%SessionHost%: sistema donde se ejecuta el Gestor de inicio de sesión que ejerce el control.

nombre sistema: el sistema nombrado. Utilice este valor en entornos en los cuales la acción debe siempre invocarse en un sistema determinado.

%"solicitud"% : solicita al usuario el nombre del sistema cada vez que se invoca la acción.

El valor predeterminado es %DatabaseHost%, %LocalHost%. De este modo, si se omite el campo EXEC_HOST, la acción intenta primero ejecutar el comando en el sistema que contiene la definición de la acción. Si esto falla, la acción intenta ejecutar el comando en el servidor de sesiones.

Ejemplos

Uso de variables en las definiciones de acciones y tipos de datos

Se pueden incluir variables de cadena y de entorno en los archivos de definición de acciones y de tipos de datos.

Uso de variables de cadena en una acción

Una definición de variable de cadena permanece en vigor desde la ubicación de la definición dentro del archivo hasta el final de éste. No existen variables de cadena globales para la base de datos.

Si una variable de cadena y una de entorno tienen el mismo nombre, tiene prioridad la de cadena.

Para definir una variable de cadena

    Utilice la sintaxis:

	set nombre_variable=valor

Los nombres de las variables pueden contener cualquier carácter alfanumérico y el de subrayado (_). Cada definición de variable debe colocarse en una línea separada.

Por ejemplo:

set Remote_Application_Server=sysapp
set Remote_File_Server=sysdata

Para hacer referencia a una variable de cadena

    Utilice la sintaxis:

	$[{]nombre_variable[}]

Por ejemplo:

EXEC-HOST			$Remote_Application_Server
CWD					/net/${Remote_File_Server}/doc/project

Uso de variables de entorno en las acciones y en los tipos de datos

    Para hacer referencia a una variable de entorno utilice la sintaxis:

	$[{]variable[}]. 

La variable se expande (sustituida por su valor) cuando se carga la base de datos. Si una variable de cadena y una de entorno tienen el mismo nombre, tiene prioridad la de cadena.

Por ejemplo, esta cadena de ejecución imprime un archivo con una carátula que contiene el nombre de inicio de sesión.

EXEC-STRING lp -t$LOGNAME %(File)Arg_1%

Invocación de acciones desde una línea de comandos

El escritorio incluye el comando dtaction para ejecutar acciones desde una línea de comandos. Se puede utilizar dtaction para ejecutar acciones desde:

Sintaxis de dtaction

dtaction [-user 
nombre_usuario] [-execHost nombre_sistema] \nombre_acción [argumento 
[argumento]…]

-user nombre_usuario: proporciona la posibilidad de ejecutar la acción como un usuario distinto. Si un usuario distinto de nombre_usuario invoca a dtaction, se muestra un indicador para la contraseña.

-execHost nombre_sistema: sólo para acciones COMMAND; especifica el sistema donde se ejecutará el comando.

argumento: argumentos de la acción; generalmente argumentos de archivo.

El cliente de dtaction posee opciones adicionales de línea de comandos. Para obtener más información, véase la página de comando man dtaction(1).

Creación de una acción que ejecuta otra acción

Utilice dtaction en la EXEC_STRING de la acción.

Por ejemplo, la siguiente acción utiliza una acción incorporada llamada Spell (la acción está etiquetada como "Revisar ortografía" en el Gestor de aplicaciones). La nueva acción ejecuta el Editor de textos y la acción Spell, mostrando los errores de ortografía en una ventana del emulador de terminal distinta.

ACTION EditAndSpell 
{
   WINDOW_TYPE				NO_STDIO
   EXEC_STRING				/bin/sh -c 'dtaction Spell \
        %Arg_1"Archivo:"%; dtpad %Arg_1%' 
}

Creación de una acción que se ejecuta como un usuario diferente

Utilice la siguiente sintaxis en la EXEC_STRING:

EXEC_STRING   dtaction -user nombre_usuario  
		nombre_acción [argumento_archivo]

El nuevo usuario (nombre_usuario) debe tener acceso para mostrar en el sistema, mediante uno de los mecanismos siguientes:

Creación de acciones de entorno nacional

La ruta de búsqueda de tipos de datos incluye ubicaciones que dependen del idioma. El escritorio utiliza el valor de LANG para determinar las ubicaciones donde se deben buscar las definiciones de tipos de datos.

Ubicaciones de las acciones de entorno nacional

Las definiciones de acciones de entorno nacional deben situarse en los directorios dependientes del idioma adecuados de la ruta de búsqueda de acciones.

La ruta de búsqueda predeterminada es:

Para establecer el entorno nacional de una acción existente

  1. Cree un archivo en el directorio dependiente del idioma apropiado (por ejemplo, en /etc/dt/appconfig/types/japanese).

  2. Copie la definición de la acción en el archivo de configuración dependiente del idioma.

    Por ejemplo, puede copiar una definición de acción de

    	app_root/dt/appconfig/types/C/file.dt

    hasta

    	app_root/dt/appconfig/types/japanese/newfile.dt
  3. Agregue un campo LABEL o modifique el campo LABEL existente.

    	LABEL			cadena
    

    El Gestor de aplicaciones y el Gestor de archivos utilizan la cadena de la etiqueta para identificar el icono de acción.

  4. Establezca el entorno nacional para todos los campos siguientes de la definición de la acción:

    • Para iconos de entorno nacional: ICON

    • Para ayuda sobre el tema de entorno nacional: DESCRIPTION

    • Para indicadores de solicitud de entorno nacional: cualquier texto entrecomillado que aparezca en EXEC_STRING

Creación de acciones para aplicaciones de ToolTalk


Nota –

La siguiente información sólo es válida para las aplicaciones que admiten envío de mensajes de ToolTalk.


Utilice el tipo de acción TT_MSG para crear una acción que envíe un mensaje de ToolTalk.

ACTION nombre_acción
{
  TYPE		TT_MSG 
  …
 }

Campos addressing y disposition

Mensajes no admitidos

Las acciones de tipo TT_MSG no admiten:

Palabras clave para las acciones TT_MSG

Tabla 12–3muestra la palabra clave y su uso en acciones de tipo TT_MSG.

Tabla 12–3 Palabras clave de acción de TT_MSG y su uso

Palabra clave 

Uso 

TT_CLASS

Define el valor del campo class del mensaje de ToolTalk 

TT_SCOPE

Define el valor del campo scope del mensaje de ToolTalk 

TT_OPERATION

Define el valor del campo operation del mensaje de ToolTalk 

TT_FILE

Define el valor del campo file del mensaje de ToolTalk 

TT_ARGn_MODE

Define el valor del atributo mode de ToolTalk para el nésimo argumento de mensaje

TT_ARGn_VTYPE

Define el valor del atributo vtype de ToolTalk para el nésimo argumento de mensaje

TT_ARGn_VALUE

Define el valor del nésimo argumento de mensaje