Utilisation de Windows PowerShell® afin d’automatiser des actions dans PowerAMC
Étapes :
- Lancer une fenêtre MS-DOS
- Taper « Powershell » et appuyer sur la touche <Retour>
- Au niveau du curseur tapez la commande suivante : $pd = new-object -com poweramc.application
- La commande permet d’informer Windows Powershell® qu’il doit démarrer « PowerAMC » au titre d’un objet COM.
- $pd est une référence sur le nouvel objet COM qui sera créé
- Windows Powershell® lance l’exécution de PowerAMC
- La commande suivante permet d’obtenir la liste des méthodes et des propriétés qui sont disponibles par l’entremise de PowerAMC
- $pd | get-member
TypeName: System.__ComObject#{57c91ea5-68ef-4877-bb3e-757b12ecae55}
Liste des méthodes et des propriétés PowerAMC
| Name | MemberType | Definition |
|---|---|---|
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| BeginTransaction | Method | void BeginTransaction () |
| CancelTransaction | Method | void CancelTransaction () |
| ConvertToUTF16 | Method | void ConvertToUTF16 (string, string) |
| ConvertToUTF8 | Method | void ConvertToUTF8 (string, string) |
| CreateModel | Method | BaseObject CreateModel (int, string, OpenModelFlags) |
| CreateModelFromTemplate | Method | BaseObject CreateModelFromTemplate (string, OpenModelFlags) |
| CreateModelWithDialog | Method | BaseObject CreateModelWithDialog (int, string, OpenModelFlags) |
| EndTransaction | Method | void EndTransaction () |
| EvaluateNamedPath | Method | string EvaluateNamedPath (string, bool, bool) |
| ExecuteCommand | Method | string ExecuteCommand (string, string, CommandExecutionMode) |
| FileImport | Method | BaseObject FileImport (string, string, int, string, OpenModelFlags) |
| GetModuleForModelFile | Method | BaseObject GetModuleForModelFile (string) |
| IsKindOf | Method | bool IsKindOf (int, int) |
| MapToNamedPath | Method | string MapToNamedPath (string) |
| NewGUID | Method | string NewGUID () |
| newPoint | Method | APoint newPoint (int, int) |
| NewPtList | Method | PtList NewPtList () |
| NewRect | Method | ARect NewRect (int, int, int, int) |
| OpenModel | Method | BaseObject OpenModel (string, OpenModelFlags) |
| Output | Method | void Output (string) |
| ProfileSnap | Method | void ProfileSnap (string, bool, int) |
| Progress | Method | BaseObject Progress (string, bool) |
| Rtf2Ascii | Method | string Rtf2Ascii (string) |
| Rtf2Html | Method | string Rtf2Html (string) |
| ShowHelp | Method | void ShowHelp (int) |
| ActiveDiagram | Property | BaseObject ActiveDiagram () {get} |
| ActiveGlossary | Property | BaseObject ActiveGlossary () {get} |
| ActiveModel | Property | BaseObject ActiveModel () {get} |
| ActivePackage | Property | BaseObject ActivePackage () {get} |
| ActiveSelection | Property | ObjectSet ActiveSelection () {get} |
| ActiveWorkspace | Property | BaseObject ActiveWorkspace () {get} |
| CheckPermissionsMode | Property | bool CheckPermissionsMode () {get} {set} |
| EclipseWorkspace | Property | string EclipseWorkspace () {get} |
| ExternalClientAdapter | Property | IDispatch ExternalClientAdapter () {get} |
| HomeDirectory | Property | string HomeDirectory () {get} |
| InteractiveMode | Property | InteractiveModeValue InteractiveMode () {get} {set} |
| LicenceParameters | Property | string LicenceParameters () {get} |
| LicenceStatus | Property | string LicenceStatus () {get} |
| Locked | Property | bool Locked () {get} {set} |
| MainWindowHandle | Property | LONG_PTR MainWindowHandle () {get} |
| MetaModel | Property | BaseObject MetaModel () {get} |
| Models | Property | ObjectSet Models () {get} |
| PicturesTransparentColor | Property | OLE_COLOR PicturesTransparentColor () {get} {set} |
| RegistryHome | Property | string RegistryHome () {get} |
| RepositoryConnection | Property | BaseObject RepositoryConnection () {get} |
| ScriptInputArray | Property | Variant ScriptInputArray () {get} |
| ScriptInputParameters | Property | string ScriptInputParameters () {get} |
| ScriptResult | Property | string ScriptResult () {get} {set} |
| ShowMode | Property | bool ShowMode () {get} {set} |
| UserDataDictionary | Property | IStringDataDictionary UserDataDictionary () {get} |
| UserName | Property | string UserName () {get} |
| ValidationMode | Property | bool ValidationMode () {get} {set} |
| Version | Property | string Version () {get} |
| Viewer | Property | bool Viewer () {get} |
$model=$pd.CreateModel([PdPDM.PdPDM_Classes]::cls_Model,"|Diagram=PhysicalDiagram",0) $model.name ="MY_PDM" $diagram=$model.PhysicalDiagrams.Item(0) $tbl=$model.CreateObject([PdPDM.PdPDM_Classes]::cls_Table,"" , -1, $false) $tbl.Name="Client" $tbl.Code="Client" $tbl.Comment="Table Client" $tbl.Description="Liste des clients de l'entreprise" $coln=$tbl.Columns.CreateNew([PdPDM.PdPDM_Classes]::cls_Column) $coln.Name="ID" $coln.Code="ID" $coln.DataType="integer"; $coln.Primary=$true $diagram.AttachObject($tbl)
Rendez-vous dans PowerAMC et vous constaterez que la table « CLIENT » a été créé.
D’autre part vous pouvez sauvegarder le code ci-dessus dans un fichier avec l’extension « .ps1 ». À titre d’exemple vous pouvez créer le fichier « CreateTable.ps1 » et afin de lancer l’exécution et la création de la table vous taper « CreateTable.ps1 » <Retour> au niveau de la ligne de commande de Windows Powershell®
