Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Cómo: Guardar las propiedades de autoarchivar de una carpeta en el almacenamiento de soluciones

Office 2013

Este tema muestra una solución que guarda datos privados en algunas propiedades MAPI de autoarchivar. La solución almacena estas propiedades en un objeto StorageItem de la carpeta a la que se aplican las propiedades de autoarchivar. Los objetos StorageItem se almacenan como datos ocultos en la parte asociada de una carpeta y, debido a que las soluciones tienen la opción de cifrar sus datos, ofrecen la privacidad necesaria para los mismos. Dado que las propiedades MAPI de autoarchivar no se exponen como propiedades integradas y explícitas en el modelo de objetos de Outlook, la solución utiliza el PropertyAccessor del objeto StorageItem para establecer estas propiedades.

A continuación se muestra el procedimiento:

  1. La función ChangeAgingProperties acepta lo siguiente como parámetros de entrada:

    • oFolder es el objeto Folder al que se aplican las propiedades de caducidad y donde se almacenan sus valores.

    • AgeFolder indica si se archivan o se eliminan los elementos de la carpeta según lo especificado.

    • DeleteItems indica si se eliminan, en lugar de archivarse, los elementos que sean más antiguos que el período de caducidad.

    • FileName indica un archivo específico para archivar los elementos caducados. Si es una cadena vacía, se utiliza el archivo predeterminado, archive.pst.

    • Granularity indica la unidad de tiempo para la caducidad, si se va a calcular el archivo en unidades de meses, semanas o días.

    • Period indica la cantidad de tiempo para la granularidad dada. En conjunto, los valores de Granularity y Period indican un período de caducidad. Los elementos de la carpeta especificada que sean más antiguos que este período de caducidad se archivarán o se eliminarán según lo especificado. Por ejemplo, el valor 2 para Granularity y el valor 14 para Period especifican un período de caducidad de 14 días, momento en que los elementos de la carpeta que sean más antiguos de 14 días deberán archivarse o eliminarse según lo especificado.

    • Default indica qué parámetros deben establecerse como predeterminados. Los posibles valores son 0, 1 y 3:

      • 0 indica que nada asume un valor predeterminado.

      • 1 indica que solo la ubicación del archivo asume un valor predeterminado. Esto equivale a marcar Archivar esta carpeta utilizando la siguiente configuración y Mover elementos antiguos a la carpeta de almacenamiento predeterminada en la pestaña Autoarchivar del cuadro de diálogo Propiedades para la carpeta.

      • 3 indica que todos los parámetros asumen un valor predeterminado. Esto equivale a marcar Archivar los elementos esta carpeta utilizando la configuración predeterminada en la pestaña Autoarchivar del cuadro de diálogo Propiedades para la carpeta.

  2. Se comprueba la validez de los parámetros.

  3. Si los parámetros son válidos, se utiliza Folder.GetStorage para crear un objeto StorageItem, u obtener uno ya existente, con la clase de mensaje IPC.MS.Outlook.AgingProperties.

  4. A continuación, se utiliza el PropertyAccessor para establecer las propiedades de autoarchivar en el objeto StorageItem. StorageItem.Save se utiliza para guardar cambios en el objeto StorageItem.

  5. El procedimiento TestAgingProps establece los parámetros para autoarchivar para las propiedades de vencimiento de la carpeta actual de modo que los elementos que tengan más de seis meses se muevan a un archivo de almacenamiento predeterminado.

  1. Coloque el código en el módulo integrado ThisOutlookSession.

  2. Ejecute el procedimiento TestAgingProps para establecer propiedades de caducidad de la carpeta actual en el explorador activo.

Nota Nota

Tanto si se implementa en una macro de VBA como en un complemento COM, la solución es un llamador de confianza y, en consecuencia, tiene acceso al PropertyAccessor. Para mejorar este ejemplo, incluya el siguiente código VBA en una clase .NET para optimizar la enumeración y captura de errores para Granularity.

Function ChangeAgingProperties(oFolder As Outlook.Folder, _ 
 AgeFolder As Boolean, DeleteItems As Boolean, _ 
 FileName As String, Granularity As Integer, _ 
 Period As Integer, Default As Integer) As Boolean 
 
 '6 MAPI properties for aging items in a folder 
 Const PR_AGING_AGE_FOLDER = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x6857000B" 
 Const PR_AGING_DELETE_ITEMS = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x6855000B" 
 Const PR_AGING_FILE_NAME_AFTER9 = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x6859001E" 
 Const PR_AGING_GRANULARITY = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x36EE0003" 
 Const PR_AGING_PERIOD = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x36EC0003" 
 Const PR_AGING_DEFAULT = _ 
 "http://schemas.microsoft.com/mapi/proptag/0x685E0003" 
 
 Dim oStorage As StorageItem 
 Dim oPA As PropertyAccessor 
 
 ' Valid Period: 
 ' 1-999 
 ' 
 ' Valid Granularity: 
 ' 0=Months, 1=Weeks, 2=Days 
 ' 
 ' Valid Default: 
 ' 0=All settings do not use a default setting 
 ' 1=Only the file location is defaulted 
 ' "Archive this folder using these settings" and 
 ' "Move old items to default archive folder" are checked 
 ' 3=All settings are defaulted 
 ' "Archive items in this folder using default settings" is checked 
 
 If (oFolder Is Nothing) Or _ 
 (Granularity < 0 Or Granularity > 2) Or _ 
 (Period < 1 Or Period > 999) Or _ 
 (Default < 0 Or Default = 2 Or Default > 3) _ 
 Then 
 ChangeAgingProperties = False 
 End If 
 
 On Error GoTo Aging_ErrTrap 
 
 'Create or get solution storage in given folder by message class 
 Set oStorage = oFolder.GetStorage( _ 
 "IPC.MS.Outlook.AgingProperties", olIdentifyByMessageClass) 
 Set oPA = oStorage.PropertyAccessor 
 
 If Not (AgeFolder) Then 
 oPA.SetProperty PR_AGING_AGE_FOLDER, False 
 Else 
 'Set the 6 aging properties in the solution storage 
 oPA.SetProperty PR_AGING_AGE_FOLDER, True 
 oPA.SetProperty PR_AGING_GRANULARITY, Granularity 
 oPA.SetProperty PR_AGING_DELETE_ITEMS, DeleteItems 
 oPA.SetProperty PR_AGING_PERIOD, Period 
 If FileName <> "" Then 
 oPA.SetProperty PR_AGING_FILE_NAME_AFTER9, FileName 
 End If 
 oPA.SetProperty (PR_AGING_DEFAULT), Default 
 End If 
 'Save changes as hidden messages to the associated portion of the folder 
 oStorage.Save 
 ChangeAgingProperties = True 
 Exit Function 
 
Aging_ErrTrap: 
 Debug.Print Err.Number, Err.Description 
 ChangeAgingProperties = False 
End Function 
 
Sub TestAgingProps() 
 Dim oFolder As Outlook.Folder 
 Set oFolder = Application.ActiveExplorer.CurrentFolder 
 If ChangeAgingProperties(oFolder, True, False, "", 0, 6, 1) Then 
 Debug.Print "ChangeAgingProperties OK" 
 Else 
 Debug.Print "ChangeAgingProperties Failed" 
 End If 
End Sub 

Mostrar:
© 2015 Microsoft