Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20 R8
Funcionalidades obsoletas o eliminadas

Funcionalidades obsoletas o eliminadas    


 

 

Durante más de 30 años, nuestro objetivo principal ha sido mejorar nuestro producto (utilizando nuevos conceptos y tecnologías) al tiempo que garantizamos la compatibilidad de las aplicaciones 4D. Como saben los primeros usuarios de 4D, siempre hemos puesto mucho esfuerzo en la compatibilidad, y podemos encontrar aplicaciones 4D en todo el mundo que se crearon hace años y años, con versiones antiguas de 4D y de un sistema operativo, que aún funcionan con las últimas revisiones del producto.

Desafortunadamente, a veces se vuelve demasiado difícil mezclar tecnologías antiguas con nuevas:

  • 4D debe brindar nuevas tecnologías, nuevas API y nuevos paradigmas a los desarrolladores
  • Los sistemas operativos cambian todos los días y, a veces, dejan de utilizar sus propias APIs antiguas

Es por eso que 4D a veces necesita etiquetar algunos comandos y funcionalidades como obsoletos, lo que significa que algún día se eliminarán del lenguaje en una versión principal futura.

Dejar que los desarrolladores sepan qué está en desuso y qué tipo de reemplazo se puede utilizar en su lugar hace que sea mucho más cómodo implementar el cambio en su código: no hay urgencia, no hay presión, y el desarrollador tiene tiempo de sobra para realizar los cambios necesarios.

FuncionalidadRemplazar conEstado en la versión actual de 4D
Comandos de declaración C_XXXvar, #DECLARE and function prototypesObsoleto
Método base On 4D Mobile AuthenticationForce login and authentify() functionObsoleto
Built-in PHP interpreterIntérprete PHP externoEliminado
Replicación vía SQLORDA Global StampObsoleto
Driver PDFCreatorNative Windows PDF driverObsoleto
Incumplimiento de la notación de objetosVerifique la conformidad y active la opción de compatibilidad Utilizar de notación de objetosEliminado
Variables interproceso Shared objects and collections, Obsoleto
4D ODBC ProBuilt-in ODBC/SQL Pass through, 4D REST APIEliminado
4D for OCI en macOSBuilt-in ODBC/SQL Pass through, 4D REST APIEliminado
4D ODBC Driver en macOS4D REST APIEliminado
4D Internet Commands - MailTransporters (IMAPSMTPPOP3), Email objectsObsoleto
4D Internet Commands - File TransfertSystem workersObsoleto
Formularios usuarioFormularios dinámicos Obsoleto
Asignación dinámica de variables recibidas por medio de HTTP (opción compatibilidad para bases creadas antes de v13.4)Comando (para recuperar variables). Comandos / (para recuperar archivos enviados)Obsoleto
Subtablas convertidasUtilice las tablas N->1Obsoleto
APIs de archivos y carpetas en Mac, Obsoleto
Acciones estándar basadas en códigoModelos de cadenas (constantes "ak" del tema Valores Texto para Acción estándar asociada)Obsoleto
Recursos Mac Utilice la carpeta "Resources". Por compatibilidad, aún puede utilizarla en bases convertidas. Ya no soportamos comandos de acceso a escritura.OS (iconos cicn: eliminado.) Los archivos Database.RSR no se abren automáticamente. Debe utilizar .
Gestión de prioridad de la CPUningunoObsoleto
Antigua capa de redUtilizar ServerNetObsoleto
4D MobileORDA y REST ServerObsoleto
Wakanda connection (4D Mobile)ORDA y REST ServerObsoleto

Explicación de los valores para la columna “Estado”:

  • Eliminado: ya no está disponible en la versión actual (o la versión indicada).
  • Obsoleto: ya no se debe utilizar y se eliminará en una futura versión principal.
  • OS: depende de tecnologías OS oficialmente obsoletas (por ejemplo: formato PICT). Este estado es identico al estado Obsoleto, pero un sistema operativo podría retirar el soporte antes que nosotros.

Los comandos obsoletos no se eliminarán del código existente y seguirán funcionando normalmente mientras sean compatibles. Cuando un comando obsoleto lleva el prefijo "_o_", deja de estar disponible en las listas de 4D (editor de código, función tecleo predictivo, etc.) pero sigue siendo posible (aunque no recomendable) añadirlo en un método simplemente introduciendo su nombre con el prefijo "_o_"; se interpretará correctamente.

ComandoRemplazado porObsoleto desde
Tema Entorno 4D:
-v11
Tema Backup:
v16
Tema Compilador:
                                                         var#DECLARE and function prototypes20 R7
v12
(utilice SVG con el comando )v12 
v12
(en cuanto la base de datos esté en Unicode)v12
Tema Entrada:
 en la tabla n de una relación N->1v12
 en la tabla n de una relaciónv12
Tema Arrastrar y soltar:
Comandos del tema Portapapelesv17 R4
Tema Eventos formulario:
Remplazar con y el evento apropiadov12
Tema Formularios:
Disabledv17 R4
Tema Gráficos:
(utilizando 4D Graph Area)Utilice imagen SVG en su lugarv12
Tema listas jerárquicas:
Eliminar en código (no hace nada desde v11)v11
Tema Interrupciones:
Last errors20 R7
Tema Licencias:
License info20 R7
Tema List Box:
constantes:
_o_lk display hor scrollbar/_o_lk display ver scrollbarv16 R3
_o_lk footer heightv16 R3
_o_lk header heightv16 R3
_o_lk hor scrollbar position/_o_lk ver scrollbar positionv16 R3
Tema Objetos (Formularios):
v16 R3
v18
Tema Imágenes:
v16 R5
Tema impresión:
, v18
Tema Procesos:
Process info20 R7
Tema Selecciones:
ORDAv18
Tema SQL:
v12
v12
Tema Cadena:
v11
v11
Tema Subregistros: todos los comandosRemplazar “nnn SUBRECORD” y “nnn SUBSELECTION” con una acción sobre el registro N o la selección N de la tabla N en una relación N->1v12
Tema Documentos del sistema:
v12
v16 R6
v16 R6
v16 R6
Utilice UTIs y Info.plistv16 R6
Tema Entorno sistema:
Utilizar identificadores de fuentesv14
El comando ya no acepta un parámetro LongInt para la fuente: este parámetro es ahora una Cadena y debe especificar el nombre de la fuente.
/ / v17
/ / v17
No hace nada en macOS 20 R7
Tema Formularios usuario:
Formularios dinámicosv17 R4
Formularios dinámicosv17 R4
Formularios dinámicosv17 R4 
Formularios dinámicosv17 R4
Tema servidor Web:
Utilizar sesiones escalablesv18 R6

Una lista alfabetica de estos comandos obsoletos puede consultarse en el anexo Comandos obsoletos de SET LIST ITEM ICON.

Por razones de coherencia, varios comandos han cambiado de nombre en 4D 20 R7.

 

Nombre anteriorNuevo nombre (4D 20 R7 y superior)
Get action infoAction info
GET ACTIVITY SNAPSHOTACTIVITY SNAPSHOT
Get application infoApplication info
GET BACKUP INFORMATIONBACKUP INFO
Get call chainCall chain
Get database measuresDatabase measures
Get last field numberLast field number
Get last query pathLast query path
Get last query planLast query plan
Get last table numberLast table number
Get license infoLicense info
Get license usageLicense usage
Get localized document pathLocalized document path
Get localized stringLocalized string
Get locked records infoLocked records info
GET MEMORY STATISTICSMEMORY STATISTICS
Get Monitored ActivityMonitored activity
GET MOUSEMOUSE POSITION
GET RESTORE INFORMATIONRESTORE INFO
Get process activityProcess activity
Get system infoSystem info
Get table fragmentationTable fragmentation
Session storage by idSession storage

El método base On REST Authentication quedó obsoleto a partir de 4D 20 R6. La autenticación Force login es ahora altamente recomendada para manejar el registro de usuarios REST.

En los proyectos convertidos, puede actualizar su configuración haciendo clic en el botón Activar autenticación REST a través de la configuración de la función ds.authentify(). Consulte esta entrada de blog para saber cómo migrar su código si es necesario.

A partir de 4D v20 R5, el plug-in 4D Internet Commands ya no se ofrece con el instalador 4D. Si lo requiere, debe descargar el archivo 4DInternetCommands.bundle del portal de descarga de productos 4D e instalar los archivos del plug-in en la carpeta Plugins de su proyecto o base de datos.

Las siguientes funcionalidades de 4D Internet Commands son obsoletas:

FuncionalidadReemplazoEstado
IC Downloaded MailEmail objectsObsoleto, documentación eliminada
IC IMAP Review MailIMAP TransporterObsoleto, documentación eliminada
IC POP3 Review MailPOP3 TransporterObsoleto, documentación eliminada
IC Send MailSMTP TransporterObsoleto, documentación eliminada
IC File TransfertSystem workersObsoleto, documentación eliminada

4D v20 R3 y las próximas versiones ya no incluyen un intérprete PHP integrado en 4D. La mayoría de las funcionalidades que ofrece PHP están ahora implementadas en 4D y hemos decidido eliminar el intérprete PHP integrado. y otros comandos PHP continuarán funcionando pero sólo con un intérprete PHP externo. Ver la página OBJECT GET BEST SIZE y también esta entrada de blog para más información.

Los mecanismos de replicación y sincronización SQL (descritos en Replicación vía SQL) son obsoletos a partir de 4D v20 R3. Aún son soportados pero ahora se recomienda utilizar la funcionalidad Global Stamp,basada en ORDA, que ofrece una solución flexible y robusta para implementar la replicación y sincronización en 4D.

A partir de 4D v20, la conformidad del código de su base con la notación de objetos es obligatoria. Si intenta convertir una base en la que la opción Utilizar la notación de objetos para acceder a las propiedades de los objetos aún no está marcada (modo de compatibilidad, ver Página Compatibilidad), 4D mostrará una caja de diálogo que le permitirá habilitar temporalmente la opción para poder abrir la base de datos. Todavía necesita marcar la opción explícitamente para habilitarla permanentemente, sin embargo se recomienda verificar la compatibilidad de la aplicación de antemano utilizando el CMS.

Si hace clic en Cancelar o si la base no permite el acceso al modo de desarrollo (base compilada, sin acceso en diseño...), se genera el error -10537 y la base de datos no se abre.

Nota: el modo de compatibilidad sólo estaba disponible en bases binarias.

El driver PDFCreator es obsoleto desde 4D v20. Windows 10 y versiones superiores incluyen un controlador PDF nativo. La constante PDFCreator Printer name ha sido renombrada _o_PDFCreator Printer name.

Después de años de servicio, es hora de que se retiren: las variables interproceso están son obsoletas. El uso de variables interproceso no se recomienda en los proyectos 4D porque no están disponibles desde los procesos apropiativos y no están adaptadas al manejo de valores complejos como arrays, objetos o colecciones (cuando no son compartidos) provenientes de múltiples procesos simultáneos. Finalmente, tienden a hacer que el código sea menos fácil de mantener. Para compartir valores de objetos y colecciones entre procesos, recomendamos encarecidamente utilizar las colecciones y objetos compartidos  y/o singletons.

A partir de 4D Write Pro v19 R4, puede gestionar los saltos de fila. Para evitar confusiones con los saltos de párrafos y tablas, ahora todos los saltos se manejan mediante constantes dedicadas y acciones estándar (ver Atributos 4D Write Pro y Utilizar las acciones estándar 4D Write Pro). La constante genérica anterior (_o_wk page break inside) y la acción estándar (avoidPageBreakInsideEnabled) están en desuso y se admiten solo por razones de compatibilidad.

A partir de 4D v19, el plug-in 4D ODBC Pro ya no está disponible en todas las plataformas. Recomendamos utilizar el pass-trough integrado ODBC/SQL (ver y Presentación de los comandos SQL) o la API REST 4D para manejar las funciones de conectividad ODBC/SQL.

A partir de 4D v19, el plug-in 4D for OCI ya no está disponible en macOS. Recomendamos utilizar el pass-through integrado ODBC/SQLL (ver y Presentación de los comandos SQL) o la API REST 4D para manejar las funcionalidades de conectividad en esta plataforma.

A partir de 4D v19, el Driver 4D ODBC ya no está disponible en macOS. Recomendamos utilizar el API 4D REST para el acceso a datos externos en esta plataforma.

La opción de almacenamiento de archivos de datos externos ya no se soporta para los campos de tipo de objeto (ver Almacenamiento en el registro, en el archivo de datos, fuera del archivo de datos). Si se seleccionó esta opción para un campo objeto, se convierte automáticamente a En archivo de datos y se usa para nuevos registros. Los datos existentes en los campos objeto se reescriben de forma transparente en la nueva ubicación cuando se guarda el registro principal. Para forzar que todos los registros se reescriban a la vez, puede compactar el archivo de datos con la opción "Actualizar registros".

A partir de 4D v17 R4, los formularios de usuario están en desuso. Para ofrecer interfaces de usuario personalizables, ahora se recomienda utilizar formularios dinámicos (ver Formularios dinámicos en Manual de Diseño). Todos los comandos dentro del tema "Formularios de usuario" han quedado en desuso.

Los formularios de usuario aún son soportados por compatibilidad, sin embargo, ya no deben utilizarse. Su soporte será eliminado en futuras versiones.

En las versiones anteriores de 4D, el servidor web recopiaba automáticamente el valor de las variables enviadas a través de un formulario web o una URL en las variables 4D cuando tenían el mismo nombre.

Por razones de optimización y control, este principio no se mantiene a partir de 4D v14: el valor de las variables Web ya no se asigna automáticamente a las variables 4D. Para recuperar las variables enviadas utilizando un POST o un GET, debe utilizar el comando WEB GET VARIABLES exclusivamente.  Para recuperar las imágenes enviadas, debe utilizar los comandos WEB GET BODY PART/WEB Get body part count.

Nota: la asignación dinámica también está desactivada por defecto en las bases de datos 4D creadas a partir de la versión 13.4.

Sin embargo, por compatibilidad, este mecanismo se mantiene por defecto en las bases de datos creadas con una versión de 4D anterior a la 13.4. En este caso, se puede desactivar el uso de la opción de compatibilidad de asignación de variable automática en la página Compatibilidad de las Propiedades de la base.

Dado que este mecanismo es obsoleto, se recomienda desmarcar esta opción en sus bases de datos convertidas (y adaptar su código si es necesario) con el fin de facilitar futuras evoluciones.

En varias versiones principales, 4D ha advertido a los desarrolladores en contra del uso de las subtablas. Desde 4D v11, es imposible crear un campo del tipo subtabla. Los subregistros tienen algunas limitaciones conocidas. Por ejemplo, siempre se cargan en memoria; no se manejan por los comandos SEND RECORD o DUPLICATE RECORD.

No tenemos planes de eliminar el soporte para las subtablas en un futuro próximo, pero es realmente el momento de que los desarrolladores conviertan sus subtablas a tablas N-> regulares porque tenemos la intención de eliminarlas en una futura versión principal de 4D. Los desarrolladores que utilizan subtablas por razones de rendimiento (algunas situaciones específicas en las que la carga de los registros relacionados de era lenta) pueden estar tranquilos, especialmente con v12: utilizar las relaciones N <-> 1 clásicas es muy rápido.

Básicamente, hay dos formas principales para eliminar subtablas (nota: lo siguiente no es una tecnología completa de punta; sólo una visión general rápida):

  • Antes de la conversión de una estructura pre-v11: en 2004, crear la tabla N apropiada y el campo ID en la tabla 1 (si no está ya allí). Luego, cambie el código en todas las partes es necesario (ver más adelante).
  • Después de la conversión: en esta situación, 4D ha reemplazado la subtabla con una tabla N usando una relación especial, que permite que el lenguaje para trabajar con la subselección y los subregistros. El desarrollador 4D necesita eliminar esta relación especial, sustituirla por una relación normal y cambiar el código por todas partes si es necesario (ver más adelante).

Lo que queremos decir con "cambiar el código por todas partes si es necesario" es, básicamente:

  • Crear los nuevos formularios, actualizar los formularios incluidos
  • En los métodos (proyecto, formulario, objeto, etc.):
    • Remplace todos los comandos del tema "Subregistros" con el comando Selection o Record correspondiente (por ejemplo, reemplazar CREATE SUBRECORD con CREATE RECORD, llenando los campos ID)
    • Explícitamente cargar los registros N cuando sea necesario

Nota: a partir de 4D v14 R3, puede asignar valores a los campos "id_added_by_converter" especiales que se agregan automáticamente por 4D cuando convierte una base de datos que contiene subtablas. Esto le permite mantener el enlace "relación subtabla", y agregar o modificar registros relacionados, sin necesidad de usar comandos en desuso tales como . Una vez que haya actualizado sus métodos, estas relaciones especiales pueden ser sustituidas por otros estándares con ningún cambio en su código.

A partir de 4D v16 R6, las APIs basadas en Mac OS 9 para la administración de archivos y carpetas están en desuso en 4D. Estas API ya han quedado obsoletas por Apple desde hace mucho tiempo.

Los comandos 4D que dependen de las antiguas API se han renombrado: , , , y .  Estos comandos se mantienen por compatibilidad, pero están en desuso y ya no deben utilizarse. 4D incluye dos nuevos comandos para manejar nombres de rutas y extensiones de archivos: y .

Las acciones estándar han sido rediseñadas internamente en 4D v16 R3. Ahora se basan en patrones de cadena y parámetros de soporte (para más información, consulte la sección Acciones estándar).

En las aplicaciones convertidas, las acciones estándar se vuelcan de forma transparente al nuevo diseño. Sin embargo, en el lenguaje 4D, las acciones estándar se basaban previamente en valores de código. Este principio es obsoleto y no debe utilizarse:

  • Las acciones estándar de texto basadas en código en el tema constante Valores Texto para Acción estándar asociada (anteriormente llamadas "Valores de texto para acción estándar asociada") están prefijadas con "_o_" y ya no deben utilizarse.
  • Todo el tema constante Valores para acción estándar asociada es obsoleto.
  • El comando (devuelve un código) es obsoleto y ha sido reemplazado por el comando   actualizado (que devuelve un nombre).

Esta es otra antigua tecnología Mac OS, en desuso desde Mac OS X 10.4 (Tiger, 2005). Los recursos se utilizan para almacenar datos estructurados, como texto y cadenas (localización), así como también iconos, etc. Básicamente, podemos decir que no son los recursos los que están en desuso, es su soporte en disco, conocido como el resource fork. El resource fork es parte del sistema de archivos de Mac OS y desde el inicio de Mac OS X, Apple ha tratado de eliminar este soporte, ya que no es compatible con otros sistemas de archivos (Unix, Windows), y es la fuente de una gran cantidad de problemas cuando los archivos se transfieren a través de la red.

En Windows, este mecanismo se emula y y los recursos Mac residen en un archivo .RSR.

Pero aún así, incluso si aún hay APIs para manejar los recursos (y Mac OS maneja de forma transparente los recursos almacenados en un data fork), ya no se recomienda utilizar este viejo mecanismo por varias razones:

  • Los textos y las cadenas son Mac-roman. No se puede almacenar Unicode en recursos de tipo TEXT o STR#
  • Los recursos PICT almacenan PICTs: no es moderno, obsoleto, sin transparencia, etc. (Consulte el tema "PICT" arriba.)
  • El conteo de los recursos y el tamaño de los recursos son limitados (unos 2.700 recursos o 16 MB)

Hemos eliminado soporte para comandos de escritura/creación de recursos

La gran mayoría de las aplicaciones 4D que utilizan recursos están, de hecho, utilizando recursos "Strings List", 'STR#'. 4D ofrece las herramientas para cambiar fácilmente del STR # a XLIFF:

  • El componente 4D Pop puede crear automáticamente los archivos XLIFF mediante la lectura y transferir el contenido de la STR #.
  • Todas las rutinas y las expresiones que hacen referencia a trabajo STR# sin cambio con XLIFF. Por ejemplo, si la etiqueta de un botón o un menú era ":15000,3" (que significa "conseguir el tercer elemento de STR# ID 15000"), 4D cargará el XLIFF apropiado (si existe).

Para otros tipos de recursos:

  • Poner los recursos en archivos separados dentro de la carpeta Resources (crear subdirectorios si es necesario):
    • Guardar recursos 'TEXT' en archivos XLIFF o .txt
    • Guardar recursos 'PICT' como archivos .jpg/.png/etc. separado
    • Guardar recursos 'PICT' + MASK’ como archivos png
    • Utilizar (en Mac) icns en lugar de ICON o iconos de colores
    • Guardar todos los recursos privados como sea apropiado para usted (normalmente: guardar como un archivo binario con una extensión específica)
  • Utilice la carpeta "Recursos" para almacenar sus recursos. Utilice Get 4D folder (carpeta de recursos actuales) para obtener dinámicamente la ruta padre para sus recursos.

 
 

 
PROPIEDADES 

Producto: 4D

 
ARTICLE USAGE

Funcionalidades obsoletas o eliminadas ( 4D v20 R8)