10 Programmaufbau
Nach Prüfung der Eingabedaten wird die Verarbeitung angestoßen:
Callback bei OK : iCBMLakosUebernahme()
In Abhängigkeit der Eingabe, ob die Schnittstellendatei einmal oder dauernd abgefragt werden soll, werden zwei unterschiedliche Verarbeitungsroutinen aufgerufen. Die Unterschiede liegen im wesentlichen in der Behandlung des Abbruches mit der Routine SVCcancelbox. Routinen:
  • iUeDateiPollen();
  • iUeDateiEinzel();
Verarbeitungsschritte:
(Vereinfacht für nur einen Satz dargestellt)
Lakos.Eingabe();
//Satz aus der aktuellen Schnittstellendatei lesen
milDrucken.ACPopen(1);
//Druckerkanal 1 öffnen
milDrucken.ACPinterpret(1,scsMilKopf);
//MWI317.mdd Kopf ausgeben
scsBFInput = Lakos.scsLakosIBuffer;
//Eingelesenen Satz in Buffer kopieren
LakosFillErfass(hAppl,Lakos);
//Felder im ErfassBuffer füllen (s.o.)
lBUerr = CheckSatzart(lBUerr);
//Satzart aus Lakos prüfen
lBUerr = CheckTeil(lBUerr);
//Teilenummer aus Lakos prüfen
lBUerr = CheckLager(lBUerr);
//Lagernummer aus Lakos prüfen
lBUerr = CheckDatum(lBUerr);
//Bewegungsdatum aus Lakos prüfen
lBUerr = MengeBeiAbgleich(lBUerr);
//Bewegungsmenge bei“I“=Inventur mit Bestandsmenge überschreiben
lBUerr = BuchungScript(lBUerr, EnvMsg, PreMsg);
//Buchung mit IPS und 317-BI0.ips ausführen
ErrorBuildMsg(lBUerr, scsEnvMsg, scsPreMsg);
//Bei Fehler: Meldung aus ACIPSerr erzeugen
SetMddFlags(lBUerr);
//Fehlerflaggen in Erfassbuffer für MDD setzen
milDrucken.ACPinterpret(1,scsMilZeile);
//Druckausgabe der Zeile
milDrucken.ACPclose(1);
//Druckerkanal 1 schliessen
Lakos.Close();
//Lakos Schnittstellendatei schliessen
 
 
Klassen:
ACLakosIO:
Mit dieser Klasse wird die gesamte Lakos-Schnittstelle für alle Programme die auf Lakos zugreifen abgehandelt. Folgende Punkte werden behandelt:
  • Behandlung der aktuellen Schnittstelle festgelegt bei Aufruf des Konstruktors:
  • Hostdaten
  • Kundenauftrag
  • Fertigungsauftrag
  • Ungeplant
  • Verwaltung des Nummernkreis entsprechend der eingestellten Schnittstelle.
  • Eingabe(): Lesen der Schnittstelle entsprechend den Angaben in der INIdatei.
  • Ausgabe(): Ausgabe in die Schnittstellendatei entsprechend den Angaben in der INIdatei.
  • Close(P1, P2): Schließen der Schnittstellendatei, je nach Parameter mit weiterschalten des Nummernkreises und löschen der Schnittstellendatei