Office-Entwicklung
Verwalten von Metadaten mit Dokumentinformationsbereichen
Ashish Ghoda
Themen in diesem Artikel:
- Dokumentinformationsbereiche
- Verwalten von Metadaten
- Verwenden von InfoPath-Formularen
|
In diesem Artikel werden folgende Technologien verwendet:
2007 Office System, .NET Framework 3.5
|

Inhalt
Heutzutage muss sich jedes Unternehmen im Bereich Informationsmanagement großen Herausforderungen stellen. Wenn sich wichtige Informationen in einer Vielzahl von Formaten an unterschiedlichen Speicherorten befinden, kann sich die Suche nach diesen Daten und deren Nutzung schwierig gestalten. Unternehmen müssen nicht nur sicherstellen, dass Daten einfach gefunden und genutzt werden können, sondern außerdem über Richtlinien für die Datenaufbewahrung und die Einhaltung gesetzlicher Vorschriften verfügen.
Um diesen neuen Anforderungen gerecht zu werden und datengesteuerte Anwendungen zu implementieren, müssen Dokumenten geeignete Metadaten zugeordnet sein, die auf allen Systemen im Unternehmen verfügbar gemacht werden. In diesem Artikel wird erläutert, wie wirksame Metadatenverwaltung und effektives Content Management mithilfe des Dokumentinformationsbereichs, einer formularbasierten Komponente innerhalb von Microsoft® Word 2007, Excel® 2007 und PowerPoint® 2007 aktiviert werden, mit der Benutzer Metadaten auf Dokumentebene verwalten können.
Metadatenverwaltung mit Dokumentinformationsbereichen
Die Microsoft Office-Plattform hat für Dokumente schon immer sowohl die Verwaltung von Standard- als auch von benutzerdefinierten Eigenschaften ermöglicht. Mit Dokumentinformationsbereichen können Sie jedoch zusätzliche Funktionen implementieren, wie eine metadatenbasierte Suche und die Automatisierung datengesteuerter Geschäftsprozesse. Dokumentinformationsbereiche ermöglichen dem Benutzer die Implementierung dokumentspezifischer Metadaten für die folgenden vier Arten von Dokumenteigenschaften: Kern- oder Standardeigenschaften, benutzerdefinierte Dokumenteigenschaften, Inhaltstypen für Microsoft Office SharePoint® Server (MOSS) 2007, sowie erweiterte und fortgeschrittene benutzerdefinierte Eigenschaften. Im Folgenden werden diese Eigenschaften näher betrachtet.
Kerneigenschaften Benutzer können mithilfe der standardmäßigen Dokumenteigenschaftenansicht des Dokumentinformationsbereichs zentrale Dokumenteigenschaften verwalten, die allen Office-Dokumenten gemein sind, wie Autor, Titel, Thema, Schlüsselwörter, Kategorie, Status und Kommentare.
Benutzerdefinierte Dokumenteigenschaften Um Office-Dokumenten weiteren Geschäftskontext hinzuzufügen, ermöglicht das 2007 Microsoft Office System Ihnen, vertrauenswürdige benutzerdefinierte InfoPath®-Formularvorlagen als benutzerdefinierten Dokumentinformationsbereich anzuhängen. Abbildung 1 zeigt eine InfoPath-Formularvorlage, die ich ChecklistMetadata genannt habe. Eine Erläuterung hierzu erfolgt später. Sie ist als benutzerdefinierter Dokumentinformationsbereich an ein Word 2007-Dokument angefügt.
Abbildung 1 An ein Word 2007-Dokument angefügte InfoPath-Formularvorlage (Klicken Sie zum Vergrößern auf das Bild)
Inhaltstypen für SharePoint Server 2007 In MOSS 2007-Dokumentbibliotheken gespeicherte Dokumente enthalten benutzerdefinierte Dokumenteigenschaften, die Inhaltstypen zugeordnet sind, die für die zugehörige SharePoint-Website definiert sind. Diese Dokumente zeigen automatisch die Felder des Inhaltstyps als benutzerdefinierte Dokumentinformationsbereiche an. Die Inhaltstypenfeldwerte können vom Benutzer im Offline-/Onlinemodus aktualisiert werden. Diese Werte werden automatisch zurück in die Dokumentbibliothek gespeichert, wenn der Benutzer verbunden ist.
Weitere Informationen zum Dokumentinformationsbereich für MOSS 2007-basierte Dokumente finden Sie unter
go.microsoft.com/fwlink/?LinkId=109825.
Erweiterte und fortgeschrittene benutzerdefinierte Eigenschaften Benutzer können auf zusätzliche dokumentspezifische benutzerdefinierte Eigenschaften zugreifen und diese verwalten, indem sie das Dokumenteigenschaftenfenster über die Option „Erweiterte Eigenschaften“ des Dokumentinformationsbereichs öffnen, wie in Abbildung 2 gezeigt. Von diesem Dialogfeld aus können Benutzer erweiterte Eigenschaften mithilfe der Registerkarte „Zusammenfassung“ auffüllen und neue benutzerdefinierte Eigenschaften mithilfe der Registerkarte „Benutzerdefiniert“ erstellen. Noch umfangreichere Metadatenverwaltungsfunktionen können durch Konfiguration des Dokumentinformationsbereichs für die Anzeige und Verwaltung von Dokumentmetadaten über InfoPath-Formulare erzielt werden.
Abbildung 2 Menü „Erweiterte Eigenschaften“ (Klicken Sie zum Vergrößern auf das Bild)
Mit der Registerkarte „Entwickler“ in 2007 Office System können Sie Dokumente mithilfe von Code, Steuerelementen, benutzerdefiniertem XML und Vorlagen benutzerdefiniert einrichten. Hier lässt sich auch der Dokumentinformationsbereich aktivieren. Abbildung 3 zeigt die hervorgehobene Dokumentbereichsoption für ein Word 2007-Dokument. Um den Dokumentinformationsbereich innerhalb eines Office 2007-Dokuments anzuzeigen und zu konfigurieren, klicken Sie auf die Option „Dokumentbereich“.
Abbildung 3 Option „Dokumentbereich“ für ein Word 2007-Dokument (Klicken Sie zum Vergrößern auf das Bild)
Wenn Sie einen benutzerdefinierten Dokumentinformationsbereich anfügen möchten, geben Sie mithilfe des Netzwerkpfads oder der URL der InfoPath-Formularvorlage eine benutzerdefinierte Vorlage an. Beachten Sie, dass an dieser Stelle keine benutzerdefinierte Vorlage angegeben werden muss, wenn Sie nur die Standarddokumenteigenschaften anzeigen möchten.
Wählen Sie als Nächstes die Option „Standardeigenschaften“ oder „Benutzerdefinierte Eigenschaften“ aus (nur wenn eine benutzerdefinierte InfoPath-Formularvorlage angefügt ist), die unter „Standardmäßig anzeigen“ für den Dokumentinformationsbereich verwendet werden soll. Wenn in der InfoPath-Formularvorlage mehrere Ansichten vorhanden sind, wird die Standardansicht als der benutzerdefinierte Dokumentinformationsbereich mit Zugriff auf andere Ansichten angezeigt.
Eine der Hauptanforderungen für die effiziente Metadatenverwaltung besteht in der Verfügbarkeit eines einheitlichen Metadatenschemas über Anwendungen hinweg. Der Dokumentinformationsbereich ermöglicht dabei eine vereinfachte Vereinheitlichung und Wiederverwendung: Dieselbe InfoPath 2007-Vorlage kann auch als benutzerdefinierter Dokumentinformationsbereich an Word-, Excel- und PowerPoint 2007-Dokumente angefügt werden.
Wie Sie wahrscheinlich wissen, basieren Dokumente in 2007 Office System auf dem Open XML-Format. Sie bestehen also aus einem .zip-Dateipaket mit XML-Dateien, die den Inhalt und die Metadaten des Dokuments enthalten. Daher sind die Dokumenteigenschaften als XML innerhalb des Pakets gespeichert. Da all diese Informationen als XML gespeichert sind, ist es relativ einfach, programmgesteuert auf sie zuzugreifen, um metadatengesteuerte Geschäftsprozesse zu automatisieren. In den folgenden Abschnitten wird dieser Vorgang näher erläutert.
Dokumenteigenschaftenverwaltung
Standarddokumenteigenschaften können über die Dokumenteigenschaftenansicht des Dokumentinformationsbereichs verwaltet werden. Um zu sehen, wo diese Eigenschaften tatsächlich im OpenXML-Paket gespeichert sind, öffnen Sie die .rels-Datei im _rels-Ordner des entzippten Office-Dokuments. Aus dieser Datei ist ersichtlich, dass Standarddokumenteigenschaften (Kerneigenschaften) in der core.xml-Datei innerhalb des docProps-Ordners gespeichert sind (siehe Abbildung 4). Die core.xml-Datei enthält alle Standarddokumenteigenschaften, die aus der Dokumenteigenschaftenansicht im Dokumentinformationsbereich aufgefüllt werden.

Figure 4 Eine Beziehungsdatei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships
xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3"
Type="http://schemas.openxmlformats.org/officeDocument/2006/
relationships/extended-properties" Target="docProps/app.xml"/>
<Relationship Id="rId2"
Type="http://schemas.openxmlformats.org/package/2006/
relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1"
Type="http://schemas.openxmlformats.org/officeDocument/2006/
relationships/officeDocument" Target="word/document.xml"/>
<Relationship Id="rId4"
Type="http://schemas.openxmlformats.org/officeDocument/2006/
relationships/custom-properties" Target="docProps/custom.xml"/>
</Relationships>
Der in Abbildung 5 dargestellte Code zeigt, wie ein Standarddokumenteigenschaftenwert abgerufen und mithilfe des DocumentProperties-Objekts des Word-Objektmodells auf einen neuen Wert festgelegt wird. Die BuiltInDocumentProperties-Eigenschaft des Word-Dokumentobjekts gibt ein DocumentProperties-Objekt zurück, bei dem es sich um eine Sammlung von Standard DocumentProperty-Objekten handelt. Daraufhin wird die Item-Eigenschaft verwendet, um ein bestimmtes DocumentProperty-Objekt durch Angabe eines Eigenschaftennamens (in diesem Fall die Kategorieneigenschaft) abzurufen. Die Value-Eigenschaft des DocumentProperty-Objekts wird zum Festlegen oder Abrufen des Werts der Eigenschaft verwendet.

Figure 5 Abrufen einer Standarddokumenteigenschaft
Dim StandardProperties As Microsoft.Office.Core.DocumentProperties
Dim StandardProperty As Microsoft.Office.Core.DocumentProperty
Dim Category As String
'Assign Current Document Standard Properties
StandardProperties = _
DirectCast(Globals.ThisDocument.BuiltInDocumentProperties, _
Microsoft.Office.Core.DocumentProperties)
'Assign "category" property
StandardProperty = StandardProperties.Item("category")
'Get "category" property value
Category = StandardProperty.Value
'Set "category" property value to "Modified Checklist"
StandardProperty.Value = "Modified Checklist"
Mit dem Word-Objektmodell können Sie auch das CustomXMLParts-Objekt verwenden, um auf diese Eigenschaften als XML-Dateien zuzugreifen (siehe Abbildung 6). Das CustomXMLParts-Objekt gibt eine Sammlung von CustomXMLPart-Objekten zurück, die die XML-Dateien enthalten, die das Dokument beschreiben. Die erste XML-Datei in der Sammlung ist die core.xml-Datei, die die Standarddokumenteigenschaften enthält. Nachdem Sie einen Verweis zum XMLDocument-Objekt erhalten haben, verwenden Sie die XPath-Abfragemethoden, z. B. SelectSingleNode, zum Ändern von Knoten, beispielsweise den Kategorieeigenschaftsknoten.

Figure 6 Zugriffseigenschaften als XML
Dim OfficeCustomXMLParts As Microsoft.Office.Core.CustomXMLParts
Dim Category As String
'Assign CustomXMLParts containing standard/core
'document properties XML Part
OfficeCustomXMLParts = DirectCast(Globals.ThisDocument.CustomXMLParts, _
Microsoft.Office.Core.CustomXMLParts)
'Find the "category" property node and get the value of "category"
'standard property
Category = OfficeCustomXMLParts.Item(1).SelectSingleNode _
("//*[local-name(.)='category']").Text
'Find the "category" property node and set the value of "category"
' standard property
OfficeCustomXMLParts.Item(1).SelectSingleNode _
("//*[local-name(.)='category']").Text = "modified category"
Benutzerdefinierte Dokumenteigenschaftenverwaltung
Benutzerdefinierte Dokumenteigenschaften können über eine InfoPath-Formularvorlage verwaltet werden, die als benutzerdefinierter Dokumentinformationsbereich angefügt ist. Die InfoPath-Formulardaten werden innerhalb des Dokuments als benutzerdefinierte XML-Dokumentkomponente gespeichert. Beachten Sie, dass Beziehungen für alle im Dokument enthaltenen benutzerdefinierten XML-Komponenten in der document.xml.rels-Datei innerhalb des Word/_rels-Ordners definiert sind. Die benutzerdefinierten XML-Dateien selbst befinden sich im customXml-Ordner. Jede benutzerdefinierte XML-Dokumentkomponente verfügt über ihre eigene Beziehungsdefinitionsdatei, die im customXml/_rels-Unterordner abgelegt ist. Wie unten dargestellt, verfügt die item1.xml-Komponente über eine entsprechende item1.xml.rels-Datei, die auf die itemProps1.xml-Datei verweist und angibt, dass diese XML-Komponente über benutzerdefinierte Eigenschaften verfügt, die item1.xml beschreiben.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Relationships
xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1"
Type="http://schemas.openxmlformats.org/officeDocument/2006/
relationships/customXmlProps" Target="itemProps1.xml" />
</Relationships>
Die itemProps1.xml-Datei gibt über den Schemaverweis an, dass das benutzerdefinierte XML-Schema ein InfoPath-Schema ist. Dies ermöglicht Word, item1.xml als InfoPath-Formular zu öffnen:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ds:datastoreItem ds:itemID="{A9851B97-75EE-4C97-ACC6-D9EB7DA1D3DC}"
xmlns:ds="http://schemas.openxmlformats.org/officeDocument/
2006/customXml">
<ds:schemaRefs>
<ds:schemaRef ds:uri="http://schemas.microsoft.com/office/
infopath/2003/myXSD/2007-09-01T16:03:56" />
<ds:schemaRef ds:uri="http://schemas.microsoft.com/
office/infopath/2003" />
</ds:schemaRefs>
</ds:datastoreItem>
Um anzugeben, dass benutzerdefinierte XML-Eigenschaften als benutzerdefinierter Dokumentinformationsbereich angefügt werden sollen, geben Sie diese Beziehung einfach über einen Schemaverweis an:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ds:datastoreItem ds:itemID="{B97FA79B-5941-4441-9A4B-3E001C0278D6}"
xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/
customXml">
<ds:schemaRefs>
<ds:schemaRef ds:uri="http://schemas.microsoft.com/office/2006/
customDocumentInformationPanel" />
</ds:schemaRefs>
</ds:datastoreItem>
Wenn dieses Element nun geöffnet wird, gibt es an, dass InfoPath als Editor für benutzerdefinierte XML-Eigenschaften verwendet wird, und die ChecklistMetadata.xsn-Datei ist als InfoPath-Formularvorlage an den benutzerdefinierten Dokumentinformationsbereich angefügt. Um auf die angefügte XML-Datei des InfoPath-Formulars zuzugreifen, kann das CustomXMLParts-Objekt wie für den Zugriff auf die Standarddokumenteigenschaften verwendet werden.
Der unten aufgeführte Code veranschaulicht die Verwendung des CustomXMLParts-Objekts und der SelectSingleNode-Methode zum Abrufen des ProjectName-Knotens aus dem InfoPath-Formularfeld der CL-Geschäftsinformationstechnologie-Kategorieprüfliste:
Dim InfoPathXML As XmlDocument = New XmlDocument()
Dim projectname As String
'Load InfoPath Form XML
InfoPathXML.LoadXml(Globals.ThisDocument.CustomXMLParts.Item(4).XML)
'Get the "Project Name" field value of the
' CL - Business - Information Technology checklist metadata
projectname = InfoPathXML.SelectSingleNode _
("//*[local-name(.)='ProjectName']").InnerText
Zusätzliche benutzerdefinierte Eigenschaften können über die Ansicht „Erweiterte Eigenschaften“ innerhalb des Dokumentinformationsbereichs verwaltet werden. In der .rels-Datei im root_rels-Ordner ist ersichtlich, wo diese Eigenschaften innerhalb des Dokumentpakets gespeichert werden. Wie Sie sehen, gibt die Beziehungsdatei an, dass benutzerdefinierte Dokumenteigenschaften in einer Datei namens „custom.xml“ innerhalb des docProps-Ordners gespeichert werden.
Zu Demonstrationszwecken wurde dem Dokument mithilfe des Dialogfelds „Erweiterte Eigenschaften“ die benutzerdefinierte Eigenschaft „Client“ hinzugefügt. Wie im folgenden Code dargestellt, wird die Eigenschaft „Client“ wie folgt in der docProps/custom.xml-Datei gespeichert:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Properties xmlns="http://schemas.openxmlformats.org/
officeDocument/2006/
custom-properties"
xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/
docPropsVTypes">
<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}"
pid="2" name="Client">
<vt:lpwstr>
Client Value
</vt:lpwstr>
</property>
</Properties>
Der Code in Abbildung 7 zeigt auf, wie der benutzerdefinierte Client-Eigenschaftswert programmgesteuert abgerufen und mithilfe des Word-Objektmodells auf einen neuen Wert festgelegt wird. Wie hier zu sehen, gibt die CustomDocumentProperties-Eigenschaft des Word-Dokumentobjekts eine Sammlung von benutzerdefinierten DocumentProperty-Objekten zurück. Die Item-Eigenschaft kann daraufhin verwendet werden, um ein bestimmtes DocumentProperty-Objekt durch Angabe eines Eigenschaftsnamens (in diesem Fall „Client“) abzurufen. Die Value-Eigenschaft des DocumentProperty-Objekts wird zum Festlegen oder Abrufen des Werts einer benutzerdefinierten Dokumenteigenschaft verwendet.

Figure 7 Abrufen der benutzerdefinierten Client-Eigenschaft
Dim CustomProperties As Microsoft.Office.Core.DocumentProperties
Dim CustomProperty As Microsoft.Office.Core.DocumentProperty
Dim client As String
'Assign Current Document Standard Properties
CustomProperties = DirectCast(Globals.ThisDocument.CustomDocumentProperties, Microsoft.Office.Core.DocumentProperties)
'Assign "client" property
CustomProperty = CustomProperties.Item("Client")
'Get "client" property value
client = CustomProperty.Value
'Set "client" property value to "Microsoft"
CustomProperty.Value = "Microsoft"
Der folgende Code zeigt, wie eine neue benutzerdefinierte Eigenschaft, Checklistversion, hinzugefügt und der Wert auf 1 festgelegt wird:
Dim CustomProperties As Microsoft.Office.Core.DocumentProperties
'Assign Current Document Standard Properties
CustomProperties = _
DirectCast(Globals.ThisDocument.CustomDocumentProperties, _
Microsoft.Office.Core.DocumentProperties)
'Add "ChecklistVersion" as a custom property and set value to "1.1"
CustomProperties.Add("ChecklistVersion", False, _
Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeNumber, "1.1").
Wie Sie sehen, wird die Add-Methode des CustomDocumentProperties-Objekts für das Hinzufügen der neuen benutzerdefinierten Dokumenteigenschaft und das Festlegen des Werts auf 1.1 verwendet. Während der Wert als Zeichenfolge hinzugefügt wird, gibt msoPropertyTypeNumber an, dass die Zeichenfolge als Zahl betrachtet werden soll.
Bisher wurde aufgezeigt, dass Benutzer und Systemadministratoren mit dem Dokumentinformationsbereich Metadaten effizienter verwalten können, indem sie in einem OpenXML-Dokument gespeichert werden, jedoch als separate Dokumentkomponente innerhalb des Pakets. Eine effiziente metadatengesteuerte Geschäftsprozessimplementierung ist nur möglich, wenn die Metadatenwerte verwendet werden können, um Geschäftsprozesse zu automatisieren, die Inhaltsumgebung zu steuern, und Benutzer bei der automatischen Generierung von wiederholbarem Inhalt zu unterstützen.
Im folgenden Beispiel wird eine Prüflistenverwaltungsanwendung in Word 2007 entwickelt, um vorzuführen, wie Geschäftsprozesse durch Zuordnen von Standarddokumenteigenschaften und formularbasierten benutzerdefinierten InfoPath-Feldern zu anderen Word 2007-Komponenten wie Inhaltssteuerelementen, Schnellbausteinen und benutzerdefinierten Fluent-Multifunktionsleistensteuerelementen automatisiert werden können.
Um die Prüflistenverwaltung mithilfe von Word 2007 zu automatisieren, muss zunächst eine InfoPath-Formularvorlage, ChecklistMetadata.xsn, entwickelt und veröffentlicht werden, die Prüflistenmetadaten darstellt, die dem Word 2007-Dokument als benutzerdefinierter Dokumentinformationsbereich hinzugefügt werden. Anschließend wurde ein Word 2007-Dokumentprojekt in Visual Studio® erstellt und die ChecklistMetadata.xsn-Formularvorlage als benutzerdefinierter Dokumentinformationsbereich angefügt. Als Nächstes wurde ein benutzerdefiniertes Multifunktionsleistensteuerelement erstellt, das für das Ein- und Ausblenden des Dokumentinformationsbereichs verwendet wird.
Weiterhin wurde eine Word 2007-Vorlage, ChecklistsQuickPartsTemplate.dotm, entwickelt, die verschiedene Prüflisten als kategorisierte benutzerdefinierte Schnellbausteine enthält, und diese an den Anwendungsdatenordner des Benutzers für eine Integration mit Word 2007-Dokumenten verteilt. Jetzt kann ein benutzerdefiniertes Multifunktionsleistensteuerelement implementiert werden, um Prüflistenschnellbausteine programmgesteuert als Bausteine im Dokument aus der angefügten ChecklistsQuickPartsTemplate.dotm-Vorlage einzufügen. Einfügen der Prüflistenschnellbausteine basierend auf der im benutzerdefinierten Dokumentinformationsbereich ausgewählten Prüflistenkategorie
Anschließend wurden Standarddokumenteigenschaften und InfoPath-Formularfelder (angezeigt mithilfe eines benutzerdefinierten Dokumentinformationsbereichs) mithilfe von Word 2007-Inhaltssteuerelementen programmgesteuert in das Dokument selbst eingebunden. Im Folgenden erfahren Sie, wie Benutzer dem Dokument Standard- und erweiterte Dokumenteigenschaften als Schnellbausteine manuell hinzufügen können.
Die InfoPath-Formularvorlage
Jede Prüfliste kann über allgemeine und prüflistenspezifische Metadaten verfügen. Die InfoPath-Formularvorlage, die hier entwickelt wird, definiert generische und prüflistenspezifische Beispielmetadaten.
Zunächst definieren Sie zur Entwurfszeit die folgenden Prüflistenkategorien in der InfoPath-Formularvorlage. Diese sind in Abbildung 8 dargestellt. Zur Veranschaulichung wurden lediglich zwei Arten von Hauptkategorien definiert: Geschäft und Persönlich. Außerdem wurden Metadatenabschnitte für die beiden Kategorien definiert und entwickelt: Geschäft – Informationstechnologie und Persönlich – Krankenhauskategorien.
Abbildung 8 Beispiel für Prüflistenkategorien (Klicken Sie zum Vergrößern auf das Bild)
Zu den für die Kategorie „Geschäft – Informationstechnologie“ hinzugefügten Metadaten gehören der Projektname, der Zweck und die Teammitglieder (alle als mehrzeilige Textfelder, wie in Abbildung 9 gezeigt). Projektnummer und verwendete Technologie wurden als Einzelzeilentextfelder und Start- und Enddatum als Datumsauswahl hinzugefügt. Ähnlich zeigt Abbildung 10, wie die Metadaten für die Kategorie „Persönlich – Krankenhaus“ angezeigt werden.
Abbildung 9 Metadaten für „Geschäft – Informationstechnologie“ (Klicken Sie zum Vergrößern auf das Bild)
Abbildung 10 Metadaten für „Persönlich – Krankenhaus“ (Klicken Sie zum Vergrößern auf das Bild)
Basierend auf der Auswahl der Metadatenkategorie wird der verwandte Metadatenabschnitt angezeigt. Diese Funktionalität wird mithilfe der bedingten Formatierungsfunktion in InfoPath für jeden Kategorieabschnitt aktiviert. Aus Sicherheitsgründen muss die InfoPath-Formularvorlage in einem lokalen Intranet oder auf einer vertrauenswürdigen Site veröffentlicht oder installiert werden, bevor sie als benutzerdefinierter Dokumentinformationsbereich an ein Dokument angefügt werden kann.
Richten Sie vor der Veröffentlichung der InfoPath-Formularvorlage korrekte Sicherheitseinstellungen über „Extras“ | „Formularoptionen“ | „Sicherheit und Vertrauensstellung“ (Abbildung 11) ein. Wenn die Vorlage an einem vertrauenswürdigen Ort veröffentlicht ist, fügen Sie sie als benutzerdefinierten Dokumentinformationsbereich an.
Abbildung 11 Sicherheits- und Vertrauenseinstellungen (Klicken Sie zum Vergrößern auf das Bild)
Um eine hohe Sicherheitsstufe beizubehalten, signieren Sie die InfoPath-Formularvorlage digital mithilfe eines Zertifikats von einem offiziellen Zertifikatsdrittanbieter, und veröffentlichen Sie sie an einem vertrauenswürdigen Ort, z. B. in einer MOSS-Dokumentbibliothek oder einem Forms Server.
Während der Entwicklungsphase ist es möglicherweise weniger umständlich, die InfoPath-Formularvorlage mithilfe eines selbst signierten Zertifikats zu signieren und auf dem lokalen Computer zu veröffentlichen. Weitere Informationen zu diesem Vorgang finden Sie unter go.microsoft.com/fwlink/?LinkId=109827.
Wenn Sie die InfoPath-Formularvorlage erstellt haben, erstellen Sie ein neues Word 2007-Dokumentprojekt in Visual Studio 2008. Fügen Sie zur Entwurfszeit die ChecklistMetadata.xsn-Datei als benutzerdefinierten Dokumentinformationsbereich an das Dokument an, und wählen Sie die benutzerdefinierte Ansicht als die Standardansicht aus. Die InfoPath-Formularansicht, Prüflistenmetadaten, sollte als benutzerdefinierter Dokumentinformationsbereich im Dokument angezeigt werden.
Sie können durch Ändern der Prüflistenkategorie zu CL – Geschäft – Informationstechnologie und CL – Persönlich – Krankenhauskategorien bestätigen, dass die InfoPath-Formularvorlage funktioniert. Ein entsprechender Metadatenabschnitt sollte innerhalb des Dokumentinformationsbereichs angezeigt werden.
Dokumentinformationsbereich ein- oder ausblenden
Um für die Bearbeitung mehr Platz auf dem Bildschirm zu gewinnen, ist es mitunter vorzuziehen, den Dokumentinformationsbereich auszublenden. Das Office-Objektmodell ermöglicht die programmgesteuerte Kontrolle über die Sichtbarkeit des Dokumentinformationsbereichs, und im Folgenden wird beschrieben, wie dieser durch Erstellung eines benutzerdefinierten Multifunktionsleistensteuerelements ein- oder ausgeblendet wird.
Fügen Sie dem Projekt durch Auswählen von „Multifunktionsleiste (Visueller Designer)“ im Dialogfeld für neue Elemente eine Multifunktionsleiste hinzu. Nennen Sie die Multifunktionsleiste CustomizeChecklistRibbon. Fügen Sie ein Schaltflächen-Steuerelement namens „ShowHideDIP“ hinzu, das für das Ein- oder Ausblenden des Dokumentinformationsbereichs verwendet wird (siehe Abbildung 12).
Abbildung 12 Dokumentinformationsbereich ein- oder ausblenden (Klicken Sie zum Vergrößern auf das Bild)
Der folgende Code zeigt auf, wie der Dokumentinformationsbereich programmgesteuert ein- oder ausgeblendet wird. Fügen Sie diesen Code innerhalb des Click-Ereignishandlers der ShowHideDIP-Schaltfläche hinzu:
'Check if Document Information Panel is visible
If Globals.ThisDocument.Application _
.DisplayDocumentInformationPanel = True Then
'Hide Document Information Panel
Globals.ThisDocument.Application. _
DisplayDocumentInformationPanel = False
Else
'Show Document Information Panel
Globals.ThisDocument.Application. _
DisplayDocumentInformationPanel = True
End If
Die DisplayDocumentInformationPanel-Eigenschaft des Word-Anwendungsobjekts ruft einen booleschen Wert ab bzw. legt einen Wert fest, der für die Steuerung der Anzeige des Dokumentinformationsbereichs verwendet wird.
Einfügen von Prüflistenschnellbausteinen
Metadatenbasierte Wiederverwendbarkeit des Inhalts ist eine der Hauptanforderungen für wirksame Aufgabenautomatisierung. Das Word 2007-Schnellbausteinfeature ermöglicht Benutzern das Erkennen wiederverwendbarer Inhaltsabschnitte für ein Dokument, die Kategorisierung dieser Inhaltsabschnitte, und das Hinzufügen der Abschnitte als Schnellbausteine entweder zur Microsoft-Standardbausteinvorlage oder zu einer Schnellbausteinvorlage. Wenn der Inhalt als Schnellbaustein hinzugefügt und in den AppData-Ordner auf dem Computer eines Benutzers kopiert wurde, erhält der Benutzer Zugriff auf den wiederverwendbaren Inhalt für ein beliebiges Word 2007-Dokument.
Um Prüflistenschnellbausteine einzufügen, die spezifisch für die ausgewählte Kategorie im benutzerdefinierten Dokumentinformationsbereich sind, rufen Sie das InfoPath-Formular-XML-Feld ChCategory aus dem Klickereignis des „Prüflisteneinfügungs“-Multifunktionsleistensteuerelements (Abbildung 3) durch Aufrufen dieser Methode ab:
Function GetChecklistCategoryInfoPathField() As String
Dim InfoPathXML As XmlDocument = New XmlDocument()
Dim ChecklistCategory As String
InfoPathXML.LoadXml(Globals.ThisDocument.CustomXMLParts.Item(4).XML)
ChecklistCategory = InfoPathXML.SelectSingleNode( _
"//*[local-name(.)='ChCategory']").InnerText
Return ChecklistCategory
End Function
Die Prüflisten-InfoPath-XML, die als benutzerdefinierter Dokumentinformationsbereich angefügt ist, ist die vierte Datei in der CustomXMLParts-Sammlung und wird mithilfe der Item-Eigenschaft des CustomXMLParts-Objekts abgerufen. Die InfoPath-XML wird in ein neues XmlDocument-Objekt geladen, und das Dokument wird nach dem ausgewählten ChCategory-Knoten abgefragt.
Die in
Abbildung 13 gezeigte Methode filtert die Prüflistenschnellbausteine basierend auf der ausgewählten Prüflistenkategorie aus der Prüflistenschnellbausteinvorlage. Alle übrigen Prüflistenschnellbausteine werden dann in das Dokument eingefügt, wobei jeder Schnellbaustein auf einer neuen Seite beginnt. (Weitere Informationen zur Identifizierung und zum Einfügen von Prüflisten als kategorisierte Schnellbausteine zur benutzerdefinierten Prüflistenschnellbausteinvorlage finden Sie unter
go.microsoft.com/fwlink/?LinkId=109830.)

Figure 13 InsertChecklistQuickPartsAsBuildingBlock
Sub InsertChecklistQuickPartsAsBuildingBlock(ByVal _
ChecklistCategory As String)
'Declaration
Dim oAttachedTemplate As Microsoft.Office.Interop.Word.Template
Dim oBuildingBlock As Microsoft.Office.Interop.Word.BuildingBlock
Dim selection As Microsoft.Office.Interop.Word.Selection
Dim TotalQuickParts As Integer
Dim iIndex As Integer
'Define Attached Template - ChecklistsQuickPartsTemplate.dotm
oAttachedTemplate = Globals.ThisDocument.AttachedTemplate
'Get Total Number of quick parts available in the selected checklist
' category in the InfoPath form
TotalQuickParts = oAttachedTemplate.BuildingBlockTypes _
.Item(Word.WdBuildingBlockTypes.wdTypeQuickParts) _
.Categories.Item("CL - " + ChecklistCategory) _
.BuildingBlocks.Count
selection = Globals.ThisDocument.Application.Selection
'Insert all quick parts available in the defined category
'Each quick part starts with a new page
For iIndex = 1 To TotalQuickParts
'Add Building Block Content Control
selection.Range.ContentControls.Add(Word.WdContentControlType _
.wdContentControlBuildingBlockGallery)
'Define Quick Part as Building Block
oBuildingBlock = oAttachedTemplate.BuildingBlockTypes _
.Item(Word.WdBuildingBlockTypes.wdTypeQuickParts) _
.Categories.Item("CL - " + ChecklistCategory) _
.BuildingBlocks.Item(iIndex)
'Insert Quick Part
oBuildingBlock.Insert(selection.Range)
selection.EndKey(Word.WdUnits.wdStory)
selection.TypeParagraph()
'No new page required if it is a last Quick Part
If Not iIndex = TotalQuickParts Then
selection.InsertBreak(Type:=Word.WdBreakType.wdPageBreak)
End If
Next
End Sub
Wenn der Code die mit dem Dokument verbundene Vorlage abgerufen hat (in diesem Beispiel ChecklistQuickPartsTemplate.dotm), filtert er die BuildingBlock-Objekte der Vorlage nach dem Bausteintyp (WdBuildingBlockTypes.wdTypeQuickParts) und nach der vom Benutzer ausgewählten Kategorie. Abschließend durchläuft er die gefilterten Schnellbausteine und fügt dem Dokument jeden Prüflistenschnellbaustein als Inhaltssteuerelement hinzu. Sie werden feststellen, dass das Auswahlobjekt für die Definition der Einfügemarke im aktiven Word 2007-Dokument verwendet wird.
Als Nächstes muss der Code einen Seitenumbruch in das Dokument einfügen, bevor der nächste Prüflistenschnellbaustein eingefügt wird. Die InsertBreak-Methode des Auswahlobjekts fügt eine Seite, Spalte oder einen Abschnittsumbruch in das Word-Dokument ein. Die WdBreakType.wdPageBreak-Enumeration gibt an, dass es sich beim Umbruch um einen Seitenumbruch handelt.
Bindung
Da InfoPath-Formularfelder und Dokumenteigenschaften als benutzerdefinierte XML-Dateien definiert und gespeichert werden, können Sie die im Dokumentinformationsbereich verfügbaren Informationen an Inhaltssteuerelemente innerhalb des Dokuments binden. Der folgende Code zeigt, wie ein Inhaltssteuerelement an das InfoPath-Formularfeld ProjectName gebunden wird, das innerhalb des benutzerdefinierten Dokumentinformationsbereichs aufgefüllt wird:
'Sample code to bind first content control to InfoPath
'Form Field ProjectName
Globals.ThisDocument.ContentControls(1).XMLMapping.SetMapping _
("//*[local-name(.)='ProjectName']", , _
Globals.ThisDocument.CustomXMLParts.Item(4))
Das XMLMapping-Objekt repräsentiert eine Zuordnung zwischen einem Word 2007-Inhaltssteuerelement und einem XML-Knoten – die SetMapping-Methode des XMLMapping-Objekts richtet diese Zuordnung ein. Der Knoten ProjectName aus der benutzerdefinierten XML-Datei wurde mithilfe eines XPath-Ausdrucks identifiziert. Die XML-Datei des Prüflisten-InfoPath-Formulars wird mithilfe der CustomXMLParts-Sammlung des Dokumentobjekts abgerufen.
Im Folgenden wird veranschaulicht, wie ein Inhaltssteuerelement an die Standarddokumenteigenschaft der Kategorie gebunden wird:
'Sample code to bind first content control to a standard document
'property - category
Globals.ThisDocument.ContentControls(2).XMLMapping.SetMapping _
("//*[local-name(.)='category']", , _
Globals.ThisDocument.CustomXMLParts.Item(1))
Der einzige Unterschied zwischen diesem Code und dem Code für die Zuordnung des Inhaltssteuerelements zum InfoPath-Formularfeld ist die Änderung des XPath-Ausdrucks und die Änderung des Index, der für den Abruf der Dokumentkomponente aus der CustomXMLParts-Sammlung verwendet wird.
Abbildung 14 zeigt, wie sich das Inhaltssteuerelement mit Bezug auf die ProjectName-Prüflistenmetadaten an das InfoPath-Formularfeld bindet, und daraufhin an die Category-Dokumentstandardeigenschaft. Wie Sie sehen, werden zugeordnete Eigenschaftswerte automatisch in Inhaltssteuerelementen aufgefüllt.
Abbildung 14 An das InfoPath-Formularfeld gebundenes Inhaltssteuerelement (Klicken Sie zum Vergrößern auf das Bild)
Integrieren des Dokumentinformationsbereichs in das Dokument
Es ist möglich, Standard- und erweiterte Dokumenteigenschaften als Schnellbausteine innerhalb des Dokuments zu integrieren. Wie Sie wissen, können Standarddokumenteigenschaften in der Standardeigenschaftenansicht des Dokumentinformationsbereichs verwaltet werden, und auf erweiterte Dokumenteigenschaften kann mithilfe des Fensters für erweiterte Dokumenteigenschaftenverwaltung über den Dokumentinformationsbereich zugegriffen werden.
Navigieren Sie zur Registerkarte „Einfügen“, wie in Abbildung 15 gezeigt, und klicken Sie auf die Option „Schnellbausteine“. Mit der Option „Dokumenteigenschaft“ können Benutzer Standard- und erweiterte Dokumenteigenschaften einfügen. In der Abbildung wird dem Dokument die Standarddokumenteigenschaft Author als Schnellbaustein hinzugefügt. Der eingefügte Schnellbaustein ist eng mit der Dokumenteigenschaft verbunden. Wenn Sie den Wert der Author-Eigenschaft innerhalb des Dokumentinformationsbereichs oder innerhalb des Dokumentschnellbausteins im Beispiel ändern, wird der geänderte Wert automatisch wiedergegeben und die Dokumenteigenschaft geändert.
Abbildung 15 Als Schnellbaustein hinzugefügte Author-Standarddokumenteigenschaft (Klicken Sie zum Vergrößern auf das Bild)
Versionsprobleme
Die Produktsuiten von 2007 Office System ermöglichen das Öffnen und Speichern von Dokumenten im Kompatibilitätsmodus, damit Benutzer mit früheren Versionen von Office (Office 97 – Office 2003) Dokumente öffnen und bearbeiten können. Offensichtlich werden die Features, die in den früheren Versionen der Office-Produkte nicht unterstützt werden, in der vorliegenden Lösung ebenfalls nicht unterstützt. Im Folgenden wird erläutert, was dies bedeutet.
Der Dokumentinformationsbereich zeigt die Standarddokumenteigenschaften und die benutzerdefinierten Dokumenteigenschaften an. Alle Funktionalitäten in Bezug auf die Standard- und benutzerdefinierten Ansichten des Dokumentinformationsbereichs funktionieren, wenn ein Dokument im Kompatibilitätsmodus gespeichert ist, und nur, wenn Sie eine 2007 Office System-Anwendung für die Bearbeitung des Dokuments verwenden.
Wenn Sie jedoch eine frühere Version von Office für das Öffnen und Speichern des Dokuments verwenden, wird der benutzerdefinierte Dokumentinformationsbereich gemeinsam mit den verbundenen Funktionen vom Dokument getrennt. Die entsprechenden Informationen stehen den Benutzern nicht zur Verfügung, selbst wenn das Dokument zu einem späteren Zeitpunkt mit Office 2007 geöffnet wird.
Glücklicherweise bleiben Standarddokumenteigenschaften unverändert, selbst wenn das im Kompatibilitätsmodus gespeicherte 2007 Office System-Dokument mit einer früheren Version von Office geöffnet und gespeichert wird. Wenn das Dokument mit Office 97 – Office 2003 geöffnet wird, kann der Benutzer über den Dialog zur Dokumenteigenschaftenverwaltung auf die Standarddokumenteigenschaften zugreifen. Wenn der Benutzer ein Dokument mit 2007 Office System öffnet, kann über den Dokumentinformationsbereich auf die Standarddokumenteigenschaften zugegriffen werden. Alle an den Standardeigenschaften vorgenommenen Änderungen werden in versionsübergreifenden Szenarios festgehalten.
Wenn die Option „Dokumentinformationsbereich immer beim Öffnen von Dokumenten und beim erstmaligen Speichern anzeigen“ aktiviert ist, um den Dokumentinformationsbereich anzuzeigen, wird diese Information nicht beibehalten, wenn das Dokument im Kompatibilitätsmodus gespeichert und mit einer früheren Version von Office geöffnet und gespeichert wird. In diesem Fall wird der Dokumentinformationsbereich nicht standardmäßig beim Öffnen des Dokuments mit Office angezeigt, wenn es zunächst mit der früheren Version gespeichert wurde.
Wenn bestimmte Dokumenteigenschaften an Inhaltssteuerelemente innerhalb des Dokuments gebunden sind, werden nach dem Speichern eines Word 2007-Dokuments im Kompatibilitätsmodus alle Inhaltssteuerelemente in statischen Text umgewandelt und sind den Dokumenteigenschaften nicht länger zugewiesen.
Zusammenfassung
Die effiziente Verwendung von Standard- und benutzerdefinierten Dokumentinformationsbereichen kann die wirksame Metadatenverwaltung vereinfachen und die Erstellung leistungsfähiger Inhaltsverwaltungsanwendungen in Verbindung mit Schnellbausteinen und Inhaltssteuerelementen ermöglichen. Der Nutzen bei der Verwendung dieser Technologien liegt in standardisierten, strukturierten Metadaten für alle 2007-Versionen von Word, Excel und PowerPoint. Je öfter Sie dieses Feature einsetzen, umso einfacher wird es, Inhalt zu durchsuchen und Geschäftsprozesse damit zu steuern.
Wenn Sie Fragen zu diesem Dokumentinformationsbereichsfeature haben, senden Sie mir eine E-Mail unter
AskAshish@technologyopinion.com. Der gesamte Code für dieses Projekt ist auf der MSDN
® Magazin-Website verfügbar.
Ashish Ghoda ist technischer Manager bei einem der weltweit vier größten Wirtschaftsprüfungsunternehmen. Er ist Microsoft-zertifizierter Experte und Anwendungsentwickler für .NET. Außerdem verwaltet er die Website
technologyopinion.com und schreibt Artikel über Softwareentwicklung. Sie erreichen ihn unter
AskAshish@technologyopinion.com.