Professional SharePoint® 2007 Records Management Development: Managing Official Records with Microsoft® Office SharePoint® Server 2007

Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana

ISBN: 978-0-470-28762-0

Manufactured in the United States of America

10 9 8 7 6 5 4 3 2 1

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Library of Congress Control Number: 2009930062.

Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Microsoft and SharePoint are registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

This book is dedicated to the ever present and ever emerging singularity; the eternal point-value at which all things are known and through which all knowledge is shared.

About the Author

John Holliday has more than 25 years of professional software development experience and has been involved in a wide range of commercial software projects from desktop personal information managers to enterprise information systems for companies including IBM, Kodak, Autodesk, Mentor Graphics, Tektronix, and Alcatel. After receiving a bachelor’s degree in applied mathematics from Harvard and a J.D. from the University of Michigan, John began researching alternative methods of representing legal relationships and developing a specialized computing language for constructing legal expert systems. Over the years, his interest in knowledge representation has expanded to include all aspects of distributed systems development, with a special focus on intelligent documents, collaboration, and enterprise content management. In addition to his professional career, John is actively involved in humanitarian activities through Works of Wonder International, a non-profit organization he co-founded with his wife, Alice, and the Art of Living Foundation, an international service organization devoted to uplifting human values throughout the world.

Credits

Acquisitions Editors

Katie Mohr

Paul Reese

Project Editor

Kelly Talbot

Technical Editors

Dan Attis

Aaron Cutlip

Todd Meister

Stacy Draper

Senior Production Editor

Debra Banninger

Copy Editor

Cate Caffrey

Editorial Director

Robyn B. Siesky

Editorial Manager

Mary Beth Wakefield

Production Manager

Tim Tate

Vice President and Executive Group Publisher

Richard Swadley

Vice President and Executive Publisher

Barry Pruett

Associate Publisher

Jim Minatel

Project Coordinator, Cover

Lynsey Stanford

Compositor

Jeffrey Lytle, Happenstance Type-O-Rama

Proofreader

Nancy Carrasco

Indexer

J & J Indexing

Cover Image

©Tetra images/Punchtock

Acknowledgments

First of all, I thank my lovely and gracious wife, Alice, without whose love and support I could not survive and without whose patience this book would not have been possible. I also thank my noble and courageous mother, Frances, whose enduring spirit lights my way and warms my heart.

Thanks to Microsoft for creating a breakthrough product and for bringing together the best minds in the industry, some of whom I’ve had the great good fortune to interact with directly. Mike Ammerlaan, Ryan Duguid, Paul Andrew, Eilene Hao, and Andrew May, to name a few, provided tremendous insight and clarity about the inner workings of the product, and I owe them an immense debt of gratitude.

Reviewing a technical book like this one is no easy task. It takes careful attention to detail and a willingness to challenge the author’s fundamental assumptions, as well as the ability to do all of this in an impossibly short amount of time. I cannot thank Dan Attis, Aaron Cutlip, Todd Meister, and Stacy Draper enough for their help and support. I also thank my friends Spencer Harbar, Eric Shupps, Robert Bogue, John Ross, Todd Baginski, Natalya Voskresenkaya, Paul Galvin, Zlatan Dzinic, Jeremy Sublett, Sahil Malik, Brendon Schwartz, and Bradley Smith for many wonderful discussions about ECM and SharePoint development in general.

They say a good teacher always learns more than his or her students, and I must say that I am continually amazed at how much I’ve learned while delivering SharePoint training for Ted Pattison’s Critical Path Training (www.criticalpathtraining.com). Ted has assembled a remarkably talented group of instructors whose high professional standards and willingness to share their knowledge have helped me greatly. In particular, I will be forever indebted to Andrew Connell for introducing me to Ted and for his continued guidance and friendship.

A very special thanks goes out to my friend Eli Robillard (http://weblogs.asp.net/ERobillard), whose unique insights into enterprise content management and what it takes to build effective ECM solutions on the SharePoint platform are truly enlightening. Eli spent a great deal of time thinking about the book and helping me to strike the right balance between theory and practice.

I also express my sincere appreciation to Jim Minatel and the folks at Wiley Publishing, whose experience and professionalism are unparalleled in the industry. I especially thank Katie Mohr, whose support for me and for this project has been unwavering from the beginning, even through the many personal and professional challenges that presented themselves along the way. I also give a special “thank you” to my development editor, Kelly Talbot, who was a joy to work with and whose thoughtful advice and insights about the writing process were indispensable.

I know that other writers have echoed the popular phrase, “It takes a village,” when describing the experience of bringing a book like this to market. I can only say that I truly understand now what that means. The village I’m referring to here is the worldwide network of SharePoint MVPs that I feel privileged to be a part of and whose amazing spirit, dedication, and enthusiasm continue to inspire me. Microsoft has done an incredible job of creating a unique and vibrant community of SharePoint professionals that I hope will continue to thrive and expand.

Introduction

Despite its power and flexibility, SharePoint presents many challenges for building enterprise content management (ECM) solutions. This is partly because of the inherently complex nature of application development on the SharePoint platform in general, but mainly because the out-of-the-box tools that SharePoint provides (such as content types, site columns, lists, etc.) are defined at such a low level that it is often difficult for developers to find the right balance between building reusable components that capture the semantics they need when crafting their solutions and writing applications directly using CAML and .NET code. These challenges are even greater for records management (RM) development because the platform provides no built-in support for file planning or content life-cycle management.

Records management on the SharePoint platform relies on several different components that together provide a comprehensive set of tools for building RM solutions, but each of these components can also be understood as a separate and distinct technology. As an example, Information Policy plays an important role in records management but also stands alone as a powerful component of any ECM solution.

This book, therefore, has two goals. The first is to explain the Microsoft Office SharePoint Server (MOSS) records management architecture and to share the most effective design methodologies and development strategies I’ve found for building ECM/RM solutions on the SharePoint platform. The second is to describe the underlying technologies and core components of the platform in sufficient detail to enable readers to apply the design methodologies and development techniques effectively to any SharePoint solution.

Who This Book Is For

This book is for SharePoint developers who are tasked with planning and implementing solutions involving documents that have been designated as official records at some point during their life cycle. These kinds of solutions typically include requirements such as controlling how long certain kinds of documents remain in the system, determining where those documents are stored, keeping track of what happens to documents after they have been placed into document libraries, and so on. In order to focus on such high-level requirements without getting lost in the details of SharePoint solution development, the book assumes that the reader is already familiar with the fundamentals of developing SharePoint solutions using Visual Studio.

While it is not necessary to be a seasoned SharePoint developer with years of experience, the reader should understand the basic steps involved in creating SharePoint features, writing custom code against the SharePoint object model, and deploying that code into the SharePoint run-time environment. The reader should also be comfortable using C# or Visual Basic .NET within the Visual Studio integrated development environment to create ASP.NET web applications.

It is not necessary for the reader to be familiar with general records management principles or with specific regulatory requirements. The book will bring the reader up to speed on the relevant regulations and will also introduce a conceptual framework for understanding them in the context of SharePoint development.

What This Book Covers

No records management solution is complete without a file plan, but there is little guidance available to help developers understand the file planning process or to incorporate a consistent file planning methodology into the development cycle. This book fills that gap by introducing a file planning methodology based on a set of concrete file plan components that enable developers to incorporate file plans into the solutions themselves, as parts of information policies, workflows, or custom features.

Unlike other SharePoint development books that focus only on the mechanics of building solutions, this book introduces content modeling as an integral part of the development process. This approach helps the reader to better understand enterprise content in the context of the roles it is intended to support, and to identify the “high value targets” to focus on first. The book then guides the reader through the development of a consistent methodology for identifying official records and creating effective file plans, understanding the out-of-the-box tools provided by SharePoint for managing official records, and understanding the limitations of the current architecture, including ways to work around them wherever possible.

The book also presents an overall development strategy that seeks to leverage the power of the SharePoint object model to create reusable components. Because of the breadth of the SharePoint platform and the inherent complexity of ECM solutions, developers often fall into the habit of writing “throw-away” code that can only be applied to a single solution or that must be copied and pasted from one solution to another. This tendency is even greater when a developer is forced to use a declarative XML-based language like CAML that is not compiled and that therefore does not offer the same level of reuse that most developers are used to. This book seeks to counteract that tendency and increase developer productivity while simplifying the design and implementation of complex solutions by developing and then continually extending a core set of ECM components in an ECM foundation class library. The components that are developed throughout the book can be extended easily and applied repeatedly, not only to records management solutions, but also to a wide range of SharePoint development projects.

How This Book Is Structured

This book is about building MOSS 2007 records management solutions, but it also includes some additional material related to SharePoint development in general. The early chapters build a conceptual framework that includes a content modeling methodology and also introduces several tools and techniques that are referred to throughout the book. It is therefore recommended that you read the first three chapters first, and then read the other chapters, focusing on the subsystems that interest you. Chapter 2 introduces the ECM2007 foundation class library, which is gradually extended throughout the book. It also introduces the dynamic file plan component, which is also extended throughout the book as a way of tying together the different phases of the content life cycle. The remaining chapters focus on specific parts of the MOSS records management architecture and need not be read in any particular order.

Chapter 1: Official Records — Chapter 1 provides a conceptual framework for understanding MOSS records management and introduces the concept of content modeling, which helps to develop more effective records management solutions. It also describes the file planning process and lays the foundation for the remaining chapters.

Chapter 2: Preparing for Records Management Development — Chapter 2 starts by examining some of the key U.S. legislation that drives many records management solutions. It then walks through the process of setting up a Visual Studio development environment for an optimal development experience, shows you how to create your own SharePoint Feature project template, and introduces the ECM2007 foundation class library that is referred to and extended throughout the book.

Chapter 3: SharePoint Tools for Managing Records — Chapter 3 provides an overview of the built-in components on the SharePoint platform that are most important for building records management solutions. It covers core concepts such as document libraries, content types, versioning, and security, showing how to add support for these components to the ECM2007 foundation class library. Finally, the chapter introduces the SharePoint records management namespaces and object model and describes the Official File Web Service.

Chapter 4: The MOSS 2007 Records Center — Chapter 4 provides a deep dive into the architecture and implementation of the MOSS Records Center site definition, which provides most of the built-in support for records management in the SharePoint environment. It introduces each component of the site definition and describes how incoming records are processed.

Chapter 5: Building and Configuring a Records Repository — Chapter 5 builds on Chapter 4 and describes how to set up and configure a Records Repository, including the steps required for creating the necessary document libraries and content types and setting up the Record Routing Table. The chapter also introduces the concept of using a dynamic file plan for configuring the repository programmatically. It then further extends the ECM2007 foundation class library to include custom file planning components.

Chapter 6: Populating the Records Repository — Chapter 6 looks at the Records Repository from the perspective of users, administrators, and client applications that need to submit documents to the Repository. It walks through the steps needed to configure the SharePoint Farm for manual submission, and it shows how to submit records programmatically to the Repository. It also shows how to extend the SharePoint UI to support the submission of more than one record at a time.

Chapter 7: Information Management Policy — Chapter 7 provides a broad introduction to MOSS Information Management Policy, which underlies much of the advanced records management capabilities of the SharePoint platform. It describes the Information Policy architecture and gives a detailed explanation of each component, showing how to create custom policy features and how to build libraries of reusable Information Policy components.

Chapter 8: Information Policy and Record Retention — Chapter 8 builds on Chapter 7 and shows how Information Policy is used to control record retention. The chapter provides a detailed explanation of how the built-in Expiration Policy Feature works and shows how to extend it with custom expiration formulas and actions. It then shows how to extend the dynamic file plan introduced in Chapter 5 to include record retention policies.

Chapter 9: Information Policy and Record Auditing — Chapter 9 takes a similar approach to Chapter 8, showing how Information Policy is used to control record auditing. It starts by describing the built-in auditing features of the SharePoint platform and shows how to work with the SharePoint auditing components and audit entries. It then shows how to extend the dynamic file plan components from Chapter 5 to include record auditing support.

Chapter 10: Managing Physical Records — Chapter 10 shows how to use the MOSS Records Management features to handle physical records by managing them as list items from within the Records Center site. It then shows how to leverage the Information Policy framework in conjunction with SharePoint workflows to reduce the complexity inherent in coordinating the physical and electronic components.

Chapter 11: Suspending Record Processing Using Holds — Chapter 11 describes the Holds architecture and shows how to create and remove holds, associate them with records, and leverage the built-in holds reporting and processing functionality. It also introduces the Search & Process API, which can be used to quickly locate records to apply or remove holds.

Chapter 12: Building and Deploying Custom Routers — Chapter 12 introduces the MOSS Record Routing framework and shows how to build and deploy custom routers that enhance the built-in support for processing incoming records. It adds custom routing support to the ECM2007 foundation class library and then shows how to use custom routers for filtering, tracking, and redirecting records. Finally, the chapter further extends the dynamic file plan components from Chapter 5 to support custom routing.

Chapter 13: Maintaining Record Integrity — Chapter 13 approaches records management from a higher level and focuses on the problem of ensuring that incoming records have valid content and metadata. It starts by extending the ECM2007 foundation class library to include an extensible content validation framework, which is then used to associate custom validation rules with standard SharePoint components such as content types and Information Policy features. The chapter then shows how to use the Validation framework from within a custom router.

Chapter 14: Managing Electronic Mail Records — Chapter 14 explains the built-in support provided by MOSS and Exchange 2007 for managing electronic mail records. It introduces the Messaging Records Management framework and walks through the required steps for setting up Exchange 2007 to route official e-mail messages to a MOSS Records Repository using Exchange Managed Folders. The chapter also includes code that shows how to set up managed folders programmatically and further extends the dynamic file plan components from Chapter 5 to include support for setting up Exchange.

Chapter 15: Using Workflow to Manage Records — Chapter 15 introduces the concept of using SharePoint workflows to manage the complex interactions that are often involved in ECM/RM solutions. After providing a brief overview of the SharePoint workflow architecture, the chapter describes the workflow activities that are included in the Microsoft SharePoint ECM Starter Kit for working with official records. The chapter then identifies additional workflow activities that are useful for records management and shows how to build a custom workflow activity library for building records management solutions that uses many of the components, such as the dynamic file plan and the custom validation framework, that were created in earlier chapters. Finally, the chapter shows how to extend SharePoint Designer to add records management support to declarative, no-code workflows.

Chapter 16: The DoD 5015.2 Add-On Pack — Chapter 16 provides a deep dive into the architecture and implementation of the DoD 5015.2 Add-On Pack. It starts by describing the additional requirements imposed by the DoD 5015 standard and shows how each of these requirements is fulfilled by the components installed by the Add-On Pack. The chapter then walks through the installation and configuration of the Add-On Pack and describes each of its components and features in detail, including custom field types and controls, content types, timer jobs, and workflows.

What You Need to Use This Book

This book assumes that the reader has moderate proficiency in using C# and the Visual Studio development environment to build ASP.NET web applications. It also assumes that the reader is familiar with the basic steps involved in building and deploying SharePoint features and solution packages using Visual Studio.

The code modules and examples in the book were developed on a Windows Server 2003 system (Enterprise Edition with Service Pack 2), Office SharePoint Server 2007 with Service Pack 1, Office 2007 Ultimate, Visual Studio 2008 with Service Pack 1, and the Visual Studio 2008 Software Development Kit. The downloadable Visual Studio solution files that accompany the book require the .NET Framework 3.5, and InfoPath 2007 is required for working with the dynamic file planning components that are introduced in Chapter 5.

The examples in Chapter 16 were developed in a separate development environment in which the DoD 5015.2 Add-On Pack was installed. As mentioned in that chapter, installing the Add-On Pack irreversibly alters the MOSS environment. I therefore highly recommend that you create and configure a separate system for working through those examples to avoid having to redeploy your primary development environment.

There are several additional tools that are popular among SharePoint developers, and I typically use many of them when building SharePoint solutions. These include the SharePoint Debugger Feature (www.codeplex.com/features), DebugView from SysInternals (www.sysinternals.com), SPTraceView (sptraceview.codeplex.com), Spence Harbar’s Application Pool Manager (www.harbar.net), and SharePoint Manager (www.codeplex.com/spm). Although not a requirement for working though the code examples, I also highly recommend Carsten Keutmann’s WSP Builder (wspbuilder.codeplex.com), Lutz Roeder’s .NET Reflector (www.red-gate.com/products/reflector), and my own CAML.NET IntelliSense (http://code.msdn.microsoft.com/camlintellisense).

Conventions

To help you get the most from the text and keep track of what’s happening, we’ve used several conventions throughout the book.

Boxes like this one hold important, not-to-be forgotten information that is directly relevant to the surrounding text.

Notes, tips, hints, tricks, and asides to the current discussion are offset and placed in italics like this.

As for styles in the text:

We show keyboard strokes like this: [Ctrl]+A.

We show URLs and code within the text like this: persistence.properties.

We present code in two different ways:

We use a monofont type with no highlighting for most code examples.

We use gray highlighting to emphasize code that's particularly important in the present context.

Source Code

As you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. All of the source code used in this book is available for download at www.wrox.com. Once at the site, simply locate the book’s title (either by using the Search box or by using one of the title lists), and click on the “Download Code” link on the book’s detail page to obtain all the source code for the book.

Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is 978-0-470-28762-0.

Once you download the code, just decompress it with your favorite compression tool. Alternately, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books.

Errata

We make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, such as a spelling mistake or faulty piece of code, we would be very grateful for your feedback. By sending in errata, you may save another reader hours of frustration, and at the same time, you will be helping us provide even higher-quality information.

To find the Errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the book details page, click on the Book Errata link. On this page, you can view all errata that have been submitted for this book and posted by Wrox editors. A complete book list, including links to each book’s errata, is also available at www.wrox.com/misc-pages/booklist.shtml.

If you don’t spot “your” error on the book’s Errata page, go to www.wrox.com/contact/techsupport.shtml and complete the form there to send us the error you have found. We’ll check the information and, if appropriate, post a message to the book’s Errata page and fix the problem in subsequent editions of the book.

p2p.wrox.com

For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a web-based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At http://p2p.wrox.com you will find a number of different forums that will help you not only as you read this book, but also as you develop your own applications. To join the forums, just follow these steps:

1. Go to p2p.wrox.com and click on the Register link.

2. Read the terms of use and click Agree.

3. Complete the required information to join as well as any optional information you wish to provide and click Submit.

4. You will receive an e-mail with information describing how to verify your account and complete the joining process.

You can read messages in the forums without joining P2P, but in order to post your own messages, you must join.

Once you join, you can post new messages and respond to messages other users post. You can read messages at any time on the Web. If you would like to have new messages from a particular forum e-mailed to you, click on the “Subscribe to this Forum” icon by the forum name in the forum listing.

For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

Chapter 1

Official Records

Records management is driven primarily by regulatory compliance and the need to reduce the risk of exposure to legal liability for improperly managing information. The prospect of paying significant fines for not adhering to an increasing array of regulatory requirements provides a strong incentive for companies to implement comprehensive records management solutions. But there can be equally significant costs associated with implementing those solutions that must also be considered. There is the potential for lost productivity as knowledge workers spend more and more time focusing on records management issues. There is also the potential for increased IT costs as additional time and energy must be devoted to building and maintaining the records management infrastructure.

That infrastructure has requirements as well. Not only must it support the identification and handling of official records, but it must also provide the same tools for collaboration, approval, and workflow that other knowledge workers employ in their day-to-day work. Compliance officers are knowledge workers too, and the job of managing official records can be even more daunting than creating them.

Microsoft has published a comprehensive records management planning guide that is essential reading for anyone involved in the development of records management policies and procedures, regardless of whether you are using MOSS as an implementation platform or not. You can download the guide from http://go.microsoft.com/fwlink/?LinkID=92720.

What Are Official Records?

Don’t you hate it when you ask someone a question and they respond with the generic answer, “that depends”? I often find myself thinking, “This person obviously doesn’t know the answer to my question and is just stalling for time so they can come up with something intelligent to say!” You see where I’m going with this, right? When thinking about records management, the first question that often comes to mind is, “What is an official record, anyway?”

When does an ordinary document become something more? When does it “officially” become something you have to treat specially because of some legislation or corporate policy or other business process that may govern what you might otherwise do with it? Well, I hate to do this to you right off the bat, but the only answer I can give you is, “that depends.” Let’s dig a little deeper, and you’ll see what I mean.

To answer this simple question, there is a lot to consider. Is there something about the document itself that determines whether it is considered an official record? In the simplest case, that determination might flow from a special set of values in one or more document properties. In other cases, it might come from the presence of a particular kind of content within the document. For example, the document might contain sensitive information that only certain people should be allowed to see. Ultimately, particularly in the context of highly collaborative environments like SharePoint, the final determination of what constitutes an official record may have as much to do with how a document is used as it does with the document content or with the metadata associated with it.

Traditional records management systems are focused primarily on archival mechanisms. We could characterize them as location-based, where the physical location of the document is the dominant consideration.

If physical storage were our only concern, then building records management solutions would be fairly simple. Assuming we had a consistent platform for associating metadata with a file, we would basically only need an established process for storing the file in a secure repository so we could find it again easily. Obviously, we would also need to apply some discipline in categorizing the metadata according to a given set of rules, but this would be a relatively straightforward process.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!