Dynamisches Formular schießt Acrobat/Reader ab

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
Karl Kunze
Beiträge: 6
Registriert: 19.09.2010, 19:11

Dynamisches Formular schießt Acrobat/Reader ab

Beitrag von Karl Kunze » 31.10.2010, 18:16

Bei einem zugegebenermaßen außerordentlich umfangreichen Formular werden beim Durcharbeiten zahlreicher Fragen bei vielen Fragen Unterfragen (in eigenen Subforms) aufgeblättert. Mit jedem Aufblättern verbrauchen Acrobat/Reader ganz kräftig Speicher (kann man im Taskmanager mit ansehen) und ab einem gewissen Punkt machen Acrobat/Reader einfach zu,d.h. die Anwendung verschwindet ohne Fehlermeldung und ohne Einträge in den Windows-Ereignisprotokollen.

Ich habe das getestet auf unterschiedlichen Rechnern mit WinXP-SP3 mit Acrobat Pro 8.2.5, Windows 2000 mit Reader 9.4.0 und Windows 7 mit Reader 9.4.0. Es klappt zuverlässig und reproduzierbar.

Da ich auf das manuelle Klicken irgendwann keine Lust mehr hatte, habe ich einfach einen Button eingebaut, welcher mit dem nachfolgenden Code die gleichen Schritte durchführt. Das klappt auch.

var t = [    (...)
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Abfrage.Entscheidung",     "FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Liste.Risikofragen.Effekten.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Liste.Risikofragen.Beiboot.Abfrage.Entscheidung",     "FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Liste.Risikofragen.Trailer.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Liste.Risikofragen.Bareboatcharter.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einstieg.Liste.Risikofragen.Skippercharter.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Einschlüsse.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Vorversicherung.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Vorschäden.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Empfehlung.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Begründung.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Technik.Abfrage.Entscheidung",
"FlexDok.Langberatung.Sachsubstanz.Global.Sportboot.Entscheidung.Abfrage.Entscheidung"
              (...)
];
   
for (i = 0; i < t.length; i++)
{
    xfa.resolveNode(t).rawValue = "ja";
    xfa.resolveNode(t).parent.parent.Liste.presence = "visible";
    xfa.layout.relayout();
}


Irgendwie darf das ja wohl nicht passieren und daher stelle ich einfach einmal hier die Frage, wo man sinnigerweise nun ansetzt bei Adobe für eine Fehlersuche.

Gruß

Karl Kunze

RSchmoldt
Beiträge: 14
Registriert: 10.11.2010, 21:08

Dynamisches Formular schießt Acrobat/Reader ab

Beitrag von RSchmoldt » 10.11.2010, 21:19

Dieses Verhalten ist bekannt und wird durch unzählige Versuche verursacht, auf sogenannte Properties wie z.B. durch node.rawValue zuzugreifen.

Der Garbage Collector (Müll-Aufräumer) für den JavaScript Speicher von Acrobat / Adobe Reader wird nur ausgeführt, wenn Acrobat / Adobe Reader "idle" ist (also nicht aktiv ist) oder beim Speichern von einem Dokument. Der JavaScript Speicher wird sowohl von Dokumenten Scripts, als auch von Apllication-Scripts sowie von Plugin Scripts genutzt.

Wir haben den Bug bereits im Rahmen des A10 PreRelease Programms gemeldet und konnte von Adobe auch nachvollzogen werden. Im neuen A10 / AR10 (solle Ende November 2010 erscheinen) soll der Bug angeblich bereits behoben sein. Ob dies auch für Updates von A8/AR8 und A9/AR9 gilt, wissen wir noch nicht.

Work-ARound gibts dafür leider nicht ... außer Dokument verkleinern :-)

mfg

Rolf Schmoldt

 

RSchmoldt
Beiträge: 14
Registriert: 10.11.2010, 21:08

Dynamisches Formular schießt Acrobat/Reader ab

Beitrag von RSchmoldt » 27.12.2012, 20:03

Ergänzende Info:

In den alten Versionen AX und früher löst ein manuelles Speichern des PDF den Garbage Collector aus. Seit A-XI haben wir keine Probleme feststellen können, was nicht heißen soll, dass das Problem seitens Adobe wirklich gelöst wurde.

Abhilfe kann also eine zusätzliche innere Schleife mit z.B. 500 festen Durchläufen bringen, nach der eine automatische Speicherung erfolt (Achtung: ab Adobe Reader X funktioniert das bei Plugins nur noch bedingt, für Acrobat aber einwandfrei). Auch relayout() sollte erst nach der inneren Schleife aufgerufen werden.

Antworten