<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://wiki.sage.fr/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="http://wiki.sage.fr/index.php?action=history&amp;feed=atom&amp;title=Objets_m%C3%A9tiers_%28code%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.sage.fr/index.php?title=Objets_m%C3%A9tiers_(code)&amp;action=history"/>
	<updated>2026-05-25T03:51:39Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://wiki.sage.fr/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="http://wiki.sage.fr/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 dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Identifiant d’objet&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&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; id=&quot;mw-diff-left-l21&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sont &lt;/del&gt;étendu.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;son &lt;/ins&gt;étendu.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tdymon</name></author>
	</entry>
	<entry>
		<id>http://wiki.sage.fr/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="http://wiki.sage.fr/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&amp;#039;identifiant d&amp;#039;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&amp;#039;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&amp;#039;état de l&amp;#039;instance :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Etat de l&amp;#039;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&amp;#039;objet&lt;br /&gt;
|-&lt;br /&gt;
|Objet existant&lt;br /&gt;
|OID de l&amp;#039;objet&lt;br /&gt;
|OID de l&amp;#039;objet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exemple&lt;br /&gt;
&amp;lt;source lang=&amp;#039;delphi&amp;#039;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  if OID&amp;lt;&amp;gt;&amp;#039;&amp;#039; 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=&amp;#039;delphi&amp;#039;&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance(&amp;#039;MaClasse&amp;#039;);&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=&amp;#039;delphi&amp;#039;&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance(&amp;#039;MaClasse&amp;#039;);&lt;br /&gt;
  ClassManager.BeginTran;&lt;br /&gt;
  try&lt;br /&gt;
   // L&amp;#039;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=&amp;#039;delphi&amp;#039;&amp;gt;&lt;br /&gt;
var obj:MaClasse;&lt;br /&gt;
begin&lt;br /&gt;
  obj := ClassManager.CreateInstance(&amp;#039;MaClasse&amp;#039;);&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>