4D v16.3

OB Copy

Inicio

 
4D v16.3
OB Copy

OB Copy 


 

OB Copy ( objeto {; resuelvePunt} ) -> Resultado 
Parámetro Tipo   Descripción
objeto  Objeto, Campo Objeto in Objeto estructurado
resuelvePunt  Booleano in True = resuelve los puntero, False o se omite = no resuelve punteros
Resultado  Objeto in Copia de objeto

El comando OB Copy devuelve un objeto que contiene una copia completa de las propiedades, sub objetos y valores de objeto.

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

Si el objeto contiene valores de tipo de puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al momento de la copia pasando True en el parámetro resuelvePunt. En este caso, cada puntero presente como valor en objeto se evalúa al momento de la copia y se utiliza su valor desreferenciado.

Usted quiere duplicar un objeto que contiene valores simples:

 C_OBJECT($Object)
 C_TEXT($JsonString)
 
 ARRAY OBJECT($arraySel;0)
 ALL RECORDS([Product])
 While(Not(End selection([Product])))
    OB SET($Object;"id";[Product]ID_Product)
    OB SET($Object;"Product Name";[Product]Product_Name)
    OB SET($Object;"Price";[Product]Price)
    OB SET($Object;"Tax rate";[Product]Tax_rate)
    $ref_value:=OB Copy($Object//direct copy
    APPEND TO ARRAY($arraySel;$ref_value)
  //el contenido de $ref_value es idéntico al de $Object
    NEXT RECORD([Product])
 End while
  //el contenido de $ref_value
 $JsonString:=JSON Stringify array($arraySel)

Duplique un objeto que contenga punteros:

 C_OBJECT($ref)
 
 OB SET($ref;"name";->[Company]name) //object with pointers
 OB SET($ref;"country";->[Company]country)
 ARRAY OBJECT($sel;0)
 ARRAY OBJECT($sel2;0)
 
 ALL RECORDS([Company])
 
 While(Not(End selection([Company])))
    $ref_comp:=OB Copy($ref// copy without evaluating pointers
  // $ref_comp={"name":"->[Company]name","country":"->[Company]Country"}
    $ref_comp2:=OB Copy($ref;True//copy with evaluation of pointers
  // $ref_comp={"name":"4D SAS","country":"France"}
    APPEND TO ARRAY($sel;$ref_comp)
    APPEND TO ARRAY($sel2;$ref_comp2)
    NEXT RECORD([Company])
 End while
 
 $Object:=JSON Stringify array($sel)
 $Object2:=JSON Stringify array($sel2)
 
  // $Object = [{"name":"","country":""},{"name":"","country":""},...]
  // $Object2 = [{"name":"4D SAS","country":"France"},{"name":"4D, Inc","country":"USA"},{"name":"Catalan","country":"France"}...]



Ver también 

OB Get

 
PROPIEDADES 

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

This command can be run in preemptive processes

 
HISTORIA 

Creado por: 4D v14
Modificado: 4D v15

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)