4D v15.4

OB SET

Accueil

 
4D v15.4
OB SET

OB SET 


 

OB SET ( objet ; propriété ; valeur {; propriété2 ; valeur2 ; ... ; propriétéN ; valeurN} ) 
Paramètre Type   Description
objet  Objet, Champ objet in Objet structuré
propriété  Texte in Nom de la propriété à définir
valeur  Texte, Date, Booléen, Pointeur, Numérique, Objet in Nouvelle valeur de la propriété

La commande OB SET permet de créer ou de modifier une ou plusieurs paires propriété/valeur dans l’objet de langage désigné par le paramètre objet.

objet doit avoir été défini via la commande C_OBJECT ou désigner un champ objet 4D. 

Passez dans le paramètre propriété le libellé de la propriété à créer ou à modifier. Si la propriété existe déjà dans objet, sa valeur sera mise à jour. Si elle n’existe pas, elle est créée.
Attention, le paramètre propriété tient compte des majuscules/minuscules. 

Passez dans le paramètre valeur la valeur de la propriété à définir. Plusieurs types de données sont pris en charge. A noter que :

  • si vous passez un pointeur, il est conservé tel quel, il est évalué à l’aide de la commande JSON Stringify,
  • les dates sont stockées au format "YYYY-MM-DDTHH:mm:ss.SSSZ". Lors de la conversion d'une date 4D en texte avant stockage dans l'objet, par défaut le programme tient compte du fuseau horaire local. Vous pouvez modifier ce fonctionnement à l'aide du sélecteur JSON use local time de la commande SET DATABASE PARAMETER.
  • si vous passez une heure, elle est stockée sous la forme d'un nombre de millisecondes (réel) dans objet.
  • si vous passez un objet de langage, la commande utilise la référence de l’objet et non une copie.

Création d’un objet et ajout d’une propriété de type texte :

 C_OBJECT($Object)
 OB SET($Object ;"prénom";"John";"nom";"Smith")
     //$Object = {"prénom":"John","nom":"Smith"}

Création d’un objet et ajout d’une propriété de type booléen :

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

Modification d’une propriété :

     //$Object = {"prénom":"John","nom":"Smith"}
 OB SET($Object ;"prénom";"Paul")
     //$Object = {"prénom":"Paul","nom":"Smith"}

Ajout d’une propriété :

     //$Object = {"prénom":"John","nom":"Smith"}
 OB SET($Object ;"service";"Comptabilité")
     //$Object = {"prénom":"Paul","nom":"Smith","service":"Comptabilité"}

Renommage d’une propriété :

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

Utilisation d’un pointeur :

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

Utilisation d’un objet :

 C_OBJECT($ref_smith)
 OB SET($ref_smith ;"nom";"Smith")
 C_OBJECT($ref_emp)
 OB SET($ref_emp ;"employé";$ref_smith)
 $Json_string :=JSON Stringify($ref_emp)
     // $ref_emp = {"employé":{"nom":"Smith"}} (objet)
     // $Json_string = "{"employé":{"nom":"Smith"}}" (chaîne)

Vous pouvez également changer une valeur à la volée :

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

Utilisation d’un tableau d’objets :

 C_TEXT($jsonString)
 C_OBJECT($Contact)
 OB SET($Contact;"prénom";"Alan")
 OB SET($Contact;"nom";"Monroe")
 OB SET($Contact;"age";40)
 OB SET($Contact;"téléphone";"[0140879200,0140879201]")
 
 $jsonString:=JSON Stringify($Contact)
 
     // Valeur de $Contact :
     // {"nom":"Monroe","téléphone":"[0140879200,0140879201]","age":40,
     // "prénom":"Alan"}
 
     // Valeur $jsonString :
     // "{"nom":"Monroe","téléphone":"[0140879200,0140879201]",
     // "age":40,"prénom":"Alan"}"

Si vous avez défini le champ [Rect]Desc en tant que champ objet, vous pouvez écrire :

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

Vous souhaitez exporter des données en JSON contenant une date 4D convertie. A noter que la conversion a lieu au moment du stockage de la date dans l’objet, il faut donc appeler la commande SET DATABASE PARAMETER avant OB SET

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



Voir aussi  

OB REMOVE
OB SET ARRAY
OB SET NULL

 
PROPRIÉTÉS 

Produit : 4D
Thème : Objets (Langage)
Numéro : 1220

 
HISTORIQUE 

New
Créé : 4D v14
Modifié : 4D v15

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v15)
4D - Langage ( 4D v15.4)
4D - Langage ( 4D v15.3)