Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
0a4275a
ai.md Japanese
arnaud4d May 21, 2026
2343524
ai.md Japanese
arnaud4d May 21, 2026
428b7f9
components.md Spanish
arnaud4d May 22, 2026
8e05ae9
user-new.md Spanish
arnaud4d May 22, 2026
82d8f8d
classes.md Spanish
arnaud4d May 22, 2026
b5cb6dc
components.md Spanish
arnaud4d May 22, 2026
35ac781
user-new.md Spanish
arnaud4d May 22, 2026
d08c0d2
compatibility.md Spanish
arnaud4d May 22, 2026
53bcaf8
emailobjectclass.md Spanish
arnaud4d May 22, 2026
38ba237
overview.md Spanish
arnaud4d May 22, 2026
000c19e
entityselectionclass.md Spanish
arnaud4d May 22, 2026
2824f92
functionclass.md Spanish
arnaud4d May 22, 2026
65360e1
pop3transporterclass.md Spanish
arnaud4d May 22, 2026
2df9470
sessionclass.md Spanish
arnaud4d May 22, 2026
c955a7a
classes.md Spanish
arnaud4d May 22, 2026
c1df2a8
dt_blob.md Spanish
arnaud4d May 22, 2026
5217b36
dt_object.md Spanish
arnaud4d May 22, 2026
8eab955
quick-tour.md Spanish
arnaud4d May 22, 2026
b9f5224
clientserver.md Spanish
arnaud4d May 22, 2026
bfa2db3
processes.md Spanish
arnaud4d May 22, 2026
b2d9172
forms.md Spanish
arnaud4d May 22, 2026
00bd1e1
properties_entry.md Spanish
arnaud4d May 22, 2026
85d680e
updates.md Spanish
arnaud4d May 22, 2026
ffb5684
client-server-optimization.md Spanish
arnaud4d May 22, 2026
b90b1cf
ordaclasses.md Spanish
arnaud4d May 22, 2026
ec6e967
overview.md Spanish
arnaud4d May 22, 2026
ef64cf0
code-overview.md Spanish
arnaud4d May 22, 2026
2930855
overview.md Spanish
arnaud4d May 22, 2026
d949865
write-class-method.md Spanish
arnaud4d May 22, 2026
a317de6
client-server.md Spanish
arnaud4d May 22, 2026
be98aec
compatibility.md Spanish
arnaud4d May 22, 2026
4e5571f
wp-export-document.md Spanish
arnaud4d May 22, 2026
da9cc60
wp-import-document.md Spanish
arnaud4d May 22, 2026
ccbacff
wp-export-variable.md Spanish
arnaud4d May 22, 2026
6f9a184
project-method-properties.md Spanish
arnaud4d May 22, 2026
964fe74
entityselectionclass.md Spanish
arnaud4d May 22, 2026
56cd743
pop3transporterclass.md Spanish
arnaud4d May 22, 2026
051dd6f
overview.md Spanish
arnaud4d May 22, 2026
aea5bfd
overview.md Spanish
arnaud4d May 22, 2026
4ae0386
wp-export-document.md Spanish
arnaud4d May 22, 2026
762a07b
wp-export-variable.md Spanish
arnaud4d May 22, 2026
d024ea3
sessions.md Spanish
arnaud4d May 22, 2026
0b284b7
entityselectionclass.md Spanish
arnaud4d May 22, 2026
32da1a6
pop3transporterclass.md Spanish
arnaud4d May 22, 2026
e1969d4
overview.md Spanish
arnaud4d May 22, 2026
02e695d
overview.md Spanish
arnaud4d May 22, 2026
3a7c27d
async.md Spanish
arnaud4d May 22, 2026
ccdd9ee
listbox-header-footer.md Spanish
arnaud4d May 22, 2026
570a7cb
listbox-object.md Spanish
arnaud4d May 22, 2026
176daf5
listbox-header-footer.md Spanish
arnaud4d May 22, 2026
73e41e3
listbox-header-footer.md Spanish
arnaud4d May 22, 2026
50e623f
listbox-header-footer.md Spanish
arnaud4d May 22, 2026
1360cfb
listbox-object.md Spanish
arnaud4d May 22, 2026
cd2e65a
methodclass.md Spanish
arnaud4d May 22, 2026
2c2b1c6
wp-new-style-sheet.md Spanish
arnaud4d May 22, 2026
328376c
wp-delete-style-sheet.md Spanish
arnaud4d May 22, 2026
58cb26a
wp-get-style-sheet.md Spanish
arnaud4d May 22, 2026
e15448e
wp-import-style-sheets.md Spanish
arnaud4d May 22, 2026
f8de02b
system_documents.md Spanish
arnaud4d May 22, 2026
35e0c96
xml.md Spanish
arnaud4d May 22, 2026
44a35ee
xml_dom.md Spanish
arnaud4d May 22, 2026
ba88835
xml_sax.md Spanish
arnaud4d May 22, 2026
30f9015
ordering.md Spanish
arnaud4d May 22, 2026
f5709ea
async.md Spanish
arnaud4d May 22, 2026
5b496f8
openaiproviders.md Spanish
arnaud4d May 22, 2026
08cdaf1
provider-model-aliases.md Spanish
arnaud4d May 22, 2026
8b6b12a
ai.md Spanish
arnaud4d May 22, 2026
dadba0a
imapnotifierclass.md Spanish
arnaud4d May 22, 2026
d386260
entityselectionclass.md Spanish
arnaud4d May 22, 2026
c33ce93
functionclass.md Spanish
arnaud4d May 22, 2026
4114f09
imapnotifierclass.md Spanish
arnaud4d May 22, 2026
46d27df
methodclass.md Spanish
arnaud4d May 22, 2026
a77373e
pop3transporterclass.md Spanish
arnaud4d May 22, 2026
7a8949a
sessionclass.md Spanish
arnaud4d May 22, 2026
392c812
dt_blob.md Spanish
arnaud4d May 22, 2026
2679c38
dt_object.md Spanish
arnaud4d May 22, 2026
c79d28b
ordering.md Spanish
arnaud4d May 22, 2026
373b935
quick-tour.md Spanish
arnaud4d May 22, 2026
9112a57
clientserver.md Spanish
arnaud4d May 22, 2026
a9f583d
sessions.md Spanish
arnaud4d May 22, 2026
e2861dc
async.md Spanish
arnaud4d May 22, 2026
427dc69
processes.md Spanish
arnaud4d May 22, 2026
82679fc
forms.md Spanish
arnaud4d May 22, 2026
6e14166
listbox-header-footer.md Spanish
arnaud4d May 22, 2026
e75209c
listbox-object.md Spanish
arnaud4d May 22, 2026
2dc9614
properties_entry.md Spanish
arnaud4d May 22, 2026
d17f112
updates.md Spanish
arnaud4d May 22, 2026
9fbbbe3
client-server-optimization.md Spanish
arnaud4d May 22, 2026
cebbe91
ordaclasses.md Spanish
arnaud4d May 22, 2026
06dacf5
overview.md Spanish
arnaud4d May 22, 2026
9f99f98
code-overview.md Spanish
arnaud4d May 22, 2026
f0bd128
overview.md Spanish
arnaud4d May 22, 2026
83d691c
project-method-properties.md Spanish
arnaud4d May 22, 2026
a803873
wp-delete-style-sheet.md Spanish
arnaud4d May 22, 2026
410de4a
wp-export-document.md Spanish
arnaud4d May 22, 2026
3d70608
wp-export-variable.md Spanish
arnaud4d May 22, 2026
0d18ffb
wp-get-style-sheet.md Spanish
arnaud4d May 22, 2026
f92d4d2
wp-import-document.md Spanish
arnaud4d May 22, 2026
dc2c8be
wp-import-style-sheets.md Spanish
arnaud4d May 22, 2026
24ee5d2
wp-new-style-sheet.md Spanish
arnaud4d May 22, 2026
b11e909
openaiproviders.md Spanish
arnaud4d May 22, 2026
520aa95
provider-model-aliases.md Spanish
arnaud4d May 22, 2026
409ac88
write-class-method.md Spanish
arnaud4d May 22, 2026
7f86718
ai.md Spanish
arnaud4d May 22, 2026
4c73158
client-server.md Spanish
arnaud4d May 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1131,7 +1131,7 @@ El siguiente código genérico duplica todas las entidades de la entity selectio

La función `.getRemoteContextAttributes()` <!-- REF #EntitySelectionClass.getRemoteContextAttributes().Summary -->devuelve información sobre el contexto de optimización utilizado por la entity selection<!-- END REF -->.

If there is no [optimization context](../ORDA/client-server-optimization.md) for the entity selection, the function returns an empty Text.
Si no hay un [contexto de optimización](../ORDA/client-server-optimization.md) para la entity selection, la función devuelve un texto vacío.

#### Ejemplo

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ The `.call()` function <!-- REF #FunctionClass.call().Summary -->executes the fu

En el parámetro *thisObj*, puede pasar una referencia al objeto que se utilizará como `This` en la función.

You can pass values to be used as parameters in the function using the optional *params* parameter:
Puede pasar valores que se utilizarán como parámetros en la función utilizando el parámetro opcional *params*:

- en los objetos `4D.Formula`, los parámetros se pasan en $1...$n en la fórmula.
- en los objetos `4D.Method`, los parámetros se pasan en [parámetros declarados](../Concepts/parameters.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Todas las funciones de clase `IMAPNotifier` son hilo seguro.

:::tip Entradas de blog relacionadas

[Instant Email Notifications with IMAP Transporter](https://blog.4d.com/instant-email-notifications-with-imap-transporter)
[Notificaciones instantáneas por correo electrónico con IMAP Transporter](https://blog.4d.com/instant-email-notifications-with-imap-transporter)

:::

Expand Down Expand Up @@ -106,15 +106,15 @@ The `.isStarted` property <!-- REF #IMAPNotifier.isStarted.Summary -->indicates

The `.start()` function <!-- REF #IMAPNotifier.start().Summary -->starts the subscription to server notifications and activates IMAP listener callbacks<!-- END REF -->.

A mailbox must be selected using [`selectBox()`](./IMAPTransporterClass.md#selectbox) before calling `.start()`.
Debe seleccionarse un buzón mediante [`selectBox()`](./IMAPTransporterClass.md#selectbox) antes de llamar a `.start()`.

Callback functions are executed in the worker where `.start()` is called.

:::note Notas

- When the notifier is started, other transporter functions (such as `getMail()` or `send()`) are not available. You must call `.stop()` before using these functions, then call `.start()` again to resume notifications.
- Cuando se inicia el notificador, otras funciones del transportador (como `getMail()` o `send()`) no están disponibles. You must call `.stop()` before using these functions, then call `.start()` again to resume notifications.

- IMAP IDLE notifications indicate that a change has occurred but do not provide updated mailbox data. To refresh the mailbox state, you must stop the notifier, retrieve the updated data (for example using `getMail()`), and then restart it.
- IMAP IDLE notifications indicate that a change has occurred but do not provide updated mailbox data. Para actualizar el estado del buzón, debe detener el aviso, recuperar los datos actualizados (por ejemplo usando `getMail()`), y luego reiniciarlo.

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ id: MethodClass
title: Método
---

A `4D.Method` object contains a piece of code that is created from text source and can be executed. Los métodos `4D.Method` siempre se ejecutan en modo interpretado, independientemente del modo de ejecución del proyecto (interpretado/compilado). Esta funcionalidad está especialmente diseñada para permitir la ejecución dinámica y sobre la marcha de fragmentos de código.
Un objeto `4D.Method` contiene un fragmento de código que se crea a partir de la fuente de texto y puede ser ejecutado. Los métodos `4D.Method` siempre se ejecutan en modo interpretado, independientemente del modo de ejecución del proyecto (interpretado/compilado). Esta funcionalidad está especialmente diseñada para permitir la ejecución dinámica y sobre la marcha de fragmentos de código.

Un objeto `4D.Method` se crea con la función `4D.Method.new()`.

Los objetos `4D.Method` heredan de la clase [`4D.Function`](./FunctionClass.md). Así, para ejecutar el objeto método, puede:

- store a `4D.Method` object in an object property and use the `()` operator after the property name,
- almacenar un objeto `4D.Method` en una propiedad del objeto y utilizar el operador `()` después del nombre de la propiedad,
- o llamar directamente al objeto `4D.Method` usando la función [`call()`](#call) o [`apply()`](#apply) en él.

Ver ejemplos en el párrafo [Ejecución de código en los objetos Function](../API/FunctionClass.md#executing-code-in-function-objects).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ La función `4D.POP3Transporter.new()` <!-- REF #4D.POP3Transporter.new().Summar

La función `.delete( )` <!-- REF #POP3TransporterClass.delete().Summary -->marca el correo electrónico *msgNumber* para su eliminación del servidor POP3<!-- END REF -->.

En el parámetro *msgNumber*, pase el número del correo electrónico que desea eliminar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
En el parámetro *msgNumber*, pase el número del correo electrónico que desea eliminar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).

La ejecución de este método no elimina realmente ningún correo electrónico. El correo marcado se eliminará del servidor POP3 sólo cuando se destruya el objeto `POP3_transporter` (creado con `POP3 New transporter`). El marcador también puede eliminarse utilizando el método `.undeleteAll()`.

Expand Down Expand Up @@ -281,7 +281,7 @@ Quiere saber el remitente del primer correo del buzón:

La función `.getMailInfo()`<!-- REF #POP3TransporterClass.getMailInfo().Summary --> devuelve un objeto `mailInfo` correspondiente al *msgNumber* en el buzón designado por el [`transportador POP3`](#pop3-transporter-object)<!-- END REF -->. Esta función permite gestionar localmente la lista de mensajes localizados en el servidor de correo POP3.

En *msgNumber*, pase el número del mensaje a recuperar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
En *msgNumber*, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).

El objeto `mailInfo` devuelto contiene las siguientes propiedades:

Expand Down Expand Up @@ -412,7 +412,7 @@ Quiere saber el número total y el tamaño de los correos electrónicos en el bu

La función `.getMIMEAsBlob()` <!-- REF #POP3TransporterClass.getMIMEAsBlob().Summary -->devuelve un BLOB con el contenido MIME del mensaje correspondiente al *msgNumber* en el buzón designado por el objeto [`POP3_transporter`](#pop3-transporter-object)<!-- END REF -->.

En *msgNumber*, pase el número del mensaje a recuperar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
En *msgNumber*, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).

El método devuelve un BLOB vacío si:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Los objetos de sesión son devueltos por el comando [`Session`](../commands/sess
- [Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/)
- [Permissions: inspeccionar los privilegios de la sesión para facilitar la depuración](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/)
- [Generar, compartir y utilizar contraseñas de un solo uso (OTP) para las sesiones web](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/)
- [Forget server-side wrappers, use 4D Sessions from the client](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client)
- [Olvídese de los wrappers del lado del servidor, utilice Sesiones 4D desde el cliente](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client)

:::

Expand Down Expand Up @@ -134,7 +134,7 @@ Puede definir un tiempo de espera personalizado pasando un valor en segundos en
- para sesiones web, el token se crea con la misma duración que el [`.idleTimeOut`](#idletimeout) de la sesión.
- para sesiones de usuarios remotos, el token se crea con una duración de 10 segundos.

In web sessions, the returned token can be used in exchanges with third-party applications or websites to securely identify the session. Por ejemplo, el token OTP de sesión se puede utilizar con una aplicación de pago.
En las sesiones web, el token devuelto puede utilizarse en intercambios con aplicaciones o sitios web de terceros para identificar la sesión de forma segura. Por ejemplo, el token OTP de sesión se puede utilizar con una aplicación de pago.

In remote user sessions (and standalone sessions for test purposes), the returned token can be used by 4D to identify requests coming from the web that [share the session](../Desktop/sessions.md#sharing-a-remote-session-for-web-accesses).

Expand Down
24 changes: 12 additions & 12 deletions i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ En las definiciones de clase se pueden utilizar palabras claves específicas de

```4d
{local | server} {shared} Function <name>({$parameterName : type; ...}){->$parameterName : type}
// code
// código
```

:::note
Expand All @@ -162,7 +162,7 @@ Las funciones de clase son propiedades específicas de la clase. Son objetos de

Si las funciones se declaran en una [clase compartida](#shared-class-constructor), puede utilizar la palabra clave `shared` con ellas para que puedan ser llamadas sin la estructura [`Use...End use`](shared.md#useend-use). Para obtener más información, consulte el párrafo [Funciones compartidas](#shared-functions) a continuación.

In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. These keywords can only be used with ORDA data model functions and shared/session singleton functions. For more information, refer to the [local and server functions](#local-and-server) paragraph below.
In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. Estas palabras claves sólo pueden utilizarse con las funciones del modelo de datos ORDA y las funciones singleton compartidas/sesión. Para más información, consulte el párrafo [funciones locales y de servidor](#local-and-server) más abajo.

El nombre de la función debe ser compatible con las [reglas de nomenclatura de objetos](Concepts/identifiers.md#object-properties).

Expand Down Expand Up @@ -488,7 +488,7 @@ Cuando ambas funciones están definidas, la propiedad calculada es **read-write*

Si las funciones se declaran en una [clase compartida](#shared-classes), puede utilizar la palabra clave `shared` con ellas para que puedan ser llamadas sin la estructura [`Use...End use`](shared.md#useend-use). Para obtener más información, consulte el párrafo [Funciones compartidas](#shared-functions) a continuación.

In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. These keywords can only be used with ORDA data model functions and shared/session singleton functions. For more information, refer to the [local and server functions](#local-and-server) paragraph below.
In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. Estas palabras claves sólo pueden utilizarse con las funciones del modelo de datos ORDA y las funciones singleton compartidas/sesión. Para más información, consulte el párrafo [funciones locales y de servidor](#local-and-server) más abajo.

El tipo de la propiedad calculada es definido por la declaración de tipo `$return` del \*getter \*. Puede ser de cualquier [tipo de propiedad válido](dt_object.md).

Expand Down Expand Up @@ -839,14 +839,14 @@ $myList := cs.ItemInventory.me.itemList

:::tip Entradas de blog relacionadas

[Singletons in 4D](https://blog.4d.com/singletons-in-4d)
[Session Singletons](https://blog.4d.com/introducing-session-singletons)
[Singletons en 4D](https://blog.4d.com/singletons-in-4d)
[Presentación de los Singletons de sesión](https://blog.4d.com/introducing-session-singletons)

:::

## `local` y `server`

In [client/server architecture](../Desktop/clientServer.md), `local` and `server` keywords allow you to specify where you want the function to be executed: client-side, or server-side. Controlling the execution location is useful for performance reasons or to implement business logic features.
In [client/server architecture](../Desktop/clientServer.md), `local` and `server` keywords allow you to specify where you want the function to be executed: client-side, or server-side. Controlar la ubicación de ejecución es útil por razones de rendimiento o para implementar características de lógica de negocio.

La sintaxis formal es:

Expand All @@ -873,7 +873,7 @@ server Function <functionName>

### Generalidades

Supported functions have a **default execution location** when no location keyword is used. You can nevertheless insert a `local` or `server` keyword to modify the execution location, or to make the code more explicit.
Supported functions have a **default execution location** when no location keyword is used. No obstante, puede insertar una palabra clave `local` o `server` para modificar la ubicación de ejecución, o para hacer el código más explícito.

| Supported functions | Ejecución por defecto | with `local` keyword | with `server` keyword |
| ------------------------------------------------- | --------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
Expand Down Expand Up @@ -924,15 +924,15 @@ In a [client/server architecture](../Desktop/clientServer.md), the `server` keyw

:::note Recordatorio

The `server` keyword is useless for [ORDA data model functions](../ORDA/ordaClasses.md), which are executed on the server by default.
La palabra clave `server` es inútil para las [funciones del modelo de datos ORDA](../ORDA/ordaClasses.md), que se ejecutan en el servidor por defecto.

:::

`server` function parameters and result must be [**streamable**](./dt_object.md#streaming-support). For example, [4D.Datastore](../API/DataStoreClass.md), [File handle](../API/FileHandleClass.md), or [WebServer](../API/WebServerClass.md) are non-streamable classes but [4D.File](../API/FileClass.md) is streamable.
Los parámetros y el resultado de la función `server` deben ser [**streamable**](./dt_object.md#streaming-support). For example, [4D.Datastore](../API/DataStoreClass.md), [File handle](../API/FileHandleClass.md), or [WebServer](../API/WebServerClass.md) are non-streamable classes but [4D.File](../API/FileClass.md) is streamable.

This feature is particularly useful in the context of [remote user sessions](../Desktop/sessions.md#remote-user-sessions), allowing you to implement the business logic in a [session singleton](../Concepts/classes.md#session-singleton) to share it accross all the processes of the session, thus extending the functionalities of the [`Session`](../commands/session) command. In this case, you might want the relevant business logic to be executed **on the server** so that all the session information is gathered on the server.

Por defecto, las funciones singleton compartidas o de sesión se ejecutan localmente. Adding the `server` keyword in the class function definition makes 4D use the singleton instance on the server. Note that this can result of an instantiation of the singleton on the server if no instance exists yet.
Por defecto, las funciones singleton compartidas o de sesión se ejecutan localmente. Añadir la palabra clave `server` en la definición de la función de la clase hace que 4D utilice la instancia singleton en el servidor. Tenga en cuenta que esto puede dar lugar a una instanciación del singleton en el servidor si aún no existe ninguna instancia.

For [sessions singletons](#singleton-classes), the function is executed on the server in the corresponding singleton instance, i.e. the instance of the singleton for the current session.

Expand All @@ -949,7 +949,7 @@ If no instance of *S1* exists on the server at that moment, *S1* is instantiated

#### Ejemplo: singleton Administration

The *Administration* shared singleton has a "server" function running the [`Process activity`](../commands/process-activity) command. This singleton is instantiated on a remote 4D but the function returns the server activity on the server.
El singleton compartido *Administration* tiene una función "server" que ejecuta el comando [`Process activity`](../commands/process-activity). This singleton is instantiated on a remote 4D but the function returns the server activity on the server.

```4d
// Administration class
Expand Down Expand Up @@ -1009,7 +1009,7 @@ End if
return $result
```

To provide the current user to 4D clients, the singleton exposes a user computed property got from the server:
Para proporcionar el usuario actual a los clientes 4D, el singleton expone una propiedad calculada del usuario obtenida del servidor:

```4d
server Function get user() : cs.UsersEntity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ No se pueden utilizar operadores en los blobs.

## Verificar si una variable contiene un blob escalar o un `4D.Blob`

Use the [Value type](../commands/value-type) command to determine if a value is of type Blob or Object.
Utilice el comando [Value type](../commands/value-type) para determinar si un valor es de tipo Blob u Object.
Para verificar que un objeto es un objeto blob (`4D.Blob`), utilice [instancia OB de](../commands/ob-instance-of):

```4d
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ $doc:=Null // liberar recursos ocupados por $doc

## Clases

Los objetos pueden pertenecer a clases. Using a class allows to predefine an object behaviour and structure with associated properties and functions.
Los objetos pueden pertenecer a clases. El uso de una clase permite predefinir el comportamiento y la estructura de un objeto con propiedades y funciones asociadas.

The 4D language proposes several [native classes](../category/class-API-reference/) that you can use to handle objects. También puede definir y utilizar sus propias [clases de usuario](./classes.md) para organizar su código.

Expand All @@ -279,13 +279,13 @@ JSON commands that stringify contents such as [`JSON Stringify`](../commands/jso

However, text streaming of objects has the following limitations:

- circular references (i.e. objects containing themselves as a property) are not supported and return an error,
- las referencias circulares (es decir, los objetos que se contienen a sí mismos como propiedad) no son compatibles y devuelven un error,
- a class object loses its class when it is stringified,
- native 4D class objects such as [Entity](../API/EntityClass.md) cannot be represented as JSON and are returned as "[object \<class>]", for example "[object Entity]".

### Binary streaming (`VARIABLE TO BLOB`)

4D also implements a built-in binary streaming feature through the [`VARIABLE TO BLOB`](../commands/variable-to-blob) command. This feature allows you to get rid of most of text streaming limitations regarding objects (see above):
4D también implementa una función de flujo binario a través del comando [`VARIABLE TO BLOB`](../commands/variable-to-blob). Esta función le permite librarse de la mayoría de las limitaciones de transmisión de texto relativas a los objetos (ver arriba):

- las referencias circulares son soportadas,
- los objetos mantienen su clase,
Expand Down
Loading
Loading