[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

13. Dez 2023, 09:51
Beitrag # 1 von 32
Bewertung:
(8151 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Kollegen,

immer wieder beobachte ich, dass InDesign beim Versuch, alle offenen Dokumente ohne Rückfrage und ohne speichern zu schließen, hängen bleibt bzw. abstürzt und mit dem Taskmanager abgeschossen werden muß.

Vereinfacht etwa mit folgendem Einzeiler:

Code
app.documents.everyItem().close(SaveOptions.NO); 



Eine Strategie, dem entgegenzuwirken, bestand für mich darin, nicht alle offenen Dokumente (z.B. 40 Stück) auf einmal zu schließen, sondern häppchenweise in 10er-Schritten.
Das ist schon wesentlich sicherer, aber es kommt schon auch mal vor, dass InDesign damit auch bei nur 8 offenen (ungesicherten) Dokumenten abstürzt.

Kann dieses Verhalten jemand bestätigen?
Mit welchen Strategien könnte man dem entgegenwirken?
X

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

13. Dez 2023, 10:09
Beitrag # 2 von 32
Beitrag ID: #587274
Bewertung:
(8132 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich benutze eine Schleife statt app.documents.everyItem() und hatte bisher noch nie ein Problem damit.


als Antwort auf: [#587273]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

13. Dez 2023, 10:43
Beitrag # 3 von 32
Beitrag ID: #587276
Bewertung:
(8112 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Perplies,

Dank für die Rückmeldung.

Ja, auch ich verwende eine Schleife.

Aber beim Kunden funktioniert das auf allen Arbeitsstationen nicht (mehr).

Das Problem taucht sehr massiv seit einem Wechsel jüngst von CC2021 auf CC2023 (Win) auf und die Benutzerinnen sind total frustriert.

Auch mit $.sleep() innerhalb der Schleife nach dem Schließen eines Dokuments ist dem nicht beizukommen.

Unter CC2021 konnten wir noch über die Häppchenstrategie eine Stabilität finden.

Es handelt sich um temporär, nur für einen oder mehrere PDF-Exporte generierte Dokumente.
Aber selbst eine Zwischensicherung in einem temporären Ordner bringt keine Lösung.


als Antwort auf: [#587274]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Rudix
Beiträge gesamt: 56

13. Dez 2023, 12:21
Beitrag # 4 von 32
Beitrag ID: #587277
Bewertung:
(8069 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Auch ich beobachte seit InDesign 2023, dass das Programm offenbar ein massives Problem mit dem Speichermanagement hat.

Okay, darin war InDesign ja noch nie wirklich gut, vor allem nicht seit den 64-bit-Versionen, insbesondere etwa im Wieder-Freigeben von Speicher, aber seit 2023 ist es "klinisch" im Sinne von: Bei bis dato zuverlässig funktionierenden Tasks wie massenhaftem Exportieren von offenen Dateien als PDF oder deren Schließen ohne Speichern stürzt InDesign nicht nachvollziehbar immer wieder ab.

Dies sind alles empirische Befunde - ohne eine Debug-Version von InDesign wird man da nicht weiterkommen.

Beiträge wie "bei mir tut's immer" oder gar "nimm einen MAC" sind nicht hilfreich und können gerne weggelassen werden. Es wurden bereits -zig Arbeitsstunden auf Analyse und systematische Fehlersuche verwendet.

Liest hier ein/e Entwickler/in mit, die/der über eine solche Debug-Version verfügt, und hierzu etwas Sachdienliches beitragen kann?

Und: Hat irgendjemand einen entsprechenden _sinnvollen_ Kontakt zu Adobe (damit meine ich: nicht ins indische Nirwana), über den man dies eskalieren könnte?


als Antwort auf: [#587273]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Peter Lenz
Beiträge gesamt: 2828

13. Dez 2023, 18:41
Beitrag # 5 von 32
Beitrag ID: #587280
Bewertung:
(7990 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rudix,

hier liest mit höchster Wahrscheinlichkeit kein Adobe-Mitarbeiter mit. Auch in den Adobe-Foren ist es nicht garantiert.

Die zuverlässigste Art und Weise Fehler zu melden ist folgende Adresse:

https://indesign.uservoice.com

Wenn andere Anwender auch dasselbe Problem haben, je mehr desto besser, wird dem Problem nachgegangen.

""Beiträge wie "bei mir tut's immer" oder gar "nimm einen MAC" sind nicht hilfreich und können gerne weggelassen werden. Es wurden bereits -zig Arbeitsstunden auf Analyse und systematische Fehlersuche verwendet.""

(Ich kann hier zur Zeit in dem Editor keinerlei Auszeichnungen vornehmen)

Nimm einen Mac ist natürlich nicht hilfreich, aber „bei mir funktioniert es“ kann schon hilfreich sein, weil das Problem dann evtl. an der Hardware (z.B. Grafikkarte), Systemversion sowie installierten Hilfsprogrammen (z.B. Virenscanner) oder in InDesign installierte PlugIns liegen kann.

Viele Grüße Peter


als Antwort auf: [#587277]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

13. Dez 2023, 19:34
Beitrag # 6 von 32
Beitrag ID: #587281
Bewertung:
(7964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Rudix,

was willst Du denn mit einer Debug-Version erreichen?

Alle Informationen zum aufgetretenen Fehler findest Du doch im Fehlerbericht an Adobe.

Mehr liefert Dir die Debug-Version auch nicht, oder übersehe ich da etwas?


als Antwort auf: [#587277]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Rudix
Beiträge gesamt: 56

14. Dez 2023, 09:10
Beitrag # 7 von 32
Beitrag ID: #587282
Bewertung:
(7823 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nun, da InDesign in unserem Szenario i.d.R. einfach einfriert und es daher gar keinen Fehlerbericht gibt, scheidet diese Möglichkeit schonmal aus - zumal ich mir nicht sicher bin, ob aus dem Fehlerbericht tiefere Erkenntnisse gewonnen werden könnten - nach meiner Kenntnis reflektiert er schlicht den Status Quo zum Zeitpunkt des Absturzes, aber nicht die Entwicklung dorthin.

Ich würde mir von der Debug-Version die Erkenntnis erhoffen, welche Ereignisse "hinter den Kulissen" zu diesem Einfrieren führen.

Wie gesagt: Hier müssen wir die sachkundige Auskunft einer/s Entwickler/in abwarten, die/der sich a) hinter den Kulissen und b) demnach auch mit der Debug-Version auskennt und deren Informationen auszuwerten weiß.


als Antwort auf: [#587281]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

14. Dez 2023, 09:23
Beitrag # 8 von 32
Beitrag ID: #587283
Bewertung:
(7809 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich arbeite im Moment meistens am Mac und habe im Moment nicht die Zeit den Ablauf unter Windows zu überprüfen, der in etwa so abläuft:

1. InDesign hängt
2. Abbruch über das Betriebssystem (Programm beenden/Task-Manager)
3. nach kurzer Zeit kommen am Mac zwei Dialogfenster:
3.1 Meldung und Bericht an Apple
3.2 Meldung und Bericht an Adobe

Die enthaltenen Fehlerberichte, sind, soweit ich das beurteilen kann, im wahrsten Sinne des Wortes, erschöpfend!

Aber wie willst Du, und das gilt auch für Debug-Versionen, ohne zugehörige Sourcen, daraus brauchbare Informationen bekommen.

Probiere es einfach mal aus.


als Antwort auf: [#587282]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Dirk Becker
Beiträge gesamt: 193

14. Dez 2023, 14:04
Beitrag # 9 von 32
Beitrag ID: #587285
Bewertung:
(7755 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Werner:
> Mehr liefert Dir die Debug-Version auch nicht, oder übersehe ich da etwas?

Die Debug Version kann Unmengen von Protokollen ausgeben, damit lässt sich ggf. verfolgen was kurz vorher stattgefunden hat. Dazu noch Statistiken zum Speicherverbrauch. Man kann manche Extremsituationen gezielter auslösen (Sonderaktionen bei Speichermangel) usw.
Zum Vergleich - ich verwende eher ähnliche Ausgaben von einem eigenen Plugin, da kommen selbst bei kleinen Dokumenten locker Millionen Zeilen zusammen. Man muss also wissen wo man hinsehen will, und sich dem Problem ggf. programmierend nähern.

Ausserdem ist die Debug Version gespickt mit Abfragen für unwahrscheinliche Fehler (ASSERT) die nur bei fehlerhafter/unvollständiger Programmierung auftreten sollten. In der Release Version werden diese Abfragen ignoriert.
Der Programmcode ist weniger optimiert, dadurch besser auf Assembler Ebene lesbar - wenn man das kann.

Für manche* Debug und Release Versionen gibt es zusätzlich noch Symboldateien, damit bekommen die Aufrufketten (Stack) die Funktionsnamen zugeordnet, und man kann mit Glück sogar lokale Variable identifizieren. So lassen sich auch die Absturzberichte ähnlich aufarbeiten, aber der Blick im Debugger auf das noch nicht beendete Programm ist deutlich aufschlussreicher.
Beides klappt besser in der Debugversion weil weniger optimiert.
* Manche – bei der Flut von sukzessiven Versionen werden nicht jedes Mal die 4 GByte komprimierte Downloads bereitgestellt, aber so 2-3 mal im Jahr ...

Zum eigentlichen Problem:
Das Schliessen eines Dokuments ist ein Sonderfall, da wird ja nicht nur die Datei geschlossen, sondern alle Änderungen abgeschlossen, bzw. (bei SaveOptions.NO) zurückgenommen. Und danach geht der Spass erst los, da alle Strukturen im Speicher einzeln freigegeben werden, und Inkonsistenzen, die beim offenen Dokument nicht stören, gerade da erst zum Tragen kommen. Vielleicht hat man ja einen Treffer mit einem der Asserts …

Martin:
> $.sleep()
Das ist ein "busy-wait". Da dreht die CPU nur nutzlos ihre Schleifen. Wenn man dem Programm für Hintergrund-Arbeiten Zeit lassen will, wäre ein IdleTask die Wahl.

CC2021 => 2023
Welche 2023 denn? Mit 18.4 und 18.5 ist halt viel UXP neu dazugekommen. Kann aber genauso irgendwas mit Fonts sein, oder etwa neuen Grafiktreibern.

> eskalieren vs. indisches Nirwana
Gearbeitet wird halt in Indien, mit begrenzten Resourcen.
Und man hat bessere Chancen mit sauber eingegrenzten, neuen Bugs "Regression" solange der Programmierer sich noch an die Details erinnert.
Ansonsten ist Uservoice der richtige Weg - gibt es schon einen entsprechenden Eintrag?

> "nimm einen MAC" sind nicht hilfreich / "-zig Arbeitsstunden"
Ja, das ist ein Problem. Um eine ideale Arbeitsumgebung zusammenzustellen muss man exakt die richtige Betriebssystemversion ansteuern (mit passender Hardware), damit der zur Adobe Version passende Compiler überhaupt installiert werden kann. Diverse Nacharbeiten "Portierung", was oben geschildert wurde läuft auch nicht auf Knopfdruck. Das geht über mehrere Wochen, bevor man sich um die eigentlichen Änderungen kümmern kann. Da konzentriert man sich gerne auf die bequemere und günstigere Platform.


als Antwort auf: [#587281]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

14. Dez 2023, 14:42
Beitrag # 10 von 32
Beitrag ID: #587286
Bewertung:
(7733 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Dirk,

danke für Deine ausführlichen Erläuterungen, die nähren aber meine Zweifel, ob ein Außenstehender damit etwas anfangen kann.

Doch zurück zum Ausgangsproblem.

Herr Fischer,

versuchen Sie doch einmal jede Datei vor den Schließen einmal mit "Sichern unter " zu speichern, dann die Datei zu schließen und anschließend die erzeugte Datei zu löschen.

Dauert natürlich viel länger, aber es wäre aus meiner Sicht einen Versuch wert.


als Antwort auf: [#587285]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2023, 15:34
Beitrag # 11 von 32
Beitrag ID: #587287
Bewertung:
(7701 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@ Dirk
Auch von mir ein Dank für diese Ausführungen.
Allerdings verstehe ich bereits bei einem normalen Absturzbericht nur Bahnhof.

Mit dem $.sleep() hoffte ich, der Speicherfreigabe etwas Luft zu verschaffen. Aber vermutlich stehen damit lediglich kurz alle Räder still, ohne dass in diesem Moment irgendwas passieren kann.

By the way: Was könnte eine gute Anwendung von $.sleep() sein?

Mit IdleTasks habe ich noch nicht gearbeitet.


@ Herr Perplies
Das scheint mir ein vielversprechendes »Nickerchen« bzw. Intermezzo zwischen zwei Dateischließungen zu sein.
Das will ich gerne mal ausprobieren.

Vielen Dank für den Tipp!


als Antwort auf: [#587286]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Thomas Richard
Beiträge gesamt: 19363

14. Dez 2023, 16:33
Beitrag # 12 von 32
Beitrag ID: #587292
Bewertung:
(7659 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: By the way: Was könnte eine gute Anwendung von $.sleep() sein?


Wenn andere Prozesse parallel werkeln, könnte das ein probates Mittel sein, diese fertig werden zu lasse, bevors im vordergründigen Prozess weitergehen kann. (z.B. dem Spotlight Daemon 'mdutil' die Chance zu geben, eine soeben gespeicherte Datei in den Index aufzunehmen).


als Antwort auf: [#587287]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Uwe Laubender
Beiträge gesamt: 5321

15. Dez 2023, 12:53
Beitrag # 13 von 32
Beitrag ID: #587301
Bewertung:
(7389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

falls das im gegebenen Workflow machbar ist, würde ich vorschlagen:

Immer nur eine Datei öffnen, das Skript arbeiten lassen, dann die Datei wieder schließen (ohne zu speichern).
Damit bin ich immer bestens gefahren.

Habe diese Woche in einer Schleife mit 35 InDesign-Dateien eines Verzeichnisses und InDesign 2023 Version 18.5.1.79 auf einem iMac von 2017 unter macOS 12.7.2 (32 GB Arbeitsspeicher) mehrfach praktiziert: PDF-Export und Dateien verpacken. Die InDesign-Daten und die verknüpften Bilder liegen auf einem Server im lokalen Netzwerk. Das Server-Volume ist per SMB verbunden.


als Antwort auf: [#587273]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Rudix
Beiträge gesamt: 56

15. Dez 2023, 13:18
Beitrag # 14 von 32
Beitrag ID: #587302
Bewertung:
(7380 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
vielen Dank - leider nicht; die Anwenderschaft möchte alle Dateien gleichzeitig offen haben, bearbeitet bekommen (per Skript) und danach ausdrücklich offen halten, um evtl. diese nochmals bearbeitet zu bekommen. Erst danach sollen alle (auf einmal) geschlossen werden.


als Antwort auf: [#587301]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

15. Dez 2023, 13:24
Beitrag # 15 von 32
Beitrag ID: #587303
Bewertung:
(7375 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ja, so würde ich normalerweise auch vorgehen.

Aber in diesem Workflow ist das leider nicht möglich.

Die Benutzerinnen müssen/wollen eine größere Zahl an namenlosen aus INDT erzeugten Dateien offenhalten und parallel bearbeiten/verändern und nach jedem manuell in die Wege geleiteten Änderungsdurchgang (Katalogpreisbestückung) von allen Dokumenten eine PDF-Datei schreiben und nach mehreren Durchgängen alle Dokumente verlustig (ohne zu speichern) beenden.

Habe die Idee von H. Perplies mit dem temporären Zwischenspeichern aufgegriffen, umgesetzt und bislang nichts gehört, was ich als Bestätigung des Gelingens interpetiere. Smile


Das temporäre Zwischenspeichern vor den PDF-Exporten war dort hilfreich (ohne dieses Zwischenspeichern wurden ohne erkennbare Regel mitunter 0 KB PDFs erzeugt), aber nicht mehr beim Schließen aller offenen Dokumente.


als Antwort auf: [#587301]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Rudix
Beiträge gesamt: 56

15. Dez 2023, 13:26
Beitrag # 16 von 32
Beitrag ID: #587304
Bewertung:
(3202 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dirk,

vielen Dank für deine ausführlichen und gut verständlichen Erklärungen! Das hilft mir sehr zum Verständnis der Lage.

Beim Betriebssystem richte ich mich als Dienstleister i.d.R. nach dem Kunden, was dieser einsetzt - im vorliegenden Fall ist dort eine komplette Windows-Umgebung über Terminal-Server im Einsatz, wobei die Anwender/innen großzügig mit Prozessorleistung und Hauptspeicher ausgestattet sind.


als Antwort auf: [#587285]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

15. Dez 2023, 13:51
Beitrag # 17 von 32
Beitrag ID: #587306
Bewertung:
(3200 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Herr Fischer,

Zitat Habe die Idee von H. Perplies mit dem temporären Zwischenspeichern aufgegriffen, umgesetzt und bislang nichts gehört, was ich als Bestätigung des Gelingens interpetiere. Smile


Fuktionierts, oder funktioniert es nicht?

Aber noch ein anderer Gedanke:

Nach meiner Erfahrung stürzt InDesign immer dann ab, wenn es auf nicht mehr vorhandene Objekte zugreifen will.

Kann es sein, das die PDFs im Hintergrund erzeugt werden und einzelne Dateien noch nicht fertig sind, wenn Sie zugehörige Dateien schließen?

Für diesen Fall schlage ich Ihnen das folgende Vorgehen vor:

Testen Sie vor dem Schließen einer Indesign-Datei, ob die zugehörigen Dateigrößen 0 sind, und schließen Sie erst danach die zugehörige InDesign-Datei.


als Antwort auf: [#587303]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

15. Dez 2023, 14:09
Beitrag # 18 von 32
Beitrag ID: #587309
Bewertung:
(3195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Fuktionierts, oder funktioniert es nicht?


Bei mir hat es funktioniert (aber auf dem Mac konnte ich dieses Problem auch nie wirklich darstellen) und von anderer Stelle habe ich noch nichts gehört.
Der Fehler trat nicht immer auf, aber an verschiedenen Arbeitsplätzen immer wieder, und wenn, dann ohne eine erkennbare Regel.

Antwort auf: Kann es sein, das die PDFs im Hintergrund erzeugt werden und einzelne Dateien noch nicht fertig sind, wenn Sie zugehörige Dateien schließen?

Hintergrundexport ist ausdrücklich ausgeschlossen.

Antwort auf: Testen Sie vor dem Schließen einer Indesign-Datei, ob die zugehörigen Dateigrößen 0 sind, und schließen Sie erst danach die zugehörige InDesign-Datei.


Das hatte ich in mehreren Varianten zum Umgang mit dem Problem bereits angeboten und umgesetzt.
Z.B. wiederhole bei den Dokumenten den PDF-Export, wo der Export eine 0 KB Datei erzeugte, und zwar so lange, bis eine PDF > 0 KB erzeugt wurde, aber mit maximal x Versuchen.
Meiner Erinnerung nach führte das aber auch bei mehreren (bis zu 5) Wiederholungsversuchen nicht zum Ziel.

Auch hatte ich versucht, Namenskonflikte vor dem Überschreiben von PDF-Dateien so zu lösen, indem ggf. gleichnamig vorhandene Dateien zunächst gelöscht wurden. Aber ich hatte den Eindruck, dass der Prozess stabiler (weniger schnelle Proteste) war, wenn vorhandene gleichnamige PDF-Dateien einfach überschrieben und nicht erst gelöscht wurden.

Nur positive Ergebnisse lieferte übrigens ein kleiner unzureichender Test(nur wenige Dateien) mit hochgezählten PDF-Dateien: Bei Namenskonflikten einen Zähler hinten dran um eins hochstellen.
Aber das wurde als nicht gewünscht abgeschmettert und trotz Vorschlägen, die zwischenzeitliche Hochzählung am Ende etwa durch »Herauspicken der Rosinen« zu verschleiern, nicht weiter verfolgt.


als Antwort auf: [#587306]
(Dieser Beitrag wurde von Martin Fischer am 15. Dez 2023, 14:20 geändert)

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

15. Dez 2023, 14:40
Beitrag # 19 von 32
Beitrag ID: #587310
Bewertung:
(3187 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Hintergrundexport ist ausdrücklich ausgeschlossen.


Das muss nichts heißen, die einzelnen Vorgänge könnten intern auf verschiedene Tasks (CPU-Kerne) aufgeteilt sein, und dann kann es durchaus zeitliche Verzögerungen geben.

Mir ist in letzter Zeit aufgefallen, das sich zumindestens beim Mac bei den zeitlichen Abläufen intern einiges geändert hat.

Während früher die Anzeige von Texten in Multilineedits während eines Skriptlaufes direkt aktualsiert wurden, findet die Aktualisierung jetzt erst statt, wenn ein Skript wieder im Panel auf Eingaben wartet.

Das spricht meines Erachten nach schon ein wenig für eine Aufteilung in Tasks.

5 Wiederholungsversuche in welchen Zeitabständen?
Solch eine Export kann schon einige Zeit dauern.

Sie sollten mal Testen, ob solch eine Schleife oder auch einfach ein $.sleep() mit einem sehr hohen Wert den Exportvorgang aufhält, oder ob er während eines Sleeps weiter erfolgt.

Wenn ja, läuft der Export in einer anderen Task.


als Antwort auf: [#587309]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

15. Dez 2023, 15:00
Beitrag # 20 von 32
Beitrag ID: #587312
Bewertung:
(3183 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Mir ist in letzter Zeit aufgefallen, das sich zumindestens beim Mac bei den zeitlichen Abläufen intern einiges geändert hat.


Die genannten Probleme konnte ich auf dem Mac nur sehr sporadisch nachstellen.

Beim Kunden auf Windows-Rechnern führen sie regelmäßig zu großem Frust.

Antwort auf: 5 Wiederholungsversuche in welchen Zeitabständen?
Solch eine Export kann schon einige Zeit dauern.


Das hatte ich so eingerichtet:
Erst mal PDF-Export in einer Schleife durch alle offenen Dokumente. Dabei wurde festgehalten, aus welchen Dokumenten eine PDF-Datei mit 0 Kb erzeugt wurde.
Dann gab es durch diese ermittelten Dokumente eine neue Schleife und so weiter bis zu einer Grenze von x Schleifen.

Aber es waren in den Folgeschleifen meiner Erinnerung nach keine Erfolge zu verzeichnen, weswegen diese Strategie nicht weiter verfolgt wurde.

Zwischendurch wurde auch ein $.sleep() mit verschiedenen Werten in der Schleife eingesetzt. Auch das ohne den erhofften Erfolg.


Im Moment läuft noch ein Test mit temporärer Zwischenspeicherung, ohne dass ich dazu eine negative Rückmeldung erhalten hätte. Das ist eher ungewöhnlich und daher vielversprechend.


als Antwort auf: [#587310]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

15. Dez 2023, 15:14
Beitrag # 21 von 32
Beitrag ID: #587313
Bewertung:
(3203 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich würde in der Schleife nach dem Export einer PDF-Datei auf den Erfolg warten und erst dann die nächste Datei exportieren.

Dann sollten an Schluss aufgeräumte Verhältnisse vorliegen.

Den Export-Vorgang selbst sollten Sie mit try .. catch absichern und im catch-Zweig als Fehlerbehandlung eine Meldungs- und/oder Protokollausgabe machen und anschließend den Loop für die fehlerhafte Datei verlassen.


als Antwort auf: [#587312]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

15. Dez 2023, 15:30
Beitrag # 22 von 32
Beitrag ID: #587314
Bewertung:
(3178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ich würde in der Schleife nach dem Export einer PDF-Datei auf den Erfolg warten und erst dann die nächste Datei exportieren.


Und wie wäre das Warten umzusetzen?
Laut Dirk Becker scheidet $.sleep() aus, wenn ich ihn richtig verstanden habe.

Sollen in dieser Zeit zig sinnlose temporäre Dateien geschrieben und wieder gelöscht werden?

Ja, manchmal habe ich auch den Eindruck, dass unsere Rechner sich zwischenzeitlich mit ihrer Geschwindigkeit ein Bein stellen. Das läuft dann - auf schwäbisch ausgedrückt - hindrafiere (übersetzt etwa das Hinterste zuvorderst); also da versucht etwas zu passieren, solange der vorangehende Prozess noch nicht abgeschlossen ist.
Z.B. PDF schreiben und zuvor die Datei löschen: möglicherweise ist die Datei noch gar nicht gelöscht, aber die PDF wird schon geschrieben und am Ende wird nicht die gewünschte Datei gelöscht, weil sie nicht mehr existiert, da überschrieben und die neue Datei konnte nicht richtig geschrieben werden, weil sie von einer - wenn auch erfolglosen - Löschen-Attacke bedroht wurde. ... Man entwickelt über unbekannte Vorgänge die abstrusesten Ideen.

An Protokollen innerhalb try-catch Schleifen mangelt es nicht. Smile
Inzwischen liest die auch keiner mehr. Laugh


als Antwort auf: [#587313]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

15. Dez 2023, 15:52
Beitrag # 23 von 32
Beitrag ID: #587315
Bewertung:
(3172 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Laut Dirk Becker scheidet $.sleep() aus, wenn ich ihn richtig verstanden habe.


Jein, Dirk hat recht, während eines Sleeps ruhen die normalen InDesign-Funktionen, ähnlich dem Durchlauf einer leeren Schleife.

In diesem Zustand reagiert Indesign auf keine Anwenderaktionen.

Deshalb hatte ich ja oben empfohlen, zu testen, ob InDesign während dieses Zustandes den Export fortführt.

Wenn das nicht funktioniert, bleibt der von Dirk empfohlende Idle Task:

Ein Beispiel habe ich Ihnen mal hier rausgesucht, vielleicht hilft das ein wenig um das Prinzip zu verstehen:

Beispiel WpsServerModule


als Antwort auf: [#587314]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

15. Dez 2023, 16:00
Beitrag # 24 von 32
Beitrag ID: #587316
Bewertung:
(3172 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah, ich dachte, mit dem $.sleep() steht »alle Welt« für einen Moment still – wie im Dornröschenschlaf – und danach geht alles wieder so weiter, als hätte die Pause gar nicht stattgefunden.

Vielen Dank für das Beispiel mit den Idle Tasks. Das hilft mir sehr.

Aber ... seit der Auslieferung der Testversion mit temporären Sicherungen gestern Nachmittag ist kein Heulen und Wehklagen mehr eingegangen.
Und wenn was kommt, zieh ich die Idle Tasks aus der Tasche.

Ein schönes Wochenende
Martin Fischer


als Antwort auf: [#587315]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Jan 2024, 09:54
Beitrag # 25 von 32
Beitrag ID: #587509
Bewertung:
(2621 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
"Late to the party" wie man in Spanien sagt.

onIdle braucht es hin und wieder, wenn zum Beispiel InDesign nicht mitgekriegt hat, dass der User den ScriptUI-Dialog geschlossen hat und das Script jetzt was im Dokument ändern soll.

Im Projekt Octopus haben wir (demnächst) auch ein Script, das Dokumente im Batch bearbeiten soll, also habe ich eben mal den Kern der onIdle Routine für hier rausgeschält.

Code
#targetengine close_all_docs 

var w = new Window("palette");
w.msg = w.add("statictext", [undefined, undefined, 100,20], "not yet");
w.count = w.add("statictext", [undefined, undefined, 100,20], app.documents.length );
w.show()
var n = 0;

var wait_to_close = app.idleTasks.add({name: "wait_to_close", sleep: 200});
wait_to_close.addEventListener("onIdle", function() {
n++;
w.msg.text = n + "th call";
w.count.text = app.documents.length + " to close"
if ( ! app.documents.length ) {
wait_to_close.sleep = 0;
w.close();
} else {
app.activeDocument.close( SaveOptions.NO );
}
})


Den Statusbalken kann man natürlich auch weglassen...


als Antwort auf: [#587316]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

11. Jan 2024, 20:15
Beitrag # 26 von 32
Beitrag ID: #587516
Bewertung:
(2556 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

das funktioniert wunderbar und das Prinzip des idleTask ist mit diesem Beispiel gut nachvollziehbar.

Hab Dank dafür.


als Antwort auf: [#587509]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

19. Jan 2024, 11:22
Beitrag # 27 von 32
Beitrag ID: #587552
Bewertung:
(2001 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

ein Kunde, dem ich das Skript weitergereicht habe, beklagt sich gerade, dass das Skript (unter Windows) nicht nur die aktuell geöffneten Dokumente schließt, sondern auch die danach geöffneten oder neuen. Er muss InDesign neu starten, damit diese Schließungen aufhören (auf dem Mac kann ich dies nicht nachstellen).

Vermutlich muss nach dem Schließen aller Dokumente der eventListener wieder entfernt werden.

Wie bekommt man den wieder los?
Reicht das?
Code
wait_to_close.removeEventListener("onIdle"); 


----
edit:
Nein, das reicht nicht. Wirft einen Fehler.
Ich forsche weiter.


als Antwort auf: [#587516]
(Dieser Beitrag wurde von Martin Fischer am 19. Jan 2024, 11:25 geändert)

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

19. Jan 2024, 11:41
Beitrag # 28 von 32
Beitrag ID: #587553
Bewertung:
(1992 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: ----
edit:
Nein, das reicht nicht. Wirft einen Fehler.
Ich forsche weiter.


Habe den Schließen-Prozess nun in eine Funktion »close_function« gepackt und erhalte mit der folgenden Zeile zumindest keinen Fehler mehr:

Code
wait_to_close.removeEventListener("onIdle", close_function); 


Und nun hoffe ich, dass damit der eventListener auch tatsächlich abgestellt ist.



Alternativ gäbe es eventuell noch die Hammermethode:

Code
while (app.idleTasks.length > 0) 
app.idleTasks[0].remove();



als Antwort auf: [#587552]
(Dieser Beitrag wurde von Martin Fischer am 19. Jan 2024, 11:44 geändert)

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Uwe Laubender
Beiträge gesamt: 5321

19. Jan 2024, 16:30
Beitrag # 29 von 32
Beitrag ID: #587556
Bewertung:
(1947 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Martin Alternativ gäbe es eventuell noch die Hammermethode:


Hallo Martin,

Vorsicht mit dieser "Hammermethode"!

Sie beeinflusst schließlich auch alle anderen parallel laufenenden Skripte, die idleTasks benutzen.
Dir ist das klar. Aber ich bitte alle Leser hier, diese "Alternative" auf keinen Fall in eigene Skripte zu implementieren. Danke!


als Antwort auf: [#587553]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

19. Jan 2024, 17:00
Beitrag # 30 von 32
Beitrag ID: #587557
Bewertung:
(1941 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Uwe,

da sollte es kein Problem geben, Du kannst Dir eine eigene eindeutig benannte Idle Task mit Eventhandler einrichten und dann auch gezielt wieder entfernen.


als Antwort auf: [#587556]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

WernerPerplies
Beiträge gesamt: 2770

20. Jan 2024, 10:18
Beitrag # 31 von 32
Beitrag ID: #587559
Bewertung:
(1650 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Uwe,

als Ergänzung ein Skript, dass einen IdleTask-Handler einrichtet, der einige Meldungen auf die Konsole schreibt und sich dann selbst entfernt.

wpsHandleAidleTask.zip


als Antwort auf: [#587557]

Alle offenen Dokumente ohne Rückfrage und ohne speichern schließen

Martin Fischer
  
Beiträge gesamt: 12783

24. Jan 2024, 07:47
Beitrag # 32 von 32
Beitrag ID: #587564
Bewertung:
(1388 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Antwort auf: Vorsicht mit dieser "Hammermethode"!


Du hast freilich recht.
Diese Hammermethode habe ich beiläufig im Code eines Kollegen entdeckt und im Notfall für praktikabel befunden (zumal in meinem Skripten die Verwendung von idleTasks noch recht jung und überschaubar ist Smile).

Wenn aber wie oben im Skript von Gerald der Name des idleTasks bekannt ist, dann ist die erste Wahl, genau diesen idleTask zu löschen.

Einrichten:
Code
var wait_to_close = app.idleTasks.add({name: "wait_to_close", sleep: 200}); 


Löschen:
Code
if (app.idleTasks.itemByName('wait_to_close').isValid) 
app.idleTasks.itemByName('wait_to_close').remove();


oder einfach
Code
wait_to_close.remove(); 


Mit dem Elter verschwindet dann auch der dort angehängte eventListener.


als Antwort auf: [#587556]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow