Transaktionen: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(37 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
(alternativer Suchbegriff Transaktion)
Im Auftragsarbeitsplatz ist über das Eingabefeld ganz rechts unten (Eintrag TRN) das Ausführen von benutzerdefinierten Transaktionen möglich. Die Transaktionen beziehen sich dabei auf die angezeigten Datensätze. Stellen Sie also vor dem Aufruf sicher, dass die richtige Baustelle, sowie die gewünschten Datensätze angezeigt werden:
Im Feld "TRN" sind folgende Eingaben möglich:
== AH1 ==
EXPORT*xml überprüfen
== AH2 ==
"Monteur Informiert" - Status aus den historischen Datensätzen löschen. Dadurch entfallen zu den aktuell angezeigten Terminen die "WEGFALL" und "TERMIN ALT:" Infos.
== AH3 ==
Die Datei ".\NonDa\Bericht.xls" wird geöffnet.
* In Spalte "C" muss sich die Postleitzahl der Liegenschaft befinden
* In Spalte "D" muss sich die Zählernummer (Alt) befinden.
Es wird eine Einzelauskunft zu allen Zählern erstellt, d.h. die angefragten Zähler werden genau in dieser Reihenfolge aufgelistet wie angefragt.
== AY3 ==
Daten aus den Historischen rücksichern
== AY4 ==
Ersetzen von Texten in den Textfeldern der Aufträge. Dazu wird im Anwenderverzeichnis (blauer Ordner im Hauptmenü!) die Datei AY4.txt verarbeitet:
"MONTEUR_INFO" | "INTERN_INFO" | "ZAEHLER_INFO" | "PROTOKOLL" | "LEISTUNGS_DETAILS" | "WIEDERVORLAGE_INFO"
<Suchbegriff1> "|" <NeuerBegriff1>
<Suchbegriff2> "|" <NeuerBegriff2>
<Suchbegriff3> "|" <NeuerBegriff3>
...
== AY5 ==
* auf einen Knopfdruck ein Bilder.zip der markierten im Anwenderverzeichnis zusammenstellen
* Im Moment nur FA, FN, auf alle Bilder auf Anfrage ausbaubar
== BO1 ==
* Diese Transaktion bezieht sich auf Aufträge und kümmert sich um das Auffinden und Zuordnen von Fotos
* Aus den Verzeichnissen in dem Systemparameter [[Systemeinstellungen#FotoRecherchePfad|FotoRecherchePfad=]] werden die Fotos gesucht, so wie ihr ursprünglicher Name war, und nach den neuesten Erkenntnissen in die Internet-Ablage UND in die OrgaMon-Foto-Baustellen-Verzeichnisse kopiert.
* Manuell kann diese Aktion im Auftrag, Reiter "Protokoll & Status", der "Refresh-Knopf" ausgeführt werden
== LU1 ==
wie BO1, jedoch ohne Veränderung der InternetAblage, nur das lokale Foto-Verzeichnis wird befüllt
== BO2 ==
Diese Transaktion bezieht sich auf Aufträge. Trage die Ausbaunummer nach in BAUSTELLE_R=
== BO3 ==
Lade die csv-Datei in "./Diagnose/BO3.csv", in einer Spalte muss ein "RID" stehen (nicht zwingend aber praktisch da dann auch über den grünen OLAP-Würfel im Auftragsarbeitsplatz das Volumen angezeigt werden kann). Alle weiteren Spalten der .csv enthalten Überschriften, die ganz genau mit Datenbank-Feldern übereinstimmen. Die Inhalte werden in den Datenbankfeldern durch die Werte der .csv überschrieben.
* Beispiel einer BO3.csv
RID;REGLER_NR_NEU
123;7ITR838999222
== FK1 ==
* Trägt die OBIS-Codes, die abgelesen werden sollen in ZAEHLWERKE_AUSBAU (im Reiter Intern) ein
* da OrgaMon von einem 1:1 Wechsel ausgehen muss wird der identische Wert auch in ZAEHLWERKE_EINBAU (im Reiter Intern) eingetragen
* Sammelt alle "tgw_obiscode" in der Datei <code>.\Diagnose\FK1.log.txt</code>
* Dadurch kann per Lupe bestimmt werden was draussen für verschiedene Auftragsarten vorkommen können
* Die Zählerarten sollten dementsprechend gesetzt werden
== HA1 ==
Ableseergebnisse aus .csv lesen und eintragen (mit Zählerstand)
== HA2 ==
Ableseergebnisse aus .csv lesen und eintragen (ohne Zählerstand)
== HA3 ==
aus den Interninfos diverse felder rauslöschen!
== HA4 ==
EXPORT_TAN löschen
== HA5 ==
EXPORT_TAN setzen (auf manuelle Meldung)
== HA6 ==
aus den Zaehler_infos Werte in Feld BRIEF_NAME2 übertragen
== HA7 ==
Beurteilung via QS und Ergebnis in "Jahresverbrauch"
== HA8 ==
QS deaktivieren durch Eintrag von "QS_UMGANGEN"
== HA9 ==
Ablesehinweise und Vorgezogen aktualisieren
== HAA ==
* alle Markieren, die in externer XLS Liste vorhanden sind
* Datei muss als .\NonDa\Bericht.xls gespeichert sein
* die Zählernummer muss in Excel-Spalte "D" angegeben sein
== HAB ==
IDOC Schreibweisen in den InternInfos anpassen
        Alt              Neu
        aegpl_devloc=    GeraeteplatzAlt=
        aeastl_anlage=    AnlageAlt=
        aeger_matnr=      MaterialnummerZaehlerAlt=
        aeger_sparte=    Sparte=
== HAC ==
* bei "Sparte=Einbau" wird "FA=," sichergestellt vorhandene Eintragungen bleiben erhalten
== HE1 ==
* Texte im Protokoll durch andere Texte ersetzen
* Erstellen Sie im Anwender-Pfad (Symbol blauer Ordner im OrgaMon-Hauptmenü) die Datei "Protokoll-Ersetzungen.txt"
FF=J;PY=J
FF=N;PY=N
* In diesem Beispiel werden eingabe im Protokoll-Feld "FF" nach "PY" migriert
== KE1 ==
"550G" zur Zählernummer wieder dazumachen
== KE2 ==
Bei allen angezeigten Aufträgen wird die Sperre (VON-BIS) korigiert. Dazu wird aus der Interninfo der Eintrag
<code>
<code>
    // Ha**
Ableseeinheit=
    procedure doHA1; // Ableseergebnisse aus .csv lesen und eintragen (mit Zählerstand)
</code>
    procedure doHA2; // Ableseergebnisse aus .csv lesen und eintragen (ohne Zählerstand)
 
    procedure doHA3(lRID: TList); // aus den Interninfos diverse felder rauslöschen!
zu Rate gezogen.
    procedure doHA4(lRID: TList); // *) EXPORT_TAN löschen
 
    procedure doHA5(lRID: TList); // *) EXPORT_TAN setzen (auf manuelle Meldung)
=== Baustelle mit dem RID=355 ===
    procedure doHA6(lRID: TList); // aus den Zaehler_infos Werte in Feld BRIEF_NAME2 übertragen
 
    procedure doHA7(lRID: TList); // *) Beurteilung via QS und Ergebnis in "Jahresverbrauch"
Diese Ableseeinheit wird in der Baustelle mit dem RID=355 unter dem Feld "Zählernummer" gesucht.
    procedure doHA8(lRID: TList); // *) QS deaktivieren durch Eintrag von "QS_UMGANGEN"
Die dortige Sperre wird in die aktuelle Ansicht übernommen.
    procedure doHA9(lRID: TList); // *) Ablesehinweise und Vorgezogen aktualisieren
 
    procedure doHAA(lRID: TList); // *) alle Markieren, die in externer XLS Liste vorhanden sind
=== Quelltext ===
                                  // -> .\NonDa\Bericht.xls
 
<code>
const
  cAbleseEinheit = 'Ableseeinheit';
var
  n: integer;
  AUFTRAG_R: integer;
  qAUFTRAG: TIB_Query;
  cAUFTRAG: TIB_Cursor;
  InternInfos: TStringList;
  AbleseEinheit: string;
  sBericht: TStringList;
  SperreVon, SperreBis: TAnfixDate;
  _SperreVon, _SperreBis: TAnfixDate;
  AktuellesJahr: integer;
  FehlendeAbleseEinheiten: TStringList;
begin
  BeginHourGlass;
  sBericht := TStringList.create;
  FehlendeAbleseEinheiten := TStringList.create;
  qAUFTRAG := DataModuleDatenbank.nQuery;
  cAUFTRAG := DataModuleDatenbank.nCursor;
  InternInfos := TStringList.create;
   
   
     // Ay****
  with cAUFTRAG do
     procedure doAY3(lRID: TList); // Daten aus den Historischen rücksichern
  begin
    sql.add('select SPERRE_VON,SPERRE_BIS from AUFTRAG where');
    sql.add(' (BAUSTELLE_R=355) and');
     sql.add(' (STATUS<>6) and');
     sql.add(' (ZAEHLER_NUMMER=:CROSSREF)');
    OPen;
  end;
   
   
     // Ah****
  with qAUFTRAG do
     procedure doAH1(LRID: TList); // EXPORT*xml überprüfen
  begin
     sql.add('select ZAEHLER_NUMMER,INTERN_INFO,SPERRE_VON,SPERRE_BIS from AUFTRAG where RID=:CROSSREF');
     sql.add('for update');
    OPen;
    for n := 0 to pred(lRID.count) do
    begin
      AUFTRAG_R := integer(lRID[n]);
      ParamByName('CROSSREF').AsInteger := AUFTRAG_R;
      if not(eof) then
      begin
   
   
    // Ke****
        // Ermittlung der AbleseEinheit noch unsicher!
    procedure doKE1(lRID: TList); // "550G" zur Zählernummer wieder dazumachen
        FieldByName('INTERN_INFO').AssignTo(InternInfos);
    procedure doKE2(lRID: TList); // Die Sperren aus einer Zusatz-Baustelle anhand der Ableseeinheit korriegieren
        AbleseEinheit := InternInfos.Values[cAbleseEinheit];
    procedure doKE3(lRID: TList); // BRIEF_STRASSE aus KUNDE_STRASSE übernehmen falls Hausnummer fehlt
        _SperreVon := DateTime2long(FieldByName('SPERRE_VON').AsDate);
    procedure doKE4(lRID:TList); // aus den Zaehler_infos Werte in das Feld ZAEHLER_NUMMER übertragen
        _SperreBis := DateTime2long(FieldByName('SPERRE_BIS').AsDate);
    procedure doKE5(lRID:TList); // Zähler-Infos um Konstante "Quelle=xml" ergänzen!
        SperreVon := _SperreVon;
    procedure doKE6(lRID: TList); // *) erneute Geolokalisierung erzwingen
        SperreBis := _SperreBis;
   
   
        if (AbleseEinheit <> '') then
        begin
          cAUFTRAG.ParamByName('CROSSREF').AsString := AbleseEinheit;
          cAUFTRAG.ApiFirst;
          if not(cAUFTRAG.eof) then
          begin
            SperreVon := DateTime2long(cAUFTRAG.FieldByName('SPERRE_VON').AsDate);
            SperreBis := DateTime2long(cAUFTRAG.FieldByName('SPERRE_BIS').AsDate);
          end
          else
          begin
            sBericht.add(cERRORTEXT +
              { } FieldByName('ZAEHLER_NUMMER').AsString +
              { } ': Ableseeinheit "' + AbleseEinheit +
              { } '" ist unbekannt!');
            if (FehlendeAbleseEinheiten.indexof(AbleseEinheit) = -1) then
              FehlendeAbleseEinheiten.add(AbleseEinheit);
          end;
        end
        else
        begin
          sBericht.add(cWARNINGText + ' ' + FieldByName('ZAEHLER_NUMMER').AsString + ': Ableseeinheit ist leer!');
        end;
        if DateOK(SperreVon) and DateOK(SperreBis) then
        begin
          AktuellesJahr := extractYear(DateGet);
          // Die Sperre auf das aktuelle Jahr setzen
          SperreVon :=
          { } Details2Long(AktuellesJahr,
            { } extractMonth(SperreVon),
            { } extractDay(SperreVon));
          SperreBis :=
          { } Details2Long(AktuellesJahr,
            { } extractMonth(SperreBis),
            { } extractDay(SperreBis));
          if SperreBis < SperreVon then
            SperreBis :=
            { } Details2Long(AktuellesJahr + 1,
              { } extractMonth(SperreBis),
              { } extractDay(SperreBis));
          if (_SperreVon <> SperreVon) or (_SperreBis <> SperreBis) then
          begin
            sBericht.add(cINFOText + ' ' + FieldByName('ZAEHLER_NUMMER').AsString + ' Änderung von ' +
              long2date(_SperreVon) + '-' + long2date(_SperreBis) + ' auf ' + long2date(SperreVon) + '-' +
              long2date(SperreBis));
            edit;
            FieldByName('SPERRE_VON').AsDate := Long2datetime(SperreVon);
            FieldByName('SPERRE_BIS').AsDate := Long2datetime(SperreBis);
            post;
          end;
        end;
      end;
    end;
    close;
  end;
  //
  if (FehlendeAbleseEinheiten.count > 0) then
  begin
    sBericht.add('');
    sBericht.add('Zusammenfassung aller fehlenden Ableseeinheiten:');
    sBericht.add('');
    FehlendeAbleseEinheiten.sort;
    sBericht.addstrings(FehlendeAbleseEinheiten);
  end;
  sBericht.SaveToFile(DiagnosePath + 'KE2.txt');
  InternInfos.free;
  qAUFTRAG.free;
  sBericht.free;
  FehlendeAbleseEinheiten.free;
  openShell(DiagnosePath + 'KE2.txt');
  EndHourGlass;
end;
</code>
</code>


== HA1 ==
== KE3 ==  
 
BRIEF_STRASSE aus KUNDE_STRASSE übernehmen falls Hausnummer fehlt


* Nur Baustelle Singen: Einlesen einer XLS Datei aus einer manuellen Eingabe.
== KE4 ==


== HA2 ==
aus den Zaehler_infos Werte in das Feld ZAEHLER_NUMMER übertragen


* Nur Baustelle Singen: Einlesen einer XLS Datei aus einer manuellen Eingabe.
== KE5 ==


== AY3 ==
Zähler-Infos um Konstante "Quelle=xml" ergänzen!


* wirkt nur auf die aktuell angezeigten Datensätze
== KE6 ==
* kopiert die ursprünglichen Termine aus der Historie


== HA3 ==
erneute Geolokalisierung erzwingen


* wirkt nur auf die aktuell angezeigten Datensätze
== KE7 ==
* aus den Interninfos diverse felder rauslöschen!


== HA4 ==
berichtigt Schreibweisen in der Intern-Info


* wirkt nur auf die aktuell angezeigten Datensätze
* Leerschritte werden entfernt
* Status Goldenes Schloss entfernen!
* ":" wird entfernt


== HA5 ==
== KE8 ==


* wirkt nur auf die aktuell angezeigten Datensätze
* "60" zur Zählernummer-neu dazumachen
* Status Goldenes Schloss setzen!
   
== KE9 ==


== KE1 ==
* N1, N2, N3, N4 aus einer Excel-Datei korrigieren!


* wirkt nur auf die aktuell angezeigten Datensätze
== KEA ==
* zur Zählernummer wieder "550G" dazumachen (wenn es fehlt!)


== HA6 ==
* Das Protokollfeld N2= befüllen aus "Regler-Nummer-Neu" oder "Regler-Nummer-Korrektur" oder "Regler-Nummer-Alt" sollte es noch keinen Wert haben.


* wirkt nur auf die aktuell angezeigten Datensätze
== KN1 ==


== KE2 ==
== KN2 ==


* wirkt nur auf die aktuell angezeigten Datensätze
Diese Transaktion bezieht sich auf Aufträge. In der Zählernummer ist eine RID einer Warenbewegung gespeichert. Bei dieser Warenbewegung wird BEWEGT auf 'Y' gesetzt, also das bewegt Flag wird gesetzt.
* Eintrag einer Sperre anhand einer Ableseeinheit

Aktuelle Version vom 20. April 2023, 13:13 Uhr

(alternativer Suchbegriff Transaktion)

Im Auftragsarbeitsplatz ist über das Eingabefeld ganz rechts unten (Eintrag TRN) das Ausführen von benutzerdefinierten Transaktionen möglich. Die Transaktionen beziehen sich dabei auf die angezeigten Datensätze. Stellen Sie also vor dem Aufruf sicher, dass die richtige Baustelle, sowie die gewünschten Datensätze angezeigt werden:

Im Feld "TRN" sind folgende Eingaben möglich:

AH1

EXPORT*xml überprüfen

AH2

"Monteur Informiert" - Status aus den historischen Datensätzen löschen. Dadurch entfallen zu den aktuell angezeigten Terminen die "WEGFALL" und "TERMIN ALT:" Infos.

AH3

Die Datei ".\NonDa\Bericht.xls" wird geöffnet.

  • In Spalte "C" muss sich die Postleitzahl der Liegenschaft befinden
  • In Spalte "D" muss sich die Zählernummer (Alt) befinden.

Es wird eine Einzelauskunft zu allen Zählern erstellt, d.h. die angefragten Zähler werden genau in dieser Reihenfolge aufgelistet wie angefragt.

AY3

Daten aus den Historischen rücksichern

AY4

Ersetzen von Texten in den Textfeldern der Aufträge. Dazu wird im Anwenderverzeichnis (blauer Ordner im Hauptmenü!) die Datei AY4.txt verarbeitet:


"MONTEUR_INFO" | "INTERN_INFO" | "ZAEHLER_INFO" | "PROTOKOLL" | "LEISTUNGS_DETAILS" | "WIEDERVORLAGE_INFO"
<Suchbegriff1> "|" <NeuerBegriff1>
<Suchbegriff2> "|" <NeuerBegriff2>
<Suchbegriff3> "|" <NeuerBegriff3>
...

AY5

  • auf einen Knopfdruck ein Bilder.zip der markierten im Anwenderverzeichnis zusammenstellen
  • Im Moment nur FA, FN, auf alle Bilder auf Anfrage ausbaubar

BO1

  • Diese Transaktion bezieht sich auf Aufträge und kümmert sich um das Auffinden und Zuordnen von Fotos
  • Aus den Verzeichnissen in dem Systemparameter FotoRecherchePfad= werden die Fotos gesucht, so wie ihr ursprünglicher Name war, und nach den neuesten Erkenntnissen in die Internet-Ablage UND in die OrgaMon-Foto-Baustellen-Verzeichnisse kopiert.
  • Manuell kann diese Aktion im Auftrag, Reiter "Protokoll & Status", der "Refresh-Knopf" ausgeführt werden

LU1

wie BO1, jedoch ohne Veränderung der InternetAblage, nur das lokale Foto-Verzeichnis wird befüllt

BO2

Diese Transaktion bezieht sich auf Aufträge. Trage die Ausbaunummer nach in BAUSTELLE_R=

BO3

Lade die csv-Datei in "./Diagnose/BO3.csv", in einer Spalte muss ein "RID" stehen (nicht zwingend aber praktisch da dann auch über den grünen OLAP-Würfel im Auftragsarbeitsplatz das Volumen angezeigt werden kann). Alle weiteren Spalten der .csv enthalten Überschriften, die ganz genau mit Datenbank-Feldern übereinstimmen. Die Inhalte werden in den Datenbankfeldern durch die Werte der .csv überschrieben.

  • Beispiel einer BO3.csv
RID;REGLER_NR_NEU
123;7ITR838999222

FK1

  • Trägt die OBIS-Codes, die abgelesen werden sollen in ZAEHLWERKE_AUSBAU (im Reiter Intern) ein
  • da OrgaMon von einem 1:1 Wechsel ausgehen muss wird der identische Wert auch in ZAEHLWERKE_EINBAU (im Reiter Intern) eingetragen
  • Sammelt alle "tgw_obiscode" in der Datei .\Diagnose\FK1.log.txt
  • Dadurch kann per Lupe bestimmt werden was draussen für verschiedene Auftragsarten vorkommen können
  • Die Zählerarten sollten dementsprechend gesetzt werden

HA1

Ableseergebnisse aus .csv lesen und eintragen (mit Zählerstand)

HA2

Ableseergebnisse aus .csv lesen und eintragen (ohne Zählerstand)

HA3

aus den Interninfos diverse felder rauslöschen!

HA4

EXPORT_TAN löschen

HA5

EXPORT_TAN setzen (auf manuelle Meldung)

HA6

aus den Zaehler_infos Werte in Feld BRIEF_NAME2 übertragen

HA7

Beurteilung via QS und Ergebnis in "Jahresverbrauch"

HA8

QS deaktivieren durch Eintrag von "QS_UMGANGEN"

HA9

Ablesehinweise und Vorgezogen aktualisieren

HAA

  • alle Markieren, die in externer XLS Liste vorhanden sind
  • Datei muss als .\NonDa\Bericht.xls gespeichert sein
  • die Zählernummer muss in Excel-Spalte "D" angegeben sein

HAB

IDOC Schreibweisen in den InternInfos anpassen

       Alt               Neu
       aegpl_devloc=     GeraeteplatzAlt=
       aeastl_anlage=    AnlageAlt=
       aeger_matnr=      MaterialnummerZaehlerAlt=
       aeger_sparte=     Sparte=

HAC

  • bei "Sparte=Einbau" wird "FA=," sichergestellt vorhandene Eintragungen bleiben erhalten

HE1

  • Texte im Protokoll durch andere Texte ersetzen
  • Erstellen Sie im Anwender-Pfad (Symbol blauer Ordner im OrgaMon-Hauptmenü) die Datei "Protokoll-Ersetzungen.txt"
FF=J;PY=J
FF=N;PY=N


  • In diesem Beispiel werden eingabe im Protokoll-Feld "FF" nach "PY" migriert


KE1

"550G" zur Zählernummer wieder dazumachen

KE2

Bei allen angezeigten Aufträgen wird die Sperre (VON-BIS) korigiert. Dazu wird aus der Interninfo der Eintrag

Ableseeinheit=

zu Rate gezogen.

Baustelle mit dem RID=355

Diese Ableseeinheit wird in der Baustelle mit dem RID=355 unter dem Feld "Zählernummer" gesucht. Die dortige Sperre wird in die aktuelle Ansicht übernommen.

Quelltext

const
 cAbleseEinheit = 'Ableseeinheit';
var
 n: integer;
 AUFTRAG_R: integer;
 qAUFTRAG: TIB_Query;
 cAUFTRAG: TIB_Cursor;
 InternInfos: TStringList;
 AbleseEinheit: string;
 sBericht: TStringList;
 SperreVon, SperreBis: TAnfixDate;
 _SperreVon, _SperreBis: TAnfixDate;
 AktuellesJahr: integer;
 FehlendeAbleseEinheiten: TStringList;
begin
 BeginHourGlass;
 sBericht := TStringList.create;
 FehlendeAbleseEinheiten := TStringList.create;
 qAUFTRAG := DataModuleDatenbank.nQuery;
 cAUFTRAG := DataModuleDatenbank.nCursor;
 InternInfos := TStringList.create;

 with cAUFTRAG do
 begin
   sql.add('select SPERRE_VON,SPERRE_BIS from AUFTRAG where');
   sql.add(' (BAUSTELLE_R=355) and');
   sql.add(' (STATUS<>6) and');
   sql.add(' (ZAEHLER_NUMMER=:CROSSREF)');
   OPen;
 end;

 with qAUFTRAG do
 begin
   sql.add('select ZAEHLER_NUMMER,INTERN_INFO,SPERRE_VON,SPERRE_BIS from AUFTRAG where RID=:CROSSREF');
   sql.add('for update');
   OPen;
   for n := 0 to pred(lRID.count) do
   begin
     AUFTRAG_R := integer(lRID[n]);
     ParamByName('CROSSREF').AsInteger := AUFTRAG_R;
     if not(eof) then
     begin

       // Ermittlung der AbleseEinheit noch unsicher!
       FieldByName('INTERN_INFO').AssignTo(InternInfos);
       AbleseEinheit := InternInfos.Values[cAbleseEinheit];
       _SperreVon := DateTime2long(FieldByName('SPERRE_VON').AsDate);
       _SperreBis := DateTime2long(FieldByName('SPERRE_BIS').AsDate);
       SperreVon := _SperreVon;
       SperreBis := _SperreBis;

       if (AbleseEinheit <> ) then
       begin
         cAUFTRAG.ParamByName('CROSSREF').AsString := AbleseEinheit;
         cAUFTRAG.ApiFirst;
         if not(cAUFTRAG.eof) then
         begin
           SperreVon := DateTime2long(cAUFTRAG.FieldByName('SPERRE_VON').AsDate);
           SperreBis := DateTime2long(cAUFTRAG.FieldByName('SPERRE_BIS').AsDate);
         end
         else
         begin
           sBericht.add(cERRORTEXT +
             { } FieldByName('ZAEHLER_NUMMER').AsString +
             { } ': Ableseeinheit "' + AbleseEinheit +
             { } '" ist unbekannt!');
           if (FehlendeAbleseEinheiten.indexof(AbleseEinheit) = -1) then
             FehlendeAbleseEinheiten.add(AbleseEinheit);

         end;
       end
       else
       begin
         sBericht.add(cWARNINGText + ' ' + FieldByName('ZAEHLER_NUMMER').AsString + ': Ableseeinheit ist leer!');
       end;

       if DateOK(SperreVon) and DateOK(SperreBis) then
       begin
         AktuellesJahr := extractYear(DateGet);

         // Die Sperre auf das aktuelle Jahr setzen
         SperreVon :=
         { } Details2Long(AktuellesJahr,
           { } extractMonth(SperreVon),
           { } extractDay(SperreVon));
         SperreBis :=
         { } Details2Long(AktuellesJahr,
           { } extractMonth(SperreBis),
           { } extractDay(SperreBis));
         if SperreBis < SperreVon then
           SperreBis :=
           { } Details2Long(AktuellesJahr + 1,
             { } extractMonth(SperreBis),
             { } extractDay(SperreBis));

         if (_SperreVon <> SperreVon) or (_SperreBis <> SperreBis) then
         begin

           sBericht.add(cINFOText + ' ' + FieldByName('ZAEHLER_NUMMER').AsString + ' Änderung von ' +
             long2date(_SperreVon) + '-' + long2date(_SperreBis) + ' auf ' + long2date(SperreVon) + '-' +
             long2date(SperreBis));

           edit;
           FieldByName('SPERRE_VON').AsDate := Long2datetime(SperreVon);
           FieldByName('SPERRE_BIS').AsDate := Long2datetime(SperreBis);
           post;
         end;
       end;

     end;
   end;
   close;
 end;

 //
 if (FehlendeAbleseEinheiten.count > 0) then
 begin
   sBericht.add();
   sBericht.add('Zusammenfassung aller fehlenden Ableseeinheiten:');
   sBericht.add();
   FehlendeAbleseEinheiten.sort;
   sBericht.addstrings(FehlendeAbleseEinheiten);
 end;

 sBericht.SaveToFile(DiagnosePath + 'KE2.txt');

 InternInfos.free;
 qAUFTRAG.free;
 sBericht.free;
 FehlendeAbleseEinheiten.free;
 openShell(DiagnosePath + 'KE2.txt');
 EndHourGlass;
end;

KE3

BRIEF_STRASSE aus KUNDE_STRASSE übernehmen falls Hausnummer fehlt

KE4

aus den Zaehler_infos Werte in das Feld ZAEHLER_NUMMER übertragen

KE5

Zähler-Infos um Konstante "Quelle=xml" ergänzen!

KE6

erneute Geolokalisierung erzwingen

KE7

berichtigt Schreibweisen in der Intern-Info

  • Leerschritte werden entfernt
  • ":" wird entfernt

KE8

  • "60" zur Zählernummer-neu dazumachen

KE9

  • N1, N2, N3, N4 aus einer Excel-Datei korrigieren!

KEA

  • Das Protokollfeld N2= befüllen aus "Regler-Nummer-Neu" oder "Regler-Nummer-Korrektur" oder "Regler-Nummer-Alt" sollte es noch keinen Wert haben.

KN1

KN2

Diese Transaktion bezieht sich auf Aufträge. In der Zählernummer ist eine RID einer Warenbewegung gespeichert. Bei dieser Warenbewegung wird BEWEGT auf 'Y' gesetzt, also das bewegt Flag wird gesetzt.