Ordneraktionen: Scripts anpassen

Hallo,
wie kann ich das Script »Import, OCR & Delete« so anpassen, dass es NACH einem Scan das Dokument nicht in den allgemeinen Eingangsordner legt, sondern in einen speziellen Ordner oder den Eingangsordner einer Datenbank?
Mein Scanner legt aktuell immer zuerst schon einmal ein Vorab-PDF an, in das er dann die Inhalte scannt. Dadurch wird bei DevonThink immer zweimal das Dokument erstellt, einmal ohne Inhalt und dann das fertig gescannte Dokument. Kann man das ändern?

Bei dem Ordnerscript handelt es sich um dieses:

Ich habe schon versucht, unter Delay statt 0.5 eine höhere Zahl einzutragen. Das funktioniert auch, aber verlangsamt natürlich den Workflow. Außerdem beginnt er dann nach der eingestellten Zeit mit dem Importieren, auch wenn der Scan noch nicht fertig ist. Kann man das geschickter lösen?

Im Script habe ich versucht, den Importordner zu ändern:

try
    tell application id "DNtp"
    set theGroup to get record with uuid "4882159B-4153-49DD-AE62-C6C5FC4D693E"
    set theRecord to ocr file thePath to theGroup
    set label of theRecord to 2
    if exists theRecord then tell application "Finder" to delete theItem
    end tell
end try

Leider hat das nicht funktioniert, alles wird weiterhin in den allgemeinen Eingangsordner kopiert.
Wie muss ich die Script anpassen, dass es funktioniert?
Danke für Eure Tipps
doescher

Ich würde vorschlagen, dass Sie dies stattdessen mit intelligenten Regeln versuchen.

  1. Entfernen Sie die Ordneraktion aus dem Ordner.
  2. Wählen Sie in DEVONthink Datei > Dateien und Ordner indizieren und wählen Sie diesen Ordner. Indizieren Sie ihn in den Posteingang der Datenbank Ihrer Zielgruppe.
  3. Wählen Sie die Gruppe in der Seitenleiste Navigieren aus.
  4. Drücken Sie unten in der Seitenleiste die Plus-Taste (+) und wählen Sie Neue intelligente Regel.
  5. Richten Sie Kriterien wie diese ein, natürlich unter Verwendung Ihrer eigenen Standorte.

(Übersetzt mit https://deepl.com)

Hallo,
leider funktioniert das nicht oder aber ich bekomme es einfach nicht hin.

Das erste Problem ist schon einmal, dass beim Indizieren immer das Original im ursprünglichen Ordner bleibt. Ich möchte diese Scans aber in die Datenbank Importieren und dann den originalen Scan löschen, damit mir meine HDD nicht vollgemüllt wird.

Aber ich habe keine Ahnung, wie ich es besser erklären kann, was ich möchte. Fakt bleibt leider, dass das Zusammenspiel mit Hazel und DT2 optimal funktioniert hat und leider mit DT3 nicht mehr.
Dadurch DT für mich ein ganzes Stück sinnlos geworden, denn nun darf ich wieder alles händisch einordnen.

Schade.
doescher

Dazu könnten Sie als erste Aktion in der Regel “In Datenbank verschieben” einfügen.

Wie kann ich denn wenigstens die OCR-Funktion automatisch starten lassen, wenn ich per Hazel ein Dokument in den Eingangsordner einer Datenbank verschiebe? Ich habe nun (glaube ich) alle Aktionen durch, aber leider wird die intelligente Regel nicht ausgeführt und ich muss bei jedem Scan wieder manuell starten.
2020-04-30_Bildschirmfoto 2020-04-30 um 13.11.18

Die intelligente Regel müsste im Eingang suchen, die Aktionen nach dem Import und nicht manuell ausgeführt werden. Mit diesen Änderungen sollte es klappen.

Welche Scanner-Software verwenden Sie denn? Die meisten erlauben es, die Scans direkt an ein anderes Programm zu schicken und in diesem Fall könnte DEVONthink Pro 3 auch direkt OCR ausführen ohne Umweg über Hazel, Ordneraktionen oder intelligente Regeln.

Ich bin wohl nicht in der Lage, das hinzubekommen.
Trotzdem Danke fürs probieren, ich mache es jetzt händisch.
doescher

Hallo,

ich möchte gerne dieses Thema nochmal anstoßen

Dieses Script funktioniert super

wie kann ich jedoch einstellen, dass die Scans nicht in den Eingang sondern in eine Datenbank mit einem Gruppennamen Hallo1 zb direkt importiert wird?

Was muss man statt on adding folder items to this_folder einfügen?

Das mit den Intelligenten Regeln habe ich auch versucht, die Datei bleibt jedoch im Verzeichnis und der Workflow erzeugt immer weitere Dateien und löscht die alte nicht…

Vielen Dank.

Ich bin mir nicht sicher, aber vielleicht hilft dieser Teil eines anderen Scripts Dir weiter:

tell application id "DNtp"
    	set theGroup to get record with uuid "(Hier kommt die Zahlenkolonne des Verweis hin)"
    	
    	-- choose one option, Index or Import, comment out the other
    	set theImport to import _path name _name to theGroup
    	-- set theIndex to indicate _path to theGroup
end tell

Dann musst Du noch in DT deinen Ordner »hallo1« auswählen, rechte Maustaste und dann auf den Eintrag »Verweis kopieren«.
Dann diesen Verweis in ein Dokument (neue Mail oder Textdokument) einfügen und die lange Zahlenkolonne hinter »x-devonthink-item://« herauskopieren. Diese Zahlenkolonne ist der Link zu deinem Ordner.
Diese Zahlenkolonne fügst Du dann an der Stelle in das Script ein, die ich Dir vermerkt habe (ohne Klammern).
Ich hoffe, dass hilft Dir.

tell application id "DNtp"
	set theRecord to ocr file thePath to incoming group
	if exists theRecord then tell application "Finder" to delete theItem
end tell

so sieht das aktuell aus, ich hab verschiedene Varianten versucht, nichts klappt.

tell application id "DNtp"
	set theRecord to ocr file thePath to incoming group
	set theGroup to get record with uuid "Nummer des Verweises"
	if exists theRecord then tell application "Finder" to delete theItem
end tell

Leider kommen die Scans nicht direkt in einen anderen Ordner. Es wird OCR´t, im Finder gelöscht, die Datei taucht immer wieder im Eingang auf.

Auch wenn ich den Part mit dem Incoming Group ersetze…

gruß

Bitte pack den Code in drei Backquotes am Anfang und Ende (```), dann kann man ihn hier vernünftig lesen.

Geändert.

Ein Versuch der Erklärung:

  • Du machst ein OCR einer Datei, die sich in “incoming group” befindet
  • Dann setzt du die Variable theGroup auf eine Gruppe (ich hoffe mal, “Nummer des Verweises” ist hier nur ein Platzhalter)
  • Anschließend löschst Du die Datei via Finder.

An welcher Stelle genau sollte nun die per OCR behandelte Datei verschoben werden? Ich sehe da kein Stück Code für. Vielleicht gucke ich nur nicht richtig hin?

Hallo

Ich wusste jetzt nicht, ob ich den original Code so belassen sollte oder diesen Teil ersetzen sollte.

Nummer des Verweises, da steht dann tatsächlich die Nummer.

Wenn eine Datei im Ordner (Finder) liegt, fängt DT an mit dem OCR, nach dem OCR taucht diese Datei im globalen Eingang. Anschließend löscht das Script die Datei aus dem Finder.

Ich möchte gerne verschiedene Ordner im Finder so programmieren, dass wenn eine oder mehrere Dateien per Scanner rein kommen diese in die jeweiligen Gruppen verschoben werden.

Das sagtest Du. Dann musst Du das aber auch im Script hinschreiben. Du setzt lediglich eine Variable auf die jeweilige Gruppe. Da fehlt das

move record to theGroup

Und dem ocr solltest Du vielleicht auch noch mitgeben, welchen Dateityp du am Ende haben möchtest. Sonst wird immer die Einstellung aus den Voreinstellungen genommen. Besser ausdrücklich sagen als hoffen, dass da das Richtige steht.

hello und danke dir…

das Originalscript ocr´t doch schon korrekt die PDF in den globalen Eingangsordner. Es soll alles so bleiben wie es ist, nur dass die Datei in eine andere Gruppe verschoben werden soll…

wo kommt das denn hin?

move record to theGroup

Wird etwas anderes ersetzt, wird das hinzugefügt?