OLE Automation est un moyen de communiquer avec PowerAMC à partir d'une autre application grâce à l'architecture COM. Vous pouvez écrire un programme à l'aide de n'importe quel langage prenant en charge COM, par exemple les macros de Word et Excel, VB, C++ ou PowerBuilder.Vous pouvez créer des exécutables qui appellent PowerAMC ou des compléments qui sont appelés par PowerAMC.
Dim PAMC As PdCommon.Application
Set PAMC = CreateObject("PowerAMC.Application")
'Saisir le script ici
'A la fois du script, libérer l'objet PAMC
Set PAMC = Nothing
Si
PowerAMC est en cours d'exécution, cette instance sera utilisée ; faute de quoi
une nouvelle instance sera lancée. Si vous ne spécifiez pas de numéro de
version, c'est la version la plus récente qui est utilisée. Pour spécifier une
version particulière, utilisez la syntaxe suivante
:Set PAMC = CreateObject("PowerAMC.Application.version")
PAMC.ActiveModel
Dim cls as PdOOM.ClassSi votre modèle contient des raccourcis, nous vous recommandons d'utiliser la syntaxe suivante pour éviter les erreurs au moment de l'exécution lorsque le modèle cible est fermé :
Dim obj as PdCommon.IdentifiedObject
Dim cls as PdOOM.Class Set cls = model.CreateObject(PdOOM.cls_Class)Pour C# et VB.NET, vous pouvez utiliser la syntaxe suivante (dans laquelle PdOOM_Classes est le nom de l'énumération) :
Dim cls As PdOOM.Class Set cls = model.CreateObject(PdOOM.PdOOM_Classes.cls_Class)Pour d'autres langages tels que le JavaScript ou PowerBuilder, vous devez définir des constantes qui représentent les objets que vous souhaitez créer. Pour obtenir la liste complète des constantes d'ID de classe, reportez-vous au fichier VBScriptConstants.vbs situé dans le répertoire OLE Automation de PowerAMC.
'* Purpose: Ce script affiche le nbre de classes définies dans un MOO dans la fenêtre Résultats.
Option Explicit
' Fonction principale
Sub VBTest()
' Définir l'objet application PowerAMC
Dim PAMC As PdCommon.Application
' Lire l'objet application PowerAMC
Set PAMC = CreateObject("PowerAMC.Application")
' Obtenir le modèle actif courant
Dim model As PdCommon.BaseModel
Set model = PAMC.ActiveModel
If model Is Nothing Then
MsgBox "Il n'y pas de modèle courant."
ElsIf Not model.IsKindOf(PdOOM.cls_Model) Then
MsgBox Le modèle courant n'est pas un MOO."
Else
' Afficher le nombre de classes
Dim nbClass
nbClass = Model.Classes.Count
PAMC.Output "Le modèle '" + model.Name + "' contient " + CStr(nbClass) + " classes."
' Créer un nouveau MOO
Dim model2 As PdOOM.Class
Set model2 = PAMC.CreateModel(PdOOM.cls_Model)
If Not model2 Is Nothing Then
' Copier le nom de l'auteur
model2.Author = Model.Author
' Afficher un message dans la fenêtre Résultats
PAMC.Output "Le modèle '" + model2.Name + "' a été correctement créé + "'."
Else
MsgBox "Impossible de créer un MOO."
End If
End If
' Libérer l'objet application PowerAMC
Set PAMC = Nothing
End Sub
Des exemples OLE Automation pour différents langages sont fournis dans le répertoire OLE Automation situé dans votre répertoire d'installation de PowerAMC.