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 = NothingSi 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.