4D v15 R2

OB SET

Inicio

 
4D v15 R2
OB SET

OB SET 


 

OB SET ( objeto ; propiedad ; valor {; propiedad2 ; valor2 ; ... ; propiedadN ; valorN} ) 
Parámetro Tipo   Descripción
objeto  Objeto, Campo Objeto in Objeto estructurado
propiedad  Texto in Nombre de la propiedad a configurar
valor  Texto, Fecha, Booleano, Puntero, Número, Objeto in Nuevo valor de la propiedad

El comando OB SET crea o modifica uno o más pares de propiedad/valor en el objeto de lenguaje designado por el parámetro objeto.

objeto debe haber sido definido usando el comando C_OBJECT o designar un campo objeto 4D.

En el parámetro propiedad, pase la etiqueta de la propiedad a crear o modificar. Si la propiedad ya existe en objeto, su valor se actualiza. Si no existe, se crea.
Tenga en cuenta, que el parámetro propiedad es sensible a las mayúsculas y minúsculas.

En el parámetro valor, pase el valor que desea definir para la propiedad. Se admiten varios tipos de datos. Tenga en cuenta que:

  • si pasa un puntero, se mantiene como es, se evalúa utilizando el comando JSON Stringify
  • las fechas se almacenan en el formato "YYYY-MM-DDTHH:mm:ss.SSSZ". Al convertir las fechas 4D en texto antes de almacenarlas en el objeto, por defecto el programa tiene en cuenta la zona horaria local. Puede modificar este comportamiento mediante el uso del selector JSON use local time del comando SET DATABASE PARAMETER.
  • si pasa una hora, se almacena en forma de un número de milisegundos (Real) en objeto
  • si pasa un objeto de lenguaje, el comando utiliza la referencia del objeto y no una copia.

Creación de un objeto y adición de una propiedad de tipo texto:

 C_OBJECT($Object)
 OB SET($Object ;"FirstName";"John";"LastName";"Smith")
  // $Object = {"FirstName":"John","LastName":"Smith"}

Creación de un objeto y adición de una propiedad de tipo booleano:

 C_OBJECT($Object)
 OB SET($Object ;"LastName";"smith";"age";42;"client";True)
  // $Object = {"LastName":"smith","age":42,"client":true}

Modificación de una propiedad:

  // $Object = {"FirstName":"John","LastName":"Smith"}
 OB SET($Object ;"FirstName";"Paul")
  // $Object = {"FirstName":"Paul","LastName":"Smith"}

Adición de una propiedad:

  // $Object = {"FirstName":"John","LastName":"Smith"}
 OB SET($Object ;"department";"Accounting")
  // $Object = {"FirstName":"Paul","LastName":"Smith","department":"Accounting"}

Renombrando una propiedad:

 C_OBJECT($Object)
 OB SET($Object ;"LastName";"James";"age";35)
  // $Object = {"LastName":"James","age":35}
 OB SET($Object ;"FirstName";OB Get($Object ;"LastName"))
  // $Object = {"FirstName":""James","nom":"James","age":35}
 OB REMOVE($Object ;"LastName")
  // $Object = {"FirstName":""James","age":35}

Usando un puntero:

  // $Object = {"FirstName":"Paul","LastName":"Smith"}
 C_TEXT($LastName)
 OB SET($Object ;"LastName";->$LastName)
  // $Object = {"FirstName":"Paul","LastName":"->$LastName"}
 $JsonString:=JSON Stringify($Object)
  // $JsonString="{"FirstName":"Paul","LastName":""}
 $LastName:="Wesson"
 $JsonString:=JSON Stringify($Object)
  // $JsonString="{"FirstName":"Paul","LastName":"Wesson"}

Usando un objeto:

 C_OBJECT($ref_smith)
 OB SET($ref_smith ;"name";"Smith")
 C_OBJECT($ref_emp)
 OB SET($ref_emp ;"employee";$ref_smith)
 $Json_string :=JSON Stringify($ref_emp)
  // $ref_emp = {"employee":{"name":"Smith"}} (object)
  // $Json_string = "{"employee":{"name":"Smith"}}" (string)

También puede cambiar un valor sobre la marcha:

 OB SET($ref_smith ;"name";"Smyth")
  // $ref_smith = {"employee":{"name":"Smyth"}}
 $string:=JSON Stringify($ref_emp)
  // $string = "{"employee":{"name":"Smyth"}}"

Utilizando un array de objetos:

 C_TEXT($jsonString)
 C_OBJECT($Contact)
 OB SET($Contact;"FirstName";"Alan")
 OB SET($Contact;"LastName";"Monroe")
 OB SET($Contact;"age";40)
 OB SET($Contact;"telephone";"[2128675309,2128671234]")
 
 $jsonString:=JSON Stringify($Contact)
 
  // Valor de $Contact:
  // {"LastName":"Monroe","telephone":"[2128675309,2128671234]",
  // "age":40,"FirstName":"Alan"}
 
  // Valor de $jsonString:
  // "{"LastName":"Monroe","telephone":"[2128675309,2128671234]",
  // "age":40,"FirstName":"Alan"}"

Si ha definido el campo [Rect]Desc como un campo objeto, puede escribir:

 CREATE RECORD([Rect])
 [Rect]Name:="Blue square"
 OB SET([Rect]Desc;"x";"50";"y";"50";"color";"blue")
 SAVE RECORD([Rect])

Usted quiere exportar datos en JSON que contienen una fecha 4D convertida. Note que la conversión ocurre cuando la fecha se guarda en el objeto, debe llamar al comando SET DATABASE PARAMETER antes de llamar a OB SET:

 C_OBJECT($o)
 SET DATABASE PARAMETER(JSON use local time;0)
 OB SET($o ;"myDate";Current date// conversión JSON
 $json:=JSON Stringify($o)
 SET DATABASE PARAMETER(JSON use local time;1)



Ver también 

OB REMOVE
OB SET ARRAY
OB SET NULL

 
PROPIEDADES 

Producto: 4D
Tema: Objetos (Lenguaje)
Número 1220

 
HISTORIA 

Creado por: 4D v14
Modificado: 4D v15

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v15)
Manual de lenguaje 4D ( 4D v15 R2)
Manual de lenguaje 4D ( 4D v15.4)
Manual de lenguaje 4D ( 4D v15.3)