Es sollen Informationen über einen oder mehrere Rahmen in den Datenbestand gesichert werden. Diese Informationen können zu einem späteren Zeitpunkt abgerufen und wieder auf die entsprechenden Rahmen angewendet werden.

Es werden eine Reihe von Rahmeninformationen in den Datenbestand abgelegt, inklusive der Informationen, aus welchem Dokument die Rahmeninformationen stammen.

Da je nach Anforderungen eine eindeutige Zuordnung der Rahmeninformationen zu einem Rahmen nicht immer gleich stattfinden kann, gibt es die Möglichkeit, Suchkriterien beim Schreiben (zum überschreiben bestehender Informationen) und beim Wiederherstellen zu definieren. Außerdem kann bestimmt werden, welches Verhalten bei mehreren Suchergebnissen verwendet wird.

Die Verwendung der Frame Infos erfolgt ausschließlich über cScript-Funktionen und die Gestaltungsregel "Rahmengeometrie setzen".

Die Daten der Frame-Infos werden wie folgt gespeichert:

Folgende Informationen werden in der Datenstruktur für einen Rahmen abgelegt:

Attribut Publishing Server Attribut XML, ODBC, SOAP Datentyp Beschreibung
PLACEHOLDER_ID placeholderId Integer (not null) ID des Rahmen Platzhalters. Muss nicht zwingend gesetzt sein. Falls nicht wird 0 gesetzt.
FRAME_UID frameUID Integer (not null) InDesign® Rahmen ID
COMETGROUP_ID cometGroupID Integer (not null) ID der comet Gruppe, die in InDesign® vergeben wird.Falls der Rahmen zu keiner comet Gruppe gehört, wird 0 gesetzt.
TEMPLATE_ID templateId Integer (not null) Mit welchem Template (pageitem) der Rahmen aufgebaut wurde (Haupt Id bei Smart Template). Sollte der Rahmen ohne Template erstellt worden sein, wird 0 gesetzt.
FRAME_LABEL frameLabel varchar(255) (null) Wird in der Palette "Templateverhalte" gesetzt. Wird nur gesetzt, falls Rahmen über Template aufgebaut wurde und der Rahmen eine Kennung hat.
PUBPLAN_DOCUMENT_ID publicationPlannerDocumentId Integer (not null) Verweis auf das Dokument im planner (puc_document).
DOCUMENT documentName varchar(255) (null) Dateiname des InDesign® Dokumentes aus denen die Information geschrieben wurde.
PATH documentPath varchar(1000) (null) Pfad des Ordners, in dem sich das InDesign® Dokument befindet aus denen die Informationen geschrieben wurde.
PAGE page varchar(255) (null) Seite auf den der Rahmen im Dokument steht. Dies ist wichtig, wenn ein Template über mehrere Seiten umbricht und ein Rahmen wiederholt wird und mehrmals zurückgeschrieben wird.
Hinweis: Die Zählung der Seiten beginnt bei 1, nicht bei der Paginierung des Dokumentes in einer Publikation.
LAYER layer varchar(255) (null) Ebene des Rahmens.
SCRIPT_TAGS scriptTags CLOB XML Struktur, die die Tags eines Rahmens enthält (siehe Palette priint:comet plugins "Rahmenetiketten"). z.B.:
<scriptTags>
 <scriptTag>
  <key>AAA</key>
  <value>BBB</value>
 </scriptTag>
 <scriptTag>
  <key>FFF</key>
  <value>HHH</value>
 </scriptTag>
</scriptTags>
FRAMEINFO_ID frameInfoId varchar(255) (null) Wert des Rahmenetikettes "frameInfoID" wenn vorhanden.
RECORD_ID recordId Integer (null) Record ID des Rahmenplatzhalters
RECORD_ID2 recordId2 Integer (null) Record ID 2 des Rahmenplatzhalters
RECORD_ID3 recordId3 Integer (null) Record ID 3 des Rahmenplatzhalters
RECORD_STRING_ID recordStringId varchar(255) (null) Record String ID des Rahmenplatzhalters
OBJ_ENTITY_CLASS objectEntityClass varchar(255) (null) ObjectEntityClass des Rahmenplatzhalters
OBJ_ENTITY_ID objectEntityId varchar(255) (null) ObjectEntityId des Rahmenplatzhalters
OBJ_GRP_ID objectGroupId varchar(255) (null) ObjectGroupId des Rahmenplatzhalters
OBJ_ID objectId varchar(255) (null) ObjectId des Rahmenplatzhalters
PARENT_OBJ_ENTITY_CLASS parentObjectEntityClass varchar(255) (null) ParentObjectEntityClass des Rahmenplatzhalters
PARENT_OBJ_ENTITY_ID parentObjectEntityId varchar(255) (null) ParentObjectEntityId des Rahmenplatzhalters
PARENT_OBJ_GRP_ID parentObjectGroupId varchar(255) (null) ParentObjectGroupId des Rahmenplatzhalters
PARENT_OBJ_ID parentObjectId varchar(255) (null) ParentObjectId des Rahmenplatzhalters
BUILT_BY_RECORD_ID builtByRecordId Integer(null)
BUILT_BY_RECORD_ID2 builtByRecordId2 Integer(null)
BUILT_BY_RECORD_ID3 builtByRecordId3 Integer(null)
BUILT_BY_RECORD_STRING_ID builtByRecordStringId varchar(255) (null)
BUILT_BY_OBJ_ENTITY_CLASS builtByObjectEntityClass varchar(255) (null)
BUILT_BY_OBJ_ENTITY_ID builtByObjectEntityId varchar(255) (null)
BUILT_BY_OBJ_GRP_ID builtByObjectGroupId varchar(255) (null)
BUILT_BY_OBJ_ID builtByObjectId varchar(255) (null)
BUILT_BY_OBJ_GRP_ID builtByObjectGroupId varchar(255) (null)
BUILT_BY_PARENT_OBJ_ENTITY_CLASS builtByParentObjectEntityClass varchar(255) (null)
BUILT_BY_PARENT_OBJ_ENTITY_ID builtByParentObjectEntityId varchar(255) (null)
BUILT_BY_PARENT_OBJ_GRP_ID builtByParentObjectGroupId varchar(255) (null)
BUILT_BY_PARENT_OBJ_ID builtByParentObjectId varchar(255) (null)
PLACEHOLDER_INFO1 placeholderInfo1 varchar(255) (null) PlaceholderInfo1 des Rahmenplatzhalters
PLACEHOLDER_INFO2 placeholderInfo2 varchar(255) (null) PlaceholderInfo2 des Rahmenplatzhalters
ASSORTMENT assortment varchar(255) (null)
COUNTRY country varchar(255) (null)
LANGUAGE language varchar(255) (null)
WELL well varchar(255) (null)
X_POS_ABSOLUTE xPositionAbsolute Float (not null) X-Position linke obere Ecke des InDesign® Dokumentes (Angabe in Punkten)
Y_POS_ABSOLUTE yPositionAbsolute Float (not null) Y-Position linke obere Ecke des InDesign® Dokumentes (Angabe in Punkten)
X_POS_RELATIVE xPositionRelative Float (null) X-Position relativ zur linken obere Ecke der comet Gruppe (Angabe in Punkten). Falls keine comet Gruppe dann wird 0 gesetzt.
Y_POS_RELATIVE yPositionRelative Float (null) Y-Position relativ zur linken obere Ecke der comet Gruppe (Angabe in Punkten). Falls keine comet Gruppe dann wird 0 gesetzt.
WIDTH width Float (not null) Breite des Rahmens (Angabe in Punkten)
HEIGHT height Float (not null) Höhe des Rahmens (Angabe in Punkten)
FRAME_ROTATION frameRotation Float (not null) Drehung des Rahmens
FRAME_SKEW frameSkew Float (not null) Scherwinkel des Rahmens
FRAME_TYPE frameType varchar(30) (not null) Typ des Rahmens. Mögliche Werte: "text", "graphic", "unknown"
OBJECT_STYLE objectStyle varchar(255) (null) Name des Objektstils des Rahmens
IMAGE_X_OFFSET imageXOffset Float (null) X-Offset des Bildes innerhalb des Bildrahmens (Angabe in Punkten).
Hinweis: nur bei Bildrahmen
IMAGE_Y_OFFSET imageYOffset Float (null) Y-Offset des Bildes innerhalb des Bildrahmens (Angabe in Punkten).
Hinweis: nur bei Bildrahmen
IMAGE_X_SCALE imageXScale Float (null) X-Skalierungsfaktor des Bildes innerhalb des Bildrahmens.
Hinweis: nur bei Bildrahmen
IMAGE_Y_SCALE imageYScale Float (null) Y-Skalierungsfaktor des Bildes innerhalb des Bildrahmens.
Hinweis: nur bei Bildrahmen
IMAGE_ROTATION imageRotation Float (null) Drehung des Bildes innerhalb des Bildrahmens.
Hinweis: nur bei Bildrahmen
IMAGE_SKEW imageSkew Float (null) Scherwinkel des Bildes innerhalb des Bildrahmens.
Hinweis: nur bei Bildrahmen
CREATEDON createdOn Datetime Wann wurde die Rahmeninformation zum ersten mal geschrieben.
UPDATEDON updatedOn Datetime Wann wurde die Rahmeninformation zum letzten mal aktualisiert.
CREATEDBY createdBy varchar(50) (not null) Benutzer, der die Rahmeninformation geschrieben hat.
UPDATEDBY updatedBy varchar(50) (not null) Benutzer, der die Rahmeninformation zuletzt aktualisiert hat.

Um gespeicherte Rahmeninformationen einem Rahmen in InDesign® zuordnen zu können, sind je nach Projekt unterschiedliche Suchkriterien notwendig. Die Suchkriterien sind aufgeteilt in Suchmenge (Filtert Dokumente) und Rahmensuchmethode (Filtert Rahmeninformationen). Alle relevanten cScript-Funktionen und die Gestaltungsregel "Rahmengeometrie setzen" erwarten beide Parameter. Erfüllt ein gespeicherter Datensatz alle Suchkriterien (es stimmen die Daten mit denen des aktuellen InDesign® Rahmens überein), ist der passende Datensatz gefunden.

Die Suchmenge beschränkt die Suche auf eine bestimmte Menge von Dokumenten. Die Suchmenge entspricht dem Skriptparameter docType. Folgende Werte stehen zur Verfügung:

Name Bezeichner im Skript
Aktuelles Dokument kLocalDoc

Die Rahmensuchkriterien geben an, welche Werte eines Datensatzes mit denen des aktuellen InDesign® Rahmens verglichen werden sollen. Die Rahmensuchkriterien entsprechen dem Skriptparameter frameSearchFlags. Folgende Rahmensuchkriterien stehen zur Verfügung:

Name Bezeichner im Skript Hinweis
Default kUseDefault
templateId kUseTemplateId
frameLabel kUseFrameLabel
recordStringId kUseRecordStringId
buildByRecordStringId kUseBuildByRecordStringId
placeHolderId kUsePlaceholderId
frameType kUseFrameType
scriptTags kUseScriptTags
frameUID kUseFrameUID
placeHolderInfo1 kUsePlaceholderInfo1
placeHolderInfo2 kUsePlaceholderInfo2
placeHolderInfo2 kUsePlaceholderInfo2
frameInfoId kUseFrameInfoId
recordId kUseRecordId Nicht bei Pubserver Verbindungen verfügbar!
recordId2 kUseRecordId2
recordId3 kUseRecordId3
buildByRecordId kUseBuildByRecordId
buildByRecordId2 kUseBuildByRecordId2
buildByRecordId3 kUseBuildByRecordId3

Hinweis:
Der Parameter kUseDefault entspricht kUseTemplateId + kUseFrameLabel + kUseRecordStringId + kUseBuildByRecordStringId.

Hinweis:
Der Parameter kUseFrameInfoId verwendet zur identifizierung das Rahmenetikett (Scripttag) mit dem Key "frameInfoId". Dieses muss zurvor gesetzt werden. Hierzu wird die Hilfsfunktion frame::set_frameinfoid zur Verfügung gestellt.

Alle Suchkriterien können beliebig miteinander in cScript als Summe kombiniert werden.

Wenn die Suchkriterien auf mehrere gespeicherte Datensätze zutreffen, kann über den Skriptparameter conflictBehavior entschieden werden, was geschieht. Folgende Werte stehen dafür zur Verfügung:
Name Bezeichner im Skript Beschreibung
Ignorieren kThrowError Ignoriert den Rahmen und führt keine Aktion durch. Zusätzlich wird ein Fehler in das Logfile geschrieben.
Letze bevorzugen kUseLatest Verwendet den Datensatz mit dem jüngsten updatedOn Datum.

Beim Wiederherstellen von Frame Infos müssen nicht zwingend alle gespeicherten Daten auf den Rahmen angewendet werden. Der Skriptparameter propertyFlags bestimmt, welche gespeicherten Informationen angewendet werden. Folgende Werte stehen dafür zur Verfügung:

Datenfeld-Name Bezeichner im Skript
SCRIPT_TAGS kApplyScriptTags
PAGE kApplyPage
LAYER kApplyLayer
X_POS_ABSOLUTE kApplyXPosAbs
Y_POS_ABSOLUTE kApplyYPosAbs
X_POS_RELATIVE kApplyXPosRel
Y_POS_RELATIVE kApplyYPosRel
WIDTH kApplyWidth
HEIGHT kApplyHeight
FRAME_ROTATION kApplyFrameRotate
FRAME_SKEW kApplyFrameSkew
IMAGE_X_OFFSET kApplyImageXOffset
IMAGE_Y_OFFSET kApplyImageYOffset
IMAGE_X_SCALE kApplyImageXScale
IMAGE_Y_SCALE kApplyImageYScale
IMAGE_ROTATION kApplyImageRotate
IMAGE_SKEW kApplyImageSkew
OBJECT_STYLE kApplyObjectStyle

Es stehen cScript-Funktionen zum Schreiben und Wiederherstellen für einzelne Rahmen, Rahmen einer Comet Gruppe, beliebige Rahmenlisten und für Rahmen eines Dokumentes zur Verfügung.

Um Konstanten wie z.B. kApplyWidth oder kUseFrameLabel zu verwenden, muss die Datei internal/frameinfos.h in Ihren cScripten included werden.

Folgende Funktionen zum Schreiben von Frame Infos stehen zur Verfügung:

Folgende Funktionen zum Wiederherstellen von Frame Infos stehen zur Verfügung:

Um Frame Infos wiederherzustellen wird die Gestaltungsregel "Rahmengeometrie setzen" zur Verfügung gestellt. Ihre Parameter entsprechen wie folgt den Skriptparametern:

Name Skriptparameter
Suchmenge documentType
Suchmethode frameSearchFlags
Wiederherstellen propertyFlags
Bei Konflikten conflictBehavior

Zur Verwendung der Frame Infos ist eine Erweiterung des Datenmodells notwendig. Folgendes MySQL Statement legt die notwendige Tabelle an:

CREATE TABLE `comet_frameinfo`
(
	`ID` int(30) NOT NULL AUTO_INCREMENT,
	`placeholderId` int(30) NOT NULL DEFAULT '0',
	`frameUID` int(30) NOT NULL,
	`cometGroupId` int(30) NOT NULL DEFAULT '0',
	`templateId` int(30) NOT NULL,
	`frameLabel` varchar(255) DEFAULT NULL,
	`publicationPlannerDocumentId` varchar(255) DEFAULT NULL,
	`documentName` varchar(255) DEFAULT NULL,
	`documentPath` varchar(1000) DEFAULT NULL,
	`page` int(30) DEFAULT NULL,
	`layer` varchar(255) DEFAULT NULL,
	`scriptTags` text,
	`recordId` int(30) DEFAULT NULL,
	`recordId2` int(30) DEFAULT NULL,
	`recordId3` int(30) DEFAULT NULL,
	`recordStringId` varchar(255) DEFAULT NULL,
	`objectEntityClass` varchar(255) DEFAULT NULL,
	`objectEntityId` varchar(255) DEFAULT NULL,
	`objectGroupId` varchar(255) DEFAULT NULL,
	`objectId` varchar(255) DEFAULT NULL,
	`parentObjectEntityClass` varchar(255) DEFAULT NULL,
	`parentObjectEntityId` varchar(255) DEFAULT NULL,
	`parentObjectGroupId` varchar(255) DEFAULT NULL,
	`parentObjectId` varchar(255) DEFAULT NULL,
	`builtByRecordId` int(30) DEFAULT NULL,
	`builtByRecordId2` int(30) DEFAULT NULL,
	`builtByRecordId3` int(30) DEFAULT NULL,
	`builtByRecordStringId` varchar(255) DEFAULT NULL,
	`builtByObjectEntityClass` varchar(255) DEFAULT NULL,
	`builtByObjectEntityId` varchar(255) DEFAULT NULL,
	`builtByObjectGroupId` varchar(255) DEFAULT NULL,
	`builtByObjectId` varchar(255) DEFAULT NULL,
	`builtByParentObjectEntityClass` varchar(255) DEFAULT NULL,
	`builtByParentObjectEntityId` varchar(255) DEFAULT NULL,
	`builtByParentObjectGroupId` varchar(255) DEFAULT NULL,
	`builtByParentObjectId` varchar(255) DEFAULT NULL,
	`placeholderInfo1` varchar(255) DEFAULT NULL,
	`placeholderInfo2` varchar(255) DEFAULT NULL,
	`assortment` varchar(255) DEFAULT NULL,
	`country` varchar(255) DEFAULT NULL,
	`language` varchar(255) DEFAULT NULL,
	`well` varchar(255) DEFAULT NULL,
	`xPositionAbsolute` float NOT NULL,
	`yPositionAbsolute` float NOT NULL,
	`xPositionRelative` float DEFAULT NULL,
	`yPositionRelative` float DEFAULT NULL,
	`width` float NOT NULL,
	`height` float NOT NULL,
	`frameRotation` float NOT NULL DEFAULT '0',
	`frameSkew` float NOT NULL DEFAULT '0',
	`frameType` varchar(30) NOT NULL,
	`objectStyle` varchar(255) DEFAULT NULL,
	`imageXOffset` float DEFAULT NULL,
	`imageYOffset` float DEFAULT NULL,
	`imageXScale` float DEFAULT NULL,
	`imageYScale` float DEFAULT NULL,
	`imageRotation` float DEFAULT NULL,
	`imageSkew` float DEFAULT NULL,
	`createdOn` datetime DEFAULT NULL,
	`updatedOn` datetime DEFAULT NULL,
	`createdBy` varchar(50) DEFAULT NULL,
	`updatedBy` varchar(50) DEFAULT NULL,
	`frameInfoId` varchar(255) DEFAULT NULL,
	PRIMARY KEY (`ID`)
) 	ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;