Sage 100c Objets Métiers VF
Sage 100c Objets Métiers VF
Sage 100c Objets Métiers VF
V. 7.00
© 2020 Sage 2
Table des matières
© 2020 Sage 3
Généralités sur Sage 100cloud Objets Métiers
Cet ActiveX met à la disposition des développeurs, des classes, des interfaces, des méthodes et
des propriétés permettant l'accès aux bases de données Sage 100c, en lecture et en écriture.
Lors de l'ajout ou de la modification de données dans les bases de données Sage 100c, des
contrôles de cohérence sont effectués par Sage 100cloud Objets Métiers.
De plus, Sage 100cloud Objets Métiers gèrent certains automatismes (initialisation de champs
avec des valeurs par défaut ou des valeurs héritées) lors de la création de nouveaux
enregistrements dans les bases de données Sage 100c (articles, tiers, documents, etc…).
Ce manuel présente le principe de fonctionnement de Sage 100cloud Objets Métiers à travers des
exemples d'utilisation.
Note : Les exemples présentés ont été développés sous Microsoft Visual Studio en Visual
Basic.Net ou C#. Ces exemples sont néanmoins facilement transposables sous d’autres langages.
Terminologie
Le développement d'applications utilisant Sage 100cloud Objets Métiers requiert des
connaissances en programmation et plus particulièrement en programmation "objet".
Les concepts de base de la programmation objet qui seront employés dans ce manuel sont
rappelés ci-dessous.
Objet
Un objet est une abstraction codée d'une entité ou d'une relation du monde réel.
• à un enregistrement dans une base de données. Cet enregistrement est manipulable par
l'intermédiaire de cet objet.
Un objet résulte de l'instanciation d'une classe ou dans le cadre de Sage 100cloud Objets Métiers,
il peut être créé par un autre objet de type "Factory".
© 2020 Sage 4
Généralités sur Sage 100cloud Objets Métiers
Classe
Une classe permet de créer (ou d’instancier) un objet. Un objet est donc une instance de classe.
• L’interface : les méthodes et les propriétés de l’objet visibles et utilisables par l’utilisateur de
l’objet.
Une classe peut donc être comparée à un "moule" destiné à fabriquer des objets.
L'instanciation de ces classes permet de créer des objets autorisant l'accès aux bases comptable
et commerciale.
Dans une même application, il est possible de créer un nombre illimité d'objets de type
"Application" pour accéder à des bases différentes.
En partant des objets "Application", d'autres objets peuvent être créés pour lire, modifier ou ajouter
des données à une base
Interface
Une interface peut être considérée comme un "schéma" à partir duquel de nouveaux objets
peuvent être créés. Les objets doivent respecter les spécifications de l'interface dont ils sont issus.
• Les interfaces des Objets Métiers proprement dit résultant de l'appel des interfaces de type
"Factory".
© 2020 Sage 5
Généralités sur Sage 100cloud Objets Métiers
Méthode
Une méthode est comparable à une fonction ou à une procédure qui serait exécutée depuis un
objet.
Une méthode permet à un objet de renvoyer une valeur (généralement calculée) ou d'exécuter une
action.
Propriété
Une propriété d'un objet correspond à l'état ou à la valeur d'un élément d'un objet. La valeur d'une
propriété peut être sous la forme d'une valeur numérique, d'une chaîne de caractères, d'un
booléen ou même d'un objet.
IBOTiers3 CT_Intitule() Intitulé de l'objet Tiers sous forme d'une chaîne de caractères.
L’intitulé est accessible en lecture et en écriture.
IBOArticle3 IsModified() Renvoi True (vrai) si au moins une des propriétés de l'objet Article a
été modifiée. Dans le cas contraire False (faux) est renvoyé. La
propriété IsModified() peut être lue, mais ne peut pas être modifiée.
© 2020 Sage 6
Généralités sur Sage 100cloud Objets Métiers
Collection
Une collection est un objet qui regroupe plusieurs objets de même type.
Une collection peut être parcourue et il est possible d'accéder à un élément particulier à partir de
son index.
Une collection (interface IBICollection) regroupe plusieurs tiers différents (interface IBOTiers3) :
Carat Sarl, Billot, Breloque Sarl, etc…
Processus
Un processus est une entité métier permettant de gérer certains automatismes sur un ou une
collection d’enregistrements. Les processus implémentent une méthode permettant de vérifier la
cohérence des enregistrements (CanProcess()) avant l’insertion réelle des données dans les
bases Sage 100c (Process()). Les erreurs détectées sur les enregistrements du processus
peuvent être interceptées et parcourues dans une collection d’erreurs : IFailInfoCol.
Identifiants
Les identifiants sont des clés uniques créées pour chaque objet. Ces identifiants, sous forme de
stream, peuvent être stockés puis utilisés pour accéder à l’objet auquel l’identifiant correspond.
Ces identifiants, générés sur des objets persistants, garantissent d’accéder toujours au même
objet même après déconnexion puis connexion du développement spécifique. Sur les objets non
persistants, il est également possible de générer un identifiant, mais celui-ci ne sera utilisable que
pendant la durée où le développement spécifique sera connecté à la base Sage 100c. En effet,
après déconnexion, l’objet non persistant sera détruit et son identifiant devriendra alors
inexploitable.
Un exemple d’utilisation des identifiants est présenté sous le chapitre Exemples avancés.
© 2020 Sage 7
Description de Sage 100cloud Objets Métiers
Pré-requis
Ce manuel décrit l'utilisation de Sage 100cloud Objets Métiers à travers des exemples développés
en Visual Basic.Net ou C# (environnement Microsoft Visual Studio).
Les exemples sont présentés sous la forme de fonctions et de procédures. Ils peuvent être utilisés
dans le cadre des projets de développement, après avoir été éventuellement modifiés. Afin de
faciliter la compréhension des développements utilisant Sage 100cloud Objets Métiers, les
exemples donnés s'exécutent en mode console, notamment pour l'affichage des messages
d'erreur. Les notions de programmation Windows (fenêtres, menus, listes déroulantes, etc…)
dépassent le cadre de Sage 100cloud Objets Métiers. Ils ne sont donc pas abordés dans ce
manuel.
L’environnement d’utilisation de Sage 100cloud Objets Métiers doit être au minimum Microsoft
Windows 7 SP1.
Avant d'aborder le développement d'applications utilisant Sage 100cloud Objets Métiers, certains
points vont être détaillés :
La plupart des enregistrements des tables suivantes sont accessibles en lecture et en écriture :
• les banques,
• les tiers,
• les documents des ventes, des achats, des stocks et les documents internes (accès aux
informations de valorisation pour les documents de vente et d’achat),
• les lots,
• les collaborateurs,
Sage 100cloud Objets Métiers publie également des processus métiers permettant de simplifier la
création d’enregistrements tout en garantissant l’intégrité des données. Ces processus portent sur
les traitements suivants :
• Contrôle qualité,
© 2020 Sage 9
Description de Sage 100cloud Objets Métiers
A partir de Sage 100cloud Objets Métiers, il n’est pas possible de créer les types de document
suivants :
- Facture Comptabilisée
- Archive
- Dépréciation de stock
L’installation du Kit de développement s’effectue sans contrôle de licence. Ainsi, durant la phase
d’installation, il n’est pas nécessaire de renseigner une clé d’installation.
Pour installer le Kit de développement Sage 100cloud Objets Métiers, il faut exécuter le fichier
kitobjets100c_100.exe du Kit Objets métiers. L’écran de personnalisation permet de sélectionner
les exemples à installer :
© 2020 Sage 10
Description de Sage 100cloud Objets Métiers
La distribution d’une application utilisant Sage 100cloud Objets Métiers, nécessite également
d’installer l’ActiveX Objets100c.dll. Cependant, cette librairie ne doit pas être installée par le Kit de
développement. Cette librairie doit être installée à partir du Runtime utilisateur. Cf. Déploiement
d’applications sur les postes clients.
1. CA Articles.xls
Cet exemple a été développé sous Microsoft Excel. Il permet d’afficher un listing articles avec le
chiffre d’affaires y correspondant. L’accès aux données s’effectue uniquement en lecture.
2. Annuaire
Cet exemple est un projet Microsoft Visual Studio VB .Net permettant d’afficher une liste de clients
et fournisseurs. L’accès aux données s’effectue en lecture et écriture.
© 2020 Sage 11
Description de Sage 100cloud Objets Métiers
Types d’installation
L’activeX des objets métiers est automatiquement installé de deux manières différentes :
Installation standard
L’activeX est installé sous Program Files\Fichiers Communs\Sage\Objets métiers\Objets100c.dll et
est référencé en base de registre sur le poste de travail. Ce type d’installation permet de
référencer l’activeX à partir des outils de développement (fonctionnement non Side by side).
Exemple :
1.00 X86_com.sage.cobj.100c_77d7af533b8e0189_1.0.0.1_none_xxxx
2.00 X86_com.sage.cobj.100c_77d7af533b8e0189_2.0.0.1_none_xxxx
3.00 X86_com.sage.cobj.100c_77d7af533b8e0189_3.0.0.1_none_xxxx
3.10 X86_com.sage.cobj.100c_77d7af533b8e0189_3.1.0.1_none_xxxx
<dependency>
<dependentAssembly>
</dependentAssembly>
</dependency>
Contexte d’application
Une autre solution consiste à instancier un contexte d’application. Cette procédure peut être
utilisée lorsque le développeur n’est pas maître du programme exécutable, comme par exemple,
lors de l’exécution d’un script Visual Basic (un fichier .vbs est exécuté par wscript.exe, qui est un
composant de Microsoft Windows).
Pour ce type d’exemple, il est nécessaire dans le script vbs, d’instancier un contexte en lui
spécifiant le fichier manifest à utiliser :
Dim ObjetCpta
Dim o
set o = CreateObject("Microsoft.Windows.ActCtx")
o.manifest = "c:\objets100\com.sage.cobj.100c.dep.manifest"
ObjetCpta.Name = "c:\Temp\Bijou.mae"
<dependency>
<dependentAssembly>
© 2020 Sage 13
Description de Sage 100cloud Objets Métiers
</dependentAssembly>
</dependency>
</assembly>
<dependency>
<dependentAssembly>
</dependentAssembly>
</dependency>
</assembly>
Le fichier script quant à lui n’instanciera plus de contexte mais fera appel directement à l’interface
stream de l’application Objets Métiers auquel il doit accéder :
Dim ObjetCpta
ObjetCpta.Name = "c:\Temp\Bijou.mae"
Préconisations
Il est préconisé que les développements utilisant Sage 100cloud Objets Métiers référencent
l’activeX par une méthode Side By Side. En effet, ce type de référencement permet de garantir
que les développements utiliseront toujours la version de l’activeX Objets Métiers pour laquelle ils
ont été conçus, ceci même lorsqu’une nouvelle version majeure de l’activeX sera installée sur le
poste. De plus, dans le cas d’une installation d’une version corrective des Objets Métiers, aucune
modification ne sera nécessaire dans les développements puisque cette corrective sera installée
© 2020 Sage 14
Description de Sage 100cloud Objets Métiers
de manière à ce qu’elle soit automatiquement utilisée à la place de la version qu’elle corrige (mise
en place d’un fichier policy).
Se reporter à la documentation Microsoft pour de plus amples détails sur la création et utilisation
des fichiers manifest.
Pour utiliser un objet COM dans un nouveau projet de développement sous l'environnement
Microsoft Visual Studio, il faut préalablement le référencer.
Le référencement d'un objet COM consiste à l'encapsuler dans un assembly d'interopérabilité. Cet
assembly représente l'objet COM et permet de l'utiliser dans le développement d'applications .Net.
© 2020 Sage 15
Description de Sage 100cloud Objets Métiers
© 2020 Sage 16
Description de Sage 100cloud Objets Métiers
Pour visualiser les différentes fonctionnalités proposées par cette bibliothèque, il faut
sélectionner "Objets100cLib", puis par l'intermédiaire du menu contextuel, afficher
l'explorateur d'objet :
© 2020 Sage 17
Description de Sage 100cloud Objets Métiers
Exemple :
Imports Objets100cLib
Imports System
Module Exemple
Sub Main()
End Sub
End Module
Options de compilation
L’activeX Sage 100cloud Objets Métiers est une librairie 32 bits. Ainsi, pour qu’un développement
s’appuyant sur Sage 100cloud Objets Métiers puisse également fonctionner sur environnement 64
bits, il faut impérativement que ce développement soit compilé en plaçant le mode de compilation
sur 32 bits (x86).
Par exemple, sous Visual Studio, cette option de compilation est placée dans les paramètres de
compilation, sous l’entrée Target CPU :
• Standard : durant la phase d’installation, il faudra valider les différents écrans d’installation.
Pour l’offre Sage 100cloud Objets Métiers, deux types de setup sont disponibles :
Installation Standard
Pour procéder à l’installation du Runtime utilisateur de manière standard, il suffit d’exécuter le
setup objets100c_100.exe.
Exemple :
c:\redist\objets100c_100.exe
Exemple :
c:\redist\objets100c_100.exe -r
Cet exemple suppose que l’emplacement du fichier objets100c.exe est le répertoire C:\redist.
A l’exécution de cette ligne de commande, le setup s’exécute graphiquement et il faudra valider les
différents écrans d’installation. A la fin de l’installation, un fichier Setup.iss est généré dans le
répertoire Windows.
Le génération du fichier .iss doit être réalisée sur un système d’exploitation de version minimale
supportée par Sage 100cloud Objets Métiers : Windows 7 SP1.
Exemple :
Une erreur déclenche une exception qui peut être traitée afin, par exemple, d'afficher un message
d'erreur et de quitter l'application (après avoir correctement fermé les éventuels fichiers ouverts).
Pour récupérer et traiter une erreur lors de l'exécution d'une application, Visual Basic .Net (à
l'instar d'autres langages de développement) propose les fonctions Try … Catch … End Try.
Exemple :
Try
Tiers.CT_Num = "NUMERO_DE_COMPTE_TIERS_DE_PLUS_DE_17_CARACTERES"
Catch ex As Exception
End Try
Lorsque des erreurs se produisent dans un bloc Try, elles sont interceptées et les instructions
situées dans le bloc Catch sont exécutées.
Dans cet exemple, l'exception est récupérée dans un objet ex dont la propriété Message retourne
la chaîne de caractères "Erreur de cohérence !".
Dans ces fonctions, les erreurs éventuelles sont interceptées par les instructions Try … Catch …
End Try. En cas d'erreur, le message renvoyé par l'erreur est affiché sur la console.
Exemple :
© 2020 Sage 20
Description de Sage 100cloud Objets Métiers
Dans l'exemple ci-dessous, le programme tente de diviser 1 par zéro. Ceci déclenche logiquement
une exception qui sera gérée par le bloc Catch.
Imports System
Module Exemple
Sub Main()
Nombre_1 = 1
Nombre_2 = 0
End If
End Sub
Function DivisionEntiere(ByVal Nombre_1 As Integer, ByVal Nombre_2 As Integer, ByRef Resultat As Integer) As Boolean
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
• L'interface IBIPersistStream ;
L'interface IBIPersistStream
L'accès aux bases de données Sage 100c via Sage 100cloud Objets Métiers s'effectue par
l'intermédiaire de classes basées sur l'interface IBIPersistStream :
Les objets issus de l'instanciation de ces classes permettent d'accéder aux bases de données
Sage 100c.
Pour cet objet, la propriété Name() permet de renseigner le chemin d’accès et le nom de la base
comptable à créer (2).
La création de la base sera effective après l’appel de la méthode Create() depuis l'objet
représentant la base comptable (3).
Exemple :
Imports Objets100cLib
Imports System
Module CreationBaseCpta
Sub Main()
' (1)
End If
End Sub
© 2020 Sage 22
Description de Sage 100cloud Objets Métiers
Try
' (2)
BaseCpta.Name = NomBaseCpta
' (3)
BaseCpta.Create()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Enfin, la base de données est ouverte par appel de la méthode Open() de l'objet issu de
l'instanciation de BSCPTAApplication100c (4).
Exemple :
Imports Objets100cLib
Imports System
Module OuvertureFermetureBaseCpta
Sub Main()
' (1)
If FermeBaseCpta(BaseCpta) Then
End If
End If
End Sub
Function OuvreBaseCpta(ByRef BaseCpta As BSCPTAApplication100c, ByVal NomBaseCpta As String, Optional ByVal Utilisateur As String = "<Administrateur>",
Optional ByVal MotDePasse As String = "") As Boolean
Try
' (2)
BaseCpta.Name = NomBaseCpta
' (3)
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
' (4)
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
' (5)
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 24
Description de Sage 100cloud Objets Métiers
A la place de la propriété Name, il est également possible d’utiliser les propriétés CompanyServer
et CompanyDatabaseName pour affecter respectivement le serveur/instance SQL et la base de
données SQL.
Par conséquent, lors de la création d'une nouvelle base commerciale, il est nécessaire d'instancier
deux classes (1) :
La base comptable doit ensuite être ouverte (Cf. Ouverture et fermeture d'une base comptable)
(2).
La base comptable doit être refermée après création de la base commerciale (6)
Exemple :
Imports Objets100cLib
Imports System
Imports System.IO
Module CreationBaseCial
Sub Main()
' (1)
© 2020 Sage 25
Description de Sage 100cloud Objets Métiers
End If
End Sub
Try
' (2)
CreeBaseCpta(BaseCpta, NomBaseCpta)
End If
' (3)
BaseCial.CptaApplication = BaseCpta
' (4)
BaseCial.Name = NomBaseCial
' (5)
BaseCial.Create()
' (6)
FermeBaseCpta(BaseCpta)
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Create()
Return True
© 2020 Sage 26
Description de Sage 100cloud Objets Métiers
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 27
Description de Sage 100cloud Objets Métiers
L'ouverture des bases comptable et commerciale étant soumise à une autorisation d'accès, il faut
ensuite créer deux variables de type IBILoggable et affecter à ces variables les objets issus de
l'instanciation de BSCPTAApplication100c et BSCIALApplication100c (2a) (2b) (2c).
Si les fichiers sont protégés, il faudra renseigner les noms d'utilisateur et mots de passe
(propriétés UserName et UserPwd) de chaque objet issus de IBILoggable (3a) (3b).
Si aucune autorisation d'accès (autre que <Administrateur> sans mot de passe) n'a été
paramétrée au niveau des bases de données, il n'est pas nécessaire de renseigner ces
propriétés.
L'ouverture de la base commerciale (et de la base comptable liée) est effective après appel de la
méthode Open() depuis l'objet issu de l'instanciation de BSCIALApplication100c (4).
La fermeture d'une base commerciale (et de la base comptable liée) s'effectue en appelant la
méthode Close() (5).
Exemple :
Imports Objets100cLib
Imports System
Module OuvertureFermetureBaseCial
Structure ParamBase
End Structure
Sub Main()
' (1a)
© 2020 Sage 28
Description de Sage 100cloud Objets Métiers
With ParamBaseCpta
.NomBase = "C:\temp\bijou.mae"
.Utilisateur = "USER1"
.MotDePasse = "1234"
End With
With ParamBaseCial
.NomBase = "C:\temp\bijou.gcm"
.Utilisateur = "USER1"
.MotDePasse = "1234"
End With
If FermeBaseCial(BaseCial) Then
End If
End If
End Sub
' (2a)
Try
With ParamBaseCpta
' (1b)
BaseCpta.Name = .NomBase
' (2b)
LoginCpta = BaseCpta
' (3a)
LoginCpta.UserName = .Utilisateur
LoginCpta.UserPwd = .MotDePasse
End If
End With
BaseCial.CptaApplication = BaseCpta
© 2020 Sage 29
Description de Sage 100cloud Objets Métiers
With ParamBaseCial
' (1c)
BaseCial.Name = .NomBase
' (2c)
LoginCial = BaseCial
' (3b)
LoginCial.UserName = .Utilisateur
LoginCial.UserPwd = .MotDePasse
End If
End With
' (4)
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
' (5)
BaseCial.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 30
Description de Sage 100cloud Objets Métiers
A partir de Sage 100cloud Objets Métiers, chaque enregistrement d'une base de données est vu
comme étant un objet. Pour accéder à un enregistrement de la base de données, il est donc
nécessaire de fabriquer un objet par l'intermédiaire d'une propriété dite "Factory".
• Le cache en lecture ;
Sage 100cloud Objets Métiers met à disposition du développeur un grand nombre d'objets
permettant l'accès aux différents enregistrements des bases de données Sage 100c.
L'interface IBIPersistObject
Une base de données est un ensemble de tables reliées entre elles. Chaque table est divisée en
enregistrements, eux-mêmes constitués de champs.
Vue depuis Sage 100cloud Objets Métiers, une base de données est un ensemble d'objets
représentant les différents enregistrements de cette base de données. Chacun de ces objets est
issu de l'interface IBIPersistObject.
Les propriétés de ces objets représentent les différents champs des enregistrements de la base de
données.
Exemple :
L'interface IBITypeObjectFactory
La plupart des objets issus de l'interface IBIPersistObject, implémentent une interface
IBITypeObjectFactory.
Cette interface se présente sous la forme de propriétés dites "propriétés Factory", correspondant à
chaque type d'objet à créer.
Exemples :
Chaque propriété Factory dispose d'un certain nombre de méthodes et propriétés permettant
principalement de créer, de lire ou d'écrire un enregistrement dans une base de données :
© 2020 Sage 32
Description de Sage 100cloud Objets Métiers
Ces objets de premier niveau (issus de IBIPersistStream) constituent les Objets Métiers
proprement dits.
• Il est non persistant car il ne fait référence à aucun enregistrement de la base de données :
il n'existe qu'en mémoire (Cf. La notion de persistance des objets).
• Ses propriétés sont vides ou initialisées avec des valeurs par défaut.
Exemple :
• Appel de la méthode Create() retournant un nouvel objet stocké dans la variable venant
d'être déclarée (2).
Imports Objets100cLib
Imports System
Module CreationObjetClient
Sub Main()
© 2020 Sage 33
Description de Sage 100cloud Objets Métiers
' (1)
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Try
' (2)
ObjetClient = BaseCpta.FactoryClient.Create()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
© 2020 Sage 34
Description de Sage 100cloud Objets Métiers
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Exemples :
L'objet créé par la méthode Readxxx() reprend sous forme de propriétés les différents champs de
l'enregistrement lu :
© 2020 Sage 35
Description de Sage 100cloud Objets Métiers
Exemple :
• Appel de la méthode Readxxx() retournant l'enregistrement lu sous forme d'un objet stocké
dans la variable venant d'être déclarée (2).
Imports Objets100cLib
Imports System
Module LectureDevise
Sub Main()
' (1)
Try
' (2)
Devise = BaseCpta.FactoryDevise.ReadIntitule(IntituleDevise)
Catch ex As Exception
Finally
FermeBaseCpta(BaseCpta)
End Try
End If
End Sub
© 2020 Sage 36
Description de Sage 100cloud Objets Métiers
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Modul
Le cache en lecture
Lorsque qu'un enregistrement d'une base de données est lu par l'intermédiaire de Sage 100cloud
Objets Métiers, un objet correspondant à cet enregistrement est créé en mémoire.
De plus, les identifiants de l'objet et de l'enregistrement sont stockés dans un cache en mémoire :
© 2020 Sage 37
Description de Sage 100cloud Objets Métiers
Si par la suite Sage 100cloud Objets Métiers accède au même enregistrement par l'intermédiaire
d'un autre objet, le cache est consulté afin de contrôler qu'il n'existe pas déjà un objet faisant
référence à ce même enregistrement.
Si c'est le cas, le nouvel objet est créé en reprenant les propriétés du premier objet déjà chargé en
mémoire :
• Accélération de la lecture des enregistrements qui existent déjà en mémoire sous forme
d'objets ;
• Lorsque plusieurs objets font référence à un même enregistrement, leurs propriétés sont
identiques ;
• Si les propriétés d'un objet sont modifiées, les propriétés des autres objets faisant référence
au même enregistrement sont également modifiées.
© 2020 Sage 38
Description de Sage 100cloud Objets Métiers
Si l'enregistrement consulté n'existe pas en mémoire, l'enregistrement est relu depuis la base de
données.
Les méthodes de type Readxxx() disponibles au niveau des objets de type IBOxxxFactory,
accèdent aux données situées dans le cache. Par conséquent, en cas de modification d'un
enregistrement par une autre application, il est nécessaire d'appeler la méthode Read() ou
Refresh() de l'objet de type IBIPersistObject() pour mettre à jour le cache.
• Deux applications développées avec Sage 100cloud Objets Métiers sont exécutées sur un
même poste de travail et accèdent à la même base de données.
Il existe un cache distinct par Stream (représentation de la base de données sous forme
d'objet par instanciation de IBIPersistStream). Par conséquent, deux applications utilisant
Sage 100cloud Objets Métiers, situées sur le même poste de travail, ont chacune un cache
distinct :
• Deux applications, une application Sage 100c et une application utilisant Sage 100cloud
Objets Métiers, sont exécutées sur un même poste de travail ou sur deux postes de travail
différents et accèdent à la même base de données ;
Le cache n'est utilisé que par l'application développée avec Sage 100cloud Objets Métiers.
L'application Sage 100c n'utilise jamais le cache. Par conséquent, seule l'application
© 2020 Sage 39
Description de Sage 100cloud Objets Métiers
développée avec Sage 100cloud Objets Métiers accède au cache en lecture. L'application
Sage 100c accède directement à la base de données sans passer par le cache :
Si l'application Sage 100c modifie ou supprime un enregistrement, elle le notifie (Cf. Notifications
réseau en modification d'enregistrement et Notifications réseau en suppression d'enregistrement).
Exemples :
Plutôt que de créer un objet par enregistrement, il est plus simple et rapide de générer une
collection d'objets (interface IBICollection).
Une collection d'objets est un ensemble d'objets de même type. Elle peut être parcourue et chaque
objet est accessible individuellement.
Sage 100cloud Objets Métiers propose, en fonction du type d'objet Factory, différentes méthodes
ou propriétés permettant de créer des collections.
Exemples :
© 2020 Sage 40
Description de Sage 100cloud Objets Métiers
Exemple :
Imports Objets100cLib
Imports System
Module CreationCollection
Sub Main()
' (1)
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Try
'(2)
CollTiers = BaseCpta.FactoryTiers.List
© 2020 Sage 41
Description de Sage 100cloud Objets Métiers
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 42
Description de Sage 100cloud Objets Métiers
Outre le parcours des collections par For Each … In … Next, les collections d'objets offrent les
fonctionnalités suivantes :
Exemple :
Imports Objets100cLib
Imports System
Module LectureCollection
Sub Main()
Try
Tiers = CollTiers.Item(CollTiers.Count)
Console.WriteLine("{0}", Tiers.CT_Num)
Next
Catch ex As Exception
© 2020 Sage 43
Description de Sage 100cloud Objets Métiers
End Try
Else
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Try
'(2)
CollTiers = BaseCpta.FactoryTiers.List
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
© 2020 Sage 44
Description de Sage 100cloud Objets Métiers
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Il existe une autre méthode similaire : WriteDefault(). Son rôle est d'effectuer des
traitements par défaut (exemple : création d'enregistrements liés dans d'autres tables)
avant d'enregistrer l'objet dans la base de données (Cf. Initialisation des objets
métiers).
Lorsque l'objet est écrit dans la base de données, il devient persistant, c'est-à-dire qu'il
est lié à un enregistrement de la base de données.
Exemple :
Imports Objets100cLib
Imports System
© 2020 Sage 45
Description de Sage 100cloud Objets Métiers
Module EnregistrementObjet
Sub Main()
End If
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Try
ObjetClient.SetDefault()
ObjetClient.CT_Num = NumCompteClient
ObjetClient.CT_Intitule = IntituleCompteClient
ObjetClient.Write()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
ObjetClient = BaseCpta.FactoryClient.Create()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
L'état d'un objet peut être connu en interrogeant sa propriété IsPersistant() qui renvoie un booléen.
© 2020 Sage 47
Description de Sage 100cloud Objets Métiers
• Un objet est non persistant lorsqu'il vient d'être créé par une méthode Create(). Il ne fait
donc référence à aucun enregistrement de la base de données.
• Un objet non persistant, ainsi que toutes ses propriétés, disparaît s'il n'est pas enregistré
dans la base de données avant fermeture de l’application.
• Un objet passe de l'état non persistant à l'état persistant lorsqu'il a été écrit dans la base de
données.
• Les objets non persistants deviennent persistants lorsqu'ils sont écrits dans la base de
données (méthode Write())
• etc…
© 2020 Sage 48
Description de Sage 100cloud Objets Métiers
Il est nécessaire d'utiliser la méthode Write() afin de répercuter les modifications sur
l'enregistrement.
Lorsqu'une propriété d'un objet persistant est modifiée, l'enregistrement correspondant à cet objet
est verrouillé, c'est-à-dire qu'il n'est plus accessible aux autres utilisateurs.
Par conséquent, afin de diminuer la fréquence des verrouillages, il est recommandé d'écrire les
données dans la base de données immédiatement après leur modification :
© 2020 Sage 49
Description de Sage 100cloud Objets Métiers
En cas d'échec avant ou lors de l'écriture de l'objet dans la base de données, l'objet reste
verrouillé. Par conséquent, les propriétés de l'objet diffèrent des champs de l'enregistrement
correspondant.
Afin de déverrouiller et de réinitialiser les propriétés de l'objet avec les champs de l'enregistrement,
il est recommandé d'utiliser la méthode Read() :
Exemple :
© 2020 Sage 50
Description de Sage 100cloud Objets Métiers
Dans cet exemple, si une erreur survient lors de la modification d'une propriété de l'objet tiers, elle
est interceptée afin de rétablir les propriétés initiales de l'objet. Pour ce faire, une procédure de
relecture des données de l'enregistrement (RelisEnreg) utilisant la méthode Read() a été intégrée
dans le bloc Catch.
Imports Objets100cLib
Imports System
Module ModificationEnregistrement
Structure Adresse
Dim CP As String
End Structure
Sub Main()
With NouvAdresse
.CP = "57070"
.Region = "Lorraine"
End With
End If
© 2020 Sage 51
Description de Sage 100cloud Objets Métiers
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Function LisEnregTiers(ByRef BaseCpta As BSCPTAApplication100c, ByRef Tiers As IBOTiers3, ByVal Numero As String) As Boolean
Try
Tiers = BaseCpta.FactoryTiers.ReadNumero(Numero)
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
With NouvAdresse
ObjetTiers.Write()
End With
Return True
Catch ex As Exception
RelisEnreg(ObjetTiers)
Return False
End Try
End Function
Try
© 2020 Sage 52
Description de Sage 100cloud Objets Métiers
If Objet.IsPersistant Then
Objet.Read()
End If
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 53
Description de Sage 100cloud Objets Métiers
L'objet qui faisait référence à l'enregistrement n'est pas supprimé. Il existe toujours mais il est vide
(valeur Nothing) car il ne fait plus référence à aucun enregistrement.
Exemple :
Imports Objets100cLib
Imports System
Module SuppressionTiers
Sub Main()
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
© 2020 Sage 54
Description de Sage 100cloud Objets Métiers
Try
ObjetTiers = BaseCpta.FactoryTiers.ReadNumero(NumTiers)
ObjetTiers.Remove()
Return True
Catch ex As Exception
Console.WriteLine("Erreur en suppression de l'enregistrement {0} dans la table F_COMPTET : {1}", NumTiers, ex.Message)
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
© 2020 Sage 55
Description de Sage 100cloud Objets Métiers
End Module
ObjetTiers = BaseCpta.FactoryTiers.ReadNumero(NumTiers)
ObjetTiers.Remove()
CType(BaseCpta.FactoryTiers.ReadNumero(NumTiers), IBOTiers3).Remove()
Pour indiquer que la valeur contenue dans le cache ne correspond plus à l'enregistrement, un
mécanisme de notification a été mis en place.
• Lorsqu'une application Sage 100c modifie un enregistrement, elle envoie une notification à
l'objet correspondant à l'enregistrement qui passe alors à l'état "modifié".
Si par la suite, on tente de modifier une propriété de l'objet ou de l'écrire dans la base de
données (méthode Write()), une exception est déclenchée.
• Lorsqu'une application Sage 100c supprime un enregistrement, elle envoie une notification
à l'objet correspondant à l'enregistrement qui passe alors à l'état "supprimé".
Si par la suite, on tente de modifier une propriété de l'objet, de le lire (méthode Read()) ou
de l'écrire dans la base de données (méthode Write()), une exception est déclenchée.
Exemple :
Public Sub MAJCacheTiers(ByRef ObjTiers As IBOTiers3)
© 2020 Sage 56
Description de Sage 100cloud Objets Métiers
Try
ObjTiers.Read()
Else
ObjTiers = Nothing
End If
Catch ex As Exception
End Try
End Sub
Par conséquent, les objets (correspondant à des enregistrements dans les tables) sont eux-
mêmes liés à d'autres objets (correspondant à des enregistrements dans les tables liées).
Lorsque deux objets sont liés, on distingue "l’objet maître" du "sous objet" ; un sous-objet ne peut
être créé qu’à partir d’un objet maître.
Généralement, un sous objet est lui-même l'objet maître d'un autre sous objet.
© 2020 Sage 57
Description de Sage 100cloud Objets Métiers
Exemple :
Un sous objet ne peut-être créé que si son objet maître est persistant. Toute tentative de création
d'un sous objet pour un objet maître non persistant se solde par le message d'erreur suivant :
L'objet n'est pas persistant ! Il existe toutefois une particularité pour le processus de création de
document (IPMDocument). En effet, lors de la création d’un document par le biais de ce
processus, il est possible d’ajouter des lignes de documents (IBODocumentLigne3) à l’objet
maître (IBODocument3) alors que celui-ci n’est pas persistant.
Exemple :
Imports Objets100cLib
Imports System
Module CreationContactTiers
Structure InfoContact
End Structure
Sub Main()
© 2020 Sage 58
Description de Sage 100cloud Objets Métiers
NumTiers = "CARAT"
With InfoContact
.Nom = "Vinson"
.Prenom = "Virginie"
.Fonction = "Comptable"
End With
Console.WriteLine("Contact {0} {1} enregistré dans la base de données !", InfoContact.Nom, InfoContact.Prenom)
End If
End If
End If
End If
FermeBaseCpta(BaseCpta)
End If
End Sub
Try
ContactTiers = ObjetTiers.FactoryTiersContact.Create
Return True
Catch ex As Exception
Return False
End Try
© 2020 Sage 59
Description de Sage 100cloud Objets Métiers
End Function
Function AffecteServiceContact(ByRef BaseCpta As BSCPTAApplication100c, ByRef Service As IBPServiceContact, ByVal Intitule As String) As Boolean
Try
Service = BaseCpta.FactoryServiceContact.ReadIntitule(Intitule)
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
With InfoContact
Contact.Write()
End With
Return True
Catch ex As Exception
Console.WriteLine("Erreur en enregistrement du contact tiers {0} {1} : {0}", InfoContact.Nom, InfoContact.Prenom, ex.Message)
RelisEnreg(Contact)
Return False
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
Function LisEnregTiers(ByRef BaseCpta As BSCPTAApplication100c, ByRef Tiers As IBOTiers3, ByVal Numero As String) As Boolean
Try
Tiers = BaseCpta.FactoryTiers.ReadNumero(Numero)
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
If Objet.IsPersistant Then
Objet.Read()
© 2020 Sage 61
Description de Sage 100cloud Objets Métiers
End If
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Il est ensuite possible d'initialiser à tout moment les propriétés des objets persistants ou non
persistants par invocation de la méthode SetDefault().
Lors de l'enregistrement d'un nouvel objet ou de la mise à jour dans la base de données, les
méthodes Write() et WriteDefault() réalisent des traitements d'initialisation de propriétés ou de
création d'enregistrements.
Cette liste est non exhaustive. En fonction du contexte (ex : héritage de propriétés d'autres objets),
certaines propriétés peuvent être initialisées de façon différente.
© 2020 Sage 62
Description de Sage 100cloud Objets Métiers
La méthode SetDefault()
Cette méthode peut être invoquée à tout moment depuis un objet persistant ou non persistant.
Son rôle est d'initialiser certaines propriétés à condition que ces propriétés contiennent une valeur
par défaut.
Les propriétés ne contenant aucune valeur par défaut, c'est-à-dire les propriétés auxquelles une
valeur a été affectée, ne sont pas initialisées par la méthode SetDefault().
Exemple :
L'invocation de la méthode SetDefault() depuis un objet de type IBOTiers3 initialise les champs
suivants :
Voir les Annexes pour le détail des traitements effectués par la méthode SetDefault() de
chaque objet.
La méthode WriteDefault()
En fonction de l'objet appelant, la méthode WriteDefault() exécute les traitements suivants :
© 2020 Sage 63
Description de Sage 100cloud Objets Métiers
Exemple :
En Comptabilité, les lignes d'écriture suivantes sont saisies dans le journal de vente (VTE) de
mars 2012 :
N° compte
Jour N°compte tiers Débit Crédit
général
1 701020 829,19
1 4457120 170,81
La répartition analytique suivante est effectuée sur la ligne d'écriture 701020 (plan Activité) :
Section Montant
921SI1 290,22
922LY1 331,68
922ME1 207,29
N° compte
Jour N°compte tiers Débit Crédit
général
1 701020 912,11
1 4457120 187,89
Section Montant
921SI1 319,24
922LY1 364,85
922ME1 228,02
© 2020 Sage 64
Description de Sage 100cloud Objets Métiers
Code source :
Option Strict Off
Imports Objets100cLib
Imports System
Module RecalculAnalytique
Sub Main()
Try
With Ecriture
Console.WriteLine("Répartition analytique")
AfficheRepartAna(Ecriture)
.WriteDefault()
AfficheRepartAna(Ecriture)
Else
.Write()
End If
End With
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
FermeBaseCpta(BaseCpta)
Console.ReadLine()
End If
End Sub
© 2020 Sage 65
Description de Sage 100cloud Objets Métiers
Next
End Sub
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 66
Description de Sage 100cloud Objets Métiers
Il est recommandé d'utiliser ces constantes d'énumérateurs plutôt que les valeurs numériques
correspondant à celles-ci. En effet, les valeurs des constantes sont susceptibles d’être modifiées
au cours de l'évolution des produits Sage 100c. Les intitulés des constantes sont quant à eux
fixes, ainsi ils ne seront pas modifiés dans les futures versions de Sage 100cloud Objets Métiers ;
tout au plus, de nouvelles constantes pourraient apparaître. Pour cette raison, il est déconseillé
d’utiliser les constantes des énumérateurs pour effectuer des opérations arithmétiques.
Les différents énumérateurs proposés par Sage 100cloud Objets Métiers sont détaillés dans la
section Annexes – Enumérateurs.
Processus
Comme évoqué précedemment, un processus est une entité métier permettant de gérer certains
automatismes sur un ou une collection d’enregistrements. Suivant le type de processus, les
données manipulées peuvent être persistantes ou non persistantes.
La validation d’un processus avec insertion des données réelles en base ne s’effectue pas en
invoquant les méthodes Write() et WriteDefault() des interfaces manipulées dans le processus.
Cette validation s’effectue à l’appel de la méthode Process(). De plus, tous les processus publient
une méthode permettant de valider la cohérence des données avant de les écrire en base, il s’agit
de la méthode CanProcess().
Vous retrouverez la description des propriétés et méthodes publiées par le processus IPMEncoder
sous le paragraphe Annexes / Objets100cLib.xxxx.Stream.1 / Interfaces Processus de ce
document.
© 2020 Sage 67
Description de Sage 100cloud Objets Métiers
Propriétés globales
Les propriétés globales sont des propriétés qui sont reportées automatiquement sur les éléments
écritures ajoutés au processus. Elles sont les suivantes :
• Journal,
• Date,
• Devise,
• EC_Parite,
• EC_Intitule,
• EC_Piece,
• EC_RefPiece,
• EC_Reference.
Pour ajouter des éléments écritures au processus, il faut obligatoirement renseigner les propriétés
Journal et Date.
Eléments écritures
Les éléments écritures d’un processus sont des objets IBOEcriture3 non persistants (n’existe
qu’en mémoire). Les propriétés publiées par les éléments écritures du processus Saisie de pièce
comptable sont donc les mêmes que ceux de l’objet IBOEcriture3. Cependant, certaines propriétés
sont non modifiables car elles sont définies sur les propriétés globales du processus. Ces
propriétés sont les suivantes :
• Journal,
• Date,
• Devise,
• Parite.
Collections d’écritures
Avant validation du processus, la collection des écritures ajoutées au processus peut être
récupérée par l’appel de la propriété FactoryEcritureIn.List. Cette collection est une collection
d’écritures non persistantes dans la base.
Lorsque les écritures sont insérées dans la base (appel de la méthode Process()), la collection
d’écritures persistantes peut être récupérée par l’appel de la propriété ListEcrituresOut().
© 2020 Sage 68
Description de Sage 100cloud Objets Métiers
Collection d’erreur
Lors de l’appel des méthodes CanProcess() et Process(), une collection d’erreurs est générée
dans le cas où les écritures du processus présentent certaines incohérences (champs obligatoires
non renseignés, pièce déséquilibrée…). Cette collection peut être parcourue par l’intermédiaire de
l’interface IFailInfoCol.
L’exemple suivant permet d’insérer une pièce comptable de règlement d’une facture dans un
journal de banque. Cet exemple met également en œuvre une méthode permettant de récupérer la
collection des éventuelles erreurs (RecupErrors()).
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ModEncoder
Sub Main()
Try
'Ouverture de la base
'Génération de la pièce
ReglementFacture(mProcessEncoder)
RecupError(mProcessEncoder)
Else
mProcessEncoder.Process()
End If
End If
Catch ex As Exception
End Try
CloseBase(oCpta)
End Sub
Try
'Journal
mP.Journal = oCpta.FactoryJournal.ReadNumero("BEU")
'Date
mP.Date = #3/22/2009#
'Numéro de pièce
mP.EC_Piece = mP.Journal.NextEC_Piece(#3/22/2009#)
'Intitulé
mEcTiers = mP.FactoryEcritureIn.Create
mEcTiers.CompteG = oCpta.FactoryCompteG.ReadNumero("4010000")
mEcTiers.Tiers = oCpta.FactoryTiers.ReadNumero("HOLDI")
mEcTiers.EC_Sens = EcritureSensType.EcritureSensTypeDebit
'Affectation du montant
mEcTiers.EC_Montant = dMnt
mEcTiers.WriteDefault()
© 2020 Sage 70
Description de Sage 100cloud Objets Métiers
mEcCompte = mP.FactoryEcritureIn.Create
mEcCompte.CompteG = oCpta.FactoryCompteG.ReadNumero("5120")
mEcCompte.EC_Sens = EcritureSensType.EcritureSensTypeCredit
'Affectation du montant
mEcCompte.EC_Montant = dMnt
mEcCompte.WriteDefault()
Catch ex As Exception
End Try
End Sub
Try
Console.WriteLine("Code Erreur : " & iFail.ErrorCode & " Indice : " & iFail.Indice & _
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = sMae
© 2020 Sage 71
Description de Sage 100cloud Objets Métiers
BaseCpta.Loggable.UserName = sUid
BaseCpta.Loggable.UserPwd = sPwd
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
© 2020 Sage 72
Description de Sage 100cloud Objets Métiers
Afin d’éviter une réécriture de cette classe pour chacun des développements devant utiliser la
sérialisation des identifiants Objets métiers, il est conseillé de créer une assembly publiant cette
classe, et de référencer cette assembly pour chacun des développements spécifiques.
Exemple C#
Cette classe publie les méthodes implémentées par l’interface IStream, et en plus publie la
méthode ToString(), permettant de récupérer l’identifiant de l’objet sous forme de chaîne de
caractères.
public ImplementIStream(Stream s)
_mStream = s;
_mStream.Read(memByte, 0, memByte.Length);
memBuffer.Write(memByte, 0, memByte.Length);
_mStream.Flush();
© 2020 Sage 73
Description de Sage 100cloud Objets Métiers
public void RemoteCopyTo(IStream pstm, _ULARGE_INTEGER cb, out _ULARGE_INTEGER pcbRead, out _ULARGE_INTEGER pcbWritten)
pcbRead.QuadPart = pcbWritten.QuadPart = 0;
public unsafe void RemoteRead(out byte pv, uint cb, out uint pcbRead)
*pByte = (byte)_mStream.ReadByte();
pByte++;
pcbRead = remains;
public unsafe void RemoteWrite(ref byte pv, uint cb, out uint pcbWritten)
arBuf[i] = *pByte;
_mStream.WriteByte(*pByte);
pByte++;
© 2020 Sage 74
Description de Sage 100cloud Objets Métiers
pcbWritten = cb;
plibNewPosition.QuadPart = pos;
_mStream.SetLength((long)libNewSize.QuadPart);
return streamReader.ReadToEnd();
© 2020 Sage 75
Description de Sage 100cloud Objets Métiers
if (_mStream == null)
return;
_mStream.Dispose();
_mStream = null;
public StreamIStreamWrapper(Stream s)
_mStream = s;
_mStream.Read(pMem, 0, pMem.Length);
buffer.Write(pMem, 0, pMem.Length);
_mStream.Flush();
{
© 2020 Sage 76
Description de Sage 100cloud Objets Métiers
public void RemoteCopyTo(IStream pstm, _ULARGE_INTEGER cb, out _ULARGE_INTEGER pcbRead, out _ULARGE_INTEGER pcbWritten)
pcbRead.QuadPart = pcbWritten.QuadPart = 0;
public unsafe void RemoteRead(out byte pv, uint cb, out uint pcbRead)
byte* pd = pBuf;
*pd = (byte)_mStream.ReadByte();
pd++;
pcbRead = Remains;
public unsafe void RemoteWrite(ref byte pv, uint cb, out uint pcbWritten)
byte* pd = pBuf;
buf[i] = *pd;
_mStream.WriteByte(*pd);
pd++;
© 2020 Sage 77
Description de Sage 100cloud Objets Métiers
pcbWritten = cb;
plibNewPosition.QuadPart = position;
_mStream.SetLength((long)libNewSize.QuadPart);
return reader.ReadToEnd();
© 2020 Sage 78
Description de Sage 100cloud Objets Métiers
if (_mStream == null)
return;
_mStream.Dispose();
_mStream = null;
Ces stream, lorsqu’ils sont convertis sous forme de chaîne de caractères, ont la structure
suivante :
Pour les objets pour lesquels il existe un factory de base au niveau du stream applicatif
(BSCPTAApplication100c et BSCIALApplication100c), il est possible d’accéder à l’objet en utilisant
la méthode ReadFrom du stream applicatif. Par exemple, pour accéder directement à un contact
tiers, il est possible d’utiliser BSCPTAApplication100c.ReadFrom. Pour les sous-objets pour
lesquels il n’existe pas de factory de base (tarif article client par exemple), il faudra d’abord
récupérer l’objet maitre (IBOArticle3) pour ensuite accéder au sous objet (IBOArticleTarifClient3).
Exemples avancés
Les exemples avancés décrits ci-après mettent en avant la facilité et la rapidité de développement
à l'aide de Sage 100cloud Objets Métiers :
© 2020 Sage 79
Description de Sage 100cloud Objets Métiers
• Les tiers ;
Les tiers
On distingue 4 types de tiers : les clients, les fournisseurs, les salariés et les autres tiers.
Les clients et les fournisseurs sont respectivement représentés par des objets de type IBOClient3
et IBOFournisseur3. De plus, ils partagent des propriétés et méthodes communes disponibles au
niveau des objets de type IBOTiersPart3 et IBOTiers3.
Par contre, les salariés et les autres tiers ne sont pas représentés par des objets spécifiques, mais
par un objet de type IBOTiers3.
© 2020 Sage 80
Description de Sage 100cloud Objets Métiers
Tous les tiers ont en commun de partager les propriétés et méthodes disponibles au niveau des
objets de type IBOTiers3.
Par exemple, il est possible de créer un nouveau client (type : IBOClient3) puis d'y faire référence
par l'intermédiaire d'un objet de type IBOTiers3.
Exemple :
L'exemple ci-dessous permet de créer de nouveaux tiers de différents types, puis d'y accéder par
l'intermédiaire d'un objet de type IBOTiers3.
Code source :
Option Strict Off
Imports Objets100cLib
Module Tiers
Sub Main()
AfficheTiers(BaseCpta, "DUBOIS")
AfficheTiers(BaseCpta, "DURANT")
AfficheTiers(BaseCpta, "DUPONT")
Console.ReadLine()
FermeBaseCpta(BaseCpta)
End If
End Sub
Sub CreeTiers(ByVal BaseCpta As BSCPTAApplication100c, ByVal NumTiers As String, ByVal TypeTiers As TiersType)
Try
Case TiersType.TiersTypeClient
Tiers = BaseCpta.FactoryClient.Create
Case TiersType.TiersTypeFournisseur
Tiers = BaseCpta.FactoryFournisseur.Create
© 2020 Sage 81
Description de Sage 100cloud Objets Métiers
Case TiersType.TiersTypeSalarie
Tiers = BaseCpta.FactoryTiersSalarie.Create
Case TiersType.TiersTypeAutre
Tiers = BaseCpta.FactoryTiersAutre.Create
End Select
With Tiers
.CT_Num = NumTiers
.SetDefault()
.WriteDefault()
End With
End If
Catch ex As Exception
End Try
End Sub
Try
If BaseCpta.FactoryTiers.ExistNumero(NumTiers) Then
End If
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
© 2020 Sage 82
Description de Sage 100cloud Objets Métiers
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Pour chaque coût, il est possible de renseigner jusqu'à 3 types de frais différents qui peuvent être
cumulés :
Exemple :
12U+45F+10%
Ces frais sont gérés par l'intermédiaire d'objets issus des interfaces suivantes :
© 2020 Sage 83
Description de Sage 100cloud Objets Métiers
Interface Description
IFraisElem2 Exemple :
Le premier frais de l'article BAAR01 est : Coût de transport.
IRemise2 Exemple :
Exemple :
L'exemple ci-dessous permet de modifier et de visualiser les différents coûts affectés à l'article
BAAR01 et de calculer le montant unitaire des frais de l'article :
Code source :
Imports Objets100cLib
Imports System
Module FraisRemise
Structure ParamBase
End Structure
Sub Main()
ParamBaseCpta.NomBase = "C:\temp\Bijou.mae"
ParamBaseCial.NomBase = "C:\temp\Bijou.gcm"
Try
If BaseCial.FactoryArticle.ExistReference("BAAR01") Then
Article = BaseCial.FactoryArticle.ReadReference("BAAR01")
Article.Write()
PU = 100 : Qte = 10
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
FermeBaseCial(BaseCial)
End Try
End If
Console.ReadLine()
End Sub
Sub CreeFraisArticle(ByRef Article As IBOArticle3, ByVal Index As Integer, ByVal Intitule As String, ByVal ModeCalcul As String)
With Article.AR_Frais.Frais(Index)
End With
End Sub
Sub AfficheCalculDetailFrais(ByRef Article As IBOArticle3, ByVal Index As Integer, ByVal MontantUnitaire As Double, ByVal Qte As Double)
Console.WriteLine("Montant des frais unitaires pour {0} articles {1} à {2} euro/unité : {3}", _
End Sub
Sub AfficheCalculTotalFrais(ByRef Article As IBOArticle3, ByVal MontantUnitaire As Double, ByVal Qte As Double)
Console.WriteLine("Montant total des frais unitaires pour {0} articles {1} à {2} euro/unité : {3}", _
End Sub
Try
With ParamBaseCpta
BaseCpta.Name = .NomBase
LoginCpta = BaseCpta
LoginCpta.UserName = .Utilisateur
LoginCpta.UserPwd = .MotDePasse
End If
End With
BaseCial.CptaApplication = BaseCpta
With ParamBaseCial
BaseCial.Name = .NomBase
LoginCial = BaseCial
LoginCial.UserName = .Utilisateur
LoginCial.UserPwd = .MotDePasse
End If
© 2020 Sage 86
Description de Sage 100cloud Objets Métiers
End With
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCial.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Pour chaque catégorie tarifaire, il est possible de paramétrer un tarif qui peut être unique ou se
présenter sous forme d'une gamme de remise, c'est-à-dire varier en fonction du montant ou des
quantités vendues, sous forme d'une remise ou d'un prix net :
© 2020 Sage 87
Description de Sage 100cloud Objets Métiers
La gestion des gammes de remise par catégorie tarifaire s'effectue par l'intermédiaire des objets
suivants :
© 2020 Sage 88
Description de Sage 100cloud Objets Métiers
Exemple :
Code source :
Imports Objets100cLib
Imports System
Module GammeRemiseCatTarifaire
Structure ParamBase
End Structure
Sub Main()
© 2020 Sage 89
Description de Sage 100cloud Objets Métiers
ParamBaseCial.NomBase = "C:\temp\Bijou.gcm"
ParamBaseCpta.NomBase = "C:\temp\Bijou.mae"
RefArticle = "BAAR01"
RefCatTarifaire = "Détaillants"
RefGammeRemise = "Quantité"
.Add("1%")
.Add("2%")
.Add("3%")
.Add("4%")
.Add("5%")
.Add("6%")
.Add("7%")
.Add("8%")
End With
AfficheCatTarifArticle(Article)
Console.WriteLine(vbNewLine & "Après modification des gammes de remise :" & vbNewLine)
AfficheCatTarifArticle(Article)
Console.ReadLine()
End If
FermeBaseCial(BaseCial)
End If
End Sub
Function LisArticle(ByRef BaseCial As BSCIALApplication100c, ByRef Article As IBOArticle3, ByVal RefArticle As String) As Boolean
Try
Article = BaseCial.FactoryArticle.ReadReference(RefArticle)
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Next
Else
End If
Next
Catch ex As Exception
End Try
End Sub
Function ModifieGammeRemiseCatTarifArticle(ByRef Article As IBOArticle3, ByVal RefCatTarifaire As String, ByVal RefGammeRemise As String, ByVal Remise
As ArrayList) As Boolean
© 2020 Sage 91
Description de Sage 100cloud Objets Métiers
Try
' Si la catégorie tarifaire (CatTarifaire) n'est pas déjà associée à l'article, ajout de la catégorie tarifaire à l'article
End If
CatTarifArticle.WriteDefault()
NbBorneSup = CatTarifArticle.FactoryArticleTarifQte.List.Count()
TarifQteCategorie = CatTarifArticle.FactoryArticleTarifQte.List.Item(i + 1)
TarifQteCategorie.Remise.FromString(Remise(i))
TarifQteCategorie.Write()
i += 1
Loop
Return True
Catch ex As Exception
Console.WriteLine("Erreur en modification d'une gamme de remise de catégorie tarifaire article : {0}", ex.Message)
Return False
End Try
End Function
Function LisCatTarifArticle(ByRef Article As IBOArticle3, ByRef CatTarifArticle As IBOArticleTarifCategorie3, ByRef CatTarifaire As IBPCategorieTarif) As Boolean
Try
Return True
End If
Next
Return False
© 2020 Sage 92
Description de Sage 100cloud Objets Métiers
Catch ex As Exception
Return False
End Try
End Function
Function AjouteCatTarifArticle(ByRef Article As IBOArticle3, ByRef CatTarifArticle As IBOArticleTarifCategorie3, ByRef CatTarifaire As IBPCategorieTarif) As
Boolean
Try
CatTarifArticle = Article.FactoryArticleTarifCategorie.Create
CatTarifArticle.CategorieTarif = CatTarifaire
CatTarifArticle.Write()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
With ParamBaseCpta
BaseCpta.Name = .NomBase
LoginCpta = BaseCpta
LoginCpta.UserName = .Utilisateur
LoginCpta.UserPwd = .MotDePasse
End If
End With
BaseCial.CptaApplication = BaseCpta
With ParamBaseCial
BaseCial.Name = .NomBase
LoginCial = BaseCial
© 2020 Sage 93
Description de Sage 100cloud Objets Métiers
LoginCial.UserName = .Utilisateur
LoginCial.UserPwd = .MotDePasse
End If
End With
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCial.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Pour chaque énuméré de gamme, il est possible de paramétrer une référence, un code barre et un
prix d'achat spécifique.
© 2020 Sage 94
Description de Sage 100cloud Objets Métiers
FactoryArticleGamm
eEnum2
Exemple :
Code source :
Option Strict Off
Imports System
Imports Objets100cLib
Module GammesArticle
Structure ParamBase
End Structure
Structure Gamme
© 2020 Sage 95
Description de Sage 100cloud Objets Métiers
End Structure
Sub Main()
Try
ParamCial.NomBase = "C:\Temp\Bijou.gcm"
ParamCpta.NomBase = "C:\Temp\Bijou.mae"
If BaseCial.FactoryArticle.ExistReference("CHAAR/VAR") Then
AfficheGammeArticle(Article)
ParamGamme = Nothing
ParamGamme.PrixAchat = 130
ParamGamme = Nothing
ParamGamme.Reference = "CHAARVARF42B"
ParamGamme.CodeBarre = 38141027
' Ajoute un nouvel énuméré de gamme (68 cm) et une nouvelle référence CHAARVARC68 :
ParamGamme = Nothing
With ParamGamme
.Reference = "CHAARVARC68"
.CodeBarre = "38141030"
.PrixAchat = 180
© 2020 Sage 96
Description de Sage 100cloud Objets Métiers
.RefGammeEnum2 = "Classique"
End With
AjouteGammeArticle(Article, ParamGamme)
' Ajoute deux nouveaux énumérés de gamme (35 cm et Fine) et une nouvelle référence CHAARVARF35 :
ParamGamme = Nothing
With ParamGamme
.Reference = "CHAARVARF35"
.CodeBarre = "38141031"
.PrixAchat = 120
.RefGammeEnum2 = "Fine"
End With
AjouteGammeArticle(Article, ParamGamme)
AfficheGammeArticle(Article)
End If
If BaseCial.FactoryArticle.ExistReference("BAOR01") Then
AfficheGammeArticle(Article)
' Ajoute un nouvel énumérés de gamme (Diamant) et une nouvelle référence BAOR01DI :
ParamGamme = Nothing
With ParamGamme
.Reference = "BAOR01DI"
.CodeBarre = "38141032"
.PrixAchat = 166
.RefGammeEnum1 = "Diamant"
End With
AjouteGammeArticle(Article, ParamGamme)
AfficheGammeArticle(Article)
Console.ReadLine()
End If
End If
Catch ex As Exception
Finally
FermeBaseCial(BaseCial)
© 2020 Sage 97
Description de Sage 100cloud Objets Métiers
End Try
End Sub
Try
Console.WriteLine(vbNewLine & "Enumérés gamme 1 (" & Article.Gamme1.G_Intitule & ") :")
Console.WriteLine(GammeEnum1.EG_Enumere)
With GammeEnumRef
Console.WriteLine(.AE_Ref & " / " & .AE_CodeBarre & " / " & .AE_PrixAch)
Else
Console.WriteLine(.AE_Ref & " / " & .AE_CodeBarre & " / " & _
End If
End With
Next
Next
Console.WriteLine(vbNewLine & "Enumérés gamme 2 (" & Article.Gamme2.G_Intitule & ") :")
Console.WriteLine(GammeEnum2.EG_Enumere)
With GammeEnumRef
Console.WriteLine(.AE_Ref & " / " & .AE_CodeBarre & " / " & _
End With
Next
Next
End If
End If
Catch ex As Exception
End Try
End Sub
Sub ModifieGammeArticle(ByRef Article As IBOArticle3, ByVal RefGamme As String, ByVal ParamGamme As Gamme)
Try
Throw New Exception(Article.AR_Ref & " n'est pas un article à gamme !")
Else
With GammeEnumRef
.Write()
Exit Sub
End With
End If
Next
Next
End If
Catch ex As Exception
End Try
End Sub
Try
Throw New Exception(Article.AR_Ref & " n'est pas un article à gamme !")
Else
If ParamGamme.RefGammeEnum1 Is Nothing Then ' Test si la nouvelle gamme possède un énuméré de gamme
© 2020 Sage 99
Description de Sage 100cloud Objets Métiers
Else
If GammeEnum1 Is Nothing Then ' Si l'énuméré de la gamme n'existe pas, il est créé
End If
End If
If Not ParamGamme.RefGammeEnum2 Is Nothing Then ' Test si la nouvelle gamme ne possède qu'un énuméré de gamme 1
Throw New Exception(Article.AR_Ref & " n'est pas un article à double gamme !")
End If
Else
If ParamGamme.RefGammeEnum2 Is Nothing Then ' Test si la nouvelle gamme possède bien un énuméré de gamme 2
Throw New Exception(Article.AR_Ref & " est un article à double gamme !")
Else
If GammeEnum2 Is Nothing Then ' Si l'énuméré de la gamme n'existe pas, il est créé
End If
End If
End If
End If
With GammeEnumRef
.Write()
Exit Sub
End With
End If
Catch ex As Exception
End Try
End Sub
Try
Return GammeEnum
End If
Next
Return Nothing
Catch ex As Exception
Return Nothing
End Try
End Function
Try
Return GammeEnumRef
End If
Next
Next
Return Nothing
Catch ex As Exception
Return Nothing
End Try
End Function
Try
GammeEnum.EG_Enumere = RefGammeEnum
GammeEnum.Write()
Return GammeEnum
Catch ex As Exception
Return Nothing
End Try
End Function
Try
With ParamBaseCpta
BaseCpta.Name = .NomBase
LoginCpta = BaseCpta
LoginCpta.UserName = .Utilisateur
LoginCpta.UserPwd = .MotDePasse
End If
End With
BaseCial.CptaApplication = BaseCpta
With ParamBaseCial
BaseCial.Name = .NomBase
LoginCial = BaseCial
LoginCial.UserName = .Utilisateur
LoginCial.UserPwd = .MotDePasse
End If
End With
BaseCial.Open()
Return True
Catch ex As Exception
© 2020 Sage 102
Description de Sage 100cloud Objets Métiers
Return False
End Try
End Function
Try
BaseCial.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Sage 100cloud Objets Métiers permet la lecture et la modification des valeurs de ces informations
libres.
L’affectation de valeurs aux propriétés Informations libres ne peut être réalisée que si l’objet est
persistant. De plus, l’accès au paramétrage des informations libres n’est possible qu’en lecture
seule.
Exemple :
Le paramétrage des informations libres tiers peut être consulté par l'intermédiaire des objets
suivants :
La gestion des valeurs des informations libres tiers s'effectue par l'intermédiaire de l'objet suivant :
Code source :
Option Strict Off
Imports System
Imports Objets100cLib
Module InfoLibres
Sub Main()
Try
If BaseCpta.FactoryClient.ExistNumero(RefClient) Then
Client = BaseCpta.FactoryClient.ReadNumero(RefClient)
AfficheParamInfoLibreTiers(BaseCpta)
Console.ReadLine()
Client.InfoLibre.Item("Capital_social") = 15000
Client.Write()
End If
End If
Catch ex As Exception
Finally
FermeBaseCpta(BaseCpta)
End Try
End Sub
Try
End If
If InfoLibre.IsCalculable Then
Console.WriteLine(InfoLibre.Formule)
End If
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
• Le code journal ;
• La date de l'écriture ;
• Le numéro de pièce ;
• Le libellé de l'écriture ;
• Le code tiers ;
• Le compte général HT ;
• Le montant HT.
Cette fonction appelle d'autres fonctions générant les différentes lignes d'écritures comptables :
• Si le tiers dispose d'un mode de règlement sur une ou plusieurs échéances, autant de
lignes d'écritures que de lignes d'échéances sont générées (appel de la fonction
InsereLigneTTCMultiEch).
• Par contre, si aucun mode de règlement n'est affecté au tiers, une seule échéance est
générée (appel de la fonction InsereLigneTTCMonoEch).
Les lignes de HT et de TVA sont ensuite générées (appel des fonctions InsereLigneHT et
InsereLigneTVA).
Si une erreur se produit avant que la totalité des lignes d'écritures ait pu être écrite dans la base
de données, le journal est déséquilibré. Il est donc nécessaire de supprimer ces lignes d'écritures.
C'est pourquoi, à chaque insertion réussie d'une ligne d'écriture, l'identifiant de la ligne (IDLigne de
type IBIObjectID) est stocké sur une pile (PileLignes de type Stack). En cas d'erreur, la pile est
dépilée afin de récupérer chaque identifiant de ligne et de supprimer la ligne correspondante.
Sage 100cloud Objets Métiers simplifie la gestion des modes de règlement tiers par l'appel de la
méthode Echeance des objets de type IBOTiersReglement3. Cette méthode prend en paramètre
une date et retourne la date d'échéance calculée.
Exemple :
Code source :
Option Strict Off
Imports Objets100cLib
Imports System
Module EcrituresVenteProduit
Structure StrEcriture
Dim Journal, Tiers, CompteGTTC, CompteGHT, CompteGTVA, [Date], Piece, Libelle As String
End Structure
Sub Main()
With Ecriture
.Journal = "VTE"
.Date = "22/08/09"
.Piece = "AXJ48"
.Tiers = "CARAT"
.CompteGHT = "701019"
.CompteGTVA = "4457119"
.MontantHT = 10000
End With
InsereEcritureVenteProduit(BaseCpta, Ecriture)
With Ecriture
.Journal = "VTE"
.Date = "25/08/09"
.Piece = "AXJ59"
.Tiers = "TOPAZ"
.CompteGHT = "701005"
© 2020 Sage 108
Description de Sage 100cloud Objets Métiers
.CompteGTVA = "4457105"
.MontantHT = 2000
End With
InsereEcritureVenteProduit(BaseCpta, Ecriture)
FermeBaseCpta(BaseCpta)
End If
End Sub
, IBOCompteG3).Taxe.TA_Taux / 100)
Try
Dim i As Integer
MontRestEcheance = Ecriture.MontantTTC
For i = 1 To ListeEcheances.Count
PileLignes.Push(IDLigne)
Else
End If
Next
ListeEcheances = Nothing
PileLignes.Push(IDLigne)
Else
End If
End If
PileLignes.Push(IDLigne)
Else
End If
End If
Return True
Catch ex As Exception ' Suppression des lignes déjà saisies pour éviter un déséquilibre du journal
CType(BaseCpta.FactoryEcriture.Read(PileLignes.Pop), IBOEcriture3).Remove()
End While
Return False
End Try
End Function
Try
LigneEcriture = BaseCpta.FactoryEcriture.Create
With LigneEcriture
.Tiers = BaseCpta.FactoryTiers.ReadNumero(Ecriture.Tiers)
Ecriture.CompteGTTC = .Tiers.CompteGPrinc.CG_Num
End If
.CompteG = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGTTC)
.CompteGContrepartie = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGHT)
.Journal = BaseCpta.FactoryJournal.ReadNumero(Ecriture.Journal)
© 2020 Sage 110
Description de Sage 100cloud Objets Métiers
.Date = Ecriture.Date
.DateSaisie = Now
.EC_Piece = Ecriture.Piece
.EC_Intitule = Ecriture.Libelle
.EC_Sens = EcritureSensType.EcritureSensTypeDebit
Case ReglementRepartitionType.ReglementRepartitionTypePourcent
Case ReglementRepartitionType.ReglementRepartitionTypeMontant
.EC_Montant = Echeance.VRepart
Else
.EC_Montant = MontRestEcheance
End If
Case Else
.EC_Montant = MontRestEcheance
End Select
MontRestEcheance -= .EC_Montant
.Reglement = Echeance.Reglement
.EC_Echeance = Echeance.Echeance(Ecriture.Date)
.Write()
Return .OID
End With
Catch ex As Exception
Return Nothing
End Try
End Function
Try
LigneEcriture = BaseCpta.FactoryEcriture.Create
With LigneEcriture
© 2020 Sage 111
Description de Sage 100cloud Objets Métiers
.Tiers = BaseCpta.FactoryTiers.ReadNumero(Ecriture.Tiers)
Ecriture.CompteGTTC = .Tiers.CompteGPrinc.CG_Num
End If
.CompteG = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGTTC)
.CompteGContrepartie = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGHT)
.Journal = BaseCpta.FactoryJournal.ReadNumero(Ecriture.Journal)
.Date = Ecriture.Date
.DateSaisie = Now
.EC_Piece = Ecriture.Piece
.EC_Intitule = Ecriture.Libelle
.EC_Sens = EcritureSensType.EcritureSensTypeDebit
.EC_Montant = Ecriture.MontantTTC
.Reglement = BaseCpta.FactoryReglement.List.Item(1)
.EC_Echeance = Ecriture.Date
.Write()
Return .OID
End With
Catch ex As Exception
Return Nothing
End Try
End Function
Try
LigneEcriture = BaseCpta.FactoryEcriture.Create
With LigneEcriture
.TiersContrepartie = BaseCpta.FactoryTiers.ReadNumero(Ecriture.Tiers)
.Journal = BaseCpta.FactoryJournal.ReadNumero(Ecriture.Journal)
.Date = Ecriture.Date
.DateSaisie = Now
.EC_Piece = Ecriture.Piece
.EC_Intitule = Ecriture.Libelle
.CompteG = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGHT)
© 2020 Sage 112
Description de Sage 100cloud Objets Métiers
.CompteGContrepartie = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGTVA)
.Taxe = .CompteG.Taxe
.EC_Sens = EcritureSensType.EcritureSensTypeCredit
.EC_Montant = Ecriture.MontantHT
Return .OID
End With
Catch ex As Exception
Return Nothing
End Try
End Function
Try
LigneEcriture = BaseCpta.FactoryEcriture.Create
With LigneEcriture
.TiersContrepartie = BaseCpta.FactoryTiers.ReadNumero(Ecriture.Tiers)
.Journal = BaseCpta.FactoryJournal.ReadNumero(Ecriture.Journal)
.Date = Ecriture.Date
.DateSaisie = Now
.EC_Piece = Ecriture.Piece
.EC_Intitule = Ecriture.Libelle
.CompteG = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGTVA)
.CompteGContrepartie = BaseCpta.FactoryCompteG.ReadNumero(Ecriture.CompteGTTC)
.EC_Sens = EcritureSensType.EcritureSensTypeCredit
IBOCompteG3).Taxe.TA_Taux / 100)
.Write()
Return .OID
End With
Catch ex As Exception
Return Nothing
© 2020 Sage 113
Description de Sage 100cloud Objets Métiers
End Try
End Function
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Il est possible de lire, de modifier et de créer de nouveaux modèles de saisie par l'intermédiaire de
Sage 100cloud Objets Métiers.
La gestion des modèles de saisie s'effectue par l'intermédiaire des objets suivants :
Objet Description
Exemple :
Code source :
Imports System
Imports Objets100cLib
Module ModeleSaisie
Structure LigneModeleSaisieA
End Structure
Sub Main()
Try
AfficheModeleSaisie(ModeleSaisie)
With LigneA
.PlanAna = BaseCpta.FactoryAnalytique.ReadIntitule("Activité")
.Section = Nothing
.QteDevise = Nothing
.Montant = "25%"
End With
ModifieLigneModeleSaisieA(ModeleSaisie, 1, 1, LigneA)
With LigneA
.PlanAna = BaseCpta.FactoryAnalytique.ReadIntitule("Activité")
.Section = "922ME4"
.QteDevise = Nothing
.Montant = Nothing
End With
ModifieLigneModeleSaisieA(ModeleSaisie, 1, 2, LigneA)
With LigneA
.PlanAna = BaseCpta.FactoryAnalytique.ReadIntitule("Activité")
.Section = "921SI3"
.QteDevise = "=MacroSaisir()"
.Montant = "=MacroEquilibrer()"
End With
AjouteLigneModeleSaisieA(ModeleSaisie, 1, LigneA)
AfficheModeleSaisie(ModeleSaisie)
Console.ReadLine()
End If
Catch ex As Exception
Finally
FermeBaseCpta(BaseCpta)
© 2020 Sage 116
Description de Sage 100cloud Objets Métiers
End Try
End Sub
Try
Dim i As Integer : i += 1
With ModeleSaisieLigne
Console.Write("Provenance : ")
If .HasTA_Provenance Then
Console.Write(.TA_Provenance.ToString)
Else
If .CalculTA_Provenance Then
Console.Write("Calcul")
Else
Console.Write("Aucune")
End If
End If
Console.WriteLine()
End With
ModeleSaisieLigne.FactoryModeleEcritureLigneA.List
With ModeleSaisieLigneA
End With
Next
End If
Next
End If
Catch ex As Exception
End Try
End Sub
Try
Exit For
Else
ModeleSaisie = Nothing
End If
Next
Return ModeleSaisie
Catch ex As Exception
Return Nothing
End Try
End Function
Try
ModeleSaisieLigneG = ModeleSaisie.FactoryModeleEcritureLigne.List(NumLigneG)
NumLigneACourante += 1
With LigneACourante
.Write()
End With
Exit For
End If
End If
Next
Catch ex As Exception
End Try
End Sub
Try
NouvLigneA = CType(ModeleSaisie.FactoryModeleEcritureLigne.List(NumLigneG), _
IBOModeleEcritureLigne3).FactoryModeleEcritureLigneA.Create
With NouvLigneA
.Write()
End With
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = NomBaseCpta
BaseCpta.Loggable.UserName = Utilisateur
BaseCpta.Loggable.UserPwd = MotDePasse
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
BaseCpta.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Les documents
Cet exemple illustre la création d’un document de vente de type Devis pour un article
nomenclaturé. Le devis est crée pour le client « CARAT » en utilisant l’article « ENSHF ». Le type
de la nomenclature de cet article est « commerciale / composé ». Le code source contient une
fonction principale « CreationDevis ». C’est à partir de celle-ci que l’entête et les lignes de
documents vont être générés.
Exemple :
Objet Description
Les objets correspondants aux entêtes de documents offrent plusieurs méthodes SetDefaultxxx()
permettant d’initialiser automatiquement les valeurs. Dans l’exemple, la méthode
SetDefaultClient() affecte automatiquement à l’entête de document, la plupart des informations
relatives au client : Dépôt client, mode d’expédition, condition de livraison, catégorie comptable,
catégorie tarifaire…
Pour les lignes de documents, il existe également des méthodes SetDefaultxxx() qui permettent
certains automatismes. Par exemple, SetDefaultArticle() retourne automatiquement le prix de
l’article.
Code source :
Option Strict Off
Imports System
Imports Objets100cLib
Module CreationDevis
Try
Console.WriteLine("Document créé")
End If
End If
Catch ex As Exception
Finally
CloseBase(bCial)
End Try
End Sub
Try
'Création de l'entête
DocEntete = bCial.FactoryDocumentVente.CreateType(DocumentType.DocumentTypeVenteDevis)
With DocEntete
.SetDefaultClient(bCpta.FactoryClient.ReadNumero("CARAT"))
.DO_Date = Now
.SetDefaultDO_Piece()
.Write()
End With
With DocLigneCompose
.SetDefaultArticle(bCial.FactoryArticle.ReadReference("ENSHF"), 1)
.ArticleCompose = bCial.FactoryArticle.ReadReference("ENSHF")
.Write()
End With
With DocLigneComposant
.SetDefaultArticle(mIboArt.ArticleComposant, mIboArt.NO_Qte)
.ArticleCompose = mIboArt.Article
.Remise.Remise(1).REM_Type = RemiseType.RemiseTypePourcent
.Remise.Remise(1).REM_Valeur = dRemise
.Write()
End With
Next
Return True
Catch ex As Exception
Return False
End Try
End Function
ByVal sMae As String, ByVal sGcm As String, Optional ByVal sUid As String = "<Administrateur>", _
Try
bCpta.Name = sMae
BaseCial.CptaApplication = BaseCpta
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
© 2020 Sage 123
Description de Sage 100cloud Objets Métiers
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Objet Description
Exemple :
Code source :
// création du règlement
pRegler.Reglement = iReglt;
foreach (IBODocumentEcheance3 iEcheance in doc.FactoryDocumentEcheance.List)
pRegler.AddDocumentEcheance(iEcheance);
pRegler.Process();
La gestion des informations complémentaires s'effectue par l'intermédiaire des Factory suivants :
Objet Description
Exemple :
• Pour toutes les lignes du document "FA00005", lecture de toutes les informations
complémentaires.
Code source :
if (pInfoClifact.ExistCode("CODE2"))
{
IBOInfoComplementClient InfoCli = pInfoClifact.ReadCode("CODE2");
InfoType iInfoT = InfoCli.CI_Type;
double dVal = 0.0;
if (iInfoT == InfoType.eCDT_DATE)
{
dDate = Convert.ToDateTime(InfoDoc.DI_Valeur);
dDate.AddDays(1);
InfoCli.CI_Valeur = dDate.ToString();
InfoCli.Write();
}
}
// Lecture de toutes les informations complémentaires Lignes du document de vente
foreach (IBODocumentVenteLigne3 DocLigne in DocVente.FactoryDocumentLigne.List)
{
IBOInfoComplementDocligneFactory InfoFactLigne = DocLigne.FactoryInfoComplement;
foreach (IBOInfoComplementDocligne iInfo in DocLigne.FactoryInfoComplement.List)
MessageBox.Show(iInfo.DC_Intitule + " " + iInfo.DC_Code + " " + iInfo.DC_Valeur, DocLigne.Article.AR_Ref);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Resultat Errors");
}
}
Les différents exemples de ce manuel s'exécutent en mode console et n' interagissent pas avec
les composants Net.
Pour utiliser Sage 100cloud Objets Métiers avec des composants .Net, il est possible de les
encapsuler dans des objets .Net afin de pouvoir les manipuler comme des objets .Net.
Exemple :
En encapsulant un objet métier tiers (IBOTiers3) dans un objet interface .Net (CBOTiers), il est
possible de l’utiliser avec d'autres composants .Net (ex : une ComboBox).
Il est ensuite possible d'accéder aux propriétés de l'objet métier tiers par l'intermédiaire de la
méthode GetInterface de l'objet interface .Net :
Module Adapter
mPersistObject = obj
End Sub
Return mPersistObject
End Function
Return ""
End Function
End Class
Inherits ControlObjet100
MyBase.New(obj)
End Sub
Return GetInterface().CT_Num
End Function
Return GetObject()
End Function
End Class
End Module
Exemple :
• Remplissage d'une ComboBox avec le numéro de compte des tiers d'une base de données
comptable.
• Lorsqu'un tiers est sélectionné dans cette ComboBox, une boîte de dialogue s'ouvre et
affichage l'intitulé du tiers.
Imports Objets100cLib
Inherits System.Windows.Forms.Form
MyBase.New()
InitializeComponent()
End Sub
If disposing Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Me.SuspendLayout()
'
'Label1
'
Me.Label1.FlatStyle = System.Windows.Forms.FlatStyle.System
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 0
'
'CbTiers
'
Me.CbTiers.Name = "CbTiers"
Me.CbTiers.TabIndex = 1
Me.CbTiers.Text = "ComboBox1"
'
'FrmExemple
'
Me.Controls.Add(Me.CbTiers)
Me.Controls.Add(Me.Label1)
© 2020 Sage 130
Description de Sage 100cloud Objets Métiers
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Name = "FrmExemple"
Me.Text = "Exemple"
Me.ResumeLayout(False)
End Sub
#End Region
BaseCpta.Name = "C:\temp\Bijou.mae"
BaseCpta.Open()
CbTiers.Items.Add(New CBOTiers(Tiers))
Next
End Sub
If BaseCpta.IsOpen Then
BaseCpta.Close()
End If
End If
End Sub
End Sub
End Class
Processus Encoder
L’exemple suivant permet, comme l’exemple présenté sous le paragraphe Les écritures
comptables, de générer une pièce dans la base de comptabilité. Cependant, pour cet exemple,
l’insertion de la pièce comptable est réalisée par implémentation du processus de saisie de pièce
comptable : IPMEncoder.
Ainsi, l’exemple suivant permet de créer une pièce comptable (facture client) en générant
automatiquement les écritures d’échéances du compte tiers, les écritures analytiques, ainsi que les
écritures TTC, HT et TVA. Cet exemple met également en œuvre une méthode permettant de
récupérer la collection des éventuelles erreurs (RecupErrors()).
Pour le compte tiers TOPAZ, le mode de règlement est défini de la manière suivante :
Sur le compte général 701019, l’option Saisie analytique est également cochée.
Code source
Imports Objets100cLib
Module ModEncoder
Sub Main()
Try
'Ouverture de la base
EntetePiece(mProcessEncoder)
TiersPart(mProcessEncoder)
RecupError(mProcessEncoder)
Else
mProcessEncoder.Process()
End If
End If
Catch ex As Exception
End Try
CloseBase(oCpta)
End Sub
Try
'Affectation de la date
mP.Date = #3/22/2009#
If oCpta.FactoryJournal.ExistNumero("VTE") Then
'Affectation du journal
mP.Journal = oCpta.FactoryJournal.ReadNumero("VTE")
mP.EC_Piece = mP.Journal.NextEC_Piece(#3/22/2009#)
End If
'Affectation de l'intitulé
mP.EC_RefPiece = "A005"
mP.EC_Reference = "A005"
mP.bAnalytiqueAuto = True
mP.bMultiEcheanceAuto = True
Catch ex As Exception
End Try
End Sub
Try
mTiers = Nothing
mCpt = Nothing
mCptCharge = Nothing
mCptTVA = Nothing
If oCpta.FactoryTiers.ExistNumero("TOPAZ") Then
mTiers = oCpta.FactoryTiers.ReadNumero("TOPAZ")
mCpt = mTiers.CompteGPrinc
End If
Catch ex As Exception
End Try
End Sub
Try
Console.WriteLine("Code Erreur : " & iFail.ErrorCode & " Indice : " & iFail.Indice & _
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = sMae
BaseCpta.Loggable.UserName = sUid
BaseCpta.Loggable.UserPwd = sPwd
BaseCpta.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
© 2020 Sage 135
Description de Sage 100cloud Objets Métiers
Catch ex As Exception
Return False
End Try
End Function
End Module
Dans cet exemple, l’article utilisé « ENSHF » est de nomenclature « commerciale/composé » dont
la composition est la suivante :
Ainsi, dans le processus de création de document, lors de l’ajout de la ligne d’article sur ENSHF,
trois lignes de document seront automatiquement ajoutées pour les articles MODIV01, MOOR001
et STYPLOR.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessCreateDocument
Sub Main()
Try
'Ouverture de la base
'Conversion du document du processus (IBODocument3) dans le type du document de destination : Facture de vente (IBODocumentVente3)
'Indique au document qu’il ne doit pas recalculer les totaus automatiquement à chaque modification ou ajout de lignes
mDoc.SetAutoRecalculTotaux(false);
mDoc.SetDefaultClient(oCial.CptaApplication.FactoryClient.ReadNumero("CARAT"))
'Lors de l'ajout de cette ligne, les autres lignes composant la nomenclature sont également ajoutées
, IBODocumentVenteLigne3)
mLig.SetDefaultRemise()
Next
RecupError(mProcessDoc)
Else
mProcessDoc.Process()
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Console.WriteLine("Code Erreur : " & iFail.ErrorCode & " Indice : " & iFail.Indice & _
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
© 2020 Sage 138
Description de Sage 100cloud Objets Métiers
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Le contrôle qualité mis en place dans cet exemple permet de valider une quantité de 42 BAAR01
et de retourner les 8 restants. Ainsi, la validation génèrera un mouvement de transfert, et le retour
génèrera une facture de retour fournisseur.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusControleQualite
Sub Main()
Try
'Ouverture de la base
pQualite.Domaine = DomaineType.DomaineTypeAchat
pQualite.PeriodDO_Date.Start = #1/1/2011#
pQualite.PeriodDO_Date.End = #12/31/2011#
pQualite.TypeDocumentRetour = DocumentType.DocumentTypeAchatFacture
pQualite.Valider(mLigEmpl, 42)
'Retourne la quantité de 8
End If
Next
RecupError(pQualite)
Else
'Gérération d'un mouvement de transfert pour une quantité de 42 et une facture de retour fournisseur pour une quantité de 8
pQualite.Process()
End If
End If
Catch ex As Exception
Finally
© 2020 Sage 140
Description de Sage 100cloud Objets Métiers
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Console.WriteLine("Code Erreur : " & iFail.ErrorCode & " Indice : " & iFail.Indice & _
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
© 2020 Sage 141
Description de Sage 100cloud Objets Métiers
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
• Un barème nommé « Promotion Avril » pour une promotion de 5% sur tous les articles sur
la période du mois d’avril 2011.
• Un barème nommé « Promotion montre » pour une promotion sur des articles associés aux
familles MONTREDIV et MONTREOR, défini avec une gamme de remise :
Jusqu’à Remise
5000,00 10%
10000,00 12%
20000,00 15%
100000,00 15%+1000F
Après application des ces barèmes sur un bon de commande de vente créé le 05/04/2011, et
contenant des lignes pour des articles associés aux familles MONTREDIV et MONTREOR. Deux
lignes de remise auront automatiquement été ajoutées dans le document :
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusAppliquerBareme
Sub Main()
Try
'Ouverture de la base
If oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteCommande, "BC00197")
oCial.CreateProcess_AppliquerBareme(mDoc)
If pBareme.CanProcess Then
'Validation du processus
pBareme.Process()
Else
'Récupération de erreurs
RecupError(CType(pBareme, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Processus de colisage
L’exemple suivant permet de décomposer une ligne de préparation de livraison, en générant
plusieurs colis pour lesquels la quantité de chaque colis sera définie à 1.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusColisage
Sub Main()
Try
'Ouverture de la base
'Récupération du document
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVentePrepaLivraison, "PL00014")
pDoc.FactoryDocumentLigne.List
pColiser.LigneOrigine = pLig
CType(pColiser.UserColis.AddNew, IUserColis).Set( _
'iColis.NumColis = _
iCpt += 1
End While
If pColiser.CanProcess Then
'Validation du processus
pColiser.Process()
Else
RecupError(CType(pColiser, IPMProcess))
End If
Next
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
© 2020 Sage 147
Description de Sage 100cloud Objets Métiers
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Ces deux exemples s’appuient sur une préparation de livraison (PL00015) contenant deux lignes
sur des articles suivis en série et en lot (MOBWAC01 et LINGOR18). Pour l’article LINGOR18, des
lots avec une quantité de 5 ont été entrées en stock. Détail des lignes du document :
Après exécution du processus de prélèvement, la ligne sur l’article suivi en série (MOBWAC01) de
quantité de 3, sera décomposée en 3 lignes. La ligne sur l’article suivi en lot (LINGOR18) de
quantité de 6, sera quant à elle décomposée en deux lignes : une ligne avec une quantité de 5 et
une autre avec une quantité de 1.
Imports Objets100cLib
Imports System
Module ProcessusPreleverLotAutomatique
Sub Main()
Try
'Ouverture de la base
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVentePrepaLivraison, "PL00015")
pDoc.FactoryDocumentLigne.List
((pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeLot _
OrElse pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeSerie) _
pPrelever = oCial.CreateProcess_PreleverLot
pPrelever.LigneOrigine = pLig
'proposés automatiquement
pPrelever.UserLots
Console.WriteLine(mUserLot.Lot.NoSerie & _
© 2020 Sage 150
Description de Sage 100cloud Objets Métiers
Next
If pPrelever.CanProcess Then
'Validation du processus
pPrelever.Process()
Else
RecupError(CType(pPrelever, IPMProcess))
End If
End If
Next
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
© 2020 Sage 151
Description de Sage 100cloud Objets Métiers
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Imports Objets100cLib
Imports System
Module ProcessusPreleverLotManuel
Sub Main()
Try
'Ouverture de la base
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVentePrepaLivraison, "PL00015")
pDoc.FactoryDocumentLigne.List
((pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeLot _
OrElse pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeSerie) _
pPrelever = oCial.CreateProcess_PreleverLot
pPrelever.LigneOrigine = pLig
© 2020 Sage 153
Description de Sage 100cloud Objets Métiers
pPrelever.UserLots.RemoveAll()
pLig.Article.FactoryArticleDepot.ReadDepot(pDepot)
pArtDepot.FactoryArticleDepotLot.QueryNonEpuise
pPrelever.UserLots.AddNew
'Affectation de l'intégralité de
mUserLot.Set(pArtDepotLot, dQte, _
pArtDepotLot.Complement)
Else
mUserLot.Set(pArtDepotLot, _
pPrelever.QteRestantARepartir, _
pArtDepotLot.Complement)
End If
End If
Next
© 2020 Sage 154
Description de Sage 100cloud Objets Métiers
pPrelever.UserLots
Console.WriteLine(mUserLot.Lot.NoSerie & _
Next
If pPrelever.CanProcess Then
'Validation du processus
pPrelever.Process()
Else
RecupError(CType(pPrelever, IPMProcess))
End If
End If
Next
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
© 2020 Sage 156
Description de Sage 100cloud Objets Métiers
End Module
• Transfert d’un dépôt vers un autre pour un article suivi au CMUP en utilisant un mouvement
de transfert existant, et en laissant les emplacements affectés automatiquement par le
processus de transfert,
• Transfert d’un emplacement vers un autre pour un article suivi au CMUP en créant un
nouveau mouvement de transfert (utilisation du processus de création de document
IPMDocument), et en affectant manuellement les emplacements,
• Transfert d’un emplacement vers un autre pour un article suivi par lot en créant un nouveau
mouvement de transfert (utilisation du processus de création de document IPMDocument),
et en affectant l’emplacement sur le dépôt de destination.
Transfert d’un dépôt vers un autre pour un article suivi au CMUP en utilisant un document existant
L’exemple suivant permet de créer un transfert d’article dans un document existant, pour transférer
10 quantités de l’article BAAR01 suivi au CMUP, du dépôt Bijou SA vers le dépôt Annexe Bijou
SA. Les emplacements seront affectés automatiquement par le processus en utilisant la même
règle que celle utilisée par la Gestion commerciale (utilisation de l’emplacement par défaut du
dépôt).
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusTransfererDocumentExistant
Sub Main()
Try
'Ouverture de la base
oCial.FactoryDocumentStock.ReadPiece( _
DocumentType.DocumentTypeStockVirement, "MT00021")
oCial.CreateProcess_DocTransferer
pTransfert.Document = mDoc
pTransfert.SetDefaultArticle( _
oCial.FactoryArticle.ReadReference("BAAR01"), 10)
If pTransfert.CanProcess Then
'Validation du processus
pTransfert.Process()
Else
'des erreurs
RecupError(CType(pTransfert, IPMProcess))
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Transfert d’un emplacement vers un autre pour un article suivi au CMUP avec creation d’un nouveau
document
L’exemple suivant permet de créer un transfert d’article dans un nouveau document, pour
transférer 10 quantités de l’article BAAR01 suivi au CMUP, de l’emplacement A1T2N1P2 vers
l’emplacement A3T1N2P2 pour le dépôt Bijou SA. Pour ce faire, cet exemple mettra en œuvre
deux processus :
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusTransfererNouveauDocument
Sub Main()
Try
'Ouverture de la base
oCial.FactoryDepot.ReadIntitule("Bijou SA")
oCial.CreateProcess_Document _
(DocumentType.DocumentTypeStockVirement)
'Initialisation du document
mDoc.DepotOrigine = mDepot
mDoc.DepotDestination = mDepot
mDoc.SetDefaultDO_Piece()
mDoc.WriteDefault()
oCial.CreateProcess_DocTransferer
pTransfert.Document = mDoc
pTransfert.SetDefaultArticle _
(oCial.FactoryArticle.ReadReference("BAAR01"), 10)
pTransfert.DepotEmplOrigine = _
mDepot.FactoryDepotEmplacement.ReadCode("A1T2N1P2")
pTransfert.DepotEmplDest = _
mDepot.FactoryDepotEmplacement.ReadCode("A3T1N2P2")
If pTransfert.CanProcess Then
'Validation du processus
pTransfert.Process()
If pDoc.CanProcess Then
'Validation du processus
pDoc.Process()
Else
RecupError(CType(pDoc, IPMProcess))
End If
Else
RecupError(CType(pTransfert, IPMProcess))
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
© 2020 Sage 162
Description de Sage 100cloud Objets Métiers
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Transfert d’un emplacement vers un autre pour un article géré par lot avec création d’un nouveau document
L’exemple suivant permet de créer un transfert d’article dans un nouveau document, pour
transférer l’article LINGOR18 suivi par lot, de l’emplacement d’origine du lot vers l’emplacement
A3T1N2P2 pour le dépôt Bijou SA. Pour ce faire, comme dans l’exemple précédent, deux
processus seront mis en œuvre : IPMDocument pour la création de document et
IPMDocTransferer pour le transfert d’article.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusTransfererNouveauDocumentAvecLot
Sub Main()
Try
'Ouverture de la base
oCial.FactoryDepot.ReadIntitule("Bijou SA")
oCial.CreateProcess_Document _
(DocumentType.DocumentTypeStockVirement)
'Initialisation du document
mDoc.DepotOrigine = mDepot
© 2020 Sage 164
Description de Sage 100cloud Objets Métiers
mDoc.DepotDestination = mDepot
mDoc.SetDefaultDO_Piece()
mDoc.WriteDefault()
oCial.CreateProcess_DocTransferer
pTransfert.Document = mDoc
oCial.FactoryArticle.ReadReference("LINGOR18")
pTransfert.SetDefaultArticle(mArt, 2)
pTransfert.UserLotsToUse.RemoveAll()
pTransfert.UserLotsToUse.AddNew()
mArt.FactoryArticleDepot.ReadDepot(mDepot). _
FactoryArticleDepotLot.ReadNoSerie("LINGOR001")
mUserLot.Lot = mArtDepotLot
mUserLot.QteToUse = 2
pTransfert.DepotEmplDest = _
mDepot.FactoryDepotEmplacement.ReadCode("A3T1N2P2")
If pTransfert.UserLotsQteRestantAFournir = 0 Then
If pTransfert.CanProcess Then
'Validation du processus
pTransfert.Process()
If pDoc.CanProcess Then
'Validation du processus
pDoc.Process()
Else
RecupError(CType(pDoc, IPMProcess))
End If
Else
RecupError(CType(pTransfert, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
◊ Livrer : Transformation d’un devis et un bon de commande dans deux bons de livraison
existant,
◊ Livrer : Transformation d’un devis dans un nouveau bon de livraison avec affectation
manuelle des numéros série/lot.
Transformation d’une ligne d’un document de vente dans un nouveau Bon de commande
Cet exemple permet de transformer la première ligne de document du devis DE00036 dans un bon
de commande. Le document de destination n’étant pas précisé, le processus de transformation le
créera automatiquement en s’appuyant sur les informations d’entête du devis d’origine.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusVenteCommander_1LigneDeToNewBc
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Vente.CreateProcess_Commander
If oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteDevis, "DE00036")
pDoc.FactoryDocumentLigne.List(1)
pTransfo.AddDocumentLigne(pLig)
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
CType(pTransfo.ListDocumentsResult(1), _
IBODocumentVente3).DO_Piece)
Else
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusVenteCommander_1DeToNewBc
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Vente.CreateProcess_Commander
If oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteDevis, "DE00037")
pTransfo.AddDocument(pDoc)
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
CType(pTransfo.ListDocumentsResult(1), _
IBODocumentVente3).DO_Piece)
Else
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusVenteLivrer_1De1BcTo2Bl
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Vente.CreateProcess_Livrer
If oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteDevis, "DE00038")
pTransfo.AddDocument(pDoc)
pDoc = oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteCommande, "BC00201")
pTransfo.AddDocument(pDoc)
pDoc = oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteLivraison, "BL00015")
pTransfo.AddDocumentDestination(pDoc)
pDoc = oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteLivraison, "BL00016")
pTransfo.AddDocumentDestination(pDoc)
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
Else
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
L’affectation manuelle des numéros série/lot n’est pas obligatoire. Le processus de transformation
les attribuera automatiquement s’ils ne sont pas renseignés.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusVenteLivrer_1DeTo1BlAvecSerieLot
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Vente.CreateProcess_Livrer
If oCial.FactoryDocumentVente.ExistPiece( _
oCial.FactoryDocumentVente.ReadPiece( _
DocumentType.DocumentTypeVenteDevis, "DE00002")
pTransfo.AddDocument(pDoc)
In pTransfo.ListLignesATransformer
If pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeSerie Then
SetSerie(pTransfo, pLig)
ElseIf pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeLot Then
End If
Next
End If
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
Else
© 2020 Sage 179
Description de Sage 100cloud Objets Métiers
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
pTransfo.UserLotsToUse(pL).Item(i)
If pTmpUserLot.Lot.Equals(pLot) Then
Return True
End If
Next
End If
Next
© 2020 Sage 180
Description de Sage 100cloud Objets Métiers
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Return bRes
End Function
Try
pLig.Article.FactoryArticleDepot.ReadDepot(pDepot)
In pArtDepot.FactoryArticleDepotLot.List
'Si le numéro n'est pas épuisé et s'il n'a pas déjà été affecté
pUserLot.Set(pArtDepotLot, 1, pArtDepotLot.Complement)
bReadAllSerie = False
Exit For
End If
bReadAllSerie = True
Next
End While
Catch ex As Exception
Console.WriteLine(ex.Message)
© 2020 Sage 181
Description de Sage 100cloud Objets Métiers
End Try
End Sub
Try
pLig.Article.FactoryArticleDepot.ReadDepot(pDepot)
Dim i As Integer = 0
In pArtDepot.FactoryArticleDepotLot.List
pTransfo.UserLotsQteRestantAFournir(pLig)
pTransfo.UserLotsToUse(pLig).AddNew
If hashTb.ContainsKey(pArtDepotLot) _
dQteTb = hashTb(pArtDepotLot)
'Affectation du lot
© 2020 Sage 182
Description de Sage 100cloud Objets Métiers
pUserLot.Set(pArtDepotLot, _
dQteFournir, pArtDepotLot.Complement)
'Décrémentation de la quantité
Exit For
Else
pUserLot.Set(pArtDepotLot, _
dQteTb, pArtDepotLot.Complement)
hashTb(pArtDepotLot) = 0
End If
Else
'Affectation du lot
pUserLot.Set(pArtDepotLot, _
dQteFournir, pArtDepotLot.Complement)
hashTb.Add(pArtDepotLot, _
pArtDepotLot.StockATerme - dQteFournir)
Exit For
Else
pUserLot.Set(pArtDepotLot, _
pArtDepotLot.StockATerme, pArtDepotLot.Complement)
hashTb.Add(pArtDepotLot, 0)
End If
End If
End If
i += 1
If i = pArtDepot.FactoryArticleDepotLot.List.Count Then
bReadAllLot = True
End If
Next
End While
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusAchatCommander_1PcTo1BC
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Achat.CreateProcess_Commander
If oCial.FactoryDocumentAchat.ExistPiece( _
oCial.FactoryDocumentAchat.ReadPiece( _
DocumentType.DocumentTypeAchatCommande, "PC00008")
pTransfo.AddDocument(pDoc)
If oCial.FactoryDocumentAchat.ExistPiece( _
pDoc = oCial.FactoryDocumentAchat.ReadPiece( _
DocumentType.DocumentTypeAchatCommandeConf, "FBC00005")
pTransfo.AddDocumentDestination(pDoc)
End If
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
Else
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
© 2020 Sage 187
Description de Sage 100cloud Objets Métiers
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Transformation d’un document d’achat dans un nouveau bon de livraison avec affectation
manuelle des numéros Série/Lot
L’exemple suivant permet de transformer un bon de commande d’achat, dans un nouveau bon de
livraison avec gestion manuelle des série/lot. Cet exemple fait de plus appel à la fonction
NextNoSerie (cf. IBOArticleDepotLotFactory), permettant d’incrémenter une chaîne de
caractères, afin de calculer les numéros de série/lot.
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusAchatReceptionner_1BcTo1BLAvecLot
Sub Main()
Try
'Ouverture de la base
oCial.Transformation.Achat.CreateProcess_Receptionner
If oCial.FactoryDocumentAchat.ExistPiece( _
oCial.FactoryDocumentAchat.ReadPiece( _
DocumentType.DocumentTypeAchatCommandeConf, "FBC00006")
pTransfo.AddDocument(pDoc)
In pTransfo.ListLignesATransformer
If pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeLot OrElse _
pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeSerie Then
pLig.Depot
pLig.Article.FactoryArticleDepot.ReadDepot(pDepot)
pArtDepot.FactoryArticleDepotLot.Create
pTransfo.UserLotsToUse(pLig).AddNew
If pLig.Article.AR_SuiviStock = _
SuiviStockType.SuiviStockTypeLot Then
While pArtDepotLot.FactoryArticleDepotLot.ExistNoSerie(sNumLot)
sNumLot = _
pArtDepotLot.FactoryArticleDepotLot.NextNoSerie(sNumLot)
End While
pArtDepotLot.NoSerie = sNumLot
pUserLot.Set(pArtDepotLot, _
© 2020 Sage 190
Description de Sage 100cloud Objets Métiers
pTransfo.UserLotsQteRestantAFournir(pLig), _
pArtDepotLot.Complement)
sNumLot = _
pArtDepotLot.FactoryArticleDepotLot.NextNoSerie(sNumLot)
Else
While pArtDepotLot.FactoryArticleDepotLot.ExistNoSerie(sNumSerie)
sNumSerie = _
pArtDepotLot.FactoryArticleDepotLot.NextNoSerie(sNumSerie)
End While
pArtDepotLot.NoSerie = sNumSerie
pUserLot.Set(pArtDepotLot, 1, pArtDepotLot.Complement)
sNumSerie = _
pArtDepotLot.FactoryArticleDepotLot.NextNoSerie(sNumSerie)
End If
End While
End If
Next
If pTransfo.CanProcess Then
'Validation du processus
pTransfo.Process()
Else
RecupError(CType(pTransfo, IPMProcess))
End If
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
© 2020 Sage 191
Description de Sage 100cloud Objets Métiers
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Processus de Lettrage
L’exemple suivant permet de mettre en œuvre le processus IPMLettrer, afin de lettrer une
collection d’écritures comptables saisies sur le tiers CISEL.
Dans cet exemple, le lettrage sera réalisé en spécifiant le type de lettrage sur Lettrage montant.
Ainsi, le solde des écritures ajoutées au processus devra être à 0. Les écritures sélectionnées
seront les suivantes :
Pour lettrer ces écritures, il sera nécessaire de sélectionner chacune d’entre elles, et de les ajouter
au processus. Dans cet exemple, les accès et ajouts des écritures au processus seront réalisés
par l’appel de la fonction ReadNumero de l’interface IBOEcritureFactory3.
Enfin, le code lettrage à affecter aux écritures sera automatiquement calculé après appel de la
méthode SetLettreDefault().
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module Process_IPMLettrer
Sub Main()
Try
'Ouverture de la base
oCpta.CreateProcess_Lettrer()
If oCpta.FactoryEcriture.ExistNumero(479) Then
pLettre.AddEcriture(oCpta.FactoryEcriture.ReadNumero(479))
End If
If oCpta.FactoryEcriture.ExistNumero(146) Then
pLettre.AddEcriture(oCpta.FactoryEcriture.ReadNumero(146))
End If
If oCpta.FactoryEcriture.ExistNumero(485) Then
pLettre.AddEcriture(oCpta.FactoryEcriture.ReadNumero(485))
End If
If oCpta.FactoryEcriture.ExistNumero(1194) Then
pLettre.AddEcriture(oCpta.FactoryEcriture.ReadNumero(1194))
End If
pLettre.Type = LettrageType.LettrageTypeLettrageMontant
pLettre.SetLettreDefault()
If pLettre.CanProcess Then
'Validation du processus
pLettre.Process()
Else
RecupError(CType(pLettre, IPMProcess))
End If
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
CloseBase(oCpta)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCpta.Name = sMae
BaseCpta.Loggable.UserName = sUid
BaseCpta.Loggable.UserPwd = sPwd
BaseCpta.Open()
Return True
Catch ex As Exception
ex.Message)
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
ex.Message)
Return False
© 2020 Sage 196
Description de Sage 100cloud Objets Métiers
End Try
End Function
End Module
Code source
Option Strict Off
Imports Objets100cLib
Imports System
Module ProcessusCreationSousTotal
Sub Main()
Try
'Ouverture de la base
oCial.CreateProcess_Document( _
DocumentType.DocumentTypeVenteCommande)
mDoc.SetDefaultClient( _
oCial.CptaApplication.FactoryClient.ReadNumero("CARAT"))
mDoc.WriteDefault()
oCial.CreateProcess_SousTotal(mDoc)
mDoc.FactoryDocumentLigne.Create
mLig.SetDefaultArticle( _
oCial.FactoryArticle.ReadReference("GRAVURE"), 1)
mLig.WriteDefault()
pSousTotal.AddDocumentLigne(mLig)
mLig = mDoc.FactoryDocumentLigne.Create
mLig.SetDefaultArticle( _
oCial.FactoryArticle.ReadReference("BAAR01"), 1)
mLig.WriteDefault()
pSousTotal.AddDocumentLigne(mLig)
If pSousTotal.CanProcess Then
'Validation du processus
pSousTotal.Process()
If pProc.CanProcess Then
'Validation du processus
pProc.Process()
Else
RecupError(CType(pProc, IPMProcess))
End If
Else
RecupError(CType(pSousTotal, IPMProcess))
End If
End If
Catch ex As Exception
Finally
'Fermeture de la connexion
CloseBase(oCial)
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
BaseCial.Loggable.UserName = sUid
BaseCial.Loggable.UserPwd = sPwd
BaseCial.Open()
Return True
Catch ex As Exception
& ex.Message)
Return False
End Try
End Function
Try
Return True
Catch ex As Exception
& ex.Message)
Return False
End Try
End Function
End Module
Code source
Imports Objets100cLib
Module ProcessRecalculPrixCompose
Sub Main()
Try
'Instanciation de l'objet
Call RecalculPrixCompose()
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
'Fermeture de la connexion
Call CloseBase(bCial)
End Try
Console.ReadLine()
End Sub
Try
If pLig.ArticleCompose.Equals(bCial.FactoryArticle.ReadReference("CHORFA")) Then
If pLig.Article.Equals(bCial.FactoryArticle.ReadReference("SVFORMAPP")) Then
'Majoration de la quantité
pLig.Write()
End If
pRecalc.AddDocumentLigne(pLig)
End If
Next
If pRecalc.CanProcess Then
pRecalc.Process()
Else
RecupError(CType(pRecalc, IPMProcess))
End If
Catch ex As Exception
Throw ex
End Try
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
'Utilisateur
BaseCial.Loggable.UserName = sUid
'Mot de passe
BaseCial.Loggable.UserPwd = sPwd
'Ouverture de la connexion
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Try
bCial = Nothing
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Exemple 1
Pour un article géré en lot, plusieurs entrées en stocks pour différents numéros de lots et sur
différents emplacements ont été réalisés :
LOT2 15 A1T1N1P2
LOT3 6 A1T1N1P1
LOT4 10 A1T1N1P2
Une livraison de l’article ARTICLE_LOT pour le client CARAT et une quantité de 10 doit être
réalisée. L’emplacement A1T1N1P1 doit être déstocké en priorité sans se soucier des numéros de
lot qu’il contient.
Code source
Imports Objets100cLib
Module ProcessSortirLots
Sub Main()
Try
'Instanciation de l'objet
Call SortirLotEmplacement()
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
'Fermeture de la connexion
Call CloseBase(bCial)
End Try
Console.ReadLine()
End Sub
pDoc.SetDefaultClient(bCial.CptaApplication.FactoryClient.ReadNumero("CARAT"))
pLig.SetDefaultArticle(bCial.FactoryArticle.ReadReference("ARTICLE_LOT"), 10)
'Initialisation du processus avec la ligne de document (non persistante), en indiquant l'emplacement mais pas de numéro de lot
If (pProc.CanProcess) Then
'Validation du processus
Else
getErrorProcess(CType(pProc, IPMProcess))
End If
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
'Utilisateur
BaseCial.Loggable.UserName = sUid
'Mot de passe
BaseCial.Loggable.UserPwd = sPwd
'Ouverture de la connexion
BaseCial.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
© 2020 Sage 206
Description de Sage 100cloud Objets Métiers
Try
bCial = Nothing
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Exemple 2
Pour un dossier commercial sur lequel l’option « Contrôler l’unicité des lots » n’est pas activée, un
article suivi en lot (référence ARTICLE_LOT), est entré en stock en plusieurs fois sur le même
dépôt, mais sur des emplacements différents :
15 A1T1N1P2
6 A1T1N1P3
Une livraison du LOT1 pour le client CARAT et pour une quantité de 30 doit être réalisée. Les
emplacements d’origine du lot n’ont pas besoin d’être spécifiées.
Code source
Imports Objets100cLib
Module ProcessSortirLots
Sub Main()
Try
'Instanciation de l'objet
Call SortirLot()
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
'Fermeture de la connexion
Call CloseBase(bCial)
End Try
Console.ReadLine()
End Sub
pDoc.SetDefaultClient(bCial.CptaApplication.FactoryClient.ReadNumero("CARAT"))
pLig.SetDefaultArticle(bCial.FactoryArticle.ReadReference("ARTICLE_LOT"), 30)
'Initialisation du processus avec la ligne de document (non persistante), le numéro de lot et sans préciser d'emplacement
If (pProc.CanProcess) Then
'Validation du processus
pProc.Process() '=> Ajout de 3 lignes dans le documents pour une quantité totale de 30
Else
getErrorProcess(CType(pProc, IPMProcess))
End If
End Sub
Try
Next
Catch ex As Exception
End Try
End Sub
Try
BaseCial.Name = sGcm
'Utilisateur
BaseCial.Loggable.UserName = sUid
'Mot de passe
BaseCial.Loggable.UserPwd = sPwd
'Ouverture de la connexion
BaseCial.Open()
Return True
Catch ex As Exception
© 2020 Sage 209
Description de Sage 100cloud Objets Métiers
Return False
End Try
End Function
Try
bCial = Nothing
Return True
Catch ex As Exception
Return False
End Try
End Function
End Module
Code source
iReglt.TiersPayeur = client
iReglt.RG_Date = DateTime.Now
iReglt.RG_Reference = "Référence"
iReglt.RG_Libelle = "Libellé"
iReglt.RG_Montant = Doc.DO_NetAPayer - Doc.DO_MontantRegle
iReglt.Journal = bCial.CptaApplication.FactoryJournal.ReadNumero("BRD")
iReglt.CompteG = client.CompteGPrinc
iReglt.WriteDefault()
pRegler.Reglement = iReglt
For Each iEcheance As IBODocumentEcheance3 In Doc.FactoryDocumentEcheance.List
pRegler.AddDocumentEcheance(iEcheance)
‘Possibilité de régler l’échéance avec un montant particulier
pRegler.AddDocumentEcheanceMontant(iEcheance, 100)
Next
pRegler.Process()
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
End Try
End Sub
Cet exemple contient également une classe implémentant l’interface IStream (Classe
SerializeOM), nécessaire pour gérer les identifiants des bases Sage 100c.
Code source
using System;
using System.Text;
using System.Runtime.InteropServices;
using Objets100cLib;
using System.IO;
namespace SerializeOM
{
© 2020 Sage 211
Description de Sage 100cloud Objets Métiers
try
Console.WriteLine(sKey);
sKey = mObj.SerializeTiersToFileStream("CISEL");
Console.WriteLine(sKey);
(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).Replace(@"file:\","") + @"\OID\CISEL.txt");
Console.WriteLine(sCtNum);
Console.WriteLine(sContact);
Console.WriteLine(ex.Message);
finally
//Fermeture de la connexion
mObj.CloseCpta();
Console.ReadLine();
}
© 2020 Sage 212
Description de Sage 100cloud Objets Métiers
try
_mCpta.Name = path;
_mCpta.Loggable.UserName = uid;
_mCpta.Loggable.UserPwd = pwd;
_mCpta.Open();
return true;
Console.WriteLine(ex.Message);
return false;
if (_mCpta != null)
_mCpta.Close();
try
strPath += @"\OID";
if (!System.IO.Directory.Exists(strPath))
System.IO.Directory.CreateDirectory(strPathFolder);
Console.WriteLine(ex.Message);
return null;
try
if (mFileStream != null)
pTiers.WriteTo(mStream);
sKey = mStream.ToString();
// Fermeture du FileStream
mFileStream.Close();
}
© 2020 Sage 214
Description de Sage 100cloud Objets Métiers
Console.WriteLine(ex.Message);
return sKey;
// Méthode de sérialisation d'un objet de type IBOTiers3 dans une chaîne de caractères
try
pTiers.WriteTo(mStream);
sKey = mStream.ToString();
Console.WriteLine(ex.Message);
return sKey;
try
//Récupération du tiers
//Test du type
if (mObj is IBOTiers3)
return mTiers.CT_Num;
Console.WriteLine(ex.Message);
return "";
try
mMemStream.Write(mByte, 0, mByte.Length);
mMemStream.Seek(0, SeekOrigin.Begin);
//Récupération de l'objet
//Test du type
© 2020 Sage 216
Description de Sage 100cloud Objets Métiers
if (mObj is IBOTiersContact3)
Console.WriteLine(ex.Message);
return "";
public ImplementIStream(Stream s)
_mStream = s;
_mStream.Read(memByte, 0, memByte.Length);
memBuffer.Write(memByte, 0, memByte.Length);
_mStream.Flush();
© 2020 Sage 217
Description de Sage 100cloud Objets Métiers
public void RemoteCopyTo(IStream pstm, _ULARGE_INTEGER cb, out _ULARGE_INTEGER pcbRead, out _ULARGE_INTEGER pcbWritten)
pcbRead.QuadPart = pcbWritten.QuadPart = 0;
public unsafe void RemoteRead(out byte pv, uint cb, out uint pcbRead)
*pByte = (byte)_mStream.ReadByte();
pByte++;
pcbRead = remains;
public unsafe void RemoteWrite(ref byte pv, uint cb, out uint pcbWritten)
arBuf[i] = *pByte;
© 2020 Sage 218
Description de Sage 100cloud Objets Métiers
_mStream.WriteByte(*pByte);
pByte++;
pcbWritten = cb;
plibNewPosition.QuadPart = pos;
_mStream.SetLength((long)libNewSize.QuadPart);
return streamReader.ReadToEnd();
© 2020 Sage 219
Description de Sage 100cloud Objets Métiers
if (_mStream == null)
return;
_mStream.Dispose();
_mStream = null;
public StreamIStreamWrapper(Stream s)
_mStream = s;
_mStream.Read(pMem, 0, pMem.Length);
buffer.Write(pMem, 0, pMem.Length);
_mStream.Flush();
public void RemoteCopyTo(IStream pstm, _ULARGE_INTEGER cb, out _ULARGE_INTEGER pcbRead, out _ULARGE_INTEGER pcbWritten)
pcbRead.QuadPart = pcbWritten.QuadPart = 0;
public unsafe void RemoteRead(out byte pv, uint cb, out uint pcbRead)
byte* pd = pBuf;
*pd = (byte)_mStream.ReadByte();
pd++;
pcbRead = Remains;
public unsafe void RemoteWrite(ref byte pv, uint cb, out uint pcbWritten)
byte* pd = pBuf;
buf[i] = *pd;
_mStream.WriteByte(*pd);
© 2020 Sage 221
Description de Sage 100cloud Objets Métiers
pd++;
pcbWritten = cb;
plibNewPosition.QuadPart = position;
_mStream.SetLength((long)libNewSize.QuadPart);
return reader.ReadToEnd();
© 2020 Sage 222
Description de Sage 100cloud Objets Métiers
if (_mStream == null)
return;
_mStream.Dispose();
_mStream = null;
Code source
using System;
using Objets100cLib;
namespace ProcessConversionClient
{
class Program
{
// Objet de connexion
private static BSCIALApplication100c cial = new BSCIALApplication100c();
/// <summary>
/// Méthode permettant de créer puis convertir un prospect
/// </summary>
© 2020 Sage 223
Description de Sage 100cloud Objets Métiers
try
{
//Validation du processus
processConversion.Process();
}
catch
{
//Parcours des erreurs du processus
for (int i = 1; i <= processConversion.Errors.Count; i++)
{
IFailInfo failInfo = processConversion.Errors[i];
Console.WriteLine(failInfo.Text);
}
}
}
/// <summary>
/// Méthode permettant d'ouvrir la connexion à une base commerciale
/// </summary>
/// <param name="stream">Objet stream commercial</param>
/// <param name="server">Serveur SQL</param>
/// <param name="database">Base de données SQL</param>
/// <param name="user">Utilisateur Sage 100c</param>
/// <param name="pwd">Mot de passe</param>
/// <returns></returns>
private static Boolean OpenDatabase(ref BSCIALApplication100c stream, string server, string database, string user, string pwd)
{
stream.CompanyServer = server;
stream.CompanyDatabaseName = database;
stream.Loggable.UserName = user;
stream.Loggable.UserPwd = pwd;
stream.Open();
return stream.IsOpen;
}
/// <summary>
/// Méthode permettant de fermer la connexion à une base commerciale
/// </summary>
/// <param name="stream">Objet stream commercial</param>
private static void CloseDatabase(ref BSCIALApplication100c stream)
{
if (stream != null && stream.IsOpen)
stream.Close();
}
}
}
Annexes
Introduction
Les annexes détaillent les différentes fonctionnalités de Sage 100cloud Objets Métiers 100.
• Classe application
• Interface Stream
Les propriétés et méthodes visibles sous un explorateur d’objets et dont le nom commence par le
caractère « _ » (_SetSynchronized() par exemple) sont des éléments réservés à usage interne
Sage. C’est pourquoi ces propriétés et méthodes ne sont pas documentées et ne doivent donc
pas être utilisées dans des développements spécifiques.
Conventions d'écriture
Sage 100cloud Objets Métiers propose un certain nombre de classes, d'interfaces et
d'énumérateurs répartis en 3 catégories :
Sage 100cloud Objets Métiers propose deux classes de type IBIPersistStream permettant
d'accéder aux bases de données Sage 100c:
Les propriétés et méthodes de ces deux classes sont en totalité héritées d'interfaces auquel il faut
se reporter pour le détail des propriétés et méthodes disponibles (Cf. section Les interfaces).
Généralement, seules les interfaces objets (IBOxxx) et paramètres (IBPxxx) sont directement
utilisables.
© 2020 Sage 225
Description de Sage 100cloud Objets Métiers
Il existe d'autres interfaces (Ixxx) utilisées par les d'interfaces objets (IBOxxx), paramètres
(IBPxxx) ou interfaces (IBIxxx).
Les énumérateurs
Cf. Description de Sage 100cloud Objets Métiers – Utilisation des énumérateurs.
IBICollection
Collection d'objets.
Propriétés
IBICollectionDispatch
Collection générique représentant un paramétrage de processus, ou une collection d’objets non
persistants.
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBIContact2
Contact.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBIField
Champ (information libre).
Propriétés
Accès Syntaxe Description
IBIFields
Collection de champs (informations libres).
Propriétés
Lecture seule Item(ByVal lIndex As Integer) As Retourne un objet Champ information libre
IBIField correspondant au Nieme élément de la
collection ou à l'intitulé passé en paramètre.
IBILoggable
Autorisations d'accès à la base de données.
Propriétés
Accès Syntaxe Description
IBIMedia
Fichier multimédia.
Interface héritée
Syntaxe Description
Propriétés
IBIObjectID
Identifiant d'objet.
Propriété
Accès Syntaxe Description
Méthode
Syntaxe Description
IBIPersistObject
Objet persistant.
Propriétés
Accès Syntaxe Description
Lecture seule IsModified() As Boolean Si au moins une des propriétés de l'objet est
modifiée alors :
IsModified = True
Sinon :
IsModified = False
IsModified = False
Sinon :
IsPersistant = False
Méthodes
Syntaxe Description
Syntaxe Description
IBIPersistStream
Base de données.
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBITypeObjectFactory
Fabrique un objet type.
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBIValues
Collection de valeurs (informations libres).
Propriétés
Accès Syntaxe Description
IBIValuesInserTable
Collection des énumérés statistiques (articles et tiers).
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IAdresse
Informations d’adresse.
Propriétés
Accès Syntaxe Description
ICompanies
Liste des bases de données Sage 100c de l’instance SQL.
Propriétés
Accès Syntaxe Description
ICompany
Informations sur la base de données.
Propriétés
Accès Syntaxe Description
IDatabaseInfo
Informations sur la base de données.
Propriétés
Accès Syntaxe Description
IDateTimePeriod
Période de date.
Propriétés
Accès Syntaxe Description
IDevise
Elément Devise.
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
Convert(pDevise As IDevise, ByVal dVal As Permet de convertir la valeur dVal dans la devise
Double) As Double passée en paramètre.
ILicence
Licence d'une application (Cf. IBSCPTAApplication100c et IBSCIALApplication100c).
Propriétés
Accès Syntaxe Description
ILicenceProduct
Licence d'un produit (Cf. ILicence).
Propriétés
Accès Syntaxe Description
ILicenceProducts
Licence de plusieurs produits (Cf. ILicence).
Propriétés
Accès Syntaxe Description
ILicenceUserInfo
Informations sur l'utilisateur de la licence d'un produit (Cf. ILicenceProduct).
Propriétés
Accès Syntaxe Description
ITelecom
Informations de télécommunication.
Propriétés
Accès Syntaxe Description
Interfaces héritées
Syntaxe Description
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule FactoryTiersContact() As Accès aux contacts tiers sans passer par
IBITypeObjectFactory les tiers.
Méthodes
Syntaxe Description
IDossierExercice
Paramétrage des exercices accessible depuis la propriété Exercice de IBPDossier2.
Propriétés
Accès Syntaxe Description
ReportANouveaux() As
Lecture seule IDossierExerciceReportANo Paramétrage du journal des reports à nouveaux.
uveaux
ReportANouveauxIFRS() As
Paramétrage du journal des reports à nouveaux
Lecture seule IDossierExerciceReportANo
IFRS.
uveauxIFRS
IDossierExerciceReportANouveaux
Paramétrage du journal des reports à nouveaux.
Propriété
Accès Syntaxe Description
Lecture /
Journal() As IBOJournal3 Journal des reports à nouveaux.
Ecriture
IDossierExerciceReportANouveauxIFRS
Paramétrage du journal des reports à nouveaux IFRS.
Propriété
Accès Syntaxe Description
Lecture /
Journal() As IBOJournal3 Journal des reports à nouveaux IFRS.
Ecriture
Après affectation du journal IFRS, la validation s’effectue à l’appel de Write() sur IBPDossier2.
IDossierTiers
Paramétrage tiers accessible depuis la propriété Tiers de IBPDossier2.
Propriété
Accès Syntaxe Description
Lecture /
EcheanceMax() As Date Echéance maximum (exprimée en jours).
Ecriture
Après affectation du journal IFRS, la validation s’effectue à l’appel de Write() sur IBPDossier2.
IRegistreRevision
Régularisation des charges et produits accessible depuis la propriété RegistreRevision de
IBOEcriture3.
Propriétés
Accès Syntaxe Description
Lecture /
Commentaire() As String Commentaire.
Ecriture
Lecture /
Controleur() As String Contrôleur.
Ecriture
Lecture /
DateControle() As Date Date de contrôle.
Ecriture
Lecture /
DateDebut() As Date Date de début.
Ecriture
Lecture /
DateFin() As Date Date de fin.
Ecriture
Lecture /
DateRevision() As Date Date de révision.
Ecriture
Lecture /
Reviseur() As String Réviseur.
Ecriture
La création ou suppression d’une régularisation sur une écriture s’effectue après le write() sur
l’objet IBOEcriture3.
IBPAnalyseFactory
Fabrique un objet niveau d'analyse.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPAnalytiqueFactory3
Fabrique un objet Plan analytique.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPCodeRisqueFactory
Fabrique un objet Code risque.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPContactFactory
Fabrique un objet Type de contact.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPDeviseFactory2
Fabrique un objet Devise.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPRappelFactory
Fabrique un objet période de rappel.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPReglementFactory3
Fabrique un objet Mode de règlement.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPServiceContactFactory
Fabrique un objet Service contact.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPStructBanqueFactory
Fabrique un objet Structure banque.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBPTiersStatFactory
Fabrique un objet statistique tiers.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPTiersFactory
Fabrique un objet paramétrage type tiers.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBOBanqueFactory
Fabrique un objet Banque.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOBanqueRibFactory
Fabrique un objet RIB Banque.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOClientFactory3
Fabrique un objet Client.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOClientLivraisonAllFactory
Permet d’accéder à une collection de lieux de livraison sans passer par le client.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBOClientProspectFactory
Fabrique un objet Client de type prospect ou non.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
ExistNumero(ByVal sNum As String) As Boolean Teste l'existence d'un client (de type prospect ou
non) correspondant au numéro de compte passé
en paramètre.
IBOClientTarifFactory3
Fabrique un objet Tarif client.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBOCompteAFactory3
Fabrique un compte analytique.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOCompteGFactory3
Fabrique un compte général.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOCompteGTiersFactory3
Fabrique un tiers rattaché au compte général.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBOCompteRFactory
Fabrique un objet compte reporting.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBODossierContactFactory2
Fabrique un objet contact du dossier.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistNomPrenom(ByVal sNom As String, ByVal Test l'existence d'un objet contact du dossier
sPrenom As String) As Boolean correspondant au nom et prénom passés en
paramètres.
Retourne True s'il existe, sinon False.
IBOEcritureFactory3
Fabrique un objet Ecriture.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOEcritureAFactory2
Fabrique un objet Ecriture analytique.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOEcritureAAllFactory
Permet d’accéder à une collection d’écritures analytiques sans passer par les écritures générales.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOEcritureODFactory
Fabrique un objet Ecriture d’OD analytique.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOFournisseurFactory3
Fabrique un objet Fournisseur.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOFournisseurTarifFactory3
Fabrique un objet Tarif fournisseur.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOJournalFactory3
Fabrique un objet Journal.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOJournalAFactory
Fabrique un objet code Journal analytique.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOModeleEcritureFactory2
Fabrique un objet modèle de saisie.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Test l'existence d'un objet modèle de saisie
correspondant à l’intitulé passé en paramètre.
IBOModeleFactory
Fabrique un objet modèle d’enregistrement.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOModeleGrilleFactory
Fabrique un objet modèle de grille.
© 2020 Sage 255
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Test l'existence d'un objet modèle de grille
correspondant à l’intitulé passé en paramètre.
IBOModeleGrilleLigneFactory
Fabrique un objet ligne de modèle de grille.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBOModeleReglementFactory
Fabrique un objet modèle de règlement.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Test l'existence d'un objet modèle de règlement
correspondant à l’intitulé passé en paramètre.
IBOPaysFactory
Fabrique un objet pays.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOProspectFactory
Fabrique un objet Client de type prospect uniquement.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
ExistNumero(ByVal sNum As String) As Boolean Teste l'existence d'un client (de type prospect
uniquement) correspondant au numéro de
compte passé en paramètre.
Retourne True s'il existe, sinon retourne False.
La création d’un client de type prospect ne peut être réalisée qu’en utilisant ce Factory.
IBOTaxeFactory3
Fabrique un objet Taxe.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOTiersCompteGFactory3
Fabrique un objet Compte général tiers.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
IBOTiersFactory3
Fabrique un objet Tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
QueryTypeNumeroOrderNumero(ByVal sType As
TiersType, ByVal sNumDe As String, ByVal sNumA As Retourne une collection d'objets tiers d'une
String) As IBICollection plage de tiers donnée (de sNumDe à
Syntaxe Description
IBOTiersAutreFactory2
Fabrique un objet tiers de type Autre.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistNumero(ByVal sNum As String) As Boolean Test l'existence d'un objet tiers de type Autre
correspondant au Numéro passé en paramètre.
IBOTiersSalarieFactory2
Fabrique un objet tiers de type Salarié.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistNumero(ByVal sNum As String) As Boolean Test l'existence d' un objet tiers de type Salarié
correspondant au Numéro passé en paramètre.
Retourne True s'il existe, sinon False.
Exemple :
• L'objet IBPAnalyse (Niveau d'analyse) est issu d'un objet maître de type
BSCPTAApplication100c ;
IBPAnalyse
Niveau d'analyse.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPAnalytique3
Plan analytique.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPAnalytiqueRupture
Paramétrage des ruptures d’un plan analytique structuré.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPCodeRisque
Code risque.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPContact
Type de contact.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPDevise2
Devise.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
False : Non
Méthode
Syntaxe Description
IBPDossier2
Dossier entreprise.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture /
Adresse() As IAdresse Adresse.
Ecriture
Lecture /
AnalytiqueIFRS() As IBPAnalytique3 Plan analytique de type IFRS.
Ecriture
Lecture /
D_Ape() As String Code APE (NAF).
Ecriture
Lecture /
D_Commentaire() As String Commentaire.
Ecriture
Lecture /
D_EMail() As String E-mail client.
Ecriture
Lecture /
D_EMailExpert() As String E-mail Expert-Comptable.
Ecriture
Lecture /
D_Expert() As String Intitulé expert.
Ecriture
Lecture /
D_FinExo(ByVal sElt As Short) As Date Fin du Nieme exercice.
Ecriture
Lecture /
D_FormatQtes() As String Format quantité.
Ecriture
Lecture /
D_Identifiant() As String N° d'identifiant.
Ecriture
Lecture /
D_LgAn() As Short Longueur compte analytique.
Ecriture
Lecture /
D_LgCg() As Short Longueur compte général et reporting.
Ecriture
Lecture /
D_NumDossier() As String N° de dossier expert-comptable.
Ecriture
Lecture /
D_Profession() As String Activité.
Ecriture
Lecture /
D_RaisonSoc() As String Raison sociale.
Ecriture
Lecture /
D_Siret() As String SIRET.
Ecriture
Lecture /
DeviseCompte() As IBPDevise2 Devise de tenue.
Ecriture
Lecture /
DeviseEquivalence() As IBPDevise2 Devise d'équivalence.
Ecriture
Lecture /
Telecom() As ITelecom Télécommunications.
Ecriture
Lecture /
D_Facebook() As String Compte Facebook.
Ecriture
Lecture /
D_LinkedIn() As String Compte LinkedIn.
Ecriture
IBPLibelleCpta
Paramétrage des libellés.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPNatureCompte
Nature de compte.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPNatureCompteDet
Détail de nature de compte.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture /
FourchetteDebut() As String Début de fourchette de compte.
Ecriture
Lecture /
FourchetteFin() As String Fin de fourchette de compte.
Ecriture
Lecture /
Devise () As IBPDevise Devise.
Ecriture
IBPRappel
Période de rappel.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPReglement3
Mode de règlement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPServiceContact
Service contact.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPStructBanque
Structure des banques.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPTiers
Paramétrage type tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture T_Compte(ByVal sElt As Integer) Compte général par défaut pour l’indice
As String passé en paramètre.
Lecture / Ecriture T_Intitule(ByVal sElt As Integer) As Intitulé du compte général par défaut pour
String l’indice passé en paramètre.
IBPTiersStat
Champ statistique tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Exemple :
IBOClient3 :
• L'objet IBOClient3 (Client) est issu d'un objet maître de type BSCPTAApplication100c ;
IBOTiersBanque2
IBOTiersContact3
IBOTiersMedia3
IBOTiersReglement3
FactoryInfoComplement() Informations
complémentaires
IBOInfoComplementClient
Client
FactoryClientLivraison()
BSCPTAApplication100c IBOTiers3
FactoryCompteG()
IBOCollaborateur Collaborateur - -
BSCPTAApplication100c
FactoryCollaborateur()
IBODossierContact3 Contact du - -
dossier
BSCPTAApplication100c
FactoryDossierContact()
IBOEcritureA3 Ecriture - -
analytique
IBOEcriture3
FactoryEcritureA()
FactoryTiers() Tiers
IBOTiers3
IBOTiersBanque3
IBOTiersContact3
FactoryTiersMedia() MediaTiers
IBOTiersMedia3
IBOJournal3 Journal - -
BSCPTAApplication100c
FactoryJournal()
FactoryModeleEcritureLi
gneA()
IBOTaxe3 Taxe - -
BSCPTAApplication100c
FactoryTaxe()
BSCPTAApplication100c IBOTiersBanque3
FactoryTiersContact() ContactTiers
IBOTiersContact3
IBOTiersMedia3
IBOTiersReglement3
IBOTiers3
FactoryTiersBanque()
IBOTiers3
FactoryTiersContact()
IBOTiersMedia3 Documents - -
multimédia du
IBOTiers3
tiers
FactoryTiersMedia()
IBOTiersContact3
IBOTiersMedia3
IBOTiersReglement3
IBOTiers3
FactoryTiersReglement()
Chaque objet propose une propriété permettant de créer un objet de même type. Il ne s'agit pas
d'un sous-objet, par conséquent cette propriété n'est pas listée dans ce tableau.
Exemple :
Les objets de type IBOClient3 proposent une propriété FactoryClient permettant de créer un
nouvel objet de type IBOClient3.
IBOBanque
Banque.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBanqueContact
Contact de banque.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBanqueRIB
RIB Banque.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOClient3
Client.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
TotalMarge(ByVal dDebut As Date, ByVal dFin Marge réalisée pour une période donnée et une
As Date, ByVal TypeDe As DocumentType, fourchette de types de documents donnée. *
ByVal TypeA As DocumentType) As Double
Méthode WriteDefault()
La méthode WriteDefault() créé une adresse de livraison principale (table F_LIVRAISON) à partir
des informations renseignées sur l’adresse (propriété Adresse).
IBOClientLivraison3
Lieu de livraison client.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOCompteA3
Compte analytique.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si l'objet est non persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes
:
Si l'objet est persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes :
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données sans effectuer aucun traitement
d'initialisation des propriétés de l'objet.
Méthode WriteDefault()
La méthode WriteDefault() enregistre l'objet dans la base de données sans effectuer aucun
traitement d'initialisation des propriétés de l'objet.
IBOCompteAContact
Contacts des codes affaires.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBOCompteAMedia
Document rattaché au code affaire.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBOCompteG3
Compte général.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si l'objet est non persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes
:
CT_Devise() As Boolean Si Devise <> Nothing Alors Si une devise est affectée au
compte général, la propriété
CT_Devise = True
Saisie devise est positionnée à
True.
Si l'objet est persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes :
CT_Devise() As Boolean Si Devise <> Nothing Alors Si une devise est affectée au
compte général, la propriété
CT_Devise = True
Saisie devise est positionnée à
True.
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données sans effectuer aucun traitement
d'initialisation des propriétés de l'objet.
Méthode WriteDefault()
La méthode WriteDefault() créé les enregistrements "éléments de taxe" (table F_ETAXE) associés
au code taxe (propriété Taxe) du compte général avant d'enregistrer l'objet dans la base de
données.
IBOCompteR
Compte reporting.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODossierContact3
Contact dossier.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOEcriture3
Ecriture.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Lorsque l'écriture est non persistante, l'appel de la méthode SetDefault() initialise les propriétés
suivantes :
En fonction de la gestion ou nom de la norme IFRS, la colonne Type norme est automatiquement
initialisée lors de l'appel de SetDefault() (Cf. Manuel utilisateur Sage Comptabilité 100).
Lorsque l'écriture est persistante, l'appel de la méthode SetDefault() initialise les propriétés
suivantes :
En fonction de la gestion ou non de la norme IFRS, la colonne Type norme est automatiquement
initialisée lors de l'appel de SetDefault() (Cf. Manuel utilisateur Sage 100c Comptabilité).
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données après avoir initialisé la colonne
Type norme en fonction de la gestion ou non de la norme IFRS (Cf. Manuel utilisateur Sage 100c
Comptabilité).
Méthode WriteDefault()
• Si l'écriture est persistante, que son montant est modifié et qu'il existe des écritures
analytiques associées, les valeurs des écritures analytiques sont recalculées au prorata.
IBOEcritureA3
Ecriture analytique.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOEcritureMedia
Médias des écritures générales.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOEcritureOD
Ecriture d’od analytique.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOFournisseur3
Fournisseur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
ConditionLivraison() As
Lecture / Ecriture Condition de livraison. *
IBPConditionLivraison
FactoryFournisseur() As
Lecture seule Fabrique un objet Fournisseur.
IBOFournisseurFactory3
FactoryFournisseurTarif() As
Lecture seule Fabrique un objet Tarif fournisseur. *
IBOFournisseurTarifFactory3
IBOJournal3
Journal.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOJournalA
Journal analytique.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModeleEcriture3
Entête de modèle de saisie.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModeleEcritureLigne3
Ligne de modèle de saisie d'écritures générales.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
=MacroSaisir()
=MacroRepeter()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroCalculer()
=MacroRepeter()
=MacroCalculer()
=MacroRepeter()
=MacroCalculer()
Sinon : False
=MacroEquilibrer()
= MacroSaisir()
=MacroRepeter()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroRepeter()
=MacroSaisir()
=MacroEquilibrer()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroIncrementer()
=MacroCalculer()
=MacroSaisir()
=MacroEquilibrer()
=MacroSaisir()
=MacroRepeter()
=MacroIncrementer()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroIncrementer()
=MacroCalculer()
=MacroSaisir()
=MacroRepeter()
=MacroCalculer()
Depuis Sage 100c Comptabilité, les commandes prédéfinies du modèle de saisie sont
représentées sous la forme d'icônes.
=MacroRepeter() Répétition
=MacroCalculer() Calcul
=MacroEquilibrer() Equilibre
=MacroIncrementer() Incrémentation
Les Objets Métiers mettent à disposition les fonctions suivantes pour l'ensemble des champs :
Syntaxe Description
=Piece() N° pièce
=Provenance() Provenance
Syntaxe Description
=Parite() Parité
=Qte() Quantité
IBOModeleEcritureLigneA3
Ligne de modèle de saisie d'écritures analytiques.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
=MacroSaisir()
=MacroSaisirPourcentage()
=MacroEquilibrer()
=MacroSaisir()
=MacroSaisirPourcentage()
=MacroEquilibrer()
IBOModeleGrille
Modèle de grille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModeleGrilleLigne
Ligne de modèle de grille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModeleReglement
Modèle de règlement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModeleReglementLigne
Ligne de modèle de règlement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOPays
Pays.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOTaxe3
Taxe.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture TA_NP() As Boolean Taxe non perçue (True) ou taxe perçue
(False).
Méthode SetDefault()
IBOTiers3
Tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture CT_NotRappel() As Boolean Hors rappel / relevé (True) ou non (False).
Lecture / Ecriture CT_Stat (ByVal sElt As Short) As Enuméré correspondant au N ieme champ
String statistique.
Méthodes
Syntaxe Description
MvtDevCredit(ByVal pCompteG As
Montant total des mouvements créditeurs en
IBOCompteG3, ByVal pJournal As IBOJournal3,
devise du tiers pour un compte général, un
ByVal dDebut As Date, ByVal dFin As Date) As
journal et une période donnés.
Double
Syntaxe Description
MvtDevDebit(ByVal pCompteG As
Montant total des mouvements débiteurs en
IBOCompteG3, ByVal pJournal As IBOJournal3,
devise du tiers pour un compte général, un
ByVal dDebut As Date, ByVal dFin As Date) As
journal et une période donnés.
Double
MvtDevSolde(ByVal pCompteG As
Montant total du solde des mouvements en
IBOCompteG3, ByVal pJournal As IBOJournal3,
devise du tiers pour un compte général, un
ByVal dDebut As Date, ByVal dFin As Date) As
journal et une période donnés.
Double
Méthode SetDefault()
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données après avoir créé le Compte général
principal s'il n'existe pas dans la table F_COMPTEG.
Méthode WriteDefault()
La méthode WriteDefault() enregistre l'objet dans la base de données après avoir créé le Compte
général principal s'il n'existe pas dans la table F_COMPTEG.
IBOTiersBanque3
Banque tiers.
© 2020 Sage 309
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Tiers() As IBOTiers3 Tiers auquel est associée la banque tiers.
¹ : Propriétés dépréciées. Elles sont conservées pour assurer la compatibilité avec les
développements existants, cependant la valeur retournée est vide.
IBOTiersContact3
Contact tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOTiersMedia3
Média tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOTiersPart3
Tiers de type Client ou Fournisseur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBOTiersReglement3
Règlement tiers.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Interfaces héritées
Syntaxe Description
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
ControlQualiteStatDoubleGamme (ByRef
pArtGammeEnum1 As IBOArticleGammeEnum3,
Retourne les statistiques du contrôle qualité
ByRef pArtGammeEnum2 As
pour les énumérés de gamme, le fournisseur et
IBOArticleGammeEnum3, ByRef pFournisseur As
la période passés en paramètres.
IBOFournisseur3, ByVal DateDe As Date, ByVal
DateA As Date) As IControleQualiteStat
ControlQualiteStatMonoGamme (ByRef
pArtGammeEnum As IBOArticleGammeEnum3, Retourne les statistiques du contrôle qualité
ByRef pFournisseur As IBOFournisseur3, ByVal pour l’énuméré de gamme, le fournisseur et la
DateDe As Date, ByVal DateA As Date) As période passés en paramètres.
IControleQualiteStat
CreateProcess_AppliquerBareme(ByRef pDoc As
Créé un processus d’application des barêmes.
IBODocumentPart3) As IPMAppliquerBareme
CreateProcess_ControleQualite() As
Créé un processus de contrôle qualité.
IPMControlerQualite
CreateProcess_Document(ByVal DO_Type As
Créé un processus Document.
DocumentType) As IPMDocument
CreateProcess_RecalculPrixCompose(ByRef
Créé un processus de recalcul de prix de revient
pDoc As IBODocument3) As
d’une nomenclature fabrication.
IPMDocRecalculPrixCompose
IArrondi
Arrondi la valeur d'un tarif de vente (Cf. ITarif Vente).
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBIArticleStock3
Informations de stock article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBIArticleStockEmpl
Stock article par emplacement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
StockQte(ByVal DateStock As
Quantité en stock à la date indiquée.
Date) As Double
IBIArticleTarif3
Tarif de l'article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données sans effectuer aucun traitement
d'initialisation des propriétés de l'objet.
Méthode WriteDefault()
La méthode WriteDefault() contrôle s'il existe une gamme de remise (propriété GammeRemise()
<> Nothing).
Si c'est la cas, la méthode WriteDefault() créé les sous-objets suivants après avoir enregistré
l'objet dans la base de données :
IBIArticleTarifCond3
Tarif article par conditionnement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Article() As IBOArticle3 Article auquel est associé le tarif par
conditionnement.
IBIArticleTarifGamme3
Tarif article par énuméré de gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Article() As IBOArticle3 Article auquel est associé le tarif par
éuméré de gamme.
IBIArticleTarifQte3
Tarif de l'article par quantité, montant ou prix net.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Article() As.IBOArticle3 Article auquel est associé le tarif par quantité,
montant ou prix net.
IBIArticleTarifVente3
Tarif de vente de l'article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBICategorieCompta
Catégorie comptable.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBIParamCompta3
Paramétrage comptable.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture OldTaxe(ByVal sElt As Short) As Ancien code taxe (sElt de 1 à 3).
IBOTaxe3
IControleQualiteStat
Statistiques de contrôle qualité.
Propriétés
Accès Syntaxe Description
IDOCLigneValorisation
Valorisation de ligne de document.
Propriétés
Accès Syntaxe Description
IDOCValoEscompte
Informations sur l’escompte défini sur un document (accessible uniquement pour les documents de
vente et d’achat).
Propriétés
Accès Syntaxe Description
IDOCValorisation
Informations sur la valorisation d’un document (accessible uniquement pour les documents de
vente et d’achat).
Propriétés
Accès Syntaxe Description
Lecture seule TotalBonsAchatDev() As Double Montant total des bons d’achat en devise.
IDOCValoTaxe
Elément de taxe d’un document (accessible uniquement pour les documents de vente et d’achat).
Propriétés
Accès Syntaxe Description
IDOCValoTaxes
Collection de taxes d’un document (accessible uniquement pour les documents de vente et
d’achat).
Propriétés
Accès Syntaxe Description
IFrais2
Frais des articles (Cf. IBOArticle3 et IBOFamille3).
Propriété
Accès Syntaxe Description
Méthode
Syntaxe Description
IFraisElem2
Elément de frais (Cf. IFrais2).
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IRemise2
Remise (tarifs) / Coût (frais).
Propriété
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
Article.AR_Frais.Frais(2).Remise.FromString("1
%+5U+100F")
IRemiseElem2
Eléments de remise (tarifs) / de coût (frais).
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
ITarif2
Tarif.
Propriétés
Accès Syntaxe Description
Lecture seule IsHorsRemise() As Boolean Tarif hors remise (True) ou non (False).
ITarifAchat2
Tarif d'achat.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
ITarifVente2
Tarif de vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Calcul() As Boolean Calcul du prix de vente en fonction du prix de revient.
IBIRessource
Ressource de base.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si l'objet est non persistant, l'appel de la méthode SetDefault() initialise la propriété suivante :
IBISouche
Souche et numérotation.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBIParamDoc
Paramétrage de documents (Paramètres société / Documents).
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
sElt = 1 : Saisi
ValidationStr(ByVal sElt As Short)
sElt = 2 : Confirmé
As String
sElt = 3 : Validé
Ne s’applique pas aux documents de
stocks.
Méthode
Syntaxe Description
IBIReglement
Modèle de règlement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
Echeance(ByVal dDate As Date) As Date Retourne la date d’échéance calculée pour la date
passée en paramètre.
IBIFamilleTarif
Tarifs famille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBIFamilleTarifVente
Tarifs de vente par famille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBIFamilleTarifQte
Tarifs famille par quantité.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBILot
Lots.
Interface héritée
Syntaxe Description
Propriétés
Méthodes
Syntaxe Description
IUserColis
Elément colis d’une ligne de préparation de livraison ajoutée dans le processus de colisage.
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IUserLot
Elément série/lot d’une ligne de document ajoutée dans un processus de transformation de
documents, ou dans un processus de prélèvement des série/lot.
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IUserEmplacement
Elément emplacement d’une ligne de document ajoutée au processus de création de mouvement
de transfert.
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
ITransformation
Interface permettant l’accès aux processus de transformation d’achat ou vente.
Propriétés
Accès Syntaxe Description
ITransformationAchat
Interface permettant l’accès aux processus de transformation des documents/lignes d’achat.
Méthodes
Syntaxe Description
ITransformationVente
Interface permettant l’accès aux processus de transformation des documents/lignes de vente.
Méthodes
Syntaxe Description
IBPAgendaFactory
Fabrique un objet agenda.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPArticleStatFactory
Fabrique un objet statistique article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPCategorieComptaAchatFactory
Fabrique un objet Catégorie comptable d'achat.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPCategorieComptaStockFactory
Fabrique un objet Catégorie comptable de stock.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPCategorieComptaVenteFactory
Fabrique un objet Catégorie comptable de vente.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPCategorieTarifFactory
Fabrique un objet Catégorie tarifaire.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPConditionLivraisonFactory
Fabrique un objet Condition de livraison.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPConditionnementFactory
Fabrique un objet Conditionnement.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPExpeditionFactory3
Fabrique un objet Mode d'expédition.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPGammeFactory
Fabrique un objet Gamme.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPPeriodiciteFactory
Fabrique un objet Périodicité.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPProduitFactory2
Fabrique un objet Catalogue article.
© 2020 Sage 341
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPUniteFactory
Fabrique un objet Unité d'achat et de vente.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBPMotifDevisFactory
Fabrique un objet Motif devis perdu.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Test l'existence de l'objet Motif devis perdu
correspondant à l'intitulé passé en paramètre.
IBIArticleStockEmplFactory
Fabrique un objet emplacement stock article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBIParamDocFactory
Fabrique un objet paramétrage de document (organisation des documents).
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBISoucheFactory
Fabrique un objet souche de document.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBIRessourceFactory
Fabrique un objet ressource de base.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBIRessourceArticleFactory
Fabrique un objet ressource article de base.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBIRessourceRessourceFactory
Fabrique un objet ressource.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOAgendaFactory
Fabrique un objet événement agenda.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOArticleCondFactory
Fabrique un objet conditionnement article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOArticleFactory3
Fabrique un objet article ou une collection d'objets articles.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBOArticleDepotFactory
Fabrique un objet dépôt article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOArticleDepotGammeFactory
Fabrique un objet dépôt de stockage pour les gammes article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBOArticleDepotLotFactory
Fabrique un objet lot article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOArticleDepotLotAllFactory
Permet d’accéder à une collection de lots pour tous articles et dépôts confondus.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleGammeEnumFactory
Fabrique un objet énuméré de gamme.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOArticleGlossaireFactory2
Fabrique un objet glossaire article.
Interface héritée
Syntaxe Description
Méthode
Syntaxe Description
AddGlossaire(ByVal pGlossaire As
Ajoute à l'article l'objet Glossaire passé en paramètre.
IBOGlossaire2)
IBOArticleParamComptaFactory3
Fabrique un paramétrage comptable article ou une collection de paramétrages comptables article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ReadCategorieCompta(pCatCompta As
Retourne le paramétrage article pour la catégorie
IBICategorieCompta) As
comptable passée en paramètre.
IBOArticleParamCompta3
IBOArticleRessourceFactory
Fabrique une ressource article.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOBaremeCommissionFactory
Fabrique un objet commission.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Teste l'existence d'un objet commission pour
l’intitulé passé en paramètre.
IBOBaremeRabaisFactory
Fabrique un objet rabais, remises et ristournes.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Teste l'existence d'un objet rabais, remises et
ristournes pour l’intitulé passé en paramètre.
Syntaxe Description
IBOBaremeSoldeFactory
Fabrique un objet soldes et promotions.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sIntitule As String) As Boolean Teste l'existence d'un objet soldes et promotions
pour l’intitulé passé en paramètre.
IBOClientTarifFamilleFactory
Fabrique un objet tarif famille client.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistFamille(pFamille As IBOFamille3) As Teste l'existence d'un objet tarif famille client pour
Boolean la famille passée en paramètre.
Retourne True s'il existe, sinon False.
Syntaxe Description
IBODepotFactory2
Fabrique un objet dépôt de stockage.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistIntitule(ByVal sNum As String) As Boolean Test l'existence d'un objet dépôt correspondant à
l’intitulé passé en paramètre.
IBODepotEmplacementFactory
Fabrique un objet dépôt par emplacement.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBODocumentFactory
Fabrique un objet document.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBODocumentAchatFactory3
Fabrique un document d'achat.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
QueryCollaborateurType(Collab As
Retourne une collection de documents du
IBOCollaborateur, ByVal DO_Type As
collaborateur et du type passés en paramètres.
DocumentType) As IBICollection
Syntaxe Description
IBODocumentInterneFactory3
Fabrique un objet Document interne.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
QueryCollaborateurType(Collab As
Retourne une collection de documents du
IBOCollaborateur, ByVal DO_Type As
collaborateur et du type passés en paramètres.
DocumentType) As IBICollection
IBODocumentLigneFactory
Fabrique un objet Ligne de document.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
Méthode
Syntaxe Description
IBODocumentLigneAllFactory
Fabrique un objet Ligne de document sans passer par l’entête de document.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
DL_Prixunitaire, DL_PUDevise ou
DL_PUTTC entraîne le recalcul des deux
autres.
Méthodes
Syntaxe Description
Syntaxe Description
IBODocumentReglementFactory
Fabrique un objet Règlement de document
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBODocumentStockFactory3
Fabrique un objet Document de stock.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBODocumentVenteFactory3
Fabrique un objet Document de vente.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
IBOFamilleFactory2
Fabrique un objet famille.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ExistCode(ByVal fType As FamilleType, ByVal Test l'existence d'un objet famille correspondant
sNum As String) As Boolean au type et numéro passés en paramètres.
IBOFournisseurTarifFamilleFactory
Fabrique un objet tarif famille fournisseur.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOGlossaireFactory
Fabrique un objet glossaire.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
ReadIntitule(ByVal GL_Domain As
Retourne l'objet glossaire correspondant au
GlossaireDomaineType, ByVal sIntitule As String)
domaine et l'intitulé passés en paramètres.
As IBOGlossaire2
IBORessourceFactory
Fabrique un objet ressource.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule ListOrderDepot() As IBICollection Retourne la collection des ressources triées par
dépôt.
Lecture seule ListOrderIntitule() As IBICollection Retourne la collection des ressources triées par
intitulé.
Lecture seule ListOrderType() As IBICollection Retourne la collection des ressources triées par
type.
Méthodes
Syntaxe Description
IBORessourceCentreFactory
Fabrique un centre de charges.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IBOInfoComplementClient
Fabrique un objet Information Complement Client.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOInfoComplementEntete
Fabrique un objet Information Complement Document Vente Entête.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
IBOInfoComplementDocligne
Fabrique un objet Information Complement Document ligne de Vente.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Exemple :
• L'objet IBPCategorieTarif (Catégorie tarifaire) est issu d'un objet maître de type
BSCIALApplication100c ;
IBPAgenda
Agenda.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPArrondi
Mode d'arrondi.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IBPCategorieComptaAchat
Catégorie comptable achat.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBPCategorieComptaStock
Catégorie comptable de stock.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBPCategorieComptaVente
Catégorie comptable de vente.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBPCategorieTarif
Catégorie tarifaire.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
False : HT
IBPConditionLivraison
Condition de livraison.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPConditionnement
Conditionnement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPConditionnementEnum
Enumérés de conditionnement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture /
Intitulé Intitulé de l’énuméré de conditionnement.
Ecriture
Lecture /
Quantite() As Double Quantité.
Ecriture
Il n’est pas possible de modifier directement un énuméré de conditionnement. Ainsi, pour modifier
l’intitulé ou la quantité d’un énuméré, il convient de supprimer puis recréer l’enuméré.
IBPDossierCial
Dossier commercial.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPDossierParamCial
Dossier commercial.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPExpedition3
Mode d'expédition.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPGamme
Gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPPeriodicite
Périodicité.
© 2020 Sage 374
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPProduit2
Catalogue produit.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
False : Non
IBPUnite
Unité d'achat et de vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPParamDocInterne
Paramétrage des documents internes.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPSoucheAchat
Souche et numérotation des documents d’achat.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPSoucheVente
Souche et numérotation des documents de vente.
© 2020 Sage 376
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPArticleStat
Champ statistique article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBPMotifDevis
Motifs devis perdus.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Exemple :
IBOArticle3 :
• L'objet IBOArticle3 (Article) est issu d'un objet maître de type BSCIALApplication100c ;
Chaque objet propose une propriété permettant de créer un objet de même type. Il ne s'agit pas
d'un sous-objet, par conséquent cette propriété n'est pas listée dans la colonne « Propriété factory
sous-objet ».
Exemple :
Les objets de type IBOArticle3 proposent une propriété FactoryArticle permettant de créer un
nouvel objet de type IBOArticle3. Cette propriété n’apparaît donc pas sous la colonne « Propriété
factory sous-objet ».
IBOAgenda Agenda - -
BSCIALApplication100c
FactoryAgenda()
IBOArticleGammeEnum3
IBOArticleGammeEnum3
FactoryArticleGlossaire( Glossaire
)
IBOGlossaire2
FactoryArticleMedia() Information
multimédia de
IBOArticleMedia3
l'article
(photo/document)
FactoryArticleNomencla Composant de
ture() nomenclature article
IBOArticleNomenclature3
FactoryArticleParamCo Paramétrage
mpta() comptable de l'article
IBOArticleParamCompta3
IBOArticleTarifCategorie3
IBOArticleTarifClient3
IBOArticleTarifFournisseu
r3
IBOArticleRessource
IBOArticle3
FactoryArticleCond()
IBOArticleDepot3
FactoryArticleDepotGa
mme()
FactoryArticleDepotLot(
)
IBOArticle3 IBOArticleGammeEnumR
ef3
FactoryArticleGammeE
num1()
FactoryArticleGammeE
num2()
IBOArticleGammeEnum
3
FactoryArticleGammeE
numRef()
IBOArticleNomenclatu Composant de - -
re3 nomenclature article
IBOArticle3
FactoryArticleNomencla
ture()
IBOArticleParamCom Paramétrage - -
pta3 comptable de l'article
IBOArticle3
FactoryArticleParamCo
mpta()
IBOArticleTarifGammeCli
ent3
FactoryArticleTarifCond
()
IBOArticle3 IBOArticleTarifGammeFo
urnisseur3
IBOArticleTarifClient3
FactoryArticleTarifGam
me()
FactoryArticleTarifGam
me()
FactoryArticleTarifQte()
FactoryArticleTarifQte()
FactoryArticleTarifQte()
FactoryBaremeRabais()
BSCIALApplication100c
FactoryBaremeSolde()
BSCIALApplication100c IBODepotContact3
FactoryDepotContact()
IBODepot3
FactoryDepotEmplace
ment
IBODocumentMedia
FactoryDocumentLigne( Lignes de
) documents.
IBODocumentLigne3
IBODocumentAcompt Acompte - -
e3
IBODocument3
IBODocumentAchat3
IBODocumentPart3
IBODocumentVente3
FactoryDocumentAcom
pte()
IBODocumentAchat3
IBODocumentPart3
IBODocumentVente3
FactoryDocumentEche
ance()
BSCIALApplication100c
FactoryDocumentIntern
e()
IBODocumentLigne3
IBODocumentLigneE Emplacements - -
mplacement associés à la ligne
IBODocumentLigne3
FactoryDocumentLigne
Emplacement()
IBODocumentLigne3
FactoryDocumentLigne
LienCM()
IBODocumentLigne3
BSCIALApplication100c IBODocument3
IBODocumentLigne3
FactoryDocumentEchea Echeance de
nce() document
IBODocumentEcheance3
IBODocumentLigne3
IBODocumentVenteLigne
3
FactoryInfoComplement Informations
() complémentaires
Document
IBOInfoComplementEntet
e
IBODocumentLigne3
IBOFamille3
FactoryFamilleParamC
ompta()
IBOFamille3
FactoryFamilleTarifCate
gorie()
IBOFamille3
FactoryFamilleTarifClie
nt()
IBOFamille3
FactoryFamilleTarifFour
nisseur()
IBOGlossaire2 Glossaire - -
BSCIALApplication100c
FactoryGlossaire()
IBOModele2 Modèle - -
d'enregistrement
BSCIALApplication100c
FactoryModele()
IBOAgenda
Evénements agenda.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticle3
Article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture AR_HorsStat() As Boolean Pris en compte dans les statistiques (True)
ou non pris en compte dans les statistiques
(False).
Méthodes
Syntaxe Description
Syntaxe Description
Syntaxe Description
Syntaxe Description
TarifAchatTiersDoubleGamme(ByVal pFournisseur As
Prix d'achat unitaire pour un article à
IBOFournisseur3, ByVal pEnum1 As
double gamme (fournisseur, énumérés
IBOArticleGammeEnum3, ByVal pEnum2 As
de gamme 1 et 2 et quantités achetées
IBOArticleGammeEnum3, ByVal dQtes As Double) As
passés en paramètres).
ITarifAchat2
TarifVenteCategorieDoubleGamme(ByVal pCategorieTarif
Prix de vente unitaire pour un catégorie
As IBPCategorieTarif, ByVal pEnum1 As
tarifaire pour un article à double gamme
IBOArticleGammeEnum3, ByVal pEnum2 As
(catégorie tarifaire et énumérés de
IBOArticleGammeEnum3, ByVal dQtes As Double) As
gamme 1 et 2 passés en paramètres).
ITarifVente2
TarifVenteTiers(ByVal pClient As IBOClient2, ByVal dQtes Tarif client unitaire (client et quantités
As Double) As ITarifVente vendues passés en paramètres).
TarifVenteTiersDoubleGamme(ByVal pClient As
Tarif client unitaire pour un article à
IBOClient3, ByVal pEnum1 As IBOArticleGammeEnum3,
double gamme (tiers et énumérés de
ByVal pEnum2 As IBOArticleGammeEnum3, ByVal dQtes
gamme 1 et 2 passés en paramètres).
As Double) As ITarifVente2
Syntaxe Description
Méthode SetDefault()
Si l'objet est non persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes
:
Si l'objet est persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes :
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données après avoir effectué les traitements
suivants :
• Si des énumérés statistique ont été créé dans l'article, ils sont ajoutés dans la table
F_ENUMSTATART.
Méthode WriteDefault()
La méthode WriteDefault() enregistre l'objet dans la base de données après avoir effectué les
traitements suivants :
• Si des énumérés statistique ont été créés dans l'article, ils sont ajoutés dans la table
F_ENUMSTATART.
• Création des énumérés de conditionnement par défaut si l'article est géré par
conditionnement.
• Création des énumérés de gamme par défaut si l'article est géré par gamme.
IBOArticleCond3
Conditionnement article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleDepot3
Dépôt de stockage article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleDepotLot
Lot article par dépôt.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleDepotGamme3
Dépôt de stockage article à gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleGammeEnum3
Enuméré de gamme article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode WriteDefault()
IBOArticleGammeEnumRef3
Référence énuméré de gamme article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleMedia3
Information multimédia de l'article (photo/document).
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Article() As IBOArticle3 Article auquel est associée l'information multimédia.
IBOArticleNomenclature3
Composant de nomenclature article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleParamCompta3
Paramétrage comptable de l'article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifCategorie3
Tarif par catégorie tarifaire article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifClient3
Tarif client article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifCondCategorie3
Tarif par conditionnement d'une catégorie tarifaire article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifCondClient3
Tarif par conditionnement d'un client article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule Client() As IBOClient3 Client auquel est associé le tarif par
conditionnement.
IBOArticleTarifFournisseur3
Tarif fournisseur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifGammeCategorie3
Tarif pour une catégorie tarifaire d'un article à gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifGammeClient3
Tarif pour un client d'un article à gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifGammeFournisseur3
Tarif pour un fournisseur d'un article à gamme.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifQteCategorie3
Tarif par quantité, montant ou prix net pour une catégorie tarifaire.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifQteClient3
Tarif par quantité, montant ou prix net pour un client de l'article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOArticleTarifQteFournisseur3
Tarif par quantité, montant ou prix net pour un fournisseur de l'article.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBaremeCommission
Commissions.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBaremeCommissionQte
Gamme de remise des commissions.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBaremeRabais
Rabais, remises et ristournes.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture Fournisseur() As IBOFournisseur3 Fournisseur (retourne null dans le cas d’un
rabais client).
IBOBaremeRabaisQte
Gamme de remise des rabais, remises et ristournes.
© 2020 Sage 411
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOBaremeSolde
Soldes et promotions.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / Ecriture Fournisseur() As IBOFournisseur3 Fournisseur (retourne null dans le cas d’un
Soldes et promotions client).
IBODepot3
Dépôt de stockage.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODepotContact3
Contact du dépôt.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODepotEmplacement
Dépôt emplacement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocument3
Document.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IBODocumentAchat3
Document d'achat.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
Méthode SetDefault()
IBODocumentAchatLigne3
Ligne de document d'achat.
Interface héritée
Syntaxe Description
Propriétés
Méthode
Syntaxe Description
IBODocumentAcompte3
Acompte.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si le document est en devise et que DR_MontantDev est null, alors affectation de DR_MontantDev
en fonction de DR_Montant et du cours de la devise du document.
Si le document est en devise et que DR_Montant est null, alors affectation de DR_Montant en
fonction de DR_MontantDev et du cours de la devise du document.
IBODocumentEcheance3
Echéance.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si le document est en devise et que DR_MontantDev est null, alors affectation de DR_MontantDev
en fonction de DR_Montant et du cours de la devise du document.
Si le document est en devise et que DR_Montant est null, alors affectation de DR_Montant en
fonction de DR_MontantDev et du cours de la devise du document.
IBODocumentInterne3
Document interne.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
L’appel de cette méthode affecte les mêmes propriétés que la méthode SetDefaultClient() de
IBODocumentVente3.
Méthode SetDefault()
IBODocumentInterneLigne3
Ligne de document interne.
© 2020 Sage 420
Description de Sage 100cloud Objets Métiers
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
ArticleCompose = Article
IBODocumentLigne3
Fabrique un objet Ligne de document.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
SetDefaultArticleDoubleGamme(pEnum1 As
Initialise les propriétés en fonction des
IBOArticleGammeEnum3, pEnum2 As
énumérés de gamme et de la quantité.
IBOArticleGammeEnum3, ByVal Qte As Double)
« Facturation /
poids net » de
l’article.
DL_Prixunitaire = Article.AR_PrixVen
Si Article.PrixAchat * Article.Coef = 0
Alors
DL_PrixTTC = Article.AR_PrixVen
Alors DL_Prixunitaire =
Article.AR_PrixAch
Domaine ¹ :
V : Document de Vente
A : Document d’Achat
S : Document de Stock
I : Document Interne
Avec Sage 100cloud Objets Métiers, la valeur à affecter à la quantité (propriété DL_Qte) doit être
du signe de celle réellement stockée dans la base de données. Il existe toutefois une exception sur
les documents de stock de type fabrication (Préparation de fabrication, Ordre de fabrication et Bon
de fabrication) pour lesquels la quantité saisie peut être positive ou négative alors que la valeur
réellement stockée est toujours positive.
Vous trouverez ci-dessous le détail des quantités à affecter en fonction du type de document :
• Documents de vente :
• Documents d’achat :
• Documents de stock :
- Aucun pour la
ligne du composé
Ordre de fabrication
Négative Négative - Sortie en Positive
quantité pour la
ligne du composé
• Documents internes :
IBODocumentLigneEmplacement
Fabrique un objet emplacement de ligne de document.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocumentLigneLienCM
Liens contremarque pour une ligne d’article géré en contremarque.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocumentPart3
Documents de type Achat ou Vente
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocumentPartLigne3
Ligne de document de type Achat ou Vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule DL_NonLivre() As Boolean Article non livré (True) ou livré (False).
Méthode
Syntaxe Description
IBODocumentStock3
Document de stock.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocumentStockLigne3
Ligne de document de stock.
Interface héritée
Syntaxe Description
Propriétés
Pour les documents de type Virement de dépôt à dépôt, les lignes de sortie et d’entrée en stock
devront être créées manuellement. En effet, la deuxième ligne (entrée en stock) n’est pas créée
automatiquement comme le fait la gestion commerciale.
Ainsi, il conviendra de respecter la procédure suivante :
Lors de la suppression d’une ligne d’entrée ou sortie de stock, il sera également nécessaire de
supprimer manuellement la ligne associée à la ligne supprimée.
De plus, dans le cas d’un article géré en série ou lot, le numéro de série ou lot (propriété :
LS_NoSerie) devra être renseigné pour la ligne de sortie et pour la ligne d’entrée en stock.
Pour les articles non suivis au CMUP, il sera nécessaire d’affecter à la propriété DL_PrixUnitaire
de la ligne d’entrée en stock, la même valeur que celle renseignée sur la ligne de sortie de stock.
Pour les articles suivis au CMUP, la propriété DL_PrixUnitaire sera automatiquement affectée à la
ligne d’entrée en stock.
IBODocumentVente3
Document de vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
Méthode SetDefault()
IBODocumentVenteLigne3
Ligne de document de vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Méthode SetDefaultRemise()
L’appel de cette méthode initialise la propriété remise en fonction des paramètres de remise
définis pour le client et pour l’article.
IBODocumentMedia
Documents média associés aux documents.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBODocumentReglement
L’objet IBODocumentReglement permet d’ajouter, de modifier ou de supprimer des règlements de
clients ou de fournisseurs et sur des documents de vente et achat persistants uniquement (les
documents dit « mémoire » ne sont pas gérés). Les règlements de caisse ou de ticket ne peuvent
pas être ajoutés, modifiés ou supprimés mais juste être lus (ils sont retournés par les différentes
méthodes Query du factory).
Propriétés
Accès Syntaxe Description
RG_MontantCommission() As
Lecture seule Montant de la commission.
Double
Méthode SetDefault()
Si le document est en devise et que DR_MontantDev est null, alors affectation de DR_MontantDev
en fonction de DR_Montant et du cours de la devise du document.
Si le document est en devise et que DR_Montant est null, alors affectation de DR_Montant en
fonction de DR_MontantDev et du cours de la devise du document.
A l’affectation du tiers payeur (mode ajout uniquement), les valeurs suivantes sont modifiées :
- le type du règlement (client ou fournisseur)
- le compte général de contrepartie si défini dans les paramètres société
- le tiers d’origine
- la devise du règlement et le cours de change
- le compte général du règlement si défini au niveau de la fiche Tiers
- le mode de règlement
- le journal du règlement basé sur les paramètres société et le mode de règlement
- le numéro de pièce du règlement
Remarque : Les prospects ne sont pas acceptés.
IBOFamille3
Famille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthode SetDefault()
Si l'objet est non persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes
:
FA_Type Si FA_Type <> FamilleTypeDetail Alors Remet à zéro les champs inutilisés si la
famille est d'un type différent de Détail.
Remise à zero des champs inutilisés
Si l'objet est persistant, l'appel de la méthode SetDefault() initialise les propriétés suivantes :
Méthode Write()
La méthode Write() enregistre l'objet dans la base de données après avoir effectué les traitements
suivants :
• Si des énumérés statistiques ont été créés dans la famille, ils sont ajoutés dans la table
F_ENUMSTATART ;
• Reprise dans la table F_FAMTARIF des Tarifs TTC de toutes les catégories tarifaires
paramétrées dans Paramètres société.
Méthode WriteDefault()
© 2020 Sage 444
Description de Sage 100cloud Objets Métiers
IBOFamilleTarifClient
Tarifs famille par client.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBOFamilleTarifCategorie
Tarifs famille par catégorie.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBOFamilleTarifQteCategorie
Gamme de remises de tarif famille par catégorie.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture / CategorieTarif() As
Catégorie tarifaire.
Ecriture IBPCategorieTarif
IBOFamilleTarifFournisseur
Tarifs famille par fournisseur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOFamilleTarifQteFournisseur
Gamme de remises de tarif famille par fournisseur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOFamilleParamCompta3
Paramétrage comptable famille.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOGlossaire2
Glossaire.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOModele2
Modèle d'enregistrement.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOCollaborateur
Collaborateur.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOVendeursAssociesFactory
Gestion de la liste des vendeurs associés.
Interface héritée
Syntaxe Description
IBITypeObjectFactory Cf. Interface IBITypeObjectFactory pour les
propriétés et méthodes héritées.
Propriétés
Accès Syntaxe Description
IBORessource
Ressource.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBORessourceCentre
Centre de charge.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IBOInfoComplementClient
Information complémentaire Client.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IBOInfoComplementEntete
Information complémentaire Document Vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture DocumentVente () As
Fabrique objet maître Document.
IBODocumentVente3
IBOInfoComplementDocligne
Information complémentaire Ligne de document de vente.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IFailInfo
Erreur renvoyée par les processus.
Propriétés
Accès Syntaxe Description
IFailInfoCol
Collection d’erreurs renvoyées par les processus.
Propriétés
Accès Syntaxe Description
Lecture seule Item(ByVal IIndex As Long) As Retourne l’élément erreur pour l’indice
IFailInfo passé en paramètre.
IPMProcess
Interface de base des processus.
Propriétés
Accès Syntaxe Description
Méthode
Syntaxe Description
IPMEncoder
Processus de création de pièce comptable. Ce processus est accessible depuis l’interface
IBSCPTAApplication100c.
© 2020 Sage 452
Description de Sage 100cloud Objets Métiers
Description
Le processus de saisie de pièce comptable permet d’insérer une collection d’écritures comptables
en une seule fois. Ceci permet, à la différence d’insertion d’écritures directement à partir d’objets
IBOEcriture3, de garantir que les écritures insérées par le processus ne pourront pas générer de
déséquilibre de la période, et qu’aucunes écritures insérées par une autre application ne pourront
s’intercaler entre deux écritures du processus.
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture/
bMultiEcheanceAuto() As Boolean Génération automatique des échéances.
Ecriture
Lecture/
Date() As Date Date de la pièce.
Ecriture
Lecture/
Devise() As IBPDevise2 Devise.
Ecriture
Lecture/
EC_Intitule() As String Intitulé.
Ecriture
Lecture/
Ec_Parite() As Double Parité.
Ecriture
Lecture/
EC_Piece() As String Numéro de pièce.
Ecriture
Lecture/
EC_Reference() As String Référence pièce.
Ecriture
Lecture/
EC_RefPiece() As String Numéro de facture.
Ecriture
Lecture/
Journal() As IBOJournal3 Journal.
Ecriture
Méthodes
Syntaxe Description
Méthode AddTiersPart()
Ainsi, quelque soit le type de journal (achat ou vente), si le montant passé en paramètre à la
méthode AddTiersPart() est positif, alors ce montant sera mis au Débit. Si le montant passé en
paramètre est négatif, alors celui-ci sera mis au Crédit.
IPMLettrer
Processus de lettrage d’écritures comptables. Ce processus est accessible depuis l’interface
IBSCPTAApplication100c.
Description
Le processus de lettrage permet de lettre, pré-lettrer ou pointer une collection d’écritures
comptables. Ce processus équivaut à la fonction Interrogation et lettrage de la comptabilité.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture/
Type() As LettrageType Type de lettrage.
Ecriture
Méthodes
Syntaxe Description
Contrôles de cohérence
La validation du processus ne peut être réalisée que lorsque les écritures ajoutées au processus
respectent les contraintes suivantes :
• Les écritures doivent avoir le même compte tiers. Si une écriture n’a pas de tiers, alors
aucune écriture ajoutée au processus ne doit avoir de tiers. Dans le cas d’un pointage, les
écritures doivent toutes avoir le même compte général ou le même compte tiers.
• La norme des écritures doit être différente de IFRS (EC_Norme <> EcritureNormeIFRS).
• Les écritures ne doivent pas être lettrées (non bloquant dans le cas du pointage).
Pré-lettrage devise 3 car. Alphabétique Non Doit être identique EC_LettreQ = ''
minuscule pour toutes les
écritures
Lettrage devise 3 car. Alphabétique Oui sur montant Doit être identique EC_LettreQ = ''
majuscule devise pour toutes les
écritures
IPMDocument
Processus de création de documents commerciaux. Ce processus est accessible depuis l’interface
IBSCIALApplication100c.
Description
A l’instar du processus IPMEncoder qui permet d’écrire en base une pièce comptable en une
seule fois, le processus de création de document permet quant à lui d’écrire en base un document
complet (entête et lignes) en une seule fois. Si pour une quelconque raison l’entête ou une ligne de
document ne peut pas être validée (état du stock insuffisant par exemple), alors le processus
échouera et le document ne sera pas inséré en base.
L’utilisation de ce processus est simple de mise en œuvre puisqu’il s’appuie sur les mêmes
interfaces que celles utilisées pour la création de documents et lignes de document :
IBODocument3 et IBODocumentLigne3.
Ce comportement permet notamment, d’éviter que pendant l’ajout de ligne sur le document, celui-
ci soit vérouillé par un autre poste client (Application Sage 100c ou Développement Objets
Métiers). En effet, le document étant non persistant tant que le processus n’est pas validé, il ne
sera pas visible ni accessible par d’autres postes clients.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Lors de l’ajout d’une ligne pour un article géré en nomenclature, les lignes composants la
nomenclature de l’article sont automatiquement ajoutées à la collection des lignes du processus.
IPMAppliquerBareme
Processus permettant d’appliquer les barèmes sur un document. Ce processus est accessible
depuis l’interface IBSCIALApplication100c.
Description
Le processus d’application des barèmes permet d’ajouter automatiquement des lignes de remises
à un document, en fonction des barèmes répondant aux critères d’application des barèmes. Ce
processus équivaut à la commande « Barèmes » disponible en entête de document sous la
Gestion commerciale.
Interface héritée
Syntaxe Description
Propriété
Accès Syntaxe Description
IPMControleQualite
Processus de contrôle qualité. Ce processus est accessible depuis l’interface
IBSCIALApplication100c.
Description
Le processus de contrôle qualité permet de réaliser un traitement identique à la fonction
« Traitement \ Contrôle qualité » de la Gestion commerciale Sage 100c. Ainsi, il permet de valider,
retourner ou mettre au rebus des quantités pour des articles placés sur des emplacements de
contrôle.
Pour ce faire, le processus permet dans un premier temps, de récupérer une collection de lignes
d’emplacement (IBODocumentLigneEmplacement) en fonction de différents critères :
• Période,
• Domaine,
• Contrôleur,
• Dépôt.
Ensuite, pour chacune des lignes d’emplacement de la collection, il sera nécessaire d’appeler les
méthodes Valider(LigneEmpl As IBODocumentLigneEmplacement, Qte As Double),
Retourner(LigneEmpl As IBODocumentLigneEmplacement, Qte As Double,sMotifRetour As String)
ou MettreRebut(LigneEmpl As IBODocumentLigneEmplacement, Qte As Double,sMotifRebut As
String) pour respectivement, valider, retourner ou mettre au rébut la ligne d’emplacement pour la
quantité passée en paramètre.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
MettreRebut(LigneEmpl As
Génère un mouvement de sortie de stock
IBODocumentLigneEmplacement, ByVal Qte As
pour la ligne d’emplacement, la quantité et
Double, ByVal sMotifRebut As String) As
le motif passés en paramètres.
IPMControlerQualiteInfo
IPMControleQualiteInfo
Informations de contrôle qualité sur une ligne d’emplacement. Cette interface est implémentée
dans le cadre de l’utilisation du processus de contrôle qualité : IPMControleQualite.
Propriétés
Accès Syntaxe Description
IPMColiser
Processus de colisage. Ce processus est accessible depuis l’interface IBSCIALApplication100c.
Description
Le processus de colisage permet de décomposer une ligne de préparation de livraison en
plusieurs lignes de préparation de livraison. Cette décomposition s’effectue en fonction des
numéros de colis et quantités qui seront affectés à la ligne.
Ce processus prend en entrée une ligne de document de type préparation de livraison. Après
validation du processus (.Process()), la ligne d’entrée sera décomposée en n lignes, où n
représente le nombre de colis qui auront été attribués.
Dans le cas où les numéros de colis ne sont pas attribués pour toute la quantité de la ligne, une
ligne sans numéro de colis et pour la quantité restante à coliser (QteRestantAColiser) sera
générée.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IPMDocTransferer
Processus de transfert d’un article d’un dépôt/emplacement vers un autre. Ce processus est
accessible depuis l’interface IBSCIALApplication100c.
Description
Le processus de transfert permet de transférer un article, d’un dépôt vers un autre, et/ou d’un
emplacement vers un autre. Ce processus ne peut être appliqué que sur les documents de stock
de type Mouvement de transfert. Après validation du processus (.Process()), les lignes de sortie
et d’entrée sont automatiquement générées, en fonction, des dépôts d’origine et de destination du
document, de l’article et des emplacements qui lui seront affectés.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
SetDefaultArticleDoubleGamme(pEnum1 As
IBOArticleGammeEnum3, pEnum2 As Affecte l’article double gamme et la
IBOArticleGammeEnum3, ByVal QteTransfert As quantité au processus.
Double)
SetDefaultArticleMonoGamme(pEnum As
Affecte l’article mono gamme et la
IBOArticleGammeEnum3, ByVal QteTransfert As
quantité au processus.
Double)
IPMDocTransformer
Processus de transformation de documents de vente et achat. Ce processus est accessible depuis
les propriétés Transformation.Vente et Transformation.Achat de l’interface
IBSCIALApplication100c.
Description
Un processus de transformation permet de transformer des documents de vente ou d’achat vers
un type de document supérieur dans le même domaine. Ce processus équivaut aux fonctions de
transformation de documents de la Gestion commerciale.
Le processus de transformation publie cinq types de transformation, trois sur les documents de
vente et deux sur les documents d’achat.
• Processus Livrer : permet de transformer des documents de vente de type devis, bon de
commande et préparation de livraison (documents complets ou lignes de documents) dans
un ou plusieurs bons de livraison existants ou à créér.
• Processus Facturer : permet de transformer des documents de vente de type devis, bon de
commande, préparation de livraison et bon de livraison (documents complets ou lignes de
documents) dans une ou plusieurs factures existantes ou à créér.
Paramètres d’entrée/sortie
• 1 à n lignes de documents
• 1 à n documents
• 1 à n documents résultats
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
Syntaxe Description
Entités manipulées
Durant la procédure de transformation de documents, les entités suivantes sont manipulées :
• Entêtes de documents
• Lignes de documents
• Stocks
• Tiers,
• 1 BL/Facture,
• Catégorie comptable,
• Devise,
• Cours de la devise,
• Souche.
De plus, les critères de fusion ne sont par défaut pas activés. Ainsi, le regroupement de document
ne sera pas réalisé si au moins un des champs suivants diffère entre les documents à transformer
:
• Caissier ¹
• Caisse ¹
• Dépôt
• Dépôt client ¹
• Expédition ¹
• Condition de livraison ¹
• Périodicité ¹
• Nb de facture
• Transaction
• Régime
• Provenance
• Langue
• Affaire
• Payeur/Encaisseur
• N° pièce site ¹
• Colisage ¹
• Taux d’escompte
Concernant le calcul des dates d’échéances, il s’appuie sur le paramétrage défini sous la gestion
commerciale (Paramètres société \ Documents \ Général \ Figer la date d’échéance à partir du).
Dans le cas des transformations sur les documents de vente, si le numéro de Série/Lot n’est pas
renseigné, il sera alors automatiquement affecté (équivalent à la commande Automatique de la
fenêtre Série/Lot de la gestion commerciale).
Pour les transformations des documents d’achat, il faudra impérativement renseigner le numéro
de Série/Lot à utiliser pour que la transformation puisse aboutir.
Regroupement de lignes
Pour le processus des achats Commander, un regroupement de lignes est automatiquement
réalisé lorsque plusieurs lignes de document répondent aux conditions suivantes :
• Même dépôt,
• Même collaborateur,
IPMPreleverLot
Processus de prélèvement des série/lot. Ce processus est accessible depuis l’interface
IBSCIALApplication100c.
Description
Le processus de prélèvement des série/lot permet de décomposer une ligne de préparation de
livraison sur un article suivi en série/lot, en plusieurs lignes de préparation de livraison. Cette
décomposition s’effectue en fonction des numéros de série/lot et quantités affectés à la ligne.
Ce processus prend en entrée une ligne de préparation de livraison. Après l’affectation d’une ligne
de préparation de livraison au processus (affectation de LigneOrigine), la collection des série/lot
(UserLots) sera automatiquement alimentée avec des série/lot équivalents au calcul Automatique
de la Gestion commerciale.
Pour affecter des série/lot différents de ceux proposés par défaut, il sera donc nécessaire de
préalablement supprimer les éléments non souhaités de la collection des série/lot (cf. Remove() et
RemoveAll() de IBICollectionDispatch), pour ensuite ajouter les série/lot souhaités.
De plus, si l’affectation des série/lot n’est pas réalisée pour l’intégralité de la quantité à répartir
(QteARepartir), à la validation du processus, une ligne sans série/lot et pour une quantité
correspondant à la quantité restante à répartir (QteRestantARepartir) sera générée.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IPMDocInsererSousTotal
Processus de création de ligne de sous total. Ce processus est accessible depuis l’interface
IBSCIALApplication100c.
Description
Ce processus permet d’insérer une ligne de sous total dans un document commercial (persistant
ou non persistant). Ce processus équivaut à la fonction Insérer un sous-total disponible après
sélection de lignes dans un document commercial.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Méthodes
Syntaxe Description
IPMDocRecalculPrixCompose
Processus de recalcul de prix de revient d’une nomenclature fabrication. Ce processus est
accessible depuis l’interface IBSCIALApplication100c.
Description
Ce processus permet de recalculer le prix de revient des nomenclatures de type fabication
contenues dans un bon de fabrication. Ce processus équivaut à la fonction Recalculer le PR du
composé disponible dans un bon de fabrication de Sage 100c Gestion commerciale.
Interface héritée
Syntaxe Description
Méthodes
Syntaxe Description
Dans le cas où le processus est initialisé sur un document, mais qu’aucune ligne de document
n’est ajoutée à la collection (.AddDocumentLigne), à la validation du processus (.Process), c’est
l’intégralité des lignes du document qui sera utilisée pour procéder au recalcul.
IPMSortirLots
Processus de gestion d’une sortie pour un article géré par lot. Ce processus est accessible depuis
l’interface IBSCIALApplication100c.
Description
Ce processus permet, pour une ligne de document non persistante dans un document
persistant, de créer autant de lignes que nécessaire pour sortir un lot en fonction d’une quantité.
Ce processus équivaut à la fonction Automatique de la fenêtre de Gestion des lots affichée lors
de la validation d’une ligne de document dans la Gestion commerciale. Il permet de s’abstaire de
la recherche des entrées en stock d’un article géré par lot. En effet, c’est le processus, suivant les
paramètres passés en entrée, qui se chargera d’affecter automatiquement le ou les lots aux lignes
de sortie de stock.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Lecture seule UserLots() As IBICollection Collection des éléments lots pour la ligne
à décomposer.
Méthode
Syntaxe Description
Ce processus ne peut être utilisé que sur les lignes de documents de type sortie en quantité qui
ne sont pas persistantes. L’entête de document quant à lui doit être persistant. Le processus
IPMSortirLots() ne peut donc pas être utilisé dans le processus de création de document :
IPMDocument().
IPMConversionClient
Processus de transformation d’un prospect en client. Ce processus est accessible depuis
l’interface IBSCIALApplication100c.
Description
Ce processus permet de transformer un prospect en client. Il équivaut à la fonction
« Transformer » disponible sur la fiche d’un prospect dans Sage 100c Gestion commerciale.
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
IPMReglerEcheances
Processus de transformation d’un prospect en client. Ce processus est accessible depuis
l’interface IBSCIALApplication100c.
Description
Ce processus permet le règlement d’échéances.
En paramètre il doit avoir un règlement existant.
Méthode AddDocumentEcheance qui associe une échéance d‘un document.
Méthode AddDocumentEcheanceMontant qui associe une échéance avec un montant spécifique
Interface héritée
Syntaxe Description
Propriétés
Accès Syntaxe Description
Les énumérateurs
AgendaType
Type d'agenda.
Syntaxe Description
AgendaDocument Document.
AgendaFabrication Fabrication.
AgendaInteresse Intéressé.
AgendaTypeInteresse
Type d’événement intéressé.
Syntaxe Description
AnalytiqueRuptureType
Type de rupture pour le plan analytique IFRS.
Syntaxe Description
AnalytiqueRuptureTypeAucun Aucun.
ArrondiType
Type d'arrondi.
Syntaxe Description
ArrondiTypeInf Inférieur.
ArrondiTypeProche Proche.
ArrondiTypeSup Supérieur.
ArticleType
Type d'article.
Syntaxe Description
BanqueFormatVirement
Format virement.
Syntaxe Description
BanqueModeRemise
Mode de remise en banque.
Syntaxe Description
BanqueModeRemiseInternet Internet.
BanqueModeRemiseMessagerie Messagerie.
BanqueModeRemisePapier Papier.
BanqueModeRemiseTeleTrans Télétransmission.
BanqueRemise
Donneur d’ordres type de remise.
Syntaxe Description
BaremeCommissionInteresse
Barême de commissionnement.
Syntaxe Description
BaremeCommissionObjectif
Objectif de commissionnement.
Syntaxe Description
BaremeCommissionDomaine
Domaine de commissionnement.
Syntaxe Description
BaremeCommissionBase
Base de commissionnement.
Syntaxe Description
BaremeCommissionCalcul
Méthode de calcul du commissionnement.
Syntaxe Description
BaremeRabaisObjectif
Objectif rabais, remises et ristournes.
Syntaxe Description
BaremeRabaisCalcul
Méthode de calcul du rabais, remises et ristournes.
Syntaxe Description
BaremeRabaisType
Type de rabais, remises et ristournes.
Syntaxe Description
BaremeSoldeType
Type de soldes et promotions.
Syntaxe Description
ClientEncoursCtrlType
Type de contrôle encours client.
Syntaxe Description
ComposantType
Type de composant de nomenclature.
Syntaxe Description
ComposantTypeFixe Fixe.
ComposantTypeVariable Variable.
CompteADomaineType
Type de domaine de compte analytique.
Syntaxe Description
CompteADomaineTypeAchat Achat.
CompteADomaineTypeVente Vente.
CompteAType
Type de compte analytique.
Syntaxe Description
CompteATypeDetail Détail.
CompteATypeTotal Total.
CompteAModeFacturationType
Type de mode de facturation des affaires.
Syntaxe Description
CompteAStatutType
Type de statut des sections analytiques.
Syntaxe Description
CompteAStatutProposition Proposition.
CompteAStatutAccepte Accepté.
CompteAStatutPerdu Perdu.
CompteAStatutEnCours En cours.
CompteAStatutAttente En attente.
CompteAStatutTermine Terminé.
CompteGReportType
Type de report-à-nouveau de compte général.
Syntaxe Description
CompteGReportTypeAucun Aucun.
CompteGReportTypeDetail Détail.
CompteGReportTypeSolde Solde.
CompteGType
Type de compte général.
Syntaxe Description
CompteGTypeDetail Détail.
CompteGTypeTotal Total.
CompteRType
Type de compte reporting.
Syntaxe Description
CompteRTypeDetail Détail.
CompteRTypeTotal Total.
ContactCivilite
Civilité contact.
Syntaxe Description
ContactCiviliteMonsieur M.
ContactCiviliteMadame Mme.
ContactCiviliteMademoiselle Mlle.
CycleType
Cycle de vie des articles.
Syntaxe Description
CycleTypeLancement Lancement.
CycleTypeMaturite Maturité.
CycleTypeDeclin Déclin.
DatabaseType
Type de base de données.
Syntaxe Description
DepotEmplZone
Zone emplacement.
Syntaxe Description
DepotEmplZoneAucune Aucune.
DepotEmplZoneA Zone A.
DepotEmplZoneB Zone B.
DepotEmplZoneC Zone C.
DepotEmplType
Type d’emplacement.
Syntaxe Description
DeviseMode
Mode de cotation de devise.
Syntaxe Description
DeviseModeCertain Certain.
DeviseModeIncertain Incertain.
DeviseRemise
Code de remise.
Syntaxe Description
DeviseRemiseAucun Aucun.
DeviseRemiseBlanc Blanc.
DeviseRemiseEuro Euro.
DeviseRemiseFranc Franc.
DocumentConditionPaiementType
Type des conditions de paiement sur les documents.
Syntaxe Description
DocumentFraisType
Type des frais d'expédition du document.
Syntaxe Description
DocFraisTypePoidsBrut Quantité.
DocumentInterneMvtType
Type de mouvement interne.
Syntaxe Description
DocumentInterneMvtTypeAucun Aucun.
DocumentInterneMvtTypeRealise Réalisé.
DocumentLigneMvtStockType
Type des frais d'expédition du document.
Syntaxe Description
DocumentLigneProvenanceType
Type de provenance de la ligne de document.
Syntaxe Description
DocumentProvenanceType
Type de la provenance du document.
Syntaxe Description
DocumentStatutType
Type de statut de document.
Syntaxe Description
DocumentStatutTypeAPrepare A Préparer.
DocumentStatutTypeConfirme Confirmé.
DocumentStatutTypeSaisie Saisie.
DocumentType
Type de document.
Syntaxe Description
Syntaxe Description
DomaineType
Type de domaine.
Syntaxe Description
DomaineTypeAchat Achat.
DomaineTypeStock Stock.
DomaineTypeVente Vente.
DossierParamEmplacementPriorite
Type de priorité de déstockage.
Syntaxe Description
EcritureANType
Type d'écriture d'à-nouveau.
© 2020 Sage 483
Description de Sage 100cloud Objets Métiers
Syntaxe Description
EcritureANTypeDetail Détail.
EcritureANTypeManuel Manuel.
EcritureANTypeNormal Normal.
EcritureANTypeResultat Résultat.
EcritureANTypeSolde Solde.
EcritureExpertType
Type d'écriture expert-comptable
Syntaxe Description
EcritureExpertTypeEmis Emis.
EcritureExpertTypeReception Réception.
EcritureImpressionType
EcritureImpressionTypeBrouillard Brouillard.
EcritureImpressionTypeJournal Journal.
EcritureNormeType
Type impression écriture.
Syntaxe Description
EcritureNormeIFRS IFRS.
EcritureNormeNationale Nationale.
EcritureSensType
Type de sens de l'écriture.
Syntaxe Description
EcritureSensTypeCredit Crédit.
EcritureSensTypeDebit Débit.
EcritureType
Type d'écriture.
Syntaxe Description
EcritureODType
Type d'écriture d’OD.
Syntaxe Description
EdiCodeType
Type de code EDI.
Syntaxe Description
FamilleCriticiteType
Type de criticité des familles.
Syntaxe Description
FamilleCriticiteTypeMineur Mineur.
FamilleCriticiteTypeMajeur Majeur.
FamilleCriticiteTypeCritique Critique.
FamilleNatureType
Type de nature des familles.
Syntaxe Description
FamilleNatureTypeComposant Composant.
FamilleType
Type de famille.
Syntaxe Description
FamilleTypeCentral Centralisatrice.
FamilleTypeDetail Détail.
FamilleTypeTotal Total.
FieldType
Type de champ.
Syntaxe Description
FieldTypeCStr Texte.
FieldTypeDate Date.
FieldTypeDouble Valeur.
FieldTypeMontant Montant.
FieldTypeTable Table.
GammeType
Type de gamme.
Syntaxe Description
GammeTypeDivers Divers.
GammeTypeMontant Montant.
GammeTypeQtes Quantités.
GlossaireDomaineType
Type du domaine du glossaire.
Syntaxe Description
GlossaireDomaineTypeArticle Article.
GlossaireDomaineTypeDocument Document.
InfoDomaine Type
Domaine de l’information complémentaire Client.
Syntaxe Description
InfoType Type
Type de la valeur de l’information complémentaire.
Syntaxe Description
JournalNumPieceType
Type de numérotation de pièce du journal.
Syntaxe Description
JournalNumPieceTypeManuelle Manuelle.
JournalNumPieceTypeMensuelle Mensuelle.
JournalRapproType
Type de rapprochement du journal.
Syntaxe Description
JournalRapproTypeAucun Aucun
JournalRapproTypeContrepartie Contrepartie.
JournalRapproTypeTresorerie Trésorerie.
JournalType
Type de journal.
Syntaxe Description
JournalTypeAchat Achat.
JournalTypeGeneral Général.
JournalTypeSituation Situation.
JournalTypeTresorerie Trésorerie.
JournalTypeVente Vente.
LancementType
Type de lancement des articles.
Syntaxe Description
LangueType
Type de langue.
Syntaxe Description
LangueTypeAucune Aucune.
LangueTypeLangue1 Langue 1.
LangueTypeLangue2 Langue 2.
LettrageType
Type de lettrage.
Syntaxe Description
ModeleGrilleType
Type de modèle de grille.
Syntaxe Description
NomenclatureType
Type de nomenclature.
Syntaxe Description
NomenclatureTypeAucun Aucun.
NomenclatureTypeComposant Composant.
NomenclatureTypeCompose Composé.
NomenclatureTypeFabrication Fabrication.
PeriodClotureType
Type de clôture des périodes.
Syntaxe Description
ReglementConditionType
Type de condition de règlement.
Syntaxe Description
ReglementRepartitionType
Type de répartition de règlement.
Syntaxe Description
ReglementRepartitionTypeEquilib Equilibre.
ReglementRepartitionTypeMontant Montant.
ReglementRepartitionTypePourcent Pourcentage.
ReglementType
Type de règlement.
Syntaxe Description
ReglementTypeAucun Aucun.
ReglementTypeCarte Carte.
ReglementTypeCheque Chèque.
ReglementTypeEspece Espèces.
RepartitionType
Type de répartition.
Syntaxe Description
RemiseType
Type de remise.
Syntaxe Description
RemiseTypeMontant Montant.
RemiseTypePourcent Pourcentage.
RemiseTypeUnite Unité.
RibType
Type de RIB.
Syntaxe Description
RibTypeAutre Autre.
RibTypeBban BBAN.
RibTypeIban IBAN.
RibTypeLocal Local.
RisqueType
Type risque (action).
Syntaxe Description
RisqueTypeBloquer A bloquer.
RisqueTypeLivrer A livrer.
RisqueTypeSurveiller A surveiller.
StructBanqueControleRib
Contrôle de la clé RIB.
Syntaxe Description
StructBanqueControleRibAucun Aucun.
StructBanqueControleRibBelgique Belgique.
StructBanqueControleRibEspagne Espagne.
StructBanqueControleRibFrance France.
StructBanqueControleRibPortugal Portugal.
StructBanqueFieldType
Type des champs de structure banque.
Syntaxe Description
StructBanqueFieldTypeAlphanum Alphanumérique.
StructBanqueFieldTypeNumeric Numérique.
SuiviStockType
Type de suivi de stock.
Syntaxe Description
SuiviStockTypeAucun Aucun.
SuiviStockTypeCmup CMUP.
Syntaxe Description
SuiviStockTypeFifo FIFO.
SuiviStockTypeLifo LIFO.
SuiviStockTypeLot Lot.
SuivistockTypeSerie Série.
TaxeProvenanceType
Type provenance taxe.
Syntaxe Description
TaxeProvenanceTypeDivers1 Divers 1.
TaxeProvenanceTypeDivers2 Divers 2.
TaxeProvenanceTypeDivers3 Divers 3.
TaxeProvenanceTypeDivers4 Divers 4.
TaxeProvenanceTypeDivers5 Divers 5.
TaxeProvenanceTypeExport Export.
TaxeProvenanceTypeIntracom Intracommunautaire.
TaxeProvenanceTypeNational National.
TaxeSensType
Type sens de taxe.
Syntaxe Description
TaxeSensTypeCollecte Collecté.
TaxeSensTypeDeductible Déductible.
TaxeTauxType
Type taux de taxe.
Syntaxe Description
TaxeTauxTypeMontant Montant.
TaxeTauxTypePourcent Pourcentage.
TaxeTauxTypeQuantite Quantité.
TaxeType
Type de taxe.
Syntaxe Description
TaxeTypeAgraire Agraire.
TaxeTypeCEE CEE.
TaxeTypeIGIC IGIC.
TaxeTypeIRPF IRPF.
TaxeTypeSurtaxe Surtaxe.
TiersType
Type de tiers.
Syntaxe Description
TiersTypeAutre Autre.
TiersTypeClient Client.
TiersTypeFournisseur Fournisseur.
TiersTypeSalarie Salarié.
TransfoMajCoursType
Type de mise à jour des cours des devises durant la transformation de documents.
Syntaxe Description
TransfoMajCoursTypeAucune Aucune.
TypeTiersNumerotation
Type de numérotation tiers.
Syntaxe Description
TypeTiersCompteType
Type de racine.
Syntaxe Description
UnitePoidsType
Type unité de poids.
Syntaxe Description
UnitePoidsTypeGramme Gramme.
UnitePoidsTypeKilogramme Kilogramme.
UnitePoidsTypeMilligramme Milligramme.
UnitePoidsTypeQuintal Quintal.
UnitePoidsTypeTonne Tonne.
Modification de l’interface
L’interface a été modifiée (Publication des dates de modification et de création pour chaque Objet)
Ce qui implique une recompilation des développements existants .
Objets IBOCollaborateur
Les méthodes ChefVentes et FactoryVendeurs ont été ajoutées pour gérer les chefs des ventes