PC 921 Übernahme von Artikeln aus SQL
Ablauf:
Ein externes Programm schreibt in die SQL-Kommunikationstabelle „xxxxxx“ die Eckdaten des neuen Artikels. Auf der Tabelle ist ein Trigger bei Insert aufgesetzt, der den Postingcode 921 mit den entsprechenden Parametern in eine SQL-Kommunikationstabelle z.B. „UsBookNewEvents2“ für den Verbucher schreibt. Der Verbucher holt den Postingcode ab und schreibt einen neuen Teilestammsatz.
Verwendete Felder USBookNewevents2 (Postingcode):
[MDE]
PostingCode.921=Artikel anlegen,IPS:31M-PC921.IPS,"Postingcode: @postingcode, ID: @linkpostingid, FeldID: @itemno, SQL: @fromstoreno, Datei: @usflag1, Datei: @usflag2, Datei: @usflag3, Datei: @usflag4, Datei: @usflag5, Felder: @usstring1, Felder: @usstring2, Felder: @usstring3, Felder: @usstring4, Felder: @usstring5"
MDETable=USBookNewevents2
Eigene SQL-Tabelle für die Schnittstelle mit dem Aufbau der Originaldatei UsBookNewevents. Die Id muss jedoch automatisch hochgezählt werden können. Die id in der Originaldatei USBookNewevents wird nicht automatisch hochgezählt. Sonst funktioniert der benötigte Trigger jedoch nicht.
|
Feld
|
Beschreibung
|
Beispiel
|
Pflicht J/N
|
|
Linkpostingid
|
ID-Nummer aus der zu importierenden Datenbank. Derzeit nur nummerisch möglich
|
z.B. 1
|
J
|
|
Postingcode
|
Buchungscode
|
921
|
J
|
|
Itemno
|
Name des ID-Feldes aus der zu importierenden Datenbank
|
ID
|
J
|
|
fromstoreid
|
Neuanlage oder Änderung. „N“ oder „A“. Leer wird automatisch zu „N“. Derzeit nur Neuanlage umgesetzt
|
(leer)
|
N
|
|
fromstoreno
|
Name der SQL-DB aus der importiert werden soll
|
xxxxx
|
J
|
|
Account1
|
Name des Status-Feldes aus der SQL-DB in das der Import-Status zurückgeschrieben werden soll
|
Status
|
J
|
|
usflag1
|
DB-Nummer infra in die Daten importiert werden sollen. Nur eine DB-Nummer zulässig. Gilt immer für die Einträge aus usstring1.
|
6
|
J
|
|
usstring1
|
Feldnummer, Spaltenname. Mit Komma getrennt. Feldnummer aus Datei (infra) siehe usflag1, Spaltenname aus zu importierender DB xxxxx. Beliebig viele Paare sind zulässig. Begrenzt lediglich durch die Feldgröße. (C50)
|
3, Artikel,4,Bezeichnung
|
J
|
|
Usflag2
|
DB-Nummer infra in die importiert werden soll. Nur eine DB-Nummer zulässig. Gilt immer für die Einträge aus usstring2
|
6
|
N
|
|
Usstring2
|
Feldnummer, Spaltenname. Mit Komma getrennt. Feldnummer aus Datei (infra) siehe usflag2, Spaltenname aus zu importierender DB xxxxx. Beliebig viele Paare sind zulässig. Begrenzt lediglich durch die Feldgröße. (C50)
|
162,Zeichnungsnummer
|
N
|
|
Usflag3
|
DB-Nummer in die importiert werden soll. Nur eine DB-Nummer zulässig. Gilt immer für die Einträge aus usstring3
|
|
N
|
|
Usstring3
|
Feldnummer, Spaltenname. Mit Komma getrennt. Feldnummer aus Datei (infra) siehe usflag3, Spaltenname aus zu importierender DB xxxxx. Beliebig viele Paare sind zulässig. Begrenzt lediglich durch die Feldgröße. (C50)
|
|
N
|
|
Usflag4
|
DB-Nummer in die importiert werden soll. Nur eine DB-Nummer zulässig. Gilt immer für die Einträge aus usstring4
|
|
N
|
|
Usstring4
|
Feldnummer, Spaltenname. Mit Komma getrennt. Feldnummer aus Datei (infra) siehe usflag4, Spaltenname aus zu importierender DB xxxxx. Beliebig viele Paare sind zulässig. Begrenzt lediglich durch die Feldgröße. (C50)
|
|
N
|
|
Usflag5
|
DB-Nummer in die importiert werden soll. Nur eine DB-Nummer zulässig. Gilt immer für die Einträge aus usstring5
|
|
N
|
|
Usstring5
|
Feldnummer, Spaltenname. Mit Komma getrennt. Feldnummer aus Datei (infra) siehe usflag5, Spaltenname aus zu importierender DB xxxxx. Beliebig viele Paare sind zulässig. Begrenzt lediglich durch die Feldgröße. (C50)
|
|
N
|
WICHTIG:
Eine Artikelnummer muss vorhanden sein. Ansonsten wird der Import abgelehnt.
Derzeit nur Import für neu anzulegende Artikel möglich.
Änderungen an vorhandenen Artikel bisher nicht umgesetzt.
Folgende INI-Parameter stehen zur Verfügung um den Import zu steuern. Nachfolgend sind diese beschrieben. Einträge sind Musterbeispiele.
[MWI31M]
PC921-MusterArtikel = 0110042
Bei der hier angegebenen Artikelnummer sollte es sich um einen Musterartikel handeln der alle in infra notwendigen Felder enthält. Diese werden dann in den neuen Artikel einkopiert. Achtung: In usflag1 muss zwingend die DB 6 angegeben werden. In usstring1 sollte dann bestenfalls auch bereits der Verweis auf die Artikelnummer stattfinden.
Es wird aus den DB 006, DB024, DB027, DB028 und DB104 kopiert. LPCV-Artikel sind nicht erlaubt. Es wird bedingungslos kopiert.
PC921-MusterAPlan = 011012
Kopiert aus dem hier angegeben Artikel den Arbeitsplan. Bisher aus den DB 010 (Arbeitsplan) , 011 (Texte) und 013 (Material). Es wird bedingungslos kopiert.
PC921-MusterSTL = 0111012
Kopiert aus dem hier angegeben Artikel die Stückliste. Bisher aus DB 007. Es wird bedingungslos kopiert.
PC921-CheckBen35 = Y
Prüfung Anwenderfeld35 (Datei 6, Feld 162) auf doppelte Einträge. Die Übernahme wird abgelehnt, falls bereits ein solches Teil existiert. Z.B. könnte in dem Feld die externe Zeichnungsnummer stehen.
PC921-ArtNrGen = NK913T
Dieser Eintrag muss einem Eintrag aus Programm 931- Sektion FIELDPARAM entsprechen. Dann wird eine neue Artikelnummer laut dortiger Vorgabe in infra:NET generiert. Achtung: In usflag1 muss dann zwingend die DB 6 angegeben werden. In usstring1 sollte dann bestenfalls auch bereits der Verweis auf die Artikelnummer stattfinden. Ist hier kein Eintrag festgelegt wird die übergebene Teilenummer verwendet.
Benötigte Dateien :
IPS-Datei: 31M-PC921.IPS
Aufbau der DB xxxxx (SQL) anhand eines Beispiels bezogen auf DocuWare:
Benennung der SQL-Tabelle = DocuWare.
Prinzipiell ist der Aufbau der SQL-Tabelle beliebig. Unbedingt erforderlich ist ein eindeutiges ID-Feld (im Moment nur nummerisch möglich) und ein Feld Status (C2). Die Benennung der Felder ist frei wählbar, da man die Spaltenüberschriften in den Postingcode mitgeben muss.
|
Feldname
|
Datentyp
|
Verwendung
| ||||||||
|
ID
|
[int] IDENTITY(1,1) NOT NULL
|
automatisch vergebene laufende Nummer
| ||||||||
|
[Kundenname]
|
[varchar](61) NULL,
|
Informativ. Keine Verwendung für Datenimport.
| ||||||||
|
[Kundennummer]
|
[varchar](11) NULL,
|
Achtung: in infra werden max. 7 Stellen als Kundennummer berücksichtigt. Wird daher beim Import in das Feld KLASSIFIZIERUNG (D006, F007 C15) übertragen.
| ||||||||
|
[Vorgangsnummer]
|
[char](11) NULL,
|
Informativ. Keine Verwendung für Datenimport.
| ||||||||
|
[Artikelnummer]
|
[varchar](16) NULL,
|
Informativ. Vergabe in infra erfolgt anhand eines Nummernschlüssels.
| ||||||||
|
[Bezeichnung]
|
[varchar](31) NULL,
|
Die zu importierende Bezeichnung wird ohne Umbruch und Regel in die Felder Bez1 und Bez 2 übernommen.
| ||||||||
|
[Zeichnungsnummer]
|
[varchar](21) NULL,
|
Es existiert das Anwenderfeld (D006,F162 C100) das beim Beispielkunde als „Zeichnungsnummer extern“ verwendet wird. Beim Import ist über dieses Feld zu prüfen, ob der Artikel bereits vorhanden ist. Siehe INI-Einstellung [MWI31M]
PC921-CheckBen35 = Y.
Ist die Zeichnungsnummer nicht vorhanden --> Artikel importieren, ist die Zeichnungsnummer vorhanden --> Hinweis in Importtabelle, keine automatische Änderung des Teilstamms (siehe Hinweis unten)
| ||||||||
|
[Revision]
|
[varchar](11) NULL,
|
Wird in ein Anwenderfeld importiert
| ||||||||
|
[DocuWareID]
|
[char](11) NULL,
|
Wird in ein Anwenderfeld importiert
| ||||||||
|
[Status]
|
[varchar](2) NULL,
|
Feld zur Hinterlegung des Importstatus
Verwendung durch infa beim Import
|
Trigger auf „AFTER INSERT“ der Datei DocuWare um die Datei USBookNewevents2 zu füllen.