Objets métiers (code)

De Wiki1000
Révision datée du 2 septembre 2019 à 12:31 par Tdymon (discussion | contributions) (→‎Identifiant d’objet)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Introduction

Un objet est une entité métier.

Une instance est la représentation technique d’un objet dans un contexte d’exécution.

A un instant « t » il peut exister plusieurs instances d’un même objet sur une ou plusieurs machines.

Identifiant d’objet

Le framework de la Ligne 1000 utilise un système d’identification des objets métiers basé sur un identifiant d’objet appelé « OID » (pour « object identifier »). Grâce à cette identification il est possible d’implémenter des mécanismes génériques de manipulation et de navigations entre les objets. L’identifiant d’objet est constitué de plusieurs sections :

  • Identifiant de serveur.
  • Identifiant de base de données.
  • Identifiant de classe.
  • Incrément global.
  • Incrément.

Ce codage garanti l’unicité des identifiants d’objet.

Il n’est pas nécessaire de retenir les détails de cette codification, toutefois sachez que :

  • L’identifiant de serveur identifie le serveur ; il s’agit d’une partie de l’adresse MAC de la machine ayant créée la base de données.
  • L’identifiant de base de données identifie la base de données à l’intérieur d’un serveur.
  • L’identifiant de classe identifie la classe à laquelle appartient l’objet.
  • L’incrément global (32bits) est incrémenté lorsque l’application démarre ou lorsque l’incrément dépasse son étendu.
  • L’incrément (16bits) est incrémenté à chaque création d’objet.

Les identifiants d’objet sont manipulés dans le script comme des chaînes de caractères.

Attention : Il est dangereux de présumer du format de stockage de l'identifiant d'objet dans la base de données; suivant le pilote utilisé les identifiants peuvent être encodés différemment.

Un objet métier possède deux attributs frameworks dédiés à la gestion de l'identifiant:

Attribut Signification
OID Attribut persistant contenant la valeur de l’identifiant. Lorsque l’objet est en cours de création, son identifiant OID est vide (les identifiants étant manipulés comme des chaînes de caractères la valeur vide est ‘’) ; il sera déterminé lors de la mise à jour de l’objet.
InstanceOID Attribut non persistant qui retourne la valeur de l’identifiant si l’attribut n’est pas en cours de création, ou la valeur de l’OID qui sera utilisée si l’objet est en cours de création.

Les valeurs de ces attributs en fonction de l'état de l'instance :

Etat de l'objet OID InstanceOID
Objet en création vide OID du futur l'objet
Objet existant OID de l'objet OID de l'objet

Exemple <source lang='delphi'> begin

 if OID<> then
  begin
    // Cette instance est en création
  end;

end; </source>

Création d’une instance d’un objet

Pour créer une instance d’un objet existant dont vous connaissez l’identifiant, utilisez la fonction CreateInstance et affecter l’identifiant. <source lang='delphi'> var obj:MaClasse; begin

 obj := ClassManager.CreateInstance('MaClasse');
 obj.oid := aOID;
 ...

end; </source>

Création d’un nouvel objet

Pour créer un nouvel objet, créez une nouvelle instance et modifiez-la.

Exemple <source lang='delphi'> var obj:MaClasse; begin

 obj := ClassManager.CreateInstance('MaClasse');
 ClassManager.BeginTran;
 try
  // L'objet est inséré dans la transaction
  obj.Code := aCode ;
  obj.Caption := aCaption ;
  ClassManager.Commit;
 except
  ClassManager.RollBack ;
 end;

end; </source>

Suppression d’un objet

Pour supprimer un objet, créez une instance de cet objet et positionnez l’attribut « deleted » à TRUE.

Exemple <source lang='delphi'> var obj:MaClasse; begin

 obj := ClassManager.CreateInstance('MaClasse');
 ClassManager.BeginTran;
 try
   Obj.OID := aOID;
   Obj.Deleted := TRUE;
   ClassManager.Commit;
 except
   ClassManager.RollBack ;
 end;

end; </source>

{{#if:Code métier|

{{#if:Code métier|— Code métier |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}