TstDiff - Bausteinaufruf

Die TstDiff-Aufgabe BSAR vergleicht aufgezeichnete Bausteinaufrufe und speichert die Unterschiede im XML-Format in der Protokolldatei.

Die zu vergleichenden Bausteinaufrufe können aus zwei unterschiedlichen Aufzeichnungen oder aus einer Aufzeichnung stammen.

Syntax

tstDiff [tstdiff-Optionen] BSAR Aufz=<Name1> [Aufz=<Name2>] 
             Bsar=<BstnName1>.<Event1>.<Occ1> [Bsar=<BstnName2>.<Event2>.<Occ2>] 
             [-ip<0|1>]
             ["Opts=<Optionen>"]

Argumente

AufzMit Aufz=<Name> geben Sie den Namen einer Aufzeichnung an, die für den Vergleich herangezogen wird. Sie können dieses Argument ein- oder zweimal übergeben. Wenn nur eine Aufzeichnung angegeben wird, müssen Sie zwei Bsar's spezifizieren.
BsarMit Bsar=<Name>.<Evnt>.<Occ> benennen Sie einen Bausteinaufruf, der für den Vergleich herangezogen wird.
<Name> ist der Namen des Bausteins
<Event> der Namen des Ereignisses, das in dem Baustein ausgelöst wurde, und
<Occ> gibt an, der wievielte Aufruf (Occurence) dieses Bausteins (ggf. mit dem angegebenen Event) verglichen werden soll. Sie können dieses Argument ein oder zweimal übergeben. Wenn nur ein Bausteinaufruf angegeben wird, müssen Sie zwei Aufzeichnungen spezifizieren. Wenn beide Aufrufe aus einer Aufzeichnung stammen, können Sie so z.B. den 1. und 3. Aufruf des Bausteins mit einem bestimmten Ereignis vergleichen. Wenn Sie <Occ> nicht angeben, wird der erste Aufruf angenommen. Wenn Sie <Name>, <Evnt> und oder <Occ> weglassen, wird TstDiff versuchen einen Baustein zu finden, der den restlichen Angaben entspricht.
-ip-ip[0|1] gibt an ob bei der Occurance Angabe die Pre- und Post- View ignoriert werden sollen. Standardgemäß werden die Pre- und Post- View ignoriert
OptsDie Optionen für die Aufgabe BSAR müssen in dem Format „Opts=<Optionen>“ (in Hochkommata!) angegeben werden, um sie von den allgemeinen tstdiff-Optionen unterscheiden zu können. Hier können Sie aufgabenbezogene Optionen angeben, sowie bestimmte allgemeine Optionen übersteuern.

Optionen

Der Bausteinaufrufvergleich kennt folgende Optionen:

-c-c[0|1|2] gibt an, ob bei den Objekten, Conditions und Oops-Meldungen alle Inhalte in der Differenzliste ausgegeben werden sollen, oder nur Unterschiede:
-c1 ist der Default und bedeutet, dass der Inhalt von Objekten usw., in denen ein Unterschied festgestellt wurde, komplett ausgegeben wird.
-c0 bedeutet, dass nur die Felder von Objekten usw. ausgegeben werden, in denen Unterschiede festgestellt wurden.
-c2 bedeutet, dass alle Inhalte von Objekten usw. komplett ausgegeben werden, egal ob Unterschiede vorhanden sind oder nicht.
-dmMit der Option -dm[<Schwellenwert>] erreichen Sie, dass in Listenobjekten die Einträge nicht der Reihenfolge nach verglichen werden, sondern dass diejenigen Einträge miteinander verglichen werden, die am meisten gemeinsam haben. Über die Angabe [Schwellenwert] geben Sie an, wie viele Unterschiede höchstens vorhanden sein dürfen, damit Einträge miteinander verglichen werden können: je niedriger der Wert, desto genauer müssen die Einträge übereinstimmen. Der Default ist 0, d.h. die Einträge müssen gleich sein. Bei der Suche nach vergleichbaren Einträgen geht TstDiff von der Liste im ersten Bausteinaufruf aus, und versucht passende Einträge aus dem zweiten Bausteinaufruf zu finden. Jeder Eintrag wird nur ein Mal benutzt. Welche Einträge jeweils miteinander verglichen wurden, ist in der erstellen XML-Datei am Orderattribut erkennbar (bsp: <Item OrderLeft=„2“ OrderRight=„1“> /Item> bedeutet linker Eintrag 2 ist verglichen worden mit rechtem Eintrag 1).
-drgibt ab, ob die Unterschiede auch bewertet werden sollen:
-dr0 : Die Unterschiede werden nicht bewertet.
-dr1 : Die Unterschiede werden bewertet.
-dvMit -dv <Datei> können Sie die Regeln angeben, die beim Vergleich zu berücksichtigen sind.
-o-o <Protokoll-Datei> gibt an, ob das Ergebnis dieses Vergleichs in die allgemeine Outputdatei oder in eine für dieses Kommando eigene Outputdatei geschrieben werden soll.
-view-view <XSL> veranlasst, dass das erstellte Dokument direkt angezeigt wird.

Protokoll

Im Protokoll wird zunächst angegeben, aus welcher Aufzeichnung (<Aufz>) die zu vergleichenden Bausteinaufrufe (<Bsar>) stammen. Danach folgt das eigentliche Differenzprotokoll, eingeleitet durch <DiffBsar>. Der Eintrag empty=„yes“ bedeutet, dass das Feld keinen Inhalt hat, oder dass dieser Oops/diese Condition usw. nicht vorkam. Der Eintrag missing=„yes“ bedeutet, dass das Feld in der Datenstruktur (DSTR) nicht vorhanden ist. Anstelle von <InsertCount>, wie im untenstehenden Beispiel, könnte auch <DeleteCount> stehen, wenn die Anzahl der Items in <OutputCount> geringer ist als die in <InputCount>, erscheint eine Angabe <DeleteCount>, ist die Anzahl der Items größer (wie in untenstehendem Beispiel) wird ein <InsertCount> angegeben.

<?xml version="1.0" encoding="utf-8"?>
<DiffBsarReport version="1.0">
  <Aufz pos="Left">
    <Name>AVL2001011003</Name>
    <Bsar>
      <Appl>TEST</Appl>
      <Name>AF-AVL-TEST-C</Name>
      <Evnt>DO-SPEZIAL</Evnt>
      <Occ>1</Occ>
    </Bsar>
  </Aufz>
  <Aufz pos="Right">
    <Name>AVL2001011006</Name>
    <Bsar>
      <Appl>TEST</Appl>
      <Name>AF-AVL-TEST-VB</Name>
      <Evnt>UEBERTRAGEN</Evnt>
      <Occ>1</Occ>
    </Bsar>
  </Aufz>
  <DiffBsar>
    <Type>
      <Left></Left>ASTR/Left>
      <Right>NFUN</Right>
    </Type>
    <Stat>
      <Left>OK</Left>
      <Right>ABBRUCH</Right>
    </Stat>
    <Time>
      <Total>
        <Left>5.739</Left>
        <Right>250</Right>
      </Total>
      <Func>
        <Left>5.010</Left>
        <Right>250</Right>
      </Func>
    </Time>
    <Callees>
      <CalleeCount>
        <Left>2</Left>
        <Right>0</Right>
      </CalleeCount>
      <Callee Order="1">
        <Name>
          <Left>AF-AVL-TEST-VB</Left>
          <Right empty="yes" />
        </Name>
        <Evnt>
          <Left>UEBERTRAGEN</Left>
          <Right empty="yes" />
        </Evnt>
      </Callee>
      <Callee Order="2">...</Callee>
    </Callees>
    <CndOp>
      <Cnd Name="ST-AVL-TEST(2)">
        <Severity>
          <Left>64</Left>
          <Right>32</Right>
        </Severity>
        <Title>
          <Left>TEST: AF-AVL-TEST-C.DO-SPEZIAL</Left>
          <Right>test: AF-AVL-TEST-VB.UEBERTRAGEN</Right>
        </Title>
        <Argument Order="1">
          <Left>AF-AVL-TEST-C</Left>
          <Right>AF-AVL-TEST-VB</Right>
        </Argument>
        <Argument Order="2">...</Argument>
        <Assoc Name="MyAssoc">
          <Left>MyValue</Left>
          <Right empty="yes" />
        </Assoc>
        <Assoc Name="MyAssoc2">...</Assoc>
      </Cnd>
      <Cnd Name="ST-AVL-TEST(1)">...</Cnd>
    </CndOp>
    <Oops>
      <Count>
        <Left>6</Left>
        <Right>0</Right>
      </Count>
      <OopsEntry ErrorCode="1073752366">
        <Left>d:\work\dll32\trt\taaom.c(4372): message I4000292e: Operation not allowed for (Stme/object/role): 'AF-AVL-TEST-C/SYSTVAR/REF'.</Left>
        <Right empty="yes" />
      </OopsEntry>
      <OopsEntry ErrorCode="1073751827">...</OopsEntry>
    </Oops>
    <Parm Name="STLMODL">
      <Type>
        <Left>PARM</Left>
        <Right>GLOB</Right>
      </Type>
      <Objt>
        <Left>Objtype1</Left>
        <Right>Objtype2</Right>
      </Objt>
      <Clas>
        <Left>REC</Left>
        <Right>LST</Right>
      </Clas>
      <Dstr>
        <Left>Dstr1</Left>
        <Right>Dstr2</Right>
      </Dstr>
      <Role>
        <Left>REF</Left>
        <Right>MOD</Right>
      </Role>
      <InputCount>
        <Left>2</Left>
        <Right>3</Right>
      </InputCount>
      <OutputCount>
        <Left>5</Left>
        <Right>8</Right>
      </OutputCount>
      <InsertCount>
        <Left>3</Left>
        <Right>5</Right>
      </InsertCount>
      <Items>
        <Item OrderLeft="1" OrderRight="1">
          <Field Name="000-START-TS">
            <Left>2001-01-10-18.08.51.796946</Left>
            <Right>2001-01-10-18.59.21.646838</Right>
          </Field>
          <Field Name="000-END-TS">
            <Left>missing="yes"</Left>
            <Right>2001-01-10-18.59.21.666838</Right>
          </Field>
        </Item>
        <Item OrderLeft="2" OrderRight="2">...</Item>
      </Items>
    </Parm>
    <Glob Name="SYSTVAR">... analog an Parm</Glob>
    <MissedParm Name="Parm1" />
    <MissedGlob Name="Glob1" />
    <NewParm Name="Parm2" />
    <NewGlob Name="Glob2" />
  </DiffBsar>
  <Count>29</Count>
</DiffBsarReport>

Der <Count> bei <DiffBsarReport> gibt an, wieviele Unterschiede festgestellt wurden. Der Eintrag empty=„yes“ bedeutet z.B., dass das Feld keinen Inhalt hat, oder dass diese Oops/Condition etcetera nicht vorkam. Der Eintrag missing=„yes“ bedeutet, dass das Feld in der Datenstruktur (DSTR) nicht vorhanden ist. Anstelle von <InsertCount> könnte auch <DeleteCount> kommen, wenn die Anzahl der Items in <OutputCount> geringer ist als die in <InputCount>.

Beispiel

Kommandozeile

TstDiff.exe -lo c:\t\tstdiff.log -o c:\t\tstdiff.xml bsar aufz=AVL2001011003 aufz=AVL2001011006 bsar=AF-AVL-TEST-C..1 "opts=-dm0 -c1"
TstDiff.exe -lo c:\t\tstdiff.log -o c:\t\tstdiff.xml -ex d:\work\tstdiff.txt

Scriptdatei

bsar aufz=AVL2001011003 aufz=AVL2001011006 bsar=AF-AVL-TEST-C..1 "opts=-dm0 -c1"

Auszug aus der Logdatei

2001-01-12-17.24.13.584024: Start TstDiff
2001-01-12-17.24.16.519027: Parsing 'bsar aufz=AVL2001011003 aufz=AVL2001011006 bsar=AF-AVL-TEST-C..1 "opts=-dm0 -c1"'.
2001-01-12-17.25.04.792025: Executing 'bsar aufz=AVL2001011003 aufz=AVL2001011006 bsar=AF-AVL-TEST-C..1 "opts=-dm0 -c1"'.
2001-01-12-17.25.04.792026: Changing 'AF-AVL-TEST-C..1' into 'AF-AVL-TEST-C.INITIIEREN.1'.
2001-01-12-17.25.04.792027: Changing 'AF-AVL-TEST-C..1' into 'AF-AVL-TEST-C.INITIIEREN.1'.
2001-01-12-17.25.12.994024: Done
2001-01-12-17.25.14.537024: Saving Document as 'c:\t\tstdiff.xml'.
2001-01-12-17.25.14.537025: End TstDiff
faq:syntax:tstdiff:bsar · Zuletzt geändert: 20.06.2018 15:59

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum