CustomFields.CreateCustomFields-Methode
Benutzerdefinierte Felder für Enterprise erstellt.
Namespace: WebSvcCustomFields
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/CustomFields/CreateCustomFields", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub CreateCustomFields ( _
cfds As CustomFieldDataSet, _
validateOnly As Boolean, _
autoCheckIn As Boolean _
)
'Usage
Dim instance As CustomFields
Dim cfds As CustomFieldDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
instance.CreateCustomFields(cfds, validateOnly, _
autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/CustomFields/CreateCustomFields", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/CustomFields/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CreateCustomFields(
CustomFieldDataSet cfds,
bool validateOnly,
bool autoCheckIn
)
Parameter
cfds
Typ: WebSvcCustomFields.CustomFieldDataSetDie CustomFieldDataSet enthält die Definitionen der benutzerdefinierten Felds.
validateOnly
Typ: System.BooleanWenn true, überprüfen Sie die CustomFieldDataSet ohne die benutzerdefinierten Feldern zu erstellen.
autoCheckIn
Typ: System.BooleanWenn true, Kontrollkästchen in den benutzerdefinierten Feldern, nachdem sie erstellt wurden.
Hinweise
Beschreibungen der Eigenschaften, die zum Erstellen eines benutzerdefinierten Felds verwendet werden, finden Sie unter CustomFieldDataSet.CustomFieldsRow.
Warnung
Die CreateCustomFields -Methode und die CreateCustomFields2 -Methode sowie Project Web App, alle ermöglichen das Erstellen eines Enterprise-Projekt benutzerdefinierten Felds vom Typ Flag, und legen Sie das benutzerdefinierte Feld Workflow gesteuert werden. Project Server-Workflows können jedoch nicht benutzerdefinierte Attributfelder steuern. Sie sollten nicht benutzerdefinierte Projektfelder vom Typ Flag für Workflow-Steuerelement festlegen.
Tipp
Die CreateCustomFields -Methode wird dem Gebietsschema des Computers mit Project Server ignoriert. Die CreateCustomFields2 -Methode können Gebietsschema abhängiger Werte für Formeln, die benutzerdefinierte Felder und grafische Indikatoren zu berechnen.
Project Server-Berechtigungen
Berechtigung |
Beschreibung |
---|---|
Ermöglicht einem Benutzer das Ändern der Definitionen von benutzerdefinierten Enterprise-Felder und Nachschlagetabellen, Werte. Die globale Berechtigung. |
Beispiele
Das folgende Beispiel verwendet die CustomFieldWS als den Namen eines Webverweises zum Custom Fields -Webdienst (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). Der btnCustomField_Click -Ereignishandler ist für eine Schaltfläche in einer Windows Forms-Anwendung, wie beispielsweise LoginDemo in den Project-SDK-Download.
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private Guid customFieldUid;
. . .
private void btnCustomField_Click(object sender, EventArgs e)
{
string cfName = "Test Task Cost";
Guid entityTypeUid = new Guid(PSLibrary.EntityCollection.Entities.TaskEntity.UniqueId);
lookupTableUid = Guid.Empty;
ltRowDefaultUid = Guid.Empty;
byte cfType = (byte)PSLibrary.CustomField.Type.COST;
byte rollup = (byte)PSLibrary.CustomField.SummaryRollup.Sum;
customFieldUid = CreateCustomField(
customFields, cfName,
entityTypeUid, lookupTableUid, ltRowDefaultUid,
cfType, rollup);
}
// Test method for creating a custom field.
public Guid CreateCustomField(
CustomFieldsWS.CustomFields customFields,
string cfName,
Guid entityTypeUid,
Guid lookupTableUid,
Guid ltRowDefaultUid,
byte cfType,
byte rollup
)
{
CustomFieldsWS.CustomFieldDataSet customFieldDataSet =
new CustomFieldsWS.CustomFieldDataSet();
CustomFieldsWS.CustomFieldDataSet.CustomFieldsRow cfRow =
customFieldDataSet.CustomFields.NewCustomFieldsRow();
Guid cfUid = Guid.NewGuid();
cfRow.MD_PROP_UID = cfUid;
cfRow.MD_AGGREGATION_TYPE_ENUM = rollup;
cfRow.MD_ENT_TYPE_UID = entityTypeUid;
cfRow.MD_PROP_NAME = cfName;
cfRow.MD_PROP_IS_REQUIRED = false;
cfRow.MD_PROP_IS_LEAF_NODE_ONLY = false;
cfRow.MD_PROP_TYPE_ENUM = cfType;
if (lookupTableUid == Guid.Empty)
cfRow.SetMD_LOOKUP_TABLE_UIDNull();
else
cfRow.MD_LOOKUP_TABLE_UID = lookupTableUid;
if (ltRowDefaultUid == Guid.Empty)
cfRow.SetMD_PROP_DEFAULT_VALUENull();
else
cfRow.MD_PROP_DEFAULT_VALUE = ltRowDefaultUid;
customFieldDataSet.CustomFields.Rows.Add(cfRow);
try
{
bool validateOnly = false;
bool autoCheckIn = true;
customFields.CreateCustomFields(customFieldDataSet, validateOnly, autoCheckIn);
}
catch (SoapException ex)
{
// Add exception handler for ex.
cfUid = Guid.Empty;
}
tch (Exception ex)
{
// Add exception handler for ex.
cfUid = Guid.Empty;
}
return cfUid;
}
Siehe auch
Referenz
CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)