ReportingEventReceiver.OnCustomFieldCreated-Methode
Einem nach der Ereignishandler in der Berichtsdaten-Dienst zum Erstellen eines benutzerdefinierten Felds.
Namespace: Microsoft.Office.Project.Server.Events
Assembly: Microsoft.Office.Project.Server.Events.Receivers (in Microsoft.Office.Project.Server.Events.Receivers.dll)
Syntax
'Declaration
Public Overridable Sub OnCustomFieldCreated ( _
contextInfo As PSContextInfo, _
e As ReportingPostCustomFieldCreatedEventArgs _
)
'Usage
Dim instance As ReportingEventReceiver
Dim contextInfo As PSContextInfo
Dim e As ReportingPostCustomFieldCreatedEventArgs
instance.OnCustomFieldCreated(contextInfo, _
e)
public virtual void OnCustomFieldCreated(
PSContextInfo contextInfo,
ReportingPostCustomFieldCreatedEventArgs e
)
Parameter
contextInfo
Typ: Microsoft.Office.Project.Server.Library.PSContextInfoDie Project Server-Kontextinformationen enthält.
e
Typ: Microsoft.Office.Project.Server.Events.ReportingPostCustomFieldCreatedEventArgsDie Daten für das Ereignis.
Hinweise
Der Berichtsdaten-Dienst löst das Reporting benutzerdefinierte Feld erstellt Ereignis aus, wenn die Berichtsdatenbank mit Informationen zu den benutzerdefinierten Feldern aktualisiert wird. Die PSI-Methoden CreateCustomFields und CreateCustomFields2 auslösen, ein benutzerdefiniertes Feld, das Ereignis vor dem Reporting-Ereignis erstellt. Diese Ereignisse können sehr enge Zeitpunkt sein.
ReportingCustomFieldMetadataDataSet enthält die Metadaten, die vom System Berichterstellung benötigt wird, beim Übertragen von Informationen zu benutzerdefinierten Feldern in RDS. Der Wert des Elements Dataset CustomFieldTypeUID kann auch in den Ereignisdetails Argument-Eigenschaft e.CustomFieldTypeGUID gefunden.
Die Namen dieser beiden Entitäten enthalten das Wort "Typ", jedoch nicht diese Werte den Typ des benutzerdefinierten Felds (Kosten, Datum, Dauer, Kennzeichen, Nummer oder Text), und nicht in den Typ der GUID (benutzerdefinierten Feldern) zugeordnet sind.
Weitere Informationen zu RDS-Ereignissen für die Berichtsdatenbank finden Sie unter Ereignisse für die RDB ein.
Beispiele
Es folgt ein Beispiel für ein benutzerdefiniertes Feld erstellt nach der Ereignishandler. Die Beispiel OnCustomFieldCreated -Methode ruft die Informationen aus der Ereignisparameter und schreibt sie in eine XML-Datei.
using System;
using System.Data;
using System.IO;
using System.Text;
using Microsoft.Office.Project.Server.Events;
using PSLib = Microsoft.Office.Project.Server.Library;
using PSSchema = Microsoft.Office.Project.Server.Schema;
namespace Microsoft.SDK.Project.Samples.ReportingEvents
{
public class TestCustomFieldCreated : ReportingEventReceiver
{
// Change the output directory for your computer.
private const string OUTPUT_FILES = @"C:\Project\Samples\Output\";
private static string outFilePath;
public override void OnCustomFieldCreated(PSLib.PSContextInfo
contextInfo, ReportingPostCustomFieldCreatedEventArgs e)
{
// Record the time of the event.
DateTime eventRaised = DateTime.Now;
// Create the location for the output file.
outFilePath = OUTPUT_FILES + "ReportingCustomFieldCreatedTestOutput.txt";
// Write event argument information to the output file.
string eventData = "\r\n\r\nCustom Field Created post-event handler: " + eventRaised.ToString();
eventData += "\r\nPWA site Guid: " + contextInfo.SiteGuid.ToString();
eventData += "\r\nUser name: " + contextInfo.UserName;
eventData += "\r\nUser Guid: " + contextInfo.UserGuid;
eventData += "\r\nCustom field type GUID: " + e.CustomFieldTypeGuid.ToString();
// Include the reporting metadata for the custom field.
PSSchema.ReportingCustomFieldMetadataDataSet projectDs = e.CustomFieldMetadataDataSet;
projectDs.WriteXml(outFilePath);
using (StreamWriter outputData = new StreamWriter(outFilePath, true))
{
outputData.WriteLine();
outputData.WriteLine(eventData);
outputData.Close();
}
}
}
}
Das folgende Beispiel listet den Inhalt der Datei ReportingCustomFieldCreatedTestOutput.txt, die von der Anwendung geschrieben wird.
Hinweis
Die benutzerdefinierte Feldinformationen in diesem Beispiel wird speziell für das benutzerdefinierte Feld, das in einer Instanz einer Project Web App definiert ist.
<?xml version="1.0" standalone="yes"?>
<ReportingCustomFieldMetadataDataSet xmlns="https://schemas.microsoft.com/office/project/server/webservices/ReportingCustomFieldMetadataDataSet/">
<CustomFieldMetadata>
<CustomFieldTypeUID>1e1dfb97-b4fc-4d8a-aaa8-b1ad079a2013</CustomFieldTypeUID>
<ParentEntityTypeGuid>cecfe271-6660-4abe-97ed-208d3c71fc18</ParentEntityTypeGuid>
<CustomFieldName>Test Project Text CF - has LUT</CustomFieldName>
<CustomFieldType>21</CustomFieldType>
<LookupTableUID>cdff825e-8951-4ac7-ad0e-ba28a009dd1d</LookupTableUID>
<IsMultiValueEnabled>false</IsMultiValueEnabled>
<HasWeights>false</HasWeights>
<AssignmentRollDown>false</AssignmentRollDown>
<CreatedDate>2011-03-28T18:45:31.827-07:00</CreatedDate>
<ModificationDate>2011-03-28T18:45:31.827-07:00</ModificationDate>
</CustomFieldMetadata>
</ReportingCustomFieldMetadataDataSet>
Custom Field Created post-event handler: 3/28/2011 6:45:40 PM
PWA site GUID: 9f110f4a-3632-42d3-a1e5-21f9c43360c3
User name: DOMAIN\UserName
User GUID: 2e0fdcc1-85fc-4bde-9593-78a2789c66af
Custom field type GUID: 1e1dfb97-b4fc-4d8a-aaa8-b1ad079a2013