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