Isom.Plan.TherapyPlan

 ISOM/L-Bibliothek für Serviceautoren: <br />Isom.Plan.TherapyPlan

ISOM/L-Bibliothek
für Serviceautoren

Version 9.10.1.0 vom 25 November 2013

Namensraum Isom.Plan.TherapyPlan

Beschreibung

Der Therapieplan beschreibt die Software-Reparatur eines Fahrzeugs. Er ist aus den Aktionen zusammengesetzt, die erforderlich sind, um das Fahrzeug aus dem Ist-Zustand in den Soll-Zustand zu überführen. Der Therapieplan gibt dabei keine fachliche Ausführungsreihenfolge vor. Die Ausführungsreihenfolge wird bei der Berechnung des Aktionsplans bestimmt.

Die einzige Instanz des Therapieplans enthält zu jedem Zeitpunkt den aktuell vorliegenden Therapieplan. Die Aktionen werden hinzugefügt durch

  • die Logistik
  • den Serviceautor
  • den Servicetechniker (Werkstatt-Personal)

Der Therapieplan entsteht in den Phasen 6 bis 8 des ISOM-Phasenmodell. In Phase 6 wird der native Therapieplan berechnet. Dazu wird der Einsprungspunkt GeneratePlan aufgerufen. In Phase 7 kann der Therapieplan manuell bearbeitet werden. Dabei werden die Einsprungspunkte AddActionManually und RemoveActionManually aufgerufen. In Phase 8 wird der finale Therapieplan berechnet. Dazu wird der Einsprungspunkt CalculateFinalPlan aufgerufen.



Funktionen

Isom.Plan.TherapyPlan.Add

Fügt eine Aktion am Ende des Therapieplan ein.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.Add  ( Isom.Plan.TherapyPlanAction  action  ) 

Fügt eine Aktion am Ende des Therapieplan ein.

Das erfolgreiche Hinzufügen bewirkt, dass der Therapieplan danach einen zusätzlichen Knoten mit der Aktion enthält. Bei erfolglosen Einfügeversuchen (return false) bleibt der Therapieplan unverändert.

Die für den Aktionsnamen definierte Filterfunktion wird angewendet. In dieser Filterfunktion kann wiederum TherapyPlan.Add(TherapyPlanAction) aufgerufen werden, d.h. es wird hierarchisch gefiltert.

ISOM erkennt beim hierarchischen Filtern Rekursionen (eine Filterfunktion fügt direkt oder indirekt über mehrere Filteraufruf- Stufen die als Argument übergebene Aktion ein). In diesem Fall wird diese Einfügeoperation ohne rekursiven Filteraufruf durchgeführt (Rekursionsabbruch). Das direkte Einfügen ist dabei ein Normalfall. Bei indirekten Rekursionen wird über die Ereignisaufzeichnung eine Warnung generiert aber normal weitergearbeitet.

Zu beachten:
Diese Funktion sollte ausschließlich in ISOM/L-Programmen - insbesondere Filterfunktionen - aufgerufen werden. Für Aktionen, die als manuell hinzugefügt gelten sollen, ist stattdessen der Einsprungspunkt AddActionManually zu verwenden.
  // Schreiben des Fahrzeugsauftrags hinzufügen 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanAction tpa = tp.CreateAction( "DeployVehicleOrder" ); 
  if(tp.Add( tpa ).Failed()) 
  { 
      // Fehlerbehandlung: Aktion konnte nicht hinzugefügt werden 
  } 
Achtung:
Eine Aktion ist erst dann im Therapieplan enthalten, nachdem ihre Filterfunktion erfolgreich ausgeführt wurde.
Benachrichtigungen
Wenn die Aktion zum Plan hinzugefügt wurde, sendet ISOM eine Benachrichtigung an die steuernde Anwendung. Die Benachrichtigung kann z.B. eine Aktualisierung der Darstellungen des Steuergerätebaums und der Aktionsliste auslösen.
Parameter:
action  die hinzuzufügende Aktion
Rückgabe:
Isom.Base.Boolean
true nach erfolgreichem Einfügen, false sonst.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.AddMessage

Fügt eine Therapie-begleitende Nachricht hinzu.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.AddMessage  ( Isom.Base.String  id,
Isom.Base.String  message  )

Fügt eine Therapie-begleitende Nachricht hinzu.

Die Nachrichten können z.B. der Anzeige im Abschlussbericht dienen.

Achtung:
Der Aufruf kann _nicht_ durch TherapyPlan.GetInstance ().GetAllMessages().Add(...) ersetzt werden, weil hier zusätzlich eine Client-Interaktion notwendig ist und GetAllMessages() jedesmal ein neu erzeugtes Objekt liefert.
Zu beachten:
Die Einordnung und Interpretation der IDs obliegt der steuernden Anwendung.
Siehe auch:
Isom.Plan.TherapyPlan.RemoveMessage()
Isom.Plan.TherapyPlan.GetAllMessages()
  Isom.Base.Boolean AssembleDepositedMsgs (Isom.Base.String id) 
  { 
      Isom.Base.StringList msgs = Isom.Base.StringList.GetGlobal (id); 
      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance (); 

      // Alle Hinweise hinzufügen 
      Isom.Base.Number index = 1; 
      msgs.Reset(); 
      while (msgs.HasNext()) 
      { 
          // Aktionsnamen mit Zähler-Variablen initialisieren 
          Isom.Base.String actionName = "Nacharbeiter"; 
          actionName.Append(index.ToIntString()); 

          // Nachricht hinzufügen 
          Isom.Base.String msg = msgs.Next(); 
          tp.AddMessage(actionName, msg); 

          // Index erhöhen 
          index.Add(1); 
      } 
      // ... 
  } // function: AssembleDepositedMsgs () 
Benachrichtigungen
Wenn Nachrichten zum Plan hinzugefügt wurden, sendet ISOM eine Benachrichtigung an die steuernde Anwendung.
Parameter:
id  technische ID für die Nachricht (nicht übersetzbar)
message  Text der Nachricht (übersetzbar)
Rückgabe:
Isom.Base.Boolean
false derzeit nie, true wenn erfolgreich hinzugefügt (derzeit immer).
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls die ID oder die Nachricht Void oder die ID leer ist.
Es wird das Void-Objekt zurückgegeben, falls die ID bereits existiert.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.Clone

Erzeugt einen neuen Verweis auf das einzige Objekt des Therapieplans.

objectbound Isom.Plan.TherapyPlan Isom.Plan.TherapyPlan.Clone  (  ) 

Erzeugt einen neuen Verweis auf das einzige Objekt des Therapieplans.

Achtung:
Da es vom Therapieplan nur eine Instanz gibt, erhält man hier nur einen zweiten Verweis auf das gleiche darunterliegende Objekt.
Rückgabe:
Isom.Plan.TherapyPlan
Das geklonte Objekt.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.ContainsAction

Prüft, ob eine bestimmte Aktion im Therapieplan enthalten ist.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.ContainsAction  ( Isom.Plan.TherapyPlanAction  actionTemplate  ) 

Prüft, ob eine bestimmte Aktion im Therapieplan enthalten ist.

Es wird geprüft, ob mindestens ein Element im Therapieplan mit der angegebenen Aktion in allen gesetzten Eigenschaften übereinstimmt. D.h. es werden nur die Eigenschaften geprüft, die im Parameter actionTemplate auch gesetzt sind.

Es werden sowohl reale Aktionen als auch virtuelle Aktionen (vgl. TherapyPlan.GetActions()) berücksichtigt.

  // Prüft ob der Plan eine Programmierung für das Steuergerät an der Adresse 64 enthält 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Context.EcuList list = Isom.Context.FutureVehicleContext.GetInstance().GetEcus(); 
  Isom.Context.Ecu ecu = list.FindByEcuAddress("64"); 
  Isom.Plan.TherapyPlanAction tpa = tp.CreateEcuAction( "Flash", ecu ); 
  if(tp.ContainsAction( tpa )) 
  { 
      // ... 
  } 
Parameter:
actionTemplate  die zu suchende Aktion
Rückgabe:
Isom.Base.Boolean
Die erzeugte Aktion
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls actionTemplate.IsVoid() gilt.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.CreateAction

Erzeugt eine nicht Steuergeräte-bezogene Aktion.

objectbound Isom.Plan.TherapyPlanAction Isom.Plan.TherapyPlan.CreateAction  ( Isom.Base.String  actionName  ) 

Erzeugt eine nicht Steuergeräte-bezogene Aktion.

Eine nicht Steuergeräte-bezogene Aktion wirkt entweder auf mehrere Steuergeräte oder auf kein Steuergerät oder auf das Gesamtfahrzeug.

Zu beachten:
Die Aktion wird nicht automatisch zum Therapieplan hinzugefügt, dafür ist TherapyPlan.Add(TherapyPlanAction) explizit aufzurufen.
  // Schreiben des Fahrzeugsauftrags hinzufügen 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanAction tpa = tp.CreateAction( "DeployVehicleOrder" ); 
  if(tp.Add( tpa ).Failed()) 
  { 
      // Fehlerbehandlung 
  } 
Parameter:
actionName  Aktionsname
Rückgabe:
Isom.Plan.TherapyPlanAction
Die erzeugte Aktion
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls der Aktionsname leer oder Void ist.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.CreateEcuAction

Erzeugt eine Steuergeräte-bezogene Aktion.

objectbound Isom.Plan.TherapyPlanAction Isom.Plan.TherapyPlan.CreateEcuAction  ( Isom.Base.String  actionName,
Isom.Context.Ecu  ecu  )

Erzeugt eine Steuergeräte-bezogene Aktion.

Eine Steuergeräte-bezogene Aktion wirkt ausschließlich auf ein Steuergerät. Hier wird das Steuergerät über ein (partiell) befülltes Ecu-Fachobjekt vorgegeben.

Zu beachten:
Die Aktion wird nicht automatisch zum Therapieplan hinzugefügt, dafür ist TherapyPlan.Add(TherapyPlanAction) explizit aufzurufen.
  // Steuergerät mit Diagnoseadresse 16 ermitteln 
  Isom.Context.FutureVehicleContext fvc = Isom.Context.FutureVehicleContext.GetInstance(); 
  Isom.Context.EcuList fvcEcus = fvc.GetEcus(); 
  Isom.Context.Ecu ecu = fvcEcus.FindByEcuAddress( "16" ); 

  if(ecu.IsVoid().Not()) 
  { 
      // Programmierung hinzufügen 
      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
      Isom.Plan.TherapyPlanAction tpa = tp.CreateEcuAction( "Flash", ecu ); 
      if(tp.Add( tpa ).Failed()) 
      { 
          // Fehlerbehandlung 
      } 
  } 
Parameter:
actionName  Aktionsname
ecu  Das Steuergerät, auf das sich die Aktion bezieht.
Rückgabe:
Isom.Plan.TherapyPlanAction
Die erzeugte Aktion
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls der Aktionsname leer oder Void ist.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.CreateEcuGroupAction

Erzeugt eine Steuergeräte-bezogene Aktion.

objectbound Isom.Plan.TherapyPlanAction Isom.Plan.TherapyPlan.CreateEcuGroupAction  ( Isom.Base.String  actionName,
Isom.Base.String  diagGroup  )

Erzeugt eine Steuergeräte-bezogene Aktion.

Eine Steuergeräte-bezogene Aktion wirkt ausschließlich auf ein Steuergerät. Hier wird das Steuergerät über einen Diagnosegruppennamen vorgegeben.

Wenn ein passendes Ecu-Objekt bereits in der Steuergeräteliste des Ist-Zustands existiert, wird dieses verwendet. Ansonsten wird ein neues Ecu-Objekt erzeugt, das lediglich die gruppenbezogenen Informationen aus der ISOM-Fahrzeugbeschreibung enthält und nicht automatisch zum Ist-Zustand hinzugefügt wird.

Zu beachten:
Die Aktion wird nicht automatisch zum Therapieplan hinzugefügt, dafür ist TherapyPlan.Add(TherapyPlanAction) explizit aufzurufen.
  // Programmieren des Steuergeräts mit dem Diagnosegruppennamen D_KLIMA 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanAction tpa = tp.CreateEcuGroupAction( "Flash", "D_KLIMA" ); 
  if(tp.Add( tpa ).Failed()) 
  { 
      // Fehlerbehandlung 
  } 
Parameter:
actionName  Aktionsname
diagGroup  Aktionsname
Rückgabe:
Isom.Plan.TherapyPlanAction
Die erzeugte Aktion
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls der Aktionsname leer oder Void ist.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.CreateOrderingAction

Erzeugt eine Steuergeräte-bezogene Aktion mit Bestellinformation.

objectbound Isom.Plan.TherapyPlanAction Isom.Plan.TherapyPlan.CreateOrderingAction  ( Isom.Base.String  actionName,
Isom.Context.Ecu  ecu,
Isom.Plan.OrderingInfoList  orderingAlternatives  )

Erzeugt eine Steuergeräte-bezogene Aktion mit Bestellinformation.

Eine Steuergeräte-bezogene Aktion wirkt ausschließlich auf ein Steuergerät. Hier wird das Steuergerät wie in der Funktion CreateEcuAction() über ein (partiell) befülltes Ecu-Fachobjekt vorgegeben.

Die Aktion wird mit

Zu beachten:
Die Aktion wird nicht automatisch zum Therapieplan hinzugefügt, dafür ist TherapyPlan.Add(TherapyPlanAction) explizit aufzurufen.
  OrderingInfoList orderingInfoList = OrderingInfoList.CreateOrderingInfoList(); 
  // ... Liste mit Bestellinformation befüllen 

  // Steuergerät mit Diagnoseadresse 16 ermitteln 
  Isom.Context.FutureVehicleContext fvc = Isom.Context.FutureVehicleContext.GetInstance(); 
  Isom.Context.EcuList fvcEcus = fvc.GetEcus(); 
  Isom.Context.Ecu ecu = fvcEcus.FindByEcuAddress( "16" ); 

  if(ecu.IsVoid().Not()) 
  { 
      // Tausch hinzufügen 
      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
      Isom.Plan.TherapyPlanAction tpa = tp.CreateOrderingAction( "Replace", ecu, orderingInfoList ); 
      if(tp.Add( tpa ).Failed()) 
      { 
          // Fehlerbehandlung 
      } 
  } 
Parameter:
actionName  Aktionsname
ecu  Das Steuergerät, auf das sich die zu bestellende Einheit bezieht.
orderingAlternatives  Bestellinformationen
Rückgabe:
Isom.Plan.TherapyPlanAction
Die erzeugte Aktion
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetActions

Ermittelt alle Aktionen des Therapieplans.

objectbound Isom.Plan.TherapyPlanActionList Isom.Plan.TherapyPlan.GetActions  (  ) 

Ermittelt alle Aktionen des Therapieplans.

Die Liste enthält alle Aktionen (inkl. virtueller Aktionen) im Therapieplan. Virtuelle Aktionen sind nicht-Blatt-Knoten im Therapieplan, z.B. Aktionen, die an Filterfunktionen übergeben wurden.

Aktionen, die von anderen Aktionen verdeckt werden, sind hingegen nicht in der Liste enthalten.

Ebenso nicht zurückgegeben werden

  • Aktionen, die an anderer Stelle neu geplant (Rescheduled) wurden,
  • Aktionen, die explizit entfert (Purged) wurden sowie
  • Teilpläne, die nur permanent ausgeblendete (Purged) Aktionen enthalten.

Die Reihenfolge entspricht der Einfügereihenfolge in den Therapieplan.

Zu beachten:
Die zurückgegebene Liste umfasst neben Aktionen, welche schon endgültig im Therapieplan enthalten sind, auch die Aktionen, die im Rahmen der aktuell aktiven Filteraufruf-Hierarchie gerade eingefügt werden (z.B. die nativen Aktionen während des Aufrufs von FilterNativePlan()).
Siehe auch:
Isom.Plan.TherapyPlan.GetDeclinedActions() für abgelehnte Aktionen
  // Alle geplanten Aktionen protokollieren 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanActionList plannedActions = tp.GetActions(); 
  plannedActions.Reset(); 
  while( plannedActions.HasNext() ) 
  { 
      Isom.Plan.TherapyPlanAction tpa = plannedActions.Next(); 
      if( tpa.IsVirtual().Not() ) 
      { 
          System.Stdout( tpa.GetActionText() ); 
      } 
  } 
Rückgabe:
Isom.Plan.TherapyPlanActionList
Liste aller enthaltenen Aktionen (inkl. virtueller)
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetAllMessages

Ermittelt die Liste aller Therapie-begleitenden Nachrichten (z.B.

objectbound Isom.Base.StringDictionary Isom.Plan.TherapyPlan.GetAllMessages  (  ) 

Ermittelt die Liste aller Therapie-begleitenden Nachrichten (z.B.

zur Anzeige im Abschlussbericht).

Zu beachten:
Die Einordnung und Interpretation obliegt dem Client.
Siehe auch:
Isom.Plan.TherapyPlan.AddMessage()
Isom.Plan.TherapyPlan.RemoveMessage()
  Isom.Base.StringDictionary msgDict = Isom.Plan.TherapyPlan.GetInstance().GetAllMessages(); 
  Isom.Base.StringList keys = msgDict.GetKeys (); 
  keys.Reset(); 
  while(keys.HasNext()) 
  { 
      Isom.Base.String msg = ""; 
      Isom.Base.String key=keys.Next(); 
      msg.Append( key ); 
      msg.Append( ": " ); 
      msg.Append( msgDict.Get(key) ); 

      Isom.Sys.System.Stdout( msg ); 
  } 
Rückgabe:
Isom.Base.StringDictionary
ID-Werte-Paare der hinzugefügten Nachrichten.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetDeclinedActions

Ermittelt Aktionen, die von der Logistik abgelehnt wurden.

objectbound Isom.Plan.TherapyPlanActionList Isom.Plan.TherapyPlan.GetDeclinedActions  (  ) 

Ermittelt Aktionen, die von der Logistik abgelehnt wurden.

Es werden alle Aktionen zurückgegeben, die von der Logistik abgelehnt und somit nicht in den Therapieplan übernommen wurden.

Zu beachten:
Die Funktionalität wird nur von einigen externen Ausführungssystemen unterstützt. Auf anderen Systemen wird eine leere Liste oder Void zurückgegeben.
Siehe auch:
Isom.Plan.TherapyPlan.GetActions() für effektiv geplante Aktionen
  Boolean CalculateFinalPlan() 
  { 
      // Neuen Soll-Kontext mit manuellen Erweiterungen an die Logistik übergeben: 
      Isom.Context.FutureVehicleContext futureContext = Isom.Context.FutureVehicleContext.GetInstance(); 
      if (futureContext.CalcFinalFutureContext().Failed()) 
      { 
          return false; 
      } 

      // Therapieplan für den neuen Soll-Kontext von Einsprungspunkt erzeugen lassen: 
      if (futureContext.GeneratePlan().Failed()) 
      { 
          return false; 
      } 

      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance (); 
      Isom.Plan.TherapyPlanActionList declined = tp.GetDeclinedActions(); 
      if(declined.IsEmpty().Not()) 
      { 
          String message = "Abgelehnte Aktionen:"; 
          declined.Reset(); 
          while(declined.HasNext()) 
          { 
              Isom.Plan.TherapyPlanAction act = declined.Next(); 
              message.Append(" "); 
              message.Append(act.GetActionText()); 
          } 

          // Warnung anzeigen und weitermachen (restliche Aktionen ausführen) 
          Helpers.ShowOkMsg ("Warnung", message); 
      } 

      return true; 
  } 
Rückgabe:
Isom.Plan.TherapyPlanActionList
Abgelehnte Aktionen
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls der Therapieplan noch keinen Logistikplan enthält (d.h. wenn noch kein Logistikplan berechnet ist).
Es wird das Void-Objekt zurückgegeben, falls der Fachdienst keine Liste abgelehnter Aktionen geliefert hat.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetEditableActions

Ermittelt alle nicht Steuergeräte-bezogenen Aktionen, die vom Autor als [EditableAction(...)] markiert wurden.

objectbound Isom.Plan.TherapyPlanActionList Isom.Plan.TherapyPlan.GetEditableActions  (  ) 

Ermittelt alle nicht Steuergeräte-bezogenen Aktionen, die vom Autor als [EditableAction(...)] markiert wurden.

Zu beachten:
Die Steuergeräte-bezogenen Aktionen lassen sich über Ecu.GetEditableActions() ermitteln.
Die Sichtbarkeit kann über TherapyPlanAction.IsVisibleAsEditableAction() ermittelt werden.
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanActionList editableActions = tp.GetEditableActions(); 
  editableActions.Reset(); 
  while( editableActions.HasNext() ) 
  { 
      Isom.Plan.TherapyPlanAction tpa = editableActions.Next(); 
      System.Stdout( tpa.GetActionText() ); 
  } 
Rückgabe:
Isom.Plan.TherapyPlanActionList
Liste aller nicht Steuergeräte-bezogenen hinzufügbaren Aktionen.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetFilterChainActions

Ermittelt die Filter-Folge der aktuellen Einfügeoperation vom First-Level-Element bis zum aktuell einzufügenden Element.

objectbound Isom.Plan.TherapyPlanActionList Isom.Plan.TherapyPlan.GetFilterChainActions  (  ) 

Ermittelt die Filter-Folge der aktuellen Einfügeoperation vom First-Level-Element bis zum aktuell einzufügenden Element.

Die Filter-Folge entspricht der Folge von der "oberen" virtuellen Aktionen entlang des aktuell bearbeiteten Teilbaums gemäß der Einfügereihenfolge in den Therapieplan.

Das Wurzel-Element des Therapieplan namens "TherapyPlan" ist in der Filter-Folge nicht enthalten.

Zu beachten:
Die Funktion ist nur innerhalb einer Aufrufhierarchie von FilterFunktionen sinnvoll.
Siehe auch:
Isom.Plan.TherapyPlan.GetActions()
  Boolean Filter...( Isom.Plan.TherapyPlanAction action ) 
  { 
      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 

      Isom.Plan.TherapyPlanActionList fcas = tp.GetFilterChainActions(); 
      Isom.Plan.TherapyPlanAction pattern = tp.CreateAction( "RetrofitCCC" ); 

      // prüfen, ob diese Aktion als Teil der Umrüstung "RetrofitCCC" eingefügt wird 
      if( fcas.Contains( pattern ) ) 
      { 
          // ... 
      } 
  } 
Rückgabe:
Isom.Plan.TherapyPlanActionList
Filterkette
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls im Ausführungsfaden keine Filterhierarchie ermittelbar ist.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.GetInstance

Ermittelt den singulären, für diese ISOM-Sitzung gültigen Therapieplan.

Isom.Plan.TherapyPlan Isom.Plan.TherapyPlan.GetInstance  (  ) 

Ermittelt den singulären, für diese ISOM-Sitzung gültigen Therapieplan.

Rückgabe:
Isom.Plan.TherapyPlan
Der für diese ISOM-Sitzung singuläre Therapieplan.
Datum:
letzte Änderung am 26.04.2010
Isom.Plan.TherapyPlan.GetMissingFiles

Überprüft, ob zu allen Aktionen des Therapieplans die erforderlichen Steuergerätedaten vorhanden sind.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.GetMissingFiles  (  ) 

Überprüft, ob zu allen Aktionen des Therapieplans die erforderlichen Steuergerätedaten vorhanden sind.

Verwendungsbeispiel:
 using Isom.Plan.*; 
 ... 
       TherapyPlan tp = TherapyPlan.GetInstance(); 
       tp.GetMissingFiles(); 
       TherapyPlanActionList actions = tp.GetActions(); 
       actions.Reset(); 
       while (actions.HasNext()) 
       { 
           TherapyPlanAction tpa = actions.Next(); 
           String missingSwu = tpa.GetProp("Swu:Missing"); 
           if (missingSwu.Equals("").Not())  // Zeichenkette ist nicht leer oder Void 
           { 
               //Fehler 
           } 
       } 
 ... 
Rückgabe:
Isom.Base.Boolean
true im Erfolgsfall, false sonst.
Isom.Plan.TherapyPlan.IsLogisticsConsistent

Prüft, ob alle benötigten Logistikdaten vorhanden sind.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.IsLogisticsConsistent  (  ) 

Prüft, ob alle benötigten Logistikdaten vorhanden sind.

Für alle Aktionen im Therapieplan wird geprüft

  • ob Logistikdaten benötigt werden
  • und wenn ja, ob die Logistikdaten bereits ermittelt wurden.

Zu beachten:
Der Aufruf ist logisch äquivalent zu TherapyPlan.GetInstance().At(0).IsLogisticsConsistent()
Siehe auch:
Isom.Plan.TherapyPlanAction.IsLogisticsConsistent()
  Boolean CalculateFinalPlan () 
  { 
      // Neuen Soll-Kontext mit manuellen Erweiterungen an die Logistik übergeben: 
      Isom.Context.FutureVehicleContext futureContext = Isom.Context.FutureVehicleContext.GetInstance(); 
      if (futureContext.CalcFinalFutureContext().Failed()) 
      { 
          return false; 
      } 

      // Therapieplan für den neuen Soll-Kontext von Einsprungspunkt erzeugen lassen: 
      if (futureContext.GeneratePlan().Failed()) 
      { 
          return false; 
      } 

      Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance (); 
      if( tp.IsLogisticsConsistent().Failed() ) 
      { 
          // Fehler protokollieren und Ausführung abbrechen 
          return false; 
      } 

      // ... 

      return true; 
  } 
Rückgabe:
Isom.Base.Boolean
false für mind. eine Logistik-relevante Aktion liegen die benötigten Logistikdaten nicht vor, true für alle Logistik-relevanten Aktionen sind die Logistikdaten vorhanden oder es existieren keine logistikrelevanten Aktionen.
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls während der Ermittlung der Logistikrelevanz technische Fehler auftreten.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.IsVoid

Bestimmt, ob es sich um das Void-Objekt handelt.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.IsVoid  (  ) 

Bestimmt, ob es sich um das Void-Objekt handelt.

Rückgabe:
Isom.Base.Boolean
true, falls dies das Void-Objekt ist, false sonst.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.ReevaluateDataAvailability

Neubewertung der Datenverfügbarkeit aller Aktionen.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.ReevaluateDataAvailability  (  ) 

Neubewertung der Datenverfügbarkeit aller Aktionen.

Bewertet die Datenverfügbarkeit aller mit den Aktionen im Therapieplan assoziierten Dateneinheiten neu.

  Isom.Plan. TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  if( tp.ReevaluateDataAvailability().Failed() ) 
  { 
      // Planausführung verhindern und mit Fehlermeldung abbrechen 
  } 
Rückgabe:
Isom.Base.Boolean
true im Erfolgsfall, false sonst.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.Remove

Enfernt eine Aktion aus dem Therapieplan.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.Remove  ( Isom.Plan.TherapyPlanAction  action  ) 

Enfernt eine Aktion aus dem Therapieplan.

Es werden alle unabhängigen Vorkommen der angegebenen Aktion entfernt, d.h. alle Vorkommen, die direkt in den Therapieplan eingefügt wurden. Ist die angegebene Aktion dagegen von einer weiteren Aktion (durch deren Filterfunktion) als Abhängigkeit hinzugefügt worden, dann wird sie nicht entfernt. Bei erfolglosen Entfernversuchen (return false) bleibt der Therapieplan unverändert.

Zu beachten:
Diese Funktion sollte ausschließlich in ISOM/L-Programmen verwendet werden, z.B. in Einsprungspunkten. Für Aktionen, die als manuell hinzugefügt wurden, ist stattdessen der Einsprungspunkt RemoveActionManually zu verwenden.
  // Schreiben des Fahrzeugsauftrags aus dem Plan entfernen 
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Plan.TherapyPlanAction tpa = tp.CreateAction( "DeployVehicleOrder" ); 
  if(tp.Remove( tpa ).Failed()) 
  { 
      // Fehlerbehandlung: Aktion konnte nicht entfernt werden 
  } 
Achtung:
Eine Aktion ist erst dann im Therapieplan enthalten, nachdem ihre Filterfunktion erfolgreich ausgeführt wurde. Es ist daher nicht möglich, eine Aktion innerhalb der eigenen Filterfunktion mit Remove wieder zu entfernen. Stattdessen sollte die Filterfunktion in diesem Fall false zurückgeben.
Benachrichtigungen
Wenn die Aktion aus Plan entfernt wurde, sendet ISOM eine Benachrichtigung an die steuernde Anwendung. Die Benachrichtigung kann z.B. eine Aktualisierung der Darstellungen des Steuergerätebaums und der Aktionsliste auslösen.
Parameter:
action  die zu entfernende Aktion
Rückgabe:
Isom.Base.Boolean
true nach erfolgreichem Entfernen, false sonst.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.RemoveMessage

Entfernt eine Therapie-begleitende Nachricht von der Anzeige im Abschlussbericht.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.RemoveMessage  ( Isom.Base.String  id  ) 

Entfernt eine Therapie-begleitende Nachricht von der Anzeige im Abschlussbericht.

Siehe auch:
Isom.Plan.TherapyPlan.AddMessage()
Isom.Plan.TherapyPlan.GetAllMessages()
  Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance(); 
  Isom.Base.StringDictionary msgDict = tp.GetAllMessages(); 
  Isom.Base.StringList keys = msgDict.GetKeys(); 
  keys.Reset(); 
  if(keys.HasNext()) 
  { 
      // entfernt die erste Nachricht 
      tp.RemoveMessage(keys.Next()); 
  } 
Benachrichtigungen
Wenn Nachrichten vom Plan entfernt wurden, sendet ISOM eine Benachrichtigung an die steuernde Anwendung.
Parameter:
id  technische ID für die Nachricht (nicht übersetzbar)
Rückgabe:
Isom.Base.Boolean
false derzeit nie, true wenn erfolgreich entfernt (derzeit immer).
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls die ID Void ist.
Es wird das Void-Objekt zurückgegeben, falls die ID noch nicht existiert.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.RestoreNativePlan

Ersetzt den aktuellen Therapieplan durch den nativen Therapieplan.

objectbound Isom.Base.Boolean Isom.Plan.TherapyPlan.RestoreNativePlan  (  ) 

Ersetzt den aktuellen Therapieplan durch den nativen Therapieplan.

Diese Funktion entfernt (ersatzlos) alles aus dem Therapieplan außer dem Knoten des nativen Therapieplans. Von den Aktionen des nativen Therapieplans werden alle "Purged"- Markierungen durch Zustandswechsel auf den Initialzustand 'Isom.Execution.ToDo' entfernt.

Bei erfolglosen Entfernversuchen (return 'Void') bleibt der Therapiebaum unverändert.

  // ContextTerme werden in Sichtbarkeitstermen von Aktionen verwendet 
  [ContextTerm ("PlanNotPurged", "NOT Global:GLOBALKEY_PLANPURGED")] 

  // Sofort ausführbare Aktion: "PurgePlan" 
  [EditableAction ("PurgePlan", "PlanNotPurged AND Planned:*", true)] 
  [ActionText ("PurgePlan", "Alle Aktionen entfernen")] 

  // Sofort ausführbare Aktion: "RestoreNativePlan" 
  [EditableAction ("RestoreNativePlan", "NOT PlanNotPurged", true)] 
  [ActionText ("RestoreNativePlan", "Plan wiederherstellen")] 

  namespace Vendor 
  { 
      // Implementierung der sofort ausführbaren Aktion "PurgePlan" 
      // Alle Aktionen des Plans ausblenden (per "Purge") 
      Isom.Base.Boolean RunPurgePlan (Isom.Plan.TherapyPlanAction action) 
      { 
          // Therapieplan holen 
          Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance (); 

          // Alle Aktionen ausblenden 
          if (tp.GetActions().At(0).Purge().Failed()) 
          { 
              return false; 
          } 

          // Flagge setzen: "RestoreNativePlan" wird erlaubt 
          Isom.Base.Number.AddGlobal ("GLOBALKEY_PLANPURGED", 1); 

          return true; 
      } 

      // Implementierung der sofort ausführbaren Aktion "RestoreNativePlan" 
      // Nativen Plan wiederherstellen ("PurgePlan" aufheben) 
      Isom.Base.Boolean RunRestoreNativePlan (Isom.Plan.TherapyPlanAction action) 
      { 
          // Therapieplan holen 
          Isom.Plan.TherapyPlan tp = Isom.Plan.TherapyPlan.GetInstance (); 

          Isom.Base.Boolean changed = tp.RestoreNativePlan(); 

          if( changed.IsVoid() ) 
          { 
              return false; 
          } 

          // Flagge zurücksetzen: "PurgePlan" wird erlaubt 
          Isom.Base.Number.RemoveGlobal ("GLOBALKEY_PLANPURGED"); 

          return true; 
      } 
  } // namespace Vendor 
Benachrichtigungen
Wenn Aktionen aus Plan entfernt oder zum Plan hinzugefügt wurden, sendet ISOM Benachrichtigungen an die steuernde Anwendung. Auch wenn Aktionen ihren Zustand ändern, werden Benachrichtigungen gesendet. Die Benachrichtigungen können z.B. eine Aktualisierung der Darstellungen des Steuergerätebaums und der Aktionsliste auslösen.
Rückgabe:
Isom.Base.Boolean
true wenn mindestens ein Element geändert (entfernt oder Zustandswechsel), false sonst.
Ausnahmebehandlung:
Es wird das Void-Objekt zurückgegeben, falls kein nativer Therapieplan existiert. Der Therapieplan dann bleibt unverändert.
Datum:
letzte Änderung am 04.05.2010
Isom.Plan.TherapyPlan.Void

Erzeugt ein ungültiges Objekt.

Isom.Plan.TherapyPlan Isom.Plan.TherapyPlan.Void  (  ) 

Erzeugt ein ungültiges Objekt.

Die Funktion kann in Fehlerfällen verwendet werden, um z.B. einen ungültigen Funktionsrückgabewert zu erzeugen.

Rückgabe:
Isom.Plan.TherapyPlan
Ungültiges Objekt.
Datum:
letzte Änderung am 04.05.2010

Version 9.10.1.0 vom 25 November 2013