CustomFields.CreateCustomFields method
Cria campos personalizados de empresa.
Namespace: WebSvcCustomFields
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaração
<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 _
)
'Uso
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
)
Parâmetros
cfds
Type: WebSvcCustomFields.CustomFieldDataSetO CustomFieldDataSet contém as definições de campo personalizado.
validateOnly
Type: System.BooleanSe true, validar o CustomFieldDataSet sem criar os campos personalizados.
autoCheckIn
Type: System.BooleanSe true, check-in dos campos personalizados, depois que eles são criados.
Comentários
Para obter descrições das propriedades que são usadas para criar um campo personalizado, consulte CustomFieldDataSet.CustomFieldsRow.
Aviso
O método CreateCustomFields e o método CreateCustomFields2 , bem como Project Web App, todos permitem que você crie um campo personalizado de projeto de empresa do tipo sinalizador e defina o campo personalizado seja controlado de fluxo de trabalho. No entanto, fluxos de trabalho do Project Server não podem controlar os campos personalizados de sinalização. Você não deve configurar campos personalizados de tipo de sinalizador para controle de fluxo de trabalho do projeto.
Dica
O método CreateCustomFields ignora a configuração de localidade do computador que executa o Project Server. O método CreateCustomFields2 pode usar valores de depend para as fórmulas que calculam campos personalizados e indicadores gráficos.
Permissões do Project Server
Permissão |
Descrição |
---|---|
Permite que um usuário modificar as definições de campos personalizados da empresa e valores de tabela de pesquisa. Permissão global. |
Examples
O exemplo a seguir usa CustomFieldWS como o nome de uma referência da web para o serviço web de Custom Fields (https://ServerName/ProjectServerName/_vti_bin/psi/CustomFields.asmx). O manipulador de eventos btnCustomField_Click destina-se um botão em um aplicativo de formulário do Windows, como LoginDemo no download do SDK do Project.
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;
}
Ver também
Referência
CreateCustomFields2(CustomFieldDataSet, Boolean, Boolean)