PMS32 Online- Hilfereferenz
Kopfinfo CAE-Listen
Auftrags / Angebotsnummer des Vorgangs / CAE - Liste. Freie Eingabe des Benutzers
Anlagenkennzeichnung. Freie Eingabe des Benutzers
BMK Nummerierung. Wie wird die Nummerierung des BMK's im Vorgang vorgenommen.
Wie sind die BMK's der Positionsliste aufgebaut? 0-Es wird der Standard verwendet.1-Gesamt. Nummerierung nach Standard.2-DIN, nur bei dieser BMK Nummerierung wird das BMK aufgelöst! Siehe dazu auch das Codebeispiel.
*/ BMK der Position. */ Ist unter E10.BMKNR = 2 (DIN) eingestellt, so wird die BMK in ihre verschiedenen Teile aufgelöst! BMKANL = Anlage, Anlage BMK kann ein Teil der BMK - Nummer sein. Diese wird durch ein "=" eingeleitet und durch ein "+" abgeschlossen. BMKKB = Kennbuchstabe, K | M | ... BMKORT = Ort BMKZNR = Zählnummer F_A bis F_E => Sortierungen !Die Inhalte werden vor der Summierung bzw. Gruppierung für jede Position ermittelt! !Deshalb kann auch eine Gruppierung z.B. nach IP, Artikelnummer und BMKANL vorgenommen werden! Am Beispiel einer BMK in E11: BMK = "=A01+O01-Q1" BMKANL = "A01" BMKORT = "O01" BMKZNR = "" BMKKB = "Q1" F_A = "" F_B = "Q" F_C = "00...01" F_D = "" F_E = ""
Dieses Feld enthält den Pfad des CAE-Projktes auf der CAE Seite.
Dieses Feld enthält den Namen des CAE-Projktes auf der CAE Seite. Er wird bei der Übertragung im Feld E10.CAEPRJ gespeichert. Damit besteht eine Referenz zwischen dem CAE-System und PMS und der Vorgang kann wieder ermittelt werden. Der Name des CAE-Projekts sollte auf CAE Seite eindeutig sein!
Welches CAE System hat die Daten geliefert?
ICK10 gibt die Projektnummer in PMS an. Die Projektnummer wird nur bei einer Neuanlage der CAE-Liste benötigt. Beim Update oder Löschen wird diese Nummer nicht benötigt!
Um eine CAE Liste neu anlegen zu können, müssen folgende Bedingungen erfüllt sein:
1.) ICK10 ist mit der PMS Projektnummer angeben oder
2.) In den Firmenparametern ist ein Standardprojekt vorgegeben
Ist beides nicht der Fall, wird bei einer Neuanlage eines Vorgangs ein Fehler erzeugt. Die übergebene Projektnummer muss in PMS vorhanden sein!
Beim Update bzw. beim Auslesen der CAE - Liste werden diese Informationen automatisch mitübertragen.
Die entsprechenden Felder sind dann korrekt gefüllt!
!ACHTUNG!
Ist L01.IUPDE10 = 1 und wird in L01.ICL01 ein "*" angegeben, so wird IMMER ein neuer Vorgang angelegt! Voraussetzung, dass Projekt kann ermittelt werden!
Bitte füllen Sie möglichst das Feld mit einem eindeutigen Wert, damit Sie bei einer Auswahl (Lookup) die Information deutlich indentifizieren können.
Candidate Felder einer Tabelle definieren einen eindeutigen Suchbefriff für den Benutzer. Meistens hat die Tabelle auch eine interne ID, die den Primärschlüssel der Tabelle bildet. Dann "könnten" mehrere "gleiche" Datensätze mit gleichem Candidateschlüssel angelegt werden. Das System wäre in der Lage, bei Doppeltbenennungen "quasi gleicher" Definitionen, anhand der internen ID die Daten auseinander zu halten. Der Benutzer kann bei einer Auswahl (Lookup) die Informationen dann aber nicht unbedingt auseinanderhalten. Dieses Feld wird "meistens" bei einer Relation aus einer anderen Tabelle heraus angezeigt. Achten Sie deshalb darauf, dass Sie die Information wiedererkennen können. Am Beispiel einer Artikelnummer: Unter einer Artikelnummer mit "74568958743.14" kann sich kaum jemand was vorstellen, jedoch mit "SIE.3TH..." (Hersteller + Typennummer) weiss der Benutzer zumindest, dass es sich hier um Leistungsschütze handelt. Wie Sie Ihre Candidate Schlüssel eingeben bleibt Ihnen überlassen, bedenken Sie jedoch, dass einen sprechende Nummer für nicht eingeweihte Personen besser lesbar ist.
Relationales Feld (Lookup) in die Kundentabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Kundentabelle. Dieses Feld ist ein Lookup- relationales Feld in die Kundentabelle (C63). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Kundentabelle benötigt. Ein Beispiel: SELECT c63.match, COUNT(*) AS anzahl FROM c63,d40 WHERE c63.idc63=d40.idc61 AND ... GROUP BY 1 ... Dieser SQL würde alle Beistellungen und Reparaturbestellungen zum Kunden ermitteln.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C63 - Kunden
*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und C63...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON L01.IDC63=C63.IDC63 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C63
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.
*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"C63.DBF") ON L01.IDC63=C63.IDC63 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDC63 AS _Quelle, C63.IDC63 AS _Ziel ;
FROM ("L01") , (My.Clients.Path.cDbfDir+"C63.DBF") ;
WHERE L01.IDC63=C63.IDC63
AND L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loC63 AS Object
loC63 = My.Bussines.Strain.Misc.oC63[L01.IDC63]
IF !EMPTY(loC63.IDC63)
*/ Dann wurde der Datensatz in der Tabelle C63 gefunden!
*/ Weiterer Code kann hier stehen...
ENDIF
Relationales Feld (Lookup) in die Vorgangstabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Vorgangstabelle. Dieses Feld ist ein Lookup- relationales Feld in die Vorgangstabelle (E10). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Vorgangstabelle benötigt. Ein Beispiel: SELECT e10.nummer, i20.menge_s FROM i20,e10 WHERE i20.idzwi = e10.ide10 AND i20ipzwi $ "101,107,108" AND ...
*/ Dieses Feld ist ein relationales Feld zur Tabelle: E10 - VK-Vorgänge
*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und E10...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"E10.DBF") ON L01.IDE10=E10.IDE10 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle E10
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.
*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"E10.DBF") ON L01.IDE10=E10.IDE10 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDE10 AS _Quelle, E10.IDE10 AS _Ziel ;
FROM ("L01") , (My.Clients.Path.cDbfDir+"E10.DBF") ;
WHERE L01.IDE10=E10.IDE10
AND L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loE10 AS Object
loE10 = My.Bussines.Strain.Misc.oE10[L01.IDE10]
IF !EMPTY(loE10.IDE10)
*/ Dann wurde der Datensatz in der Tabelle E10 gefunden!
*/ Weiterer Code kann hier stehen...
ENDIF
Relationales Feld (Lookup) in die Projekttabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Projekttabelle. Dieses Feld ist ein Lookup- relationales Feld in die Projekttabelle (K10). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Projekttabelle benötigt. Ein Beispiel: SELECT k10.prjnr, i21.menge, i21.preis FROM i21,k10 WHERE i21.idk10 = k10.idk10 AND ...
*/ Dieses Feld ist ein relationales Feld zur Tabelle: K10 - Projekte
*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und K10...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
FROM ("L01") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"K10.DBF") ON L01.IDK10=K10.IDK10 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle K10
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.
*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
FROM ("L01") INNER JOIN (My.Clients.Path.cDbfDir+"K10.DBF") ON L01.IDK10=K10.IDK10 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDK10 AS _Quelle, K10.IDK10 AS _Ziel ;
FROM ("L01") , (My.Clients.Path.cDbfDir+"K10.DBF") ;
WHERE L01.IDK10=K10.IDK10
AND L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt...
LOCAL loK10 AS Object
loK10 = My.Bussines.Strain.Misc.oK10[L01.IDK10]
IF !EMPTY(loK10.IDK10)
*/ Dann wurde der Datensatz in der Tabelle K10 gefunden!
*/ Weiterer Code kann hier stehen...
ENDIF
Primärschlüssel der Tabelle : Kopfinfo CAE-Listen
Primärfelder einer Tabelle indentifizieren den Datensatz der Tabelle. Der Feldinhalt ist immer eindeutig und kann niemals mehrfach vorkommen. Primärfelder können aus einem Feld der Tabelle oder aus mehreren Feldern der Tabelle bestehen.
*/ Das Feld IDL01 ist das Primärschlüsselfeld der Tabelle L01 - Kopfinfo CAE-Listen
*/ Dieses Feld kann in anderen Tabellen als relationaler Schlüssel zu dieser Tabelle dienen
*/ An einem SQL - Beispiel eines beschreibbaren Cursors...
*/ Die Daten des Cursors können zwar geändert werden, die Änderungen werden jedoch NICHT in die Datenbank zurückgeschrieben!
SELECT L01.* FROM ("L01") ;
WHERE L01.IDL01 = m.idl01 ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden...
IF poThis._SqlRead([SELECT L01.* FROM L01 WHERE IDL01=']+m.idl01+['],"qL01",2)
*/ Hier könnte Code stehen...
*/ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable)
ENDIF
Lookup in : Kopfinfo CAE-Listen (L01). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: L01 - Kopfinfo CAE-Listen
*/ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen L01 und L01...
*/ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel:
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
FROM ("L01") LEFT OUTER JOIN ("L01") ON L01.IDL01P=L01.IDL01 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Der obige Cursor enthält alle Datensätze der Tabelle L01 im Feld _Quelle und nur vorhandene Datensätze der Tabelle L01
*/ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL.
*/ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind:
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
FROM ("L01") INNER JOIN ("L01") ON L01.IDL01P=L01.IDL01 ;
WHERE L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
*/ Geht auch so...
SELECT L01.IDL01P AS _Quelle, L01.IDL01 AS _Ziel ;
FROM ("L01") , ("L01") ;
WHERE L01.IDL01P=L01.IDL01
AND L01.... ;
INTO CURSOR qL01 NOFILTER READWRITE
ID des PMS - Mandanten aus PMS32.PTH
Ist dieses Feld leer, wird der momentan aktive Mandant (zuletzt gestartet) genommen. Durch das Anlegen mehrerer Kopfdatensätze ist es möglich die Positionslisten gefiltert in verschiedene Mandanten zu übertragen!
Hier kann eine Filterung der Positionen vorgenommen werden. Dazu können nur Felder der Tabelle L02 angegeben werden! Der Filter muss einen logischen Ausdruck enthalten und darf nur Felder der Tabelle L02 enthalten! Beispiel:
IDC25 = "FL" AND ...
Es werden nur Positionen der Artikelgruppen übertragen, die mit "FL" anfangen.
Es gibt verschiedene Felder in der Tabelle L02, die während der Ermittlung der Artikel aus dem Artikelstamm gefüllt werden. Damit kann auch auf solche Felder gefiltert werden. Wer sich gut in PMS auskennt kann für den Filter auch folgende SQL Syntax verwenden:
IDC25 IN (SELECT c25.idc25 FROM c25 WHERE "ELEKTRO" $ c25.bezei)
Geht auch! Ist nur nicht so einfach...
In die Filteranweisung können zur besseren Lesbarkeit die einzelnen Filterdefinitionen in mehreren Zeilen eingetragen werden!!
!! OHNE ; am Ende der Zeile. CR und LF werden in Leerzeichen umgewandelt!
IDC25 = "FL"
AND IDC66 = "STAMM"
Es wird NICHT auf der Originaltabelle gefiltert! Der neue Tabellen ALIAS ist in der Variablen m.tcALVon angegeben!
Beim Erstellen des Filters wie der Gruppierung wird im SQL auf den ALIAS = _L02 verwiesen!
Muss auf Kopfdaten zugegriffen werden, dann muss mit der Variablen:
toL01 gearbeitet werden! toL01 ist ein Objekt mit den Feldnamen aus L01
Beispiel:
IDC25 IN (SELECT IDC25 FROM (THIS.cDbfDir+'c25.dbf') WHERE UPPER(LEFT(toL01.Anlage,AT(" ",toL01.Anlage)-1)) $ c25.bezei)
Wahnsinn, was? ...
THIS.cDbfDir => Enthält das Mandantenverzeichnis
THIS.cSysDir => Enthält das Systemverzeichnis
Hier kann eine Gruppierung / Summierung der Positionsliste eingetragen werden! Dabei wird die eine Summenliste erstellt, die für die angegebene Gruppierung die Summe der Mengen enthält. Bei der Gruppierung sollte IMMER die Artikelnummer angegeben sein!
Die Gruppierung erfolgt immer über die Felder der Tabelle L02! Nur über die in dieser Tabelle vorhandenen Felder kann gruppiert werden! Die Gruppierung der Positionsliste erfolgt erst nach der Ermittlung der Artikelnummern aus dem Artikelstamm und der Ermittlung der Positionsart.
Ist eine Gruppierung angegeben, so wird der Wert in IUPDE11 ignoriert und automatisch der Wert IUPDE11=16 genommen!
Die Gruppierung wird mit den Feldnamen der Tabelle L02 durch Komma getrennt angegeben. Beispiel:
IPL02,ICB01
Die Gruppierung erfolgt lt. obigem Beispiel nach Positionsart und Artikelnummer. (Man bedenke: Beistellung und Fremdbearbeitung)
Siehe auch IFILTER
Vorgangsart. Über die Relation zur Systemtabelle (Y01) kann die Vorgangsart im Klartext angezeigt werden. Das Feld wird vom System gesetzt.
Vorgangsart. Über die Relation zur Systemtabelle (Y01) kann die Vorgangsart im Klartext angezeigt werden. Ein Liste der Vorgangsartne finden Sie im Codebeispiel.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[L01.IPE10] */ Damit kann die Zeilenart bestimmt werden...
Bitte wählen Sie mit F3 aus, falls eine Auswahlmöglichkeit besteht.
IP Felder definieren die Art des Datensatzes oder dessen Status. Der Feldinhalt wird immer aus der Tabelle Y01 ermittelt. Sollte die Möglichkeit einer Benutzereingabe bestehen, so wird der Wert mit einer Auswahl F3 auf dem Feld geändert. Die Werte in diesen Feldtypen sind immer von der Relation in die Tabelle Y01 (Systemtabelle) abhängig.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[L01.IPL01] */ Damit kann die Zeilenart bestimmt werden...
IUPDB01 gibt an, wie die Artikel aus der Positonsliste im Artikelstamm zu ermitteln sind.
Möglichkeiten: (Dezimal / Hexadezimal)
0 0x00000000 - Wie im Vorgangskopf in PMS definiert. Standard = 1 (über Artikelnummer wenn der Vorgang nicht vorhanden ist (Neuanlage))
1 0x00000001 - B01.ARTNR (B01.ICB01), Die Artikel werden über die PMS - Artikelnummer des Artikelstamms (B01) ermittelt
2 0x00000002 - D04.KDARTNR (D04.ICD04), Die Artikel werden über die Kundenartikelnummer (D04) in PMS ermittelt
4 0x00000004 - B01.FPARAC1, Die Artikel werden über die Zusatz- / Externe- Artikelnummer des Artikelstamms (B01) ermittelt
8 0x00000008 - B01.TYPNR (B01.IBB01), Die Artikel werden über die Typennummer des Artikelstamms (B01) ermittelt
16 0x00000010 - B01.BESTNR (D03.IBD03), Die Artikel werden über die Bestellnummer des Artikelstamms (B01) ermittelt
Wenn der ermittelte Artikel gesperrt oder als gelöscht markiert oder als Auslaufartikel definiert ist (B01), dann ermittle weitere Artikel über die Definition Referenzartikel (B03)
65536 0x00010000 - Der erste definierte Referenzartikel des gleichen Herstellers (B01.IDC62), wenn dieser nicht die obigen Stati hat.
131072 0x00020000 - Der erste definierte Referenzartikel der gleichen Artikelgruppe (B01.IDC25), wenn dieser nicht die obigen Stati hat.
262144 0x00040000 - Der erste definierte Referenzartikel, wenn dieser nicht die obigen Stati hat.
2097152 0x00200000 - Der Artikel, der über die Referenz ermittelt wurde wird an das CAE - System übergeben! Beinhaltet die Werte von 1 - 16!
4194304 0x00400000 - Trage den letzten über Referenz gefunden Artikel ein. Wird kein "freier" Artikel über die Referenz ermittelt, so wird der Letzte über Referenz gefundene Artikel eingetragen.
8388608 0x00800000 - Benutze Rekursion zur Ermittlung. Wird kein Artikel im ersten Step gefunden, dann wird rekursiv über B03 und B01 ermittelt
Alle Möglichkeiten sind durch Addition der Werte kombinierbar. So ergibt die Kombination:
1 + 2 + 4 = 7, Zuerst über Artikelnummer (B01.ARTNR), dann über Kundenartikelnummer (D04.KDARTNR) und dann über Fremdartikelnummer (B01.FPARAC1)
Die Einstellung 0x00800000:
Angenommen in der CAE - Liste kommt der Artikel "SIE.4711" vor. Dieser Artikel wurde von Siemens schon mehrmals durch Revisionen ersetzt. Für jede weitere Revision wurde eine fortlaufende Revisionsnummer vergeben. SIE.4711.1, SIE.4711.2, usw.
In PMS sind in der Referenztabelle folgende Einträge vorhanden:
SIE.4711 » SIE.4711.1, dieser Artikel ist gesperrt
SIE.4711.1 » SIE.4711.2, s.o.
SIE.4711.2 » SIE.4711.3, freigegeben
Dann wird, wenn der Artikel SIE.4711 in der CAE-Liste vorkommt der Artikel SIE.4711.3 ermittelt. Ist das Flag nicht gesetzt, dann würde der Artikel SIE.4711 erhalten bleiben, wenn in dessen Referenzliste kein weiterer "freier" Artikel mehr vorhanden ist.
Die Einstellung 0x00400000:
Wenn anhand des obigen Beispiels auch der Artikel SIE.4711.3 "gesperrt" ist, so wird doch dieser Artikel eingetragen. Damit steht die Letzte Referenz zur Verfügung.
Bei den Einstellungen 0x00XX.... wird die Reihenfolge 0x0001.... - 0x0004.... eingehalten! Wenn also Rekursion gewählt ist, dann wird diese zuerst auf die Filterbedingung und dann auf die Rekrusion angewendet!
Beispiel, gewählt ist:
0x00010000 + 0x00040000 + 0x00800000 = 0x0085xxxx
Suchen in B03 nach Artikel gleichen Herstellers
Wenn gefunden, jedoch nicht frei
Suchen in B03 über Referenz für Artikel gleichen Herstellers
Wenn gefunden, jedoch nicht frei
....
Suchen in B03 nach erstem Referenzartikel der frei ist
Wenn gefunden jedoch nicht frei
Suchen in B03 über Referenz für den ersten Artikel
Wenn ....
Wenn kein "freier" Artikel ermittelt werden konnte und das Flag 0x004..... gesetzt ist, dann der letzte gefundene Artikel:
gleichen Herstellers oder wenn hier keiner existiert
der letzte in der Rekursion gefundene Artikel genommen
Die Einstellung 0x00200000:
Ist dieses Flag gesetzt, so wird beim Export der Daten von PMS an das CAE - System die neu ermittelte "Artikelnummer" übergeben! Hier wird die Einstellung 1 - 16 berücksichtigt! In PMS wird die PMS eigene Artikelnummer angezeigt. Bei der Übertragung an das CAE-System wird die entsprechende "Nummer":
Artikelnummer
Kundenartikelnummer
Fremdartikelnummer
Typennummer oder
Bestellnummer
übergeben. Je nach Einstellung in PMS.
Die Ermittlung über Referenz geht nicht für Artikel, die in PMS unbekannt sind! NN - Artikel. Also alle Artikel, die in den Kombinationen 0x00000001 - 0x00000010 nicht ermittelt werden konnten!
IUPDE10 gibt die Aktion an, die ausgeführt werden soll.
0 0x0000 - Neuanlage / Update, je nach dem, ob der angegebene Vorgang existiert oder nicht (Standard)
1 0x0001 - Neuanlge, es wird ein Fehler zurückgegeben wenn der Vorgang schon existiert!
2 0x0002 - Update, es wird ein Fehler zurückgegeben wenn der Vorgang nicht existiert!
4 0x0004 - Löschen, es wird ein Fehler zurückgegeben, wenn der Vorgang nicht existiert!
8 0x0008 - Löschen der CAE - Positionen (Keine Bedarfspositionen und auch der Kopf bleibt erhalten!)
256 0x01XX - Bei der Neuanlage das Projekt aus gleichem angegebenen CAEPRJ + CAEPFAD ermitteln
512 0x02XX - Bei der Neuanlage das Projekt aus gleichem angegebenen CAEPRJ ermitteln
Die Anweisung kann durch addieren der Werte in eine Mehrfachanweisung umgewandelt werden!
4 + 1 = 5 : Erst Löschen dann Neuanlage
4 + 2 = 6 : Erzeugt auf jeden Fall einen Fehler, da zuerst gelöscht wird und dann ein Update gemacht werden soll
8 + 0 = 8 : Löscht zuerst die CAE - Positionen des Vorgangs (Gibt keinen Fehler zurück, wenn der Vorgang noch nicht existiert!) Danach Update bzw. Neuanlage des Vorgangs und seiner Positionen. Bedarfspositionen bleiben erhalten!
!ACHTUNG! - Ein Löschen des Vorgangs (4) löscht auch Bedarfspositionen! Diese Informationen gehen dann verloren!
!ACHTUNG! - Wird in L01.ICL01 ein "*" angegeben und ist IUPDE10=0, so wird, wenn das Projekt ermittelt werden kann, IMMER ein neuer Vorgang angelegt! Siehe dazu auch IUPDE10=256/512. Ist dieses Flag gesetzt, so wird die Projektnummer, wenn nicht angegeben, aus den Vorgängen ermittelt, die das gleiche CAE Projekt und/oder Pfad haben. Werden bei der Ermittlung mehrere Projekte ermittelt, so wird das "jüngste" angelegte Projekt MAX(K10.NDATUM) genommen!
Siehe auch die Felder: L01.ICL01 und L01.ICK10
IUPDE11 gibt an, wie die Positionen in PMS zur Positionsliste zu ermitteln sind. D.h.: wie sind die Positionen aus der Positionstabelle zu den in PMS vorhandenen Positionen zu ermitteln um ein Update zu erreichen?
Bitmuster (Dezimal / Hexadezimal)
0 0x0000 - Standard = 15
1 0x0001 - SYSID, nach einer vorhandenen SYSID des CAE - Systems. Die SYSID ist numerisch und muss größer Null sein.
2 0x0002 - BMK + Artikelnummer, es wird nach BMK und Artikelnummer ermittelt.
4 0x0004 - BMK, es wird nach BMK ermittelt
8 0x0008 - ARTNR, es wird nach Artikelnummer ermittelt
16 0x0010 - Nach Gruppierung, wird automatisch ausgeführt, wenn eine Gruppierung angegeben ist! Siehe auch L01.IGRUPPE
Die Werte 1 - 8 sind kombinierbar! Es wird nach obiger Reihenfolge 1,2,4,8 ermittelt!
Kommision des Vorgangs / CAE - Liste. Freie Eingabe des Benutzers
Kunden ID. Nur bei Neuanlage interessant, wenn der Kunde zum Vorgang ermittelt wird.
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zusatztext, kann frei vergeben werden! Diese Texte sind nach dem Einlesen im Feld E10.ZUSATZ zu finden. Dabei wird jeder Text in eine separate Zeile gestellt. Z1 - Z7 => Zeile 1 - Zeile 7
Zeichnungsnummer zum Artikel. Wird benötigt, wenn dem Artikel eine technische Zeichung hinterlegt ist. Mit F3 - Auswahl kann eine Zeichnung (Dateiname) gewählt werden.
Zeichnungsnummer zum Artikel. Wird benötigt, wenn dem Artikel eine technische Zeichung hinterlegt ist. Mit F3 - Auswahl kann eine Zeichnung (Dateiname) gewählt werden. Bei der Schnittstelle zwischen PMS32 und DDM9000 wird die Zeichnungsnummer als Identifizierung an PMS32 übergeben.
Siehe auch : Hauptmenü / Hauptindex / Such Index / Cursor Index / Programm Module / Tabellen Index / Tabellenmodule / Masken Index / Programmcode Index / Servicepacks / My.Struktur / Funktionen / Sonstiges Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen
PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,
Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.
© PMS Compelec GmbH 2022 ® el-Projekt