<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://frp.sage.fr/wiki1000/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://frp.sage.fr/wiki1000/index.php?action=history&amp;feed=atom&amp;title=Objets_m%C3%A9tiers_%28code%29</id>
		<title>Objets métiers (code) - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="https://frp.sage.fr/wiki1000/index.php?action=history&amp;feed=atom&amp;title=Objets_m%C3%A9tiers_%28code%29"/>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Objets_m%C3%A9tiers_(code)&amp;action=history"/>
		<updated>2026-05-16T16:48:56Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Objets_m%C3%A9tiers_(code)&amp;diff=12752&amp;oldid=prev</id>
		<title>Tdymon : /* Identifiant d’objet */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Objets_m%C3%A9tiers_(code)&amp;diff=12752&amp;oldid=prev"/>
				<updated>2019-09-02T12:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Identifiant d’objet&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 2 septembre 2019 à 12:31&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 21 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 21 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’identifiant de base de données identifie la base de données à l’intérieur d’un serveur.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’identifiant de base de données identifie la base de données à l’intérieur d’un serveur.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’identifiant de classe identifie la classe à laquelle appartient l’objet.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’identifiant de classe identifie la classe à laquelle appartient l’objet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’incrément global (32bits) est incrémenté lorsque l’application démarre ou lorsque l’incrément dépasse &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sont &lt;/del&gt;étendu.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’incrément global (32bits) est incrémenté lorsque l’application démarre ou lorsque l’incrément dépasse &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;son &lt;/ins&gt;étendu.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’incrément (16bits) est incrémenté à chaque création d’objet.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;*L’incrément (16bits) est incrémenté à chaque création d’objet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tdymon</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Objets_m%C3%A9tiers_(code)&amp;diff=751&amp;oldid=prev</id>
		<title>Syfre : Nouvelle page : ===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 existe...</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Objets_m%C3%A9tiers_(code)&amp;diff=751&amp;oldid=prev"/>
				<updated>2009-07-16T16:36:34Z</updated>
		
		<summary type="html">&lt;p&gt;Nouvelle page : ===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 existe...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Introduction===&lt;br /&gt;
Un objet est une entité métier.&lt;br /&gt;
&lt;br /&gt;
Une instance est la représentation technique d’un objet dans un contexte d’exécution.&lt;br /&gt;
&lt;br /&gt;
A un instant « t » il peut exister plusieurs instances d’un même objet sur une ou plusieurs machines.&lt;br /&gt;
&lt;br /&gt;
===Identifiant d’objet===&lt;br /&gt;
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.&lt;br /&gt;
L’identifiant d’objet est constitué de plusieurs sections :&lt;br /&gt;
*Identifiant de serveur.&lt;br /&gt;
*Identifiant de base de données.&lt;br /&gt;
*Identifiant de classe.&lt;br /&gt;
*Incrément global.&lt;br /&gt;
*Incrément.&lt;br /&gt;
&lt;br /&gt;
Ce codage garanti l’unicité des identifiants d’objet.&lt;br /&gt;
&lt;br /&gt;
Il n’est pas nécessaire de retenir les détails de cette codification, toutefois sachez que :&lt;br /&gt;
*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.&lt;br /&gt;
*L’identifiant de base de données identifie la base de données à l’intérieur d’un serveur.&lt;br /&gt;
*L’identifiant de classe identifie la classe à laquelle appartient l’objet.&lt;br /&gt;
*L’incrément global (32bits) est incrémenté lorsque l’application démarre ou lorsque l’incrément dépasse sont étendu.&lt;br /&gt;
*L’incrément (16bits) est incrémenté à chaque création d’objet.&lt;br /&gt;
&lt;br /&gt;
Les identifiants d’objet sont manipulés dans le script comme des chaînes de caractères.&lt;br /&gt;
&lt;br /&gt;
{{warning|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.}}&lt;br /&gt;
&lt;br /&gt;
Un objet métier possède deux attributs frameworks dédiés à la gestion de l'identifiant:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Attribut&lt;br /&gt;
!Signification&lt;br /&gt;
|-&lt;br /&gt;
|OID&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|InstanceOID&lt;br /&gt;
|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les valeurs de ces attributs en fonction de l'état de l'instance :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Etat de l'objet&lt;br /&gt;
!OID&lt;br /&gt;
!InstanceOID&lt;br /&gt;
|-&lt;br /&gt;
|Objet en création&lt;br /&gt;
|vide&lt;br /&gt;
|OID du futur l'objet&lt;br /&gt;
|-&lt;br /&gt;
|Objet existant&lt;br /&gt;
|OID de l'objet&lt;br /&gt;
|OID de l'objet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple&lt;br /&gt;
&amp;lt;source lang='delphi'&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  if OID&amp;lt;&amp;gt;'' then&lt;br /&gt;
   begin&lt;br /&gt;
     // Cette instance est en création&lt;br /&gt;
   end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Création d’une instance d’un objet===&lt;br /&gt;
Pour créer une instance d’un objet existant dont vous connaissez l’identifiant, utilisez la fonction CreateInstance et affecter l’identifiant.&lt;br /&gt;
&amp;lt;source lang='delphi'&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance('MaClasse');&lt;br /&gt;
  obj.oid := aOID;&lt;br /&gt;
  ...&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Création d’un nouvel objet===&lt;br /&gt;
Pour créer un nouvel objet, créez une nouvelle instance et modifiez-la.&lt;br /&gt;
&lt;br /&gt;
Exemple&lt;br /&gt;
&amp;lt;source lang='delphi'&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance('MaClasse');&lt;br /&gt;
  ClassManager.BeginTran;&lt;br /&gt;
  try&lt;br /&gt;
   // L'objet est inséré dans la transaction&lt;br /&gt;
   obj.Code := aCode ;&lt;br /&gt;
   obj.Caption := aCaption ;&lt;br /&gt;
   ClassManager.Commit;&lt;br /&gt;
  except&lt;br /&gt;
   ClassManager.RollBack ;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Suppression d’un objet===&lt;br /&gt;
Pour supprimer un objet, créez une instance de cet objet et positionnez l’attribut « deleted » à TRUE.&lt;br /&gt;
&lt;br /&gt;
Exemple&lt;br /&gt;
&amp;lt;source lang='delphi'&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance('MaClasse');&lt;br /&gt;
  ClassManager.BeginTran;&lt;br /&gt;
  try&lt;br /&gt;
    Obj.OID := aOID;&lt;br /&gt;
    Obj.Deleted := TRUE;&lt;br /&gt;
    ClassManager.Commit;&lt;br /&gt;
  except&lt;br /&gt;
    ClassManager.RollBack ;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Footer|Code métier}}&lt;br /&gt;
[[category:Code métier]]&lt;/div&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	</feed>