Die Aufgaben-Palette dient zur Prüfung und Korrektur Ihrer Dokumente. Die Palette kann folgende Daten zeigen:

Zum Aktualisieren einzelner Aufgaben klicken Sie die jeweilige Beschreibung mit der rechten Maustaste und wählen den gewünschten Lösungsweg.

Platzhalter und Web-Bilder können automatisch aktualisiert werden. Markieren Sie dazu die gewünschten Einträge in der ersten Spalte mit einem Auge . Mit einem Klick des Auge-Buttons unten links in der Palette werden alle so markierten Platzhalter und Web-Bilder der Liste aktualisiert. Ist kein Eintrag mit einem Auge markiert, werden alle Platzhalter und Web-Bilder der Liste aktualisiert.

Comet-Notizen können aus naheliegenden Gründen nicht automatisch bearbeitet werden. Übersätze werden nicht automatisch entfernt, weil durch das dafür nötige Anpassen der Rahmen möglicherweise zu große Geometrie-Änderungen am Dokument entstehen können. Nicht automatisch lösbare Aufgaben haben einen roten Beschreibungstext.

.

Sie können Platzhalter nach Comet-Gruppen oder Produkten zusammenfassen lassen. Die Namen der Gruppen können dabei automatisch aus dem Dokument ermittelt werden :

Die Liste der nicht-synchronen Platzhalter wird durchsucht nach Platzhaltern mit den folgenden Namen :

Wird ein solcher Platzhalter gefunden, wird der aktuelle Text dieses Platzhalters im Dokument als Gruppenname verwendet. Das hat natürlich zwei Nachteile :

  1. Sie bekommen einen Gruppentitel nur dann, wenn auch ein Titel-Platzhalter des Produktes geändert ist
  2. Und wenn Sie einen solchen Titel bekommen ist er auch noch falsch (oder jedenfall nicht mehr ganz aktuell)

Zum Überprüfen der Platzhalter muß der Platzhalter entweder eine eigene Sync-Aktion haben oder die Standard-Prüfung -1 verwenden.

Die Standard-Überprüfung wird mit der Aktion -1 festegelegt. Dabei wird die Laden-Aktion des Platzhalters ausgeführt und dessen Ergebnis mit dem aktuellen Textinhalt bzw. dem aktuelle Bildpfad des Platzhalters verglichen. Zum Vergleich wird der sogenannte Netto-Stringvergleich verwendet. Zur Implementierung einer eigenen Vergleichsfunktion siehe hier.

Bei Platzhaltern mit direkten Abfragen (xmlquery, SQL, SOAP-Query) ist damit alles erledigt - als aktueller Wert wird natürlich einfach das Ergebnis der Abfrage verwendet.

Etwas schwieriger ist die Situation, wenn die Laden-Aktion ein Skript ist. In diesem Fall ist es nicht mehr automatisch zu erkennen, welchen Inhalt der Platzhalter zum Ende des Skriptes haben wird (und dabei das Dokument nicht zu verändern). In Sync-Aufrufen des Ladenskriptes ist deshalb die globale Variable gNewValue definiert und allokiert. (Natürlich ist die Variable auch in den 'normalen' Laden-Aufrufen definiert, aber dort hat sie den Wert 0.) Ist gNewValue ungleich 0 (if (gNewValue != 0)), dann handelt es sich um einen Sync-Call. In diesem Fall wird der neue Inhalt des Platzhalters in diese Variable übertragen. Dafür stehen bis zu 2 GB Platz zur Verfügung. Danach muß das Skript sofort und ohne irgendwelche Änderungen am Dokument zu machen, verlassen werden. Der Inhalt von gNewValue wird dann als aktueller Wert zum Vergleich verwendet.

Weitere Infos zum Standard-Sync finden Sie hier.

[Ab v4.0.5 R20104, 1. Sep 2017] Der Vergleich der Platzhaltertexte von Dokument und Datenpool wird auf Grundlage des sog. Netto-Strings gemacht. Hier finden Sie Informationen darüber, wie der Nettostring eines Strings berechnet wird. Wenn Sie einen anderen Stringvergleich verwenden wollen, können Sie statt des Standard-Syncs (Sync-ID -1) eine eigene Sync-Aktion implementieren und dem Platzhalter die ID dieser Aktion als SyncID geben. Nachteil dieser Lösung ist, dass Ihr Sync-Skript, um den aktuellen Text aus dem Datenpool zu holen, zuerst genau die gleichen Anweisungen wie das Laden-Skript ausführen muß.

Einfacher ist es, lediglich die Funktion zum Vergleichen der Strings zu schreiben. Legen Sie diese Skripte bitet als Aktionen mit der ClassID 61 an. Die Rückgabewerte dieser Aktion entsprechen dem Ergebnis von strcmp:

Die ID dieser Aktion tragen Sie in der Platzhalter-Definition ein:

Hat der Platzhalter die Sync-ID -1, wird dann beim Berechnen des neuen Status statt des Default-Vergleichs Ihre Funktion verwendet. In der Palette Platzhalterwerte wird das Stringvergleich-Skript im Feld Textvergleich angezeigt, wenn ein Text mit Platzhalter ausgewählt ist:

Die folgenden globalen Variablen sind in den Stringvergleich-Skripten definiert:

Variable Typ Beschreibung
gRecordID
gRecordID2
gRecordID2
int

ID des Objektes, mit dem der Platzhalter verlinkt ist

gRecordStringID
gRecordStringID1
gRecordStringID2
gRecordStringID3
Alle RecordID-Konstanen

char*
gPlaceholderID int

ID des Platzhalters

gDocumentValue char*

Aktueller Text des Platzhalters im Dokument.

Der Inhalt dieses Strings darf nicht verändert werden. Änderungen im Inhalt des Strings führen nicht zu Änderungen im Dokument - eher zum Absturz von InDesign®!

gDataPoolValue

char*

Aktueller Text des Platzhalters aus dem Dartenbestand

Der Inhalt dieses Strings darf nicht verändert werden!

gDocumentID char*

DokumentID

Achtung: Änderungen, die auf diese Weise vom Sync-Prozess ignoriert werden, werden trotzdem beim Aktualisieren der Platzhalter überschrieben. Sollen die Änderungen resistent gegenüber Aktualisierungen bleiben, verwenden Sie bitte das = - Werkzeug der Platzhalter.

Platzhalter-Texte sollen durch nachträglich eingefügte zusätzliche Leerzeichen oder Tabs ausgerichter werden aber die zusätzlichen Zeichen sollen beim Sync-Vergleich ignoriert werden.

char * prepare_string (char * str)
{
    char 	* 	result 	= alloc (strlen (str)+10);

    get_netweight_str (result, str, 1, 1);
    strreplace (result, "\t", " ");
    strreplace_multis (result, " \t");

    return result;
}

int main ()
{
    return strcmp (
        		prepare_string (gDocumentValue),
        		prepare_string (gDataPoolValue));
}

In seltenen Situationen kann es nötig sein, ein eigenes Sync-Skript zu implementieren. In diesen Fällen sind Sie vollkommen frei in der Gestaltung des Skripte. Lediglich der neue Sync-Status muß entweder im Skript gesetzt oder vom Skript zurückgegeben werden. Informationen dazu finden Sie hier.

Der aktuelle Dokumentwert von Platzhaltern wird im Normalfall aus dem Dokument ermittelt. In seltenen Fällen kann es erwünscht sein, in der Palette einen davon abweichenden Text anzuzeigen. Dafür kann die in Laden- und Syncskripten definierte Variable gOldValue verwendet werden. Prüfen Sie in jedem Fall vorher, ob die Variable ungleich 0 ist! Ein Beispiel finden Sie hier.

Besondere Aufmerksamkeit ist für die wiederholenden Elemente nötig. Eine Beschreibung inkl. Beispielen finden Sie hier.

[Ab v4.1 R10822, 9. Apr 2016] Der Synchronstatus eines Platzhalters im Dokument kann manuell überschrieben werden. Dabei wird der aktuelle Dokumentinhalt (Textinhalt oder Bildpfad) des Platzhalters zusammen mit dessen aktuellem Datenbankwert in den Platzhalter gesichert. Erst bei einer Änderung an der Datenquelle oder dem Platzhalter wird dieser wieder als asynchron in der Palette markiert.

Um den Status zu setzen, verwenden sie den Status-Button (=) der Aufgaben-Palette. Mit gehaltener Shift-Taste kann der Status wieder verworfen werden. Mit aktivierter Checkbox Inkl. lokaler Überschreibungen in der Aufgaben-Palette können Sie sich alle überschriebenen Platzhalter anzeigen lassen. Platzhalter mit dem Status Überschrieben werden im Dokument mit einem blauen = markiert:

Der Status Überschrieben kann nur bei Platzhaltern mit SyncID -1 gesetzt werden. Platzhalter, deren Sync-Aktion den aktuellen Status selbst berechnen, können diesen Status nicht bekommen.

Platzhalter mit dem Status Überschrieben werden beim Aktualisieren von Platzhaltern nicht neu geladen. Achtung: Aus Sicherheitsgründen werden diese Platzhalter auch dann nicht geladen, wenn ihr Inhalt in Dokument oder Datenbestand geändert wurde. So können Sie den Status zurücksetzen:

Zur Script-Unterstützung stehen die beiden Script-Befehle link::override_sync und link::remove_override_sync zur Verfügung.

Platzhalter im Übersatz können von der Aufgaben-Palette gesondert ermittelt werden. Mit Rechtsklick kann der Übersatz des enthaltenden Rahmens durch Anpassen sdes Rahmens bzw. der Tabellenzeile behoben werden. Eine automatische Bearbeitung ist absichtlich unterbunden.

Bitte beachten Sie, dass die Aufgaben-Palette gezielt nach Platzhaltern im Übersatz sucht. Übersätze ohne Platzhalter werden von der Palette ignoriert - verwenden Sie dazu die Standard-Palette Preflight.

Ab v4.2 der priint:comet Plugin kann die Aufgaben-Palette Comet-Notizen vom Typ "Zu erledigen" und "Frage" aufnehmen. Es dürfte klar sein, dass die Aufgaben von Comet-Notizen nicht automatisch erledigt werden können. Diese Einträge können daher auch nicht mit einem Auge markiert werden und werden bei der Lösung der automatischen Aufgaben (also dem Aktualisieren von Platzhaltern und Web-Bildern) ignoriert. Um den Bearbeitungsstatus einer Comet-Notiz zu ändern, klicken Sie den Entrag mit der rechten Maustaste. Folgende Möglichkeiten stehen zur Verfügung:

In allen drei Fällen wird die Notiz danach in der Aufgaben-Palette als erledigt markiert.

Die Ebene zum Verschieben erledigter Notizen wird mit Hilfe von Panelstatement 151 festgelegt. Das Statement muß als Skript definiert sein und sicherstellen, dass die Zielebene existiert. Existiert das Panellstatement 151 nicht oder liefert einen leeren oder nicht existierenden Ebenennamen, bleibt das Menü Erledigt auf auf Ebene 'Unbekannt' verschieben deaktiviert.

Variable Typ Datentyp Beschreibung
gDocumentID in char[]

DocumentID des aktuellen Dokumentes

gLayername out String

Name der gewünschten Zielebene für erledigte Comet-Notizen. Damit Notizen auf diese Ebene verschoben werden, muß die Ebene existieren.

Achtung: Der Datentyp ist String, nicht char*!

Hier ein einfaches Beispiel für ein Panelstatement 151:

int main ()
{
    string::set (gLayername, "Erledigt");
    layer::add_i (gLayername, -3, 0); // lowest layer
    
	return 0;
}

Ab v4.2 der priint:comet Plugin kann die Aufgaben-Palette fehlende oder nicht-aktuelle Web-Bilder aufnehmen. Informationen zu Web-Bilder finden Sie hier.