PP-Webportal

Aus PPwiki
Version vom 14. Dezember 2017, 09:06 Uhr von Admin (Diskussion | Beiträge) (Admin verschob die Seite Webportal nach PP-Webportal: Programmname = Seitenname)
Wechseln zu: Navigation, Suche

1 Ablauf Datentransfer von Oracle ins Webportal

1.1 Hochladen der Daten durch den Service ppim.exe

  • Nachdem der Service gestartet wird, fragt er sofort und danach jede Stunde die Daten aus dem View VPP_WEBAUSKUNFT_TAG ab.
  • Wenn im Webportal Verfügbarkeiten angezeigt werden, werden auch der View VPP_AVAIL_RESULT_OUTPUT (oder VPP_AVAIL_EXP_TBL_RESULT) sowie die Tabelle b_artland abgefragt.
  • Die Daten werden als gezippte CSV Dateien im Stammverzeichnis des Service gespeichert.
  • Der View VPP_WEBAUSKUNFT_WOCHE (und VPP_WEBAUSKUNFT_GESAMT?) wird alle ? abgefragt.
  • Zu Beginn des Hochladens legt der Service ein (leeres) Verzeichnis LOCK auf dem FTP Platz an.
  • Solange dies Verzeichnis existiert, werden die hochgeladenen Dateien (die dann noch unvollständig sind), auf dem Server nicht weiter verarbeitet (s.u.).
  • Die FTP Zugangsdaten liegen in ppim.ini (Passwort ist verschlüsselt) und können mit ppim_config.exe geändert werden.
  • Manche Versionen? auf manchen Rechnern? von ppim_config.exe zeigen dass Passwort in Klarschrift an. Wenn es denn mal verloren gegangen ist :-).
  • Nach Abschluss des Hochladens löscht der Service das Verzeichnis LOCK.
  • Der Service loggt seine Aktivitäten in der Datei Service_PPIM.log (im Stammverzeichnis des Service).


1.2 Verarbeiten der Daten auf dem Webserver

  • Ein (Cron-)Job überprüft jede Minute das Verzeichnis auf dem FTP Server.
  • Wenn es dort kein Verzeichnis LOCK gibt, werden vorhandene ZIP-Dateien entpackt, die Daten aus den entpackten CSV Dateien in die Datenbank des Webportals eingelesen und danach die ZIP und CSV- Dateien gelöscht.

2 Der FTP Ordner sollte in der Regel also immer völlig leer sein.

2.1 Hochladen von Stammdaten über ppim_config.exe

  • Kunden- und Artikeldaten werden nicht regelmäßig über den Service hochgeladen.
  • Diese können über ppim_config.exe manuell hochgeladen werden.
  • Gleichzeitig werden dann auch Auftragsdaten (Tag, Woche oder Gesamt) sowie evtl. die Verfügbarkeiten exportiert.
  • Das Hochladen verläuft ansonsten genauso wie über den Service (s.o.).
  • Das Programm ppim_config.exe schreibt nicht in die Datei Service_PPIM.log. Es zeigt seine Aktivitäten nur an.


3 Fehler

3.1 Daten werden nicht aktualisiert

  • In der Nacht ab 24:00 liefert der View VPP_WEBAUSKUNFT_TAG keine Ergebnisse. Das Webportal bekommt dann keine neuen Daten und zeigt als Aktualisierungsdatum weiterhin den letzten Export vom vorangegangenem Tag an. Also erst nachdem im PAT Aufträge geändert werden, gibt es auch ein neues Aktualisierungsdatum im Webportal. Ob nun die leere CSV Datei aus dem VPP_WEBAUSKUNFT_TAG überhaupt hochgeladen wird oder nicht. Das Gleiche gilt an arbeitsfreien Tagen für den ganzen Tag.
  • Wenn der Service ppim.exe empfindlich gestört wird, also z.B. die Oracle Datenbankverbindung während einer Abfrage abbricht oder die Netzwerkverbindung beim Hochladen auf den FTP Platz, kann er sich festfahren. Der Service ist weiterhin aktiv, macht aber nichts mehr.
    • Dann den Service einfach neu starten.
    • Oder Service automatisch neu starten lassen, s.u.
  • Wenn das Verzeichnis LOCK auf dem FTP Platz nach dem Hochladen nicht gelöscht wurde, werden keine Daten ins Webportal übernommen.
    • Das Verzeichnis also einfach löschen.


4 Service ppim.exe automatisch neu starten

  • Ein Oracle Job erzwingt jede 6 Stunden und 15 meine Neustart.
  • Jede Stunden werden Daten hochgeladen, darum die zusätzliche Viertelstunde.


4.1 Batch Datei anlegen

service_ppim_neu_starten.bat im Verzeichnis D:\CDS\PAT\Batch\ auf dem Oracle Server anlegen (Batch Datei herunterladen).

net stop   ppim 
net start  ppim 
exit

Wenn das Verzeichnis anders heißt, muss es nur unten geändert werden unter job_action => 'D:\CDS\PAT\Batch\service_ppim_neu_starten.bat',.


4.2 Oracle Job ertsellen


BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
            job_name => '"PAT"."Serice_ppim_neu_starten"',
            job_type => 'EXECUTABLE',
            job_action => 'D:\CDS\PAT\Batch\service_ppim_neu_starten.bat',
            number_of_arguments => 0,
            repeat_interval => 'FREQ=MINUTELY;INTERVAL=75',
            end_date => NULL,
            enabled => FALSE,
            auto_drop => FALSE,
            comments => 'Service pppim.exe (fürs Webportal) alle 6 Stunden und 15 min neu starten');
     
 
    DBMS_SCHEDULER.SET_ATTRIBUTE( 
             name => '"PAT"."Serice_ppim_neu_starten"', 
             attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
      
  
    
    DBMS_SCHEDULER.enable(
             name => '"PAT"."Serice_ppim_neu_starten"');
END;