Initiation aux scripts automatiques dans Python

Les scripts automatiques sont des scripts qui s'exécutent automatiquement lorsqu'ils sont déclenchés par la création d'éléments de sortie spécifiques à partir de procédures sélectionnées et qui nécessitent généralement une référence à l'objet qui a déclenché le script. Ils peuvent également nécessiter une référence au document de sortie associé et éventuellement l'index de l'élément de sortie dans le document de sortie. Ces valeurs sont obtenues à partir de l'objet SpssScriptContext , comme illustré dans cet exemple d'un autoscript qui transpose les lignes et les colonnes d'un tableau croisé dynamique.

import SpssClient
SpssClient.StartClient()

SpssScriptContext = SpssClient.GetScriptContext()
SpssOutputItem = SpssScriptContext.GetOutputItem()
SpssPivotTable = SpssOutputItem.GetSpecificType()
SpssPivotMgr = SpssPivotTable.PivotManager()
SpssPivotMgr.TransposeRowsWithColumns()

SpssClient.StopClient()
  • SpssClient.GetScriptContext renvoie un objet SpssScriptContext qui fournit des valeurs à utiliser par l'autoscript.
  • La méthode GetOutputItem de l'objet SpssScriptContext renvoie l'élément de sortie qui a déclenché l'autoscript en cours -- dans cet exemple, le tableau croisé dynamique dont les lignes et les colonnes doivent être transposées.

Bien qu'elle ne soit pas utilisée dans cet exemple, la méthode GetOutputDoc de l'objet SpssScriptContext renvoie le document de sortie associé et la méthode GetOutputItemIndex renvoie l'index (dans le document de sortie associé) de l'élément de sortie qui a déclenché l'autoscript.

Des informations générales sur les autoscript sont disponibles à partir de Core System > Scripting Facility dans le système d'aide.

Détection d'un script exécuté en tant qu'autoscript

A l'aide de la méthode GetScriptContext , vous pouvez détecter quand un script est exécuté en tant qu'autoscript. Cela vous permet de coder un script de manière à ce qu'il puisse fonctionner dans chaque contexte (script automatique ou non). Ce script simpliste explique cette approche.

import SpssClient
SpssClient.StartClient()

SpssScriptContext = SpssClient.GetScriptContext()
if SpssScriptContext == None:
   print("I'm not an autoscript")
else:
   print("I'm an autoscript")

SpssClient.StopClient()
  • Lorsqu'un script n'est pas exécuté en tant qu'autoscript, la méthode GetScriptContext renvoie la valeur None.
  • Etant donné la logique if-else de cet exemple, vous devez inclure votre code propre à l'autoscript dans la clause else . Tout code qui ne doit pas être exécuté dans le contexte d'un autoscript sera inclus dans la clause if . Vous pouvez, bien sûr, inclure le code à exécuter dans les deux contextes.