Workflow.CreateWorkflowStage(WorkflowDataSet) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una fase de flujo de trabajo.
public:
void CreateWorkflowStage(WebSvcWorkflow::WorkflowDataSet ^ workflowDS);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/office/project/server/webservices/Workflow/CreateWorkflowStage", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/office/project/server/webservices/Workflow/", ResponseNamespace="http://schemas.microsoft.com/office/project/server/webservices/Workflow/", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
public void CreateWorkflowStage(WebSvcWorkflow.WorkflowDataSet workflowDS);
member this.CreateWorkflowStage : WebSvcWorkflow.WorkflowDataSet -> unit
Public Sub CreateWorkflowStage (workflowDS As WorkflowDataSet)
Parámetros
- workflowDS
- WorkflowDataSet
Contiene la información de la fase de flujo de trabajo.
- Atributos
Ejemplos
En el ejemplo se usa el espacio de nombres SvcWorkflow en el ensamblado de proxy ProjectServerServices.dll. El método ConfigClientEndpoints usa un archivo app.config para establecer el enlace, el comportamiento y el punto de conexión de WCF. Para obtener información sobre cómo crear un ensamblado de proxy psi y un archivo de app.config, consulte Requisitos previos para ejemplos de código de WCF-Based.
El método CreateWorkflowStage se usa para crear una nueva fase, Fase de prueba 5, en la fase Crear . Una vez creada la fase, el workflowDS del conjunto de datos se escribe de nuevo en NewWorkflowStageInfo.xml. A continuación se muestra una instantánea del archivo xml.
<?xml version="1.0" standalone="yes"?>
<WorkflowDataSet xmlns="http://schemas.microsoft.com/office/project/server/webservices/WorkflowDataSet/">
<WorkflowPhase>
<span class="label"><PHASE_UID></span>d8bc257b-c2ec-4186-8a5b-44b5b7f21d82</PHASE_UID>
<span class="label"><PHASE_NAME></span>Create</PHASE_NAME>
<span class="label"><PHASE_DESCRIPTION></span>Project information is captured in this phase</PHASE_DESCRIPTION>
</WorkflowPhase>
<WorkflowStage>
<span class="label"><STAGE_UID></span>460f6b0c-1216-46b7-a119-053c32b10d38</STAGE_UID>
<STAGE_NAME>Test Stage 5</STAGE_NAME>
<span class="label"><PHASE_UID></span>d8bc257b-c2ec-4186-8a5b-44b5b7f21d82</PHASE_UID>
<span class="label"><PHASE_NAME></span>Create</PHASE_NAME>
<span class="label"><STAGE_DESCRIPTION></span>Adding a test stage row</STAGE_DESCRIPTION>
<span class="label"><CHECKIN_REQUIRED></span>false</CHECKIN_REQUIRED>
<span class="label"><STATUS_PDP_UID></span>a7aa1c62-9577-447c-823e-bdb161f9000d</STATUS_PDP_UID>
</WorkflowStage>
A continuación se muestra el código de ejemplo completo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.ServiceModel;
namespace Microsoft.SDK.Project.Samples.WorkFlowTest
{
class WorkFlowProject
{
private static SvcWorkflow.WorkflowClient workFlowClient;
private const string WORK_ENDPOINT = "basicHttp_Workflow";
private const string OUTPUT_FILES = @"C:\Projects\Samples\Output\";
private static string outFilePathWorkFlowStageList;
private static string outFilePathNewWorkFlowStage;
private static string outFilePathStageInfo;
private static string outFilePathUpdatedStage;
static void Main(string[] args)
{
// Configure client endpoints.
ConfigClientEndpoints(WORK_ENDPOINT);
Guid[] workFlowID = new Guid[1];
workFlowID[0] = new Guid("e663d9dc-f78d-4a4e-ac21-b28d22865f58");
// If output directory does not exist, create it.
if (!Directory.Exists(OUTPUT_FILES))
{
Directory.CreateDirectory(OUTPUT_FILES);
}
outFilePathWorkFlowStageList = OUTPUT_FILES + "WorkFlowStageList.xml";
outFilePathNewWorkFlowStage = OUTPUT_FILES + "NewWorkflowStageInfo.xml";
outFilePathStageInfo = OUTPUT_FILES + "StageInfo.xml";
outFilePathUpdatedStage = OUTPUT_FILES + "UpdatedStage.xml";
// Create a workflow dataset.
SvcWorkflow.WorkflowDataSet workFlowDS = new SvcWorkflow.WorkflowDataSet();
// List the workflow stages.
workFlowDS = ListWorkflowStages(workFlowDS);
// Create a new workflow stage.
CreateWorkflowStageTest(workFlowDS);
// Get workflow stage properties for a given stage.
GetStageInfo();
}
// Read and display the properties of a stage, given the stage GUID.
private static void GetStageInfo()
{
SvcWorkflow.WorkflowDataSet stageInfoDS = new SvcWorkflow.WorkflowDataSet();
string stageName = "TestStage10";
Guid stageGuid1 = new Guid("a8a158d1-a9b9-41d7-a676-d199118221c7");
stageInfoDS = workFlowClient.ReadWorkflowStage(stageGuid1);
Console.WriteLine("\nSee XML output of the WorkFlowDataSet at {0}",
outFilePathStageInfo);
// Update the stage name.
UpdateStage(stageInfoDS, stageName, stageGuid1);
// Get the updated stage info.
stageInfoDS = workFlowClient.ReadWorkflowStage(stageGuid1);
stageInfoDS.WriteXml(outFilePathStageInfo);
Console.ReadKey();
}
// Update the stage name.
private static void UpdateStage(SvcWorkflow.WorkflowDataSet stageInfoDS, string stageName, Guid stageGuid1)
{
SvcWorkflow.WorkflowDataSet.WorkflowStageRow sRow;
sRow = stageInfoDS.WorkflowStage.FindBySTAGE_UID(stageGuid1);
sRow.STAGE_NAME = stageName;
Console.WriteLine("Updating the stage name........");
workFlowClient.UpdateWorkflowStage(stageInfoDS);
// Write the updated stage info to an xml file.
stageInfoDS.WriteXml(outFilePathUpdatedStage);
Console.WriteLine("Stage name updated!");
Console.WriteLine("\nSee XML output of the Updated WorkFlowDataSet at {0}",
outFilePathUpdatedStage);
}
// Create a workflow stage.
private static void CreateWorkflowStageTest(SvcWorkflow.WorkflowDataSet workFlowDS)
{
// GUID of the Create phase.
Guid phaseGuid = new Guid("d8bc257b-c2ec-4186-8a5b-44b5b7f21d82 ");
Guid statusPDPId = new Guid("A7AA1C62-9577-447C-823E-BDB161F9000D");
Guid pdp_uid = new Guid("659FF164-1297-4B64-B813-489566774E27");
Guid stageUid = Guid.NewGuid();
// Create a workflow stage row.
SvcWorkflow.WorkflowDataSet.WorkflowStageRow workflowstageRow =
workFlowDS.WorkflowStage.NewWorkflowStageRow();
workflowstageRow.STAGE_NAME = "Test Stage 5";
workflowstageRow.STAGE_DESCRIPTION = "Adding a test stage row";
workflowstageRow.PHASE_NAME = "Create";
workflowstageRow.PHASE_UID = phaseGuid;
workflowstageRow.CHECKIN_REQUIRED = false;
workflowstageRow.STAGE_UID = stageUid;
workflowstageRow.STATUS_PDP_UID = statusPDPId;
workFlowDS.WorkflowStage.AddWorkflowStageRow(workflowstageRow);
// Add a project details page for the stage that was created previously.
SvcWorkflow.WorkflowDataSet.WorkflowStagePDPsRow pdpRow =
workFlowDS.WorkflowStagePDPs.NewWorkflowStagePDPsRow();
pdpRow.STAGE_UID = stageUid;
pdpRow.PDP_UID = pdp_uid;
pdpRow.PDP_NAME = "Project Information";
pdpRow.PDP_POSITION = 0;
pdpRow.PDP_ID = 4;
pdpRow.PDP_REQUIRES_ATTENTION = false;
workFlowDS.WorkflowStagePDPs.AddWorkflowStagePDPsRow(pdpRow);
// Create the stage.
workFlowClient.CreateWorkflowStage(workFlowDS);
// Write the dataset with the new stage to an xml file.
workFlowDS.WriteXml(outFilePathNewWorkFlowStage);
Console.WriteLine("\nSee XML output of the WorkFlowDataSet at {0}",
outFilePathNewWorkFlowStage);
}
// List the workflow stages in the dataset.
private static SvcWorkflow.WorkflowDataSet ListWorkflowStages(SvcWorkflow.WorkflowDataSet workFlowDS)
{
workFlowDS = workFlowClient.ReadWorkflowStageList();
workFlowDS.WriteXml(outFilePathWorkFlowStageList);
Console.WriteLine("\nSee XML output of the WorkFlowDataSet at {0}",
outFilePathWorkFlowStageList);
return workFlowDS;
}
// Configure the custom field client endpoints.
public static void ConfigClientEndpoints(string endpt)
{
workFlowClient = new SvcWorkflow.WorkflowClient(endpt);
}
}
}
Comentarios
en WorkflowDataSet.WorkflowStageRowWorkflowDataSet.WorkflowStageDataTable contiene la información de fase.
Permisos de Project Server
| ManageWorkflow | Permite al usuario administrar flujos de trabajo. Permiso global. |