EMail senden Mail an den Autor Drucken

vorhergehender Eintrag

nächster Eintrag

Inhalt

Hilfe Index

.

Jet DMS Administration

JET DMS Anlage einer Such -und Ablagestruktur

Um eine standardisierte Struktur zu definieren, ist in Kplus ein Assistent zur Erstellung integriert.

Struktur erstellen - Damit wird die Struktur in Kplus für die Ablage und Suche der Dokumente angelegt

Kopiervorlage in DMS erzeugen - Mit dieser Schaltfläche wird die Vorlagenstruktur in der DMS erstellt. Diese Struktur passt genau zu der Struktur, welche man mit der Schaltfläche Struktur erstellen definieren kann.

Manuelle Anlage einer Struktur

Zu verwendende Typen und Basistypen.

  • Auftrag
    Wenn es keine spezifische Anpassung auf die folgenden Auftragstypen gibt, dann wird immer auf den TYP Auftrag gesucht.
    Das bedeutet:
    Wenn Sie für die verschiedenen Auftragstypen in Kplus keine Unterscheidung brauchen, dann legen Sie für diese Type einfach keinen Eintrag an, damit verwendet Kplus beim Beschlagworten die globale Auftragseinstellung.
    Die Auftragstypen sind in der Hierarchie höher als die Merkmalunterscheidungen (Abteilung, Auftragsart, Sparte).
    Das heißt, wenn es zb. einen Eintrag gibt für Projektauftrag und einen Auftrag mit Merkmal Sparte dann hat der Projektauftrag Vorrang. Will man in diesem Fall trotzdem für die Sparte eine andere Regelung, dann muss man einen Eintrag machen mit Projektauftrag und Sparte.
    • Projektauftrag
    • Serviceauftrag
    • Produktionsauftrag
  • Angebot
  • Lieferschein
  • Rechnung
  • Preisanfrage
  • Bestellung
  • EK Lieferschein
  • EK Rechnung
  • Kunde - muss mit der Adressart übereinstimmen
  • Lieferant - muss mit der Adressart übereinstimmen
  • Vertreter - muss mit der Adressart übereinstimmen
    jeder weitere Eintrag muss mit einer Adressart übereinstimmen
  • Projekt - für die Suche direkt aus dem Projektfenster
  • Artikel - für die Suche direkt aus dem Projektfenster
  • Aktivität

Jeder Eintrag kann zusätzlich für eine Abteilung, Auftragsart oder Sparte übersteuert werden.

Beispiel: Belege mit der Auftragsart Handel sollen anders abgelegt werden.

Der Auftrag soll im Bereich Rechnungswesen\Verkauf\Kunde\ abgelegt werden.

Hat man sich entschieden für ein bestimmtes Merkmal (in diesem Beispiel die Sparte) eine andere Ablagestruktur zu definieren, dann muss man für alle Belege die das Betrifft je einen Eintrag machen.

Also für jeden Belege der in diesem Auftragsordner landen soll:

  • Lieferschein
  • Rechnung
  • Preisanfrage
  • Bestellung
  • EK Lieferschein
  • EK Rechnung

Man muss für jeden Beleg definieren wo er in der Struktur abgelegt bzw. gesucht werden soll.
Wobei man die Suche als XPath-Suche erstellen muss.
Im Regelfall bei einer normalen Struktur ist die Suche identisch mit der Ablageregel. Das Problem dabei ist, dass wenn man genau so exakt sucht wie ablegt, es zu doppelten Einträgen kommen kann.
Beispiel:
Sie legen den Auftrag mit der Nummer und dem Namen des Kunden ab. Irgendwann ändert jemand was an der Adresse bzw. es ändert sich überhaupt der Kunde für den Auftrag. Bei der nächsten Ablage würde der komplette Auftragszweig wieder in der Struktur angelegt werden, da die Suche über Auftragsnummer und Kundenname geht.


Um dies zu verhindern kann man die Suche getrennt von der Ablage verwalten.
Beispiel:

Der Ablagepfad für Aufträge lautet:
02 Rechnungswesen/Verkauf/Kunden/A-Z/[Kundennummer] [Kundenname]/Rechnungen

Der Aktendeckel für eine Rechnung ist so definiert:

Rechnung [Rechnungsnummer] [Betreff]

So wird der Folder für die Aktenablage gesucht.

Die ersten drei ebenen sind fix und somit immer gleich zu suchen, den Folder für den Buchstaben nicht beachten, dann beginnend mit der Kundennummer und als letztes den Folder mit dem Namen Rechnungen.
//Folder[@Name='02 Rechnungswesen']/Folder[@Name='Verkauf']/Folder[@Name='Kunden']/Folder/Folder[starts-with(@Name,'[Kundennummer]')]/Folder[@Name='Rechnungen']

Um den Aktendeckel zu suchen wird die Foldersuche um folgendes erweitert:

/Object[contains(@Name,'[Belegnummer]')]

Die komplette Aktendeckelsuche sieht dann so aus:

<JDMS_SUCHE_BELEGFOLDER>/Object[contains(@Name,'[Belegnummer]')]

oder so

//Folder[@Name='02 Rechnungswesen']/Folder[@Name='Verkauf']/Folder[@Name='Kunden']/Folder/Folder[starts-with(@Name,'[Kundennummer]')]/Folder[@Name='Rechnungen']/Object[contains(@Name,'[Belegnummer]')]

Beide Varianten sind richtig, wobei die erste den Vorteil hat dass man weniger verwalten muss.

Besondere Funktionen

  • [DokumentenArt] - Wird immer automatisch vergeben und beachtet die Formularzuordnung
  • <JDMS_SUCHE_BELEGFOLDER> - Damit kann man aus dem aktuellen Datensatz ein Feld als Platzhalter verwenden
  • .. - Nimmt den Inhalt des Feldes aus dem Basisdatensatz. Beispiel Rechnung/Auftrag Calculate JDMS_ABLAGE_BELEGFOLDER as con("..","\08 Rechnungen\82 Ausgangsrechnungen")
  • ..{Kunde,} - nimmt den Inhalt des Feldes aus dem Datensatz Kunde/

Es macht absolut Sinn einen Basisidatensatz zu erstellen und dann auf diesen zu verweisen.

Beispiel Kunde:

Calculate JDMS_TYP as "KundeBasis"

Calculate JDMS_SUCHE_BELEGFOLDER as con("//Folder[@Name='","03 Rechnungswesen","']","/Folder[@Name='","01 Kunden","']","/Folder","/Folder[starts-with(@Name,'","[KtoNr] ","')]") ;; deckfoldersuche

Calculate JDMS_ABLAGE_BELEGFOLDER as con("03 Rechnungswesen","\","01 Kunden","\[Buchstabe]\[KtoNr] [KundenName]")

Ein anderer Datensatz würde dann so darauf verweisen:

Calculate JDMS_SUCHE_BELEGFOLDER as "..{KundeBasis}"

Calculate JDMS_ABLAGE_BELEGFOLDER as con("..{KundeBasis}","\Jahr]")

oder kombiniert mit einer weiteren Suche

Calculate JDMS_SUCHE_BELEGFOLDER as con("..{KundeBasis}" ,"/Folder[contains(@Name,'","[Jahr]","')]")

Calculate JDMS_ABLAGE_BELEGFOLDER as con("..{KundeBasis}","\Jahr]")

Wenn Sie die Felder aus den übergeordneten Basisdaten verwenden, dann müssen Sie auch sicherstellen, dass die Variablen Felder alle vorhanden sind.

Beispielcode zur Anlage der Vorlageneinträge

Clear selected files {D_JETDMS_VORLAGEN}

Calculate JDMS_TYP as "Auftrag"

Calculate JDMS_FELD1 as "KostenstellenNr=[AUF_BELEGNR]"

Calculate JDMS_FELD2 as "KostenstellenName=[AUF_NAME1]"

Calculate JDMS_FELD3 as "Jahr=[jst(AUF_EDATUM,'D:y')]"

Calculate JDMS_FELD4 as "Kst=[AUF_BEZUG]"

Calculate JDMS_FELD5 as "Auftragsnummer=[AUF_BELEGNR]"

Calculate JDMS_ABLAGE_BELEGFOLDER as con(F_ZIELPFAD_VERKAUF,"\[Jahr]\","[KostenstellenNr] [KostenstellenName]")

Calculate JDMS_SUCHE_BELEGFOLDER as con("//Folder[contains(@Name,'",F_ZIELPFAD_VERKAUF,"')]","/Folder","/Folder[contains(@Name,'","[KostenstellenNr]","')]") ;; Auftragdeckfoldersuche

Calculate JDMS_ABLAGE_AKT as "Auftag [Auftragsnummer] [KostenstellenName]"

Calculate JDMS_SUCHE_AKT as con(JDMS_SUCHE_BELEGFOLDER,"/Object[contains(@Name,'","[Auftragsnummer]","')]")

Calculate JDMS_SUCHE_NACH_AKT as 0

Calculate JDMS_ABLAGE as 1

Call procedure Kplus_SQL/130 (999,"D_JETDMS_VORLAGEN") {kSQL insert table}

; Kopiervorlage

Clear selected files {D_JETDMS_VORLAGEN}

Calculate JDMS_TYP as "Auftrag"

Calculate JDMS_FELD1 as "KostenstellenNr=[AUF_BELEGNR]"

Calculate JDMS_FELD2 as "KostenstellenName=[AUF_NAME1]"

Calculate JDMS_FELD3 as "Jahr=[jst(AUF_EDATUM,'D:y')]"

Calculate JDMS_FELD4 as "Kst=[AUF_BEZUG]"

Calculate JDMS_QUELLPFAD as con(F_KOPIERVORLAGE_ROOT,"\Projekte\GroßBaustelle\[Jahr]")

Calculate JDMS_ZIELPFAD as F_ZIELPFAD_VERKAUF

Calculate JDMS_SUCHE_BELEGFOLDER as con("//Folder[@Name='",F_ZIELPFAD_VERKAUF,"']","/Folder","/Folder[contains(@Name,'","[KostenstellenNr]","')]","/Folder[starts-with(@Name,'00')]") ;; Auftragdeckfoldersuche

Calculate JDMS_SUCHE_AKT as con(JDMS_SUCHE_BELEGFOLDER,"/Object[contains(@Name,'","[Belegnummer]","')]")

Calculate JDMS_KOPIERVORLAGE as 1

Call procedure Kplus_SQL/130 (999,"D_JETDMS_VORLAGEN") {kSQL insert table}

Clear selected files {D_JETDMS_VORLAGEN}

Calculate JDMS_TYP as "Kunde"

Calculate JDMS_TYP_BASIS as ""

Calculate JDMS_FELD1 as "KtoNr=[KD_NUMMER]"

Calculate JDMS_FELD2 as "Buchstabe=[upp(mid(KD_NAME1,1,1))]"

Calculate JDMS_FELD3 as "KundenName=[KD_NAME1]"

Calculate JDMS_FELD4 as "Jahr=[jst(#D,'D:y')]"

Calculate JDMS_SUCHE_BELEGFOLDER as con("//Folder[@Name='",L_ROOT_OHNE_AUFTRAG1,"']","/Folder[@Name='",L_ROOT_OHNE_AUFTRAG2,"']","/Folder","/Folder[contains(@Name,'","[KtoNr]","')]") ;; deckfoldersuche

Calculate JDMS_ABLAGE_BELEGFOLDER as con(L_ROOT_OHNE_AUFTRAG1,"\",L_ROOT_OHNE_AUFTRAG2,"\[Buchstabe]\[KtoNr] [KundenName]")

Calculate JDMS_SUCHE_AKT as JDMS_SUCHE_BELEGFOLDER

Calculate JDMS_ABLAGE_AKT as "[KtoNr] [KundenName]" (All windows)

Calculate JDMS_SUCHE_NACH_AKT as 0

Calculate JDMS_ABLAGE as 1

Call procedure Kplus_SQL/130 (999,"D_JETDMS_VORLAGEN") {kSQL insert table}

Clear selected files {D_JETDMS_VORLAGEN}

Calculate JDMS_TYP as "Rechnung"

Calculate JDMS_TYP_BASIS as "Auftrag"

Calculate JDMS_FELD1 as "KostenstellenNr=[AUF_BELEGNR]"

Calculate JDMS_FELD2 as "KostenstellenName=[AUF_NAME1]"

Calculate JDMS_FELD3 as "Jahr=[jst(AUF_EDATUM,'D:y')]"

Calculate JDMS_FELD4 as "Kst=[AUF_BEZUG]"

Calculate JDMS_FELD5 as "Belegnummer=[RGK_BELEGNR]"

Calculate JDMS_FELD6 as "KtoNr=[RGK_KDNR]"

Calculate JDMS_FELD7 as "KundenName=[RGK_NAME1]"

Calculate JDMS_FELD8 as "Betreff=[RGK_Betreff]"

Calculate JDMS_QUELLPFAD as ""

Calculate JDMS_ZIELPFAD as ""

Calculate JDMS_SUCHE_BELEGFOLDER as con("..","/Folder[contains(@Name,'08')]","/Folder[contains(@Name,'82')]")

Calculate JDMS_SUCHE_AKT as con("<JDMS_SUCHE_BELEGFOLDER>","/Object[contains(@Name,'","[Belegnummer]","')]")

Calculate JDMS_ABLAGE_BELEGFOLDER as con("..","\08 Rechnungen\82 Ausgangsrechnungen")

Calculate JDMS_ABLAGE_AKT as "Rechnung [Belegnummer] [Betreff]"

Calculate JDMS_KOPIERVORLAGE as 0

Calculate JDMS_SUCHE_NACH_AKT as 1

Calculate JDMS_ABLAGE as 1

Call procedure Kplus_SQL/130 (999,"D_JETDMS_VORLAGEN") {kSQL insert table}

Clear selected files {D_JETDMS_VORLAGEN}

Calculate JDMS_TYP as "Rechnung"

Calculate JDMS_TYP_BASIS as ""

Calculate JDMS_FELD1 as "KtoNr=[RGK_KDNR]"

Calculate JDMS_FELD2 as "Kst=[AUF_BEZUG]"

Calculate JDMS_FELD3 as "Belegnummer=[RGK_BELEGNR]"

Calculate JDMS_FELD4 as "Betreff=[RGK_Betreff]"

Calculate JDMS_FELD5 as "Buchstabe=[upp(mid(RGK_NAME1,1,1))]"

Calculate JDMS_FELD6 as "Name=[RGK_NAME1]"

Calculate JDMS_QUELLPFAD as ""

Calculate JDMS_ZIELPFAD as ""

Calculate JDMS_SUCHE_BELEGFOLDER as con("..{Kunde,}","/Folder[starts-with(@Name,'02')]") ;; deckfoldersuche Rechnung Kunde ohne Auftragsbezug

Calculate JDMS_ABLAGE_BELEGFOLDER as con("..{Kunde,}","\02 Rechnungen")

Calculate JDMS_SUCHE_AKT as con("<JDMS_SUCHE_BELEGFOLDER>","/Object[contains(@Name,'","[Belegnummer]","')]")

Calculate JDMS_ABLAGE_AKT as "Rechnung [Belegnummer] [Betreff]"

Calculate JDMS_KOPIERVORLAGE as 0

Calculate JDMS_SUCHE_NACH_AKT as 1

Calculate JDMS_ABLAGE as 1

Call procedure Kplus_SQL/130 (999,"D_JETDMS_VORLAGEN") {kSQL insert table}

In diesem Kapitel

Jet DMS Kopiervorlagen

Weitere Kapitel

JET DMS Barcodes

JET DMS / Jet Scan und Beschlagwortung

JET DMS Cold Belege erstellen

vorhergehender Eintrag

nächster Eintrag

Inhalt

Jet DMS Kopiervorlagen

Bei Kopiervorlagen werden folgende Felder verwendet

 

Feld

Funktion

 

JDMS_QUELLPFAD

Root der Kopiervorlage

J

JDMS_ZIELPFAD

Zielverzeichnis

 

JDMS_SUCHE_BELEGFOLDER

Xpathsuche für die Prüfung ob Ziel bereits vorhanden ist

Zum Seitenanfang Drucken