Saltar al contenido principal
Versión: 20 R5 BETA

Interfaz de línea de comando

Puede utilizar el Terminal de macOS o la consola de Windows para manejar sus aplicaciones 4D (4D, 4D Server, aplicación fusionada y tool4d) utilizando líneas de comando. Más concretamente, esta funcionalidad le permite:

  • lanzar una base de datos de forma remota, lo que puede ser especialmente útil para administrar los servidores web.
  • ejecutar pruebas automáticas para sus aplicaciones.

Información básica

Puede ejecutar líneas de comando para las aplicaciones 4D utilizando el terminal macOS o la consola Windows.

  • En macOS, debe utilizar el comando open.
  • En Windows, puede pasar los argumentos directamente.

En macOS, se pueden pasar los argumentos directamente yendo a la carpeta donde se encuentra la aplicación dentro del paquete (Contents/MacOS), lo que permite direccionar el flujo stderr. Por ejemplo, si el paquete 4D se encuentra en la carpeta MyFolder, debe escribir la línea de comandos de la siguiente manera: /MyFolder/4D.app/Contents/MacOS/4D. Sin embargo, recomendamos que utilice el comando open siempre que no necesite acceder al stream stderr.

Lanzar una

aplicación 4D

A continuación se describen las líneas de comando y los argumentos soportados para lanzar aplicaciones 4D.

Sintaxis:

<applicationPath> [--version] [--help] [--project] [<projectPath | packagePath | 4dlinkPath> [--data <dataPath>]] 
[--opening-mode interpreted | compiled] [--create-data] [--user-param <user string>] [--headless] [--dataless]
[--webadmin-settings-file] [--webadmin-access-key] [--webadmin-auto-start] [--webadmin-store-settings]
[--utility] [--skip-onstartup] [--startup-method <methodName string>]
Argumento&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ValorDescripción
applicationPathRuta de 4D, 4D Server, aplicación fusionada o tool4dLanza la aplicación.
Si no es sin interfaz: idéntico ahacer doble clic en la aplicación; cuando se llama sin argumento de archivo de estructura,la aplicación se ejecuta y aparece la caja de diálogo "seleccionar base dedatos".
--versionMuestra la versión de la aplicación y sale
--helpMuestra el mensaje de ayuda y sale. Argumentosalternativos: -?, -h
--projectprojectPath| packagePath | 4dlinkPathArchivo de proyectoa abrir con el archivo de datos actual. No aparece ningunacaja de diálogo.
--datadataPathArchivo de datos aabrir con el archivo de proyecto designado. Si no se especifica, se utiliza el último archivo de datosabierto.
--opening-modeinterpreted| compiledBase de datos depeticiones a abrir en modo interpretado o compilado. No se lanza ningúnerror si el modo solicitado no está disponible.
--create-dataCrea automáticamenteun nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ningunacaja de diálogo. 4D utiliza el nombredel archivo pasado en el argumento "--data" si lo hay (genera un error si yaexiste un archivo con el mismo nombre).
--user-paramCadena usuariopersonalizadaUna cadena que estará disponible en la aplicación a través del comando Get database parameter (la cadena no debe comenzar por un carácter "-", que está reservado).
--headlessLanza 4D, 4D Servero la aplicación fusionada sin interfaz (modo headless). In this mode:
  • The Design mode is not available, database starts in Application mode
  • No toolbar, menu bar, MDI window or splash screen is displayed
  • No icon is displayed in the dock or task bar
  • The opened database is not registered in the "Recent databases" menu
  • The diagnostic log is automatically started (see SET DATABASE PARAMETER, selector 79)
  • Every call to a dialog box is intercepted and an automatic response it provided (e.g. OK for the ALERT command, Abort for an error dialog...). All intercepted commands(*) are logged in the diagnostic log.

  • For maintenance needs, you can send any text to standard output streams using the LOG EVENT command. Note that headless 4D applications can only be closed by a call to QUIT 4D or using the OS task manager.
    --datalessLanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sindatos. El modo sin datos esútil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, porejemplo). In this mode:
  • No file containing data is opened, even if specified in the command line or the .4DLink file, or when using the CREATE DATA FILE and OPEN DATA FILE commands.
  • Commands that manipulate data will throw an error. For example, CREATE RECORD throws “no table to apply the command to”.

  • Note:
  • If passed in the command line, dataless mode applies to all databases opened in 4D, as long as the application is not closed.
  • If passed using the .4DLink file, dataless mode only applies to the database specified in the .4DLink file. For more information on .4DLink files, see Project opening shortcuts.
  • --webadmin-settings-fileRuta del archivoPath of the custom WebAdmin .4DSettings file for the WebAdmin web server. Not available with tool4d.
    --webadmin-access-keyStringAccess key for the WebAdmin web server. Not available with tool4d.
    --webadmin-auto-startBooleanStatus of the automatic startup for the WebAdmin web server. Not available with tool4d.
    --webadmin-store-settingsStore the access key and automatic starting parameters in the currently used settings file (i.e. the default WebAdmin.4DSettings file or a custom file designated with the --webadmin-settings-path parameter). Use the --webadmin-store-settings argument to save these settings if necessary. Not available with tool4d.
    --utilitySólo disponible con 4D Server. Launches 4D Server in utility mode.
    --skip-onstartupLaunches the project without executing any "automatic" methods, including the On Startup and On Exit database methods
    --startup-methodNombre del método proyecto (cadena)Project method to execute immediately after the On Startup database method (if not skipped with --skip-onstartup).

    (*) Algunos diálogos se muestran antes de abrir la base de datos, por lo que es imposible escribir en el [archivo de registro de diagnóstico](Debugging/debugLogFiles. d#4ddiagnosticlogtxt) (alerta de licencia, diálogo de conversión, selección de bases de datos, selección de archivos de datos). En este caso, se lanza un mensaje de error tanto en el flujo stderr como en el registro de eventos sistema, y luego la aplicación se cierra.

    Ejemplos

    La carpeta actual del usuario se alcanza utilizando el comando "~ " en macOS y el comando "%HOMEPATH%" en Windows.

    Lance una aplicación 4D almacenada en el escritorio:

    • macOS:
    open ~/Desktop/4D.app
    open "~/Desktop/4D Server.app"
    • Windows:
    %HOMEPATH%\Desktop\4D\4D.exe
    %HOMEPATH%\Desktop\"4D Server.exe"

    Abra un paquete en macOS:

    --args ~/Documents/myDB.4dbase

    Abra un archivo de proyecto:

    • macOS:
    --args ~/Documents/myProj/Project/myProj.4DProject
    • Windows:
    %HOMEPATH%\Documents\myProj\Project\myProj.4DProject

    Abra un archivo de proyecto y un archivo de datos:

    • macOS:
    --args --project ~/Documents/myProj/Project/myProj.4DProject
    --data ~/Documents/data/myData.4DD
    • Windows:
    --project %HOMEPATH%\Documents\myProj\Project\myProj.4DProject
    --data %HOMEPATH%\Documents\data\myData.4DD
    o:
    /project %HOMEPATH%\Documents\myProj\Project\myProj.4DProject /data
    %HOMEPATH%\Documents\data\myData.4DD

    Abra un archivo .4DLink:

    • macOS:
    ~/Desktop/MyDatabase.4DLink
    • Windows:
    %HOMEPATH%\Desktop\MyDatabase.4DLink

    Lance la aplicación en modo compilado y cree un archivo de datos si no está disponible:

    • macOS:
    ~/Documents/myBase.4dbase --args --opening-mode compiled
    --create-data true
    • Windows:
    %HOMEPATH%\Documents\myBase.4dbase\myDB.4db --opening-mode
    compiled --create-data true

    Lance la aplicación con un archivo proyecto y un archivo de datos y pase una cadena como parámetro de usuario:

    • macOS:
    --args --project ~/Documents/myProj/Project/myProj.4DProject
    --data ~/Documents/data/myData.4DD --user-param "Hello world"
    • Windows:
    --project %HOMEPATH%\Documents\myProj\Project\myProj.4DProject
    --data %HOMEPATH%\Documents\data\myData.4DD --user-param "Hello world"

    Apertura sin interfaz (modo headless):

    • macOS:
    --args --project ~/Documents/myProj/Project/myProj.4DProject --data ~/Documents/data/myData.4DD --headless  
    • Windows:
    --project %HOMEPATH%\Documents\myProj\Project\myProj.4DProject
    --data %HOMEPATH%\Documents\data\myData.4DD --headless

    tool4d

    tool4d es una aplicación gratuita, ligera y autónoma que le permite abrir un proyecto 4D en modo sin interfaz y ejecutar código 4D utilizando la lìnea de comando (CLI).

    tool4d está disponible en Windows y macOS y siempre está asociado a una versión 4D (misma versión y número de compilación). Sólo está disponible en inglés.

    tool4d es una herramienta perfecta si desea:

    • implementar una cadena CI/CD para su aplicación 4D,
    • utilizar un ejecutable 4D ligero para ejecutar scripts 4D, por ejemplo para ejecutar pruebas unitarias automáticas.

    Uso de tool4d

    Puedes obtener tool4d de la Página de descarga de productos.

    Se utiliza tool4d ejecutando una línea de comandos con un proyecto 4D estándar. Puede utilizar todos los argumentos descritos en la tabla anterior, excepto --webadmin ya que este componente está desactivado en tool4d. Con tool4d, se lanza la siguiente secuencia específica:

    1. La herramienta 4D ejecuta el método base On Startup (y todos los métodos "automáticos" como el método usuario), excepto si se pasa el argumento --skip-onstartup.
    2. tool4d ejecuta el método designado por el argumento --startup-method, si existe.
    3. tool4d ejecuta el método base On Exit, excepto si se pasa el argumento --skip-onstartup.
    4. tool4d sale.

    En Windows, tool4d es una aplicación de consola, de modo que el stream stdout se muestra en el terminal (cmd, powershell...).

    Notas
    • tool4d siempre se ejecuta sin interfaz (la opción de línea de comandos headless es inútil).
    • El comando Application type devuelve el valor 6 ("tool4d") cuando se llama desde la aplicación tool4d.
    • el archivo de registro de diagnóstico tiene el prefijo "4DDiagnosticLogTool".

    Funcionalidades 4D desactivadas

    Tenga en cuenta que tool4d se ejecuta automáticamente en modo sin interfaz (ver --headless en esta tabla), y no da acceso al IDE 4D ni a ninguno de sus servidores. En concreto, se desactivan las siguientes funcionalidades:

    • servidor de aplicaciones, servidor web, servidor SQL,
    • programador de copias de seguridad,
    • ODBC y SQL pass-through,
    • todos los componentes como 4D View Pro, 4D SVG, 4D NetKit...,
    • corrector ortográfico hunspell,
    • corrector ortográfico japonés (librería mecab),
    • WebAdmin
    • CEF,
    • PHP,
    • depurador remoto (depurador local, el comando TRACE y los puntos de interrupción se ignoran en las aplicaciones sin interfaz).

    4D Server en modo utilitario

    Puede lanzar una instancia 4D Server en modo utilitario (sin interfaz) utilizando la opción CLI --utility. En este caso, se activa el siguiente flujo de trabajo:

    1. 4D Server ejecuta el método base On Startup (y todos los métodos "automáticos" como el método usuario), excepto si se pasa el parámetro --skip-onstartup.
    2. 4D Server ejecuta el método designado por el --startup-method, si existe.
    3. El servidor 4D ejecuta el método base On Exit, excepto si se pasa el parámetro --skip-onstartup.
    4. 4D Server se cierra.
    info

    A diferencia de tool4d, 4D Server en modo utilitario tiene todas sus funcionalidades activadas. Sin embargo, el servidor de aplicaciones y el resto de servidores no se inician.

    Ver también

    Ver esta publicación de blog para ejemplos de cómo utilizar tool4d y 4D Server en modo de utilidad.