PMS32 Online- Hilfereferenz
Fehlermeldungen in FIBU
Auftragsart als Langtext aus Y01.BEZEI.
Eingabe des Datums oder Auswahl in der Kalendermaske mit STRG+F2 oder durch Mausklick auf den Button rechts neben dem Datumsfeld.
Im Fall der Fehlermeldungen in FIBU sehen Sie hier das Datum, an dem z.B. die Rechnung erstellt wurde. Im Fall der FIBU - Übergabe der übertragenen Buchungen sehen Sie das Übertragungsdatum.
Kürzel des Fehlers bei der Ermittlung der FIBU Übergabedaten.
Textfelder, sind variable Speicherfelder in denen Informationen bis zu einer Größe von 2GB gespeichert werden können. Die Unterscheidung der Textfelder liegt in ihrem Namen. NOTIZ z.B. wird ausschlieslich für Notizen benutzt. Andere Textfelder wiederum werden beim Erstellen von Vorgängen bzw. Bestellungen aus Stammfeldern übernommen. Im Vorgang: B01.BEZ => E11.BEZ, B01.LANG => E11.LANG. In den Textfeldern können folgende Funktionen über Funktionstasten oder ein ShortCut - Menü (Rechte Maustaste) aufgerufen werden: F2 - Sprung in die Maske C40 - Langtexte, F3 - Auswahl aus C40 - Langtexte und F4 - vergrößerte Eingabe in einer separaten Maske. Diese Funktionen können je nach Textfeld variieren!
Lookup in : Adress- Erweiterung (C6X). 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: - */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen FER und ... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT FER.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"FER.DBF") LEFT OUTER JOIN () ON FER.IDC6X=. ; WHERE FER.... ; INTO CURSOR qFER NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle FER im Feld _Quelle und nur vorhandene Datensätze der Tabelle */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT FER.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"FER.DBF") INNER JOIN () ON FER.IDC6X=. ; WHERE FER.... ; INTO CURSOR qFER NOFILTER READWRITE */ Geht auch so... SELECT FER.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"FER.DBF") , () ; WHERE FER.IDC6X=. AND FER.... ; INTO CURSOR qFER NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL lo AS Object lo = My.Bussines.Strain.Misc.o[FER.IDC6X] IF !EMPTY(lo.) */ Dann wurde der Datensatz in der Tabelle gefunden! */ Weiterer Code kann hier stehen... ENDIF
Interne ID
*/ Das Feld IDFER ist das Primärschlüsselfeld der Tabelle FER - Fehlermeldungen in FIBU */ 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 FER.* FROM (My.Clients.Path.cDbfDir+"FER.DBF") ; WHERE FER.IDFER = m.idfer ; INTO CURSOR qFER NOFILTER READWRITE */ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden... IF poThis._SqlRead([SELECT FER.* FROM CDBFDIR!FER WHERE IDFER=']+m.idfer+['],"qFER",2) */ Hier könnte Code stehen... */ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable) ENDIF
Ein Primärschlüssel legt spezifiziert den eindeutigen Datensatz in einer Tabelle, wenn das Feld der Primärschlüssel der Tabelle ist. Am Beispiel für B01 => IDB01. Spezifiziert das Primärfeld eine andere Tabelle, so ist über dieses Feld die Relation in die andere Tabelle zu setzen. Am Beispiel von I20 => I20.IDB01 Relation in B01.IDB01. Die (meisten) Primärschlüsselfelder mit 8 Stellen werden vom System generiert, kürzere Felder (3,6) müssen vom Benutzer gefüllt werden. Schlüsselfelder wie IDAUF und IDZWI sind Switch-Schlüsselfelder (Wechsel der Tabelle nach Vorgabe in IPAUF bzw. IPZWI, siehe IP-Felder). Bei Tabellen die das Feld IDC26 enthalten wird der Primärschlüssel über ID
*/ Dieses ID Feld IDXXX kann Informationen aus verschiedenen Tabellen enthalten! */ Wichtig in diesem Zusammenhang ist das IP Feld IPXXX in dem über die Systemtabelle Y01 die Zieltabelle angegeben wird... */ Substitution des Feldes IPXXX : LOCAL loY01 AS Object,lcDbf AS String,lcIC AS String,lcID AS String,loDbf AS Object,lxDbf */ Wir holen uns zunächst die Informationen über die IP aus der Systemtabelle Y01... loY01 = My.Bussines.Strain.Misc.vY01[FER.IPXXX] IF !EMPTY(m.lcIP) */ Dann wurden Informationen gefunden... lcDbf = RTRIM(loY01.cmDbf) && Die Mastertabelle der IP lcID = "ID"+m.lcDbf && Das Primärschlüsselfeld der Mastertabelle lcIC = RTRIM(loY01.cMic) && Das Candidate Feld der Mastertabelle (z.B. Artikelnummer: B01=>ARTNR) lxDbf = "o"+m.lcDbf IF PEMSTATUS(My.Bussines.Strain.Misc,m.lxDbf,5) */ Dann gibt es einen direkten Abruf des Datensatzes loDbf = My.Bussines.Strain.Misc.&lxDbf[FER.IDXXX] IF !EMPTY(loDbf.&lcID) */ Dann wurden die Daten gefunden... ENDIF ENDIF ENDIF */ Ein direkter Abruf kann auch über: LOCAL loDbf AS Object loDbf = My.Bussines.Strain.Misc.oSWTbl(FER.IPXXX,FER.IDXXX) */ erfolgen, hier muss man prüfen, ob loDbf <> .NULL. ist... IF !ISNULL(m.loDbf) */ Dann kann auf die Daten der Switched Table zugeriffen werden! */ Um dem Benutzer die Aufgabe einfacher zu machen werden an das Tabellenobjekt folgende Felder geadded: */ __DBF => Name der Tabelle (B01) */ __ID => Name des ID Feldes */ __IC => Name des IC Feldes, falls vorhanden ENDIF
Ein IP-Feld spezifiziert die "Art" eines Datensatzes. Die Erklärungen können über die (System) Tabelle Y01 ermittelt werden. Am Beispiel von B01.IPB01 => Y01.IPY01. Die Tabelle Y01 enthält noch den Sprachkenner IDC26, weshalb dort über die entsprechende Sprache gefiltert werden muss. Für die IP-Felder IPAUF und IPZWI, bei denen keine (existierende) Tabelle angegeben ist gilt: das entsprechende ID-Feld der Tabelle ist ein Switch-Primärschlüssel aus der Tabelle, die über Y01.MASTER ermittelt werden kann. IP-Felder sind Präfixe für bestimmte Tabellen. Beispiel an E11 (Vorgangspositionen) E11.IPY01 = "709" => NN-Artikel. Teilweise geben IP-Felder auch einen Status des entsprechenden Datensatzes an, I22.IPI22S => Status der Lagerumbuchung kann aus Y01.KURZ bzw. Y01.BEZEI ermittelt werden.
*/ 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[FER.IPC6X] */ Damit kann die Zeilenart bestimmt werden...
Ein IP-Feld spezifiziert die "Art" eines Datensatzes. Die Erklärungen können über die (System) Tabelle Y01 ermittelt werden. Am Beispiel von B01.IPB01 => Y01.IPY01. Die Tabelle Y01 enthält noch den Sprachkenner IDC26, weshalb dort über die entsprechende Sprache gefiltert werden muss. Für die IP-Felder IPAUF und IPZWI, bei denen keine (existierende) Tabelle angegeben ist gilt: das entsprechende ID-Feld der Tabelle ist ein Switch-Primärschlüssel aus der Tabelle, die über Y01.MASTER ermittelt werden kann. IP-Felder sind Präfixe für bestimmte Tabellen. Beispiel an E11 (Vorgangspositionen) E11.IPY01 = "709" => NN-Artikel. Teilweise geben IP-Felder auch einen Status des entsprechenden Datensatzes an, I22.IPI22S => Status der Lagerumbuchung kann aus Y01.KURZ bzw. Y01.BEZEI ermittelt werden.
*/ 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[FER.IPXXX] */ Damit kann die Zeilenart bestimmt werden...
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