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
Leer
Neue Position
09 
Position korrekt übernommen
04
Artikel mit derselben Zeichnungsnummer bereits vorhanden
05
Position konnte nicht übernommen werden (Fehler)
 
Trigger auf „AFTER INSERT“ der Datei DocuWare um die Datei USBookNewevents2 zu füllen.