Automatische Berechnungen auf Basis von aktualisierten Nodes

www.altova.com Alle erweitern/reduzieren Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  SPS-Datei: Komplexe Funktionen > Automatische Berechnungen >

Automatische Berechnungen auf Basis von aktualisierten Nodes

Bei der Erstellung einer automatischen Berechnung (zweite automatische Berechnung), bei der ein Node verwendet wird, der von einer anderen automatischen Berechnung aktualisieret wird (erste automatische Berechnung), gibt es zwei mögliche Situationen:

 

Die beiden automatischen Berechnungen befinden sich in derselben Vorlage.
Die beiden automatischen Berechnungen befinden sich in unterschiedlichen Vorlagen.

 

Automatische Berechnungen in derselben Vorlage

Wenn sich die beiden automatischen Berechnungen in derselben Vorlage befinden, wird im SPS das folgende Verfahren angewendet:

 

1.Ein Node, der im XPath-Ausdruck der ersten automatischen Berechnung verwendet wird, wird geändert.
2.Alle Node-Werte im XML-Dokument werden gelesen und alle automatischen Berechnungen werden ausgeführt.
3.Nachdem die erste automatische Berechnung korrekt ausgeführt wurde, wird der angegebene XML Node (nennen wir ihn Node-A) aktualisiert. Die zweite automatische Berechnung, welche auf Node-A basiert, wird ausgeführt, verwendet aber den Wert von Node-A, bevor Node-A aktualisiert wurde. Dies liegt daran, dass der Wert von Node-A gelesen wurde, bevor der Node aktualisiert wurde, und seither nicht mehr gelesen wurde.
4.Wenn das Dokument nun auf irgendeine Weise bearbeitet wird oder wenn die Dokumentansichten geändert werden (Wechsel von und in die Authentic-Ansicht), so werden die Werte der Nodes erneut ausgelesen und die automatischen Berechnungen werden ausgeführt.
5.Nun wird die zweite automatische Berechnung ausgeführt. (Wenn mit dieser automatischen Berechnung ein Node aktualisiert werden soll, so muss ein Node, der in einem XPath-Ausdruck verwendet wird, wie dies bei Node-Aktualisierungen üblich ist, geändert werden, bevor die Aktualisierung durchgeführt wird.)

 

Die Zeitverzögerung zwischen der Aktualisierung von Node-A und der Auswertung der zweiten automatischen Berechnung mit dem aktualisierten Wert von Node-A könnte für den Benutzer der Authentic-Ansicht verwirrend sein. Um sicherzustellen, dass es nicht dazu kommt, sollte der XPath-Ausdruck der zweiten automatischen Berechnung am besten den XPath-Ausdruck der ersten automatischen Berechnung - und nicht den aktualisierten Node selbst - enthalten. Infolgedessen wird die zweite automatische Berechnung mit dem Input aus der ersten automatischen Berechung ausgeführt. D.h. die erste automatische Berechnung wird im Rahmen der zweiten ausgeführt, sodass die zweite Berechnung unabhängig davon ausgeführt werden kann, was in Node-A enthalten ist.

 

Beispiel

In der ersten automatischen Berechnung wird die Mehrwertsteuer für ein Produkt berechnet: Verwendet werden dazu die Nodes für den (i) Nettopreis und den (ii) Mehrwertsteuersatz; der Node für den Mehrwertsteuerbetrag wird aktualisiert; in der zweiten automatischen Berechnung wird der Bruttopreis berechnet. Der Bruttopreis ist die Summe von Nettopreis und Mehrwertsteuerbetrag; der Node für den Bruttopreis wird aktualisiert.

 

Die automatische Berechnung für den Mehrwertsteuerbetrag ist: NetPrice * VATRate div 100. Wenn der Mehrwertsteuersatz (VATRate) für das Produkt eingegeben wird, wird die automatische Berechnung ausgeführt und der Node VATAmount wird aktualisiert.
Wenn die automatische Berechnung zur Ermittlung des Bruttopreises NetPrice + VATAmount lautet, wird die automatische Berechnung mit dem Wert von VATAmount ausgeführt, der eingelesen wurde, bevor VATAmount aktualisiert wurde.
Wenn die automatische Berechnung zur Ermittlung des Bruttopreises jedoch NetPrice + (NetPrice * VATRate div 100) lautet, wird die automatische Berechnung mit dem Wert von VATRate ausgeführt und der Node GrossPrice wird aktualisiert. Der aktualisierte Node VatAmount wurde in der zweiten automatischen Berechnung ausgelassen.

 

Ein ausführliches Beispiel dazu finden Sie unter Beispiel: Eine Rechnung.

 

Automatischen Berechnung in unterschiedlichen Vorlagen

Wenn sich zwei automatische Berechnungen in unterschiedlichen Vorlagen befinden, kann ein durch die erste automatische Berechnung aktualisierter Node von der zweiten automatischen Berechnung verwendet werden. Dies liegt daran, dass das Ergebnis automatischer Berechnungen berechnet wird und die Nodes für jede Vorlage separat aktualisiert werden. Ein Beispiel dazu finden Sie unter Beispiel: Eine Rechnung.

 

 

 


© 2019 Altova GmbH