3.58 Chargendateien prüfen/initialisieren
ChaCzsLpbLesenInit(strMode,strInp,strTSS,strTLC,strLAG,strOut,
                   strCHB,strCZS,strLPB);
 
Argumente
Input:
 
 
 
strMode Modus abhängig von der Anwendung
 
“KONSI“:
für 45B (AUF43A) Zubuchung auf Konsignationslager, es werden Chargendaten aus den Satzpuffern (nicht aus IF-Variablen) verwendet
 
“742“ 
Wareneingang aus 742 (EKA742), Chargendaten aus IF-Variablen
strInp
 
 
 
 
für spezielle Behandlungen:.
 
strTSS
Teilestammsatz
Teilestammsatz
verwendete Felder
6: Hersteller
13: Lagermengeneinheit
23: Preiseinheit
 
strTLC
Teilestammsatz LCV, verwendete Felder
1: Teilenummer
2: Chargenart
9: Haltbarkeit in Tagen
strLAG Lagerstammsatz
 
Input über interne Variable:
 
scsIFLagernummer
 
 
Lager
 
scsIFTeilenummer
 
 
Teil
 
scsIFLagerplatz
 
 
Lagerplatz Einlagerung
 
scsIFBuchungsdatum
 
scsIFLieferant
 
scsIFHersteller
 
 
laut TSS bzw. Eingabe
 
scsIFSBkurz
 
scsIFZustand
 
Input aus INI-Datei:
 
 
Section [GENERAL], „EinlagStrategie“
 
 
1
nur leere Lagerplätze
 
 
2
erst leere, dann belegbare
 
 
3
erst belegbare, dann leere
 
 
Section [HAENEL], „M<Menue>-IPS“
 
 
TRUE
Schnittstellen-Lagerplätze sind verboten
 
FALSE
alle Lagerplätze werden gesucht
 
 
Output:
strOut
für Übergabe an IPS-Steuerdatei
Pis.
Lang
Ausgabe
 
1 1
0
Charge (D88) vorhanden, weiter update
 
1
Chargennummer vorhanden, Satz anlegen
2 1
0
Chargenzust.Summe (89) schon da, nur update
 
1
anlegen
3 1
0
Lagerplatzbestand (85) schon da, nur update
 
1
 
Input/Output:
strCHB Chargenbestandssatz
falls vorhanden, wird der gefundene Satz an IPS-Steuerdatei übergeben
neuer Satz wird aufgebaut:
bereits versorgte Felder:
13
Herstelldatum, wenn leer
= scsIFBuchungsdatum
16
Haltbarkeitsdatum, wenn leer
= Herstelldatum + Haltbarkeit
19
Lieferant, wenn leer
= scsIFLieferant
20
Hersteller, wenn leer
= scsIFHersteller
24 + 25
Buchungsdatum
= scsIFBuchungsdatum
26 + 27
Sachbearbeiter
= scsIFSBkurz
strCZS Chargenzustandssumme
falls vorhanden, wird der gefundene Satz an IPS-Steuerdatei übergeben
neuer Satz wird aufgebaut
strLPB Lagerplatzbestand
falls vorhanden, wird der gefundene Satz an IPS-Steuerdatei übergeben
neuer Satz wird aufgebaut
Input/Output über interne Variable:
scsIFChargenbezeichnung
Output 0
nur bei Teil mit nur Lagerplatzverwalzung ohne Charge
Rückgabewert
0
Alles in Ordnung, Lagerplatz gefunden.
ungleich 0
keine Chargennummer vorhanden bzw. Datenbankfehler
Beschreibung
Es werden die Chargendateien Chargenbestandssatz, Chargenzustandssumme und Lagerplatzbestand gelesen. Die Funktion liefert entweder die vorhandenen Datensätze (wenn vorhanden) bzw. die Datensätze werden initialisiert und für die weitere Verarbeitung bereitgestellt. Vorhandene Sätze bleiben unverändert. Alle Sätze werden an IPS-Steuerdatei übergeben. Im „strOut“ wird an die IPS-Steuerdatei mitgeteilt, wie mit der jeweiligen Datei weiter verfahren werden muss.
Beispiel
………….(Auszug aus 742-Z.IPS)
// Chargendateien pruefen und ggf. Init
AssignString(strMode,"742");
 
IpsSetItemParams("CNR",1);
IpsSetPreparedRcPrefixMSG("CNR");
ChaCzsLpbLesenInit(strMode,_
                   strInp,_
                   strTSS,_
                   strTLC,_
                   strLAG,_
                   strOut,_
                   strCHB,_
                   strCZS,_
                   strLPB);
 
IpsSetItemParams("IPS",1);
IpsSetPreparedRcPrefixMSG("IPS");
 
AssignString(strChargenBestandNeu,"N");
AssignLong(lPis,1);
IsInString(strOut,"1",lPis);
if (lPis == 1)
    AssignString(strChargenBestandNeu,"J"); // nicht vorhanden, anlegen
 
AssignString(strZustandSummeNeu,"N");
AssignLong(lPis,2);
IsInString(strOut,"1",lPis);
if (lPis == 2)
    AssignString(strZustandSummeNeu,"J"); // nicht vorhanden, anlegen
 
AssignString(strLplBestandNeu,"N");
AssignLong(lPis,3);
IsInString(strOut,"1",lPis);
if (lPis == 3)
    AssignString(strLplBestandNeu,"J"); // nicht vorhanden, anlegen
....
// abhaengig von der Pruefung Lock/Update oder Insert
if (strChargenBestandNeu == "N")
    BufLockBuffer(strCHB,nLockMode);
 
if (strZustandSummeNeu == "N")
    BufLockBuffer(strCZS,nLockMode);
 
if (strLplBestandNeu == "N")
    BufLockBuffer(strLPB,nLockMode);
...
// Satze schreiben
if (strChargenBestandNeu == "N")
    BufUpdateBuffer(strCHB);
else
    BufInsertBuffer(strCHB);
......