Automatisches Taggen

Wenn ich mich recht erinnere, gab es doch irgendwo eine Einstellung, die es ermöglichte, dass Dokumenten automatisch den Gruppennamen, in den das Dokument eingeordnet wird, als Tag zu zuzuweisen. Wo finde ich das…?

Vielleicht bin ich aber auch komplett auf dem Holzweg und hab das falsch in Erinnerung

Wählen Sie DEVONthink’s File > Database Properties für die jeweilige Datenbank und deaktivieren Sie Exclude Groups from Tagging.

Dies muss für jede Datenbank, die Sie mit Gruppen-Tags verwenden möchten, wiederholt werden.

(Übersetzt mit deepl.com)

Hallo, gibt es auch die Möglichkeit einzelnen Gruppen zu sagen das sie den Gruppennamen als Tag vererben sollen? Ich hatte das mal per zufall, ich weiß aber nicht mehr wie ich das hinbekommen habe. VG

Nur dadurch, dass Tagging zunächst für alle Gruppen aktiviert wird, d.h. die Option Ablage > Datenbank-Eigenschaften > Gruppen beim Tagging ignorieren deaktiviert wird. Anschließend müsste dann allerdings jede Gruppe, bei der das nicht gewünscht, vom Tagging wiederum ausgeschlossen werden, s. Info > Allgemein-Inspektor.

Das wäre die Verwendung von Gruppen-Tags, die durch Deaktivieren der Option Datei > Datenbankeigenschaften > Gruppen von der Markierung ausschließen auf einer Datenbankbasis aktiviert werden. Dies ist jedoch eine Option, über die Sie nachdenken sollten, bevor Sie sie aktivieren. Es handelt sich um dynamisch zugewiesene Tags, sodass sich das Verschieben von Objekten von einer Gruppe in eine andere auf ihre Tags auswirkt.

Dankeschön

Bitte sehr!

Ups, ich hab noch ein kleines Problem,
Die Tags der vererbbaren Gruppen sollten mir helfen die Namensbenennung der Dateien
zu definieren.
Jetzt sagen sie das diese dynamisch sind, soweit ok.
Wenn ich jetzt mein Skript anwende welches nach dem tagging den Dateinamen benennt,
passiert da nichts.

Der sinn hinter der ganzen geschichte ist folgender.
Da viele Dateien gerne mal mit viel unsinnigen Tags versehen werden möchte ich bei der Erkennung spezifischer Merkmale wie z.B. die schon in den Datenbanken hinterlegten zusammengehörigen Tags wie (Postbank / Kontoauszug / ktnr:123456789) die dann schon in einem Dokument in der Mehrzahl zusammen erkannt wurden automatisch in den dafür vorgesehenen Ordner verschoben werden der richtig Getaggt ist, und dann alle überflüssig erkannten ist Tags löscht und dort dann den Dateinamen anhand der Soll-Tags neu definiert.

Damit will ich mir die Überprüfung sparen und die Benennungsfehler ausmerzen und somit die Arbeitsgeschwindigkeit erhöhen.
Mein Script sieht wie folgt aus.

wie kann ich hier das skript teilen ohne das ich ein Bild davon machen muss, besser Copy Paste.

Ich hatte Ihren Beitrag bereits bearbeitet, um den Code richtig anzuzeigen. Warum entfernen Sie ihn und ersetzen ihn durch eine Bildschirmaufnahme?

Entschuldigen sie vielmals, das war keine absicht, hatte den Bearbeitet und es hängte sich etwas auf, ich poste das nochmal.
Kommt nicht wieder vor!!

Bearbeitet. Sie müssen drei Backticks (```) am Anfang und am Ende von Codeblöcken verwenden, damit sie in den Foren richtig angezeigt werden.

property isPrivate : false -- geschäftlich / privat
property theSeparator : " - " -- Trenner in Namen
property thePlaceholder_CustomerID : "%AKTENZEICHENKUNDENNUMMER_"
property thePlaceholder_Subject : "%BETREFF_"
property thePlaceholder_Company : "%FIRMA_"
property thePlaceholder_Name : "%NAME_"
property removeTags : false

-- entferne das # um das Skript mit ausgewählten Records zu testen (also nicht in einer Smart Rule)
-- denk dran wieder das wieder # hinzuzufügen bevor das Skript in einer Smart Rule genutzt wird

#tell application id "DNtp" to my performSmartRule(selection as list)  -- nur zum testen mit ausgewählten Records

on performSmartRule(theRecords)
	tell application id "DNtp"
		try
			repeat with thisRecord in theRecords
				set theTags_CustomerID to (name of parents of thisRecord whose location starts with "/Tags/Aktenzeichen \\/ Kundennummer") -- 1
				set theTags_Subject to (name of parents of thisRecord whose location starts with "/Tags/Betreff") -- 2
				set theTags_Company to (name of parents of thisRecord whose location starts with "/Tags/Firma") -- 3
				set theTags_Name to (name of parents of thisRecord whose location starts with "/Tags/Name") -- 4
				
				if theTags_CustomerID = {} then set theTags_CustomerID to {thePlaceholder_CustomerID}
				if theTags_Subject = {} then set theTags_Subject to {thePlaceholder_Subject}
				if theTags_Name = {} then set theTags_Name to {thePlaceholder_Name}
				
				if isPrivate = false then
					if theTags_Company = {} then
						set theTags_Company to (name of parents of thisRecord whose location starts with "/Tags/Finanzamt") -- Fallback 1
						if theTags_Company = {} then
							set theTags_Company to (name of parents of thisRecord whose location starts with "/Tags/Krankenkasse") -- Fallback 2
							if theTags_Company = {} then
								set theTags_Company to (name of parents of thisRecord whose location starts with "/Tags/Banken") -- Fallback 3
								if theTags_Company = {} then
									set theTags_Company to {thePlaceholder_Company}
								end if
							end if
						end if
					end if
					set newName to my tid(theTags_Company, "; ") & theSeparator & my tid(theTags_Name, "; ") & theSeparator & my tid(theTags_Subject, "; ")
				else
					set newName to my tid(theTags_Name, "; ") & theSeparator & my tid(theTags_Subject, "; ") & theSeparator & my tid(theTags_CustomerID, "; ")
				end if
				set name of thisRecord to newName
				
				if removeTags = true then
					set thisRecord_Tags to tags of thisRecord
					set newTags to my removeItemsFromList(thisRecord_Tags, (theTags_CustomerID & theTags_Subject & theTags_Company & theTags_Name))
					set tags of thisRecord to newTags
				end if
			end repeat
			
		on error error_message number error_number
			if the error_number is not -128 then display alert "DEVONthink" message error_message as warning
			return
		end try
	end tell
end performSmartRule

on tid(theInput, theDelimiter)
	set d to AppleScript's text item delimiters
	set AppleScript's text item delimiters to theDelimiter
	if class of theInput = text then
		set theOutput to text items of theInput
	else if class of theInput = list then
		set theOutput to theInput as text
	end if
	set AppleScript's text item delimiters to d
	return theOutput
end tid

on removeItemsFromList(theList, removeItems)
	set newList to {}
	repeat with thisItem in theList
		set thisItem to thisItem as string
		if thisItem is not in removeItems then
			set end of newList to thisItem
		end if
	end repeat
	return newList
end removeItemsFromList

OK, gut zu wissen das mit den Backticks

Woher bekommen Sie Dokumente mit überflüssigen Tags? Sie scheinen hier nicht über das übliche Verhalten zu sprechen.

Ich hab in dem script ja 4 Datenbanken angelegt die für das Taggen durchsucht werden, unten stehen im Brief immer: zuständiges Gericht, bankverbindung Sparkasse, Bankverbindung Volksbank etc. und das sorgt immer für falsche Tags
Hier mal so eine Beispielfußzeile eines Briefes:

Das ist jetzt die Fußzeile für die DEW21 in Dortmund eines Energieversorgers.
Das geht noch viel schlimmer.
Der automatische Poststempel mancher Betriebe wird auch manchmal erkannt als Tag der Deutsche Post Obwohl das kein Brief der Deutschen Post ist, und der befindet sich meistens oben im Briefkopf.

Bei den Arztbriefen erkennt er die Krankenkasse und Tagt diese weil die dort angegeben ist.

Im Kontoauszug Tagt er auch alles,
Und das versuch ich zu vermeiden.
Ich hatte mal alles voller Tags, das verlangsamte die Suche immens.
Jetzt versuche ich die Rechenleistung des Rechners niedrig zu halten in dem ich nur die Tags tagge die ich für diese Briefe sinvoll halte, das klappt ganz gut.
Ist zwar anfangs viel Arbeit, aber es lohnt sich. Nur ist es immer Mühsehlig die ganzen Tags zu löschen die man nicht in dem Dokument braucht. Vielleicht haben sie da eine lösung, denn wenn diese Tags nicht währen währe das eine wirkliche Erleichterung