/// <summary> /// Run the code example. /// </summary> /// <param name="user">The DFP user object running the code example.</param> public void Run(DfpUser user) { // Get the WorkflowRequestService. WorkflowRequestService proposalLineItemService = (WorkflowRequestService)user.GetService(DfpService.v201605.WorkflowRequestService); // Set the ID of the proposal to trigger workflow external conditions for.c long proposalId = long.Parse(_T("INSERT_PROPOSAL_ID_HERE")); // Create a statement to select workflow external condition requests for a proposal. StatementBuilder statementBuilder = new StatementBuilder() .Where("entityId = :entityId and entityType = :entityType and type = :type") .OrderBy("id ASC") .Limit(StatementBuilder.SUGGESTED_PAGE_LIMIT) .AddValue("entityId", proposalId) .AddValue("entityType", WorkflowEntityType.PROPOSAL.ToString()) .AddValue("type", WorkflowRequestType.WORKFLOW_EXTERNAL_CONDITION_REQUEST.ToString()); // Set default for page. WorkflowRequestPage page = new WorkflowRequestPage(); List <long> workflowRequestIds = new List <long>(); try { do { // Get workflow requests by statement. page = proposalLineItemService.getWorkflowRequestsByStatement( statementBuilder.ToStatement()); if (page.results != null) { int i = page.startIndex; foreach (WorkflowRequest workflowRequest in page.results) { Console.WriteLine("{0}) Workflow external condition request with ID '{1}'" + " for {2} with ID '{3}' will be triggered.", i++, workflowRequest.id, workflowRequest.entityType.ToString(), workflowRequest.entityId); workflowRequestIds.Add(workflowRequest.id); } } statementBuilder.IncreaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT); } while (statementBuilder.GetOffset() < page.totalResultSetSize); Console.WriteLine("Number of workflow external condition requests to be triggered: {0}", workflowRequestIds.Count); if (workflowRequestIds.Count > 0) { // Modify statement. statementBuilder.RemoveLimitAndOffset(); // Create action. Google.Api.Ads.Dfp.v201605.TriggerWorkflowExternalConditionRequests action = new Google.Api.Ads.Dfp.v201605.TriggerWorkflowExternalConditionRequests(); // Perform action. UpdateResult result = proposalLineItemService.performWorkflowRequestAction(action, statementBuilder.ToStatement()); // Display results. if (result != null && result.numChanges > 0) { Console.WriteLine("Number of workflow external condition requests triggered: {0}", result.numChanges); } else { Console.WriteLine("No workflow external condition requests were triggered."); } } } catch (Exception e) { Console.WriteLine("Failed to tirgger workflow external condition requests. Exception " + "says \"{0}\"", e.Message); } }
/// <summary> /// Run the code example. /// </summary> /// <param name="user">The DFP user object running the code example.</param> public override void Run(DfpUser user) { // Get the WorkflowRequestService. WorkflowRequestService workflowRequestService = (WorkflowRequestService)user.GetService(DfpService.v201502.WorkflowRequestService); // Set the ID of the proposal to approve workflow approval requests for. long proposalId = long.Parse(_T("INSERT_PROPOSAL_ID_HERE")); // Create a statement to select workflow approval requests for a proposal. StatementBuilder statementBuilder = new StatementBuilder() .Where("WHERE entityId = :entityId and entityType = :entityType and type = :type") .OrderBy("id ASC") .Limit(StatementBuilder.SUGGESTED_PAGE_LIMIT) .AddValue("entityId", proposalId) .AddValue("entityType", WorkflowEntityType.PROPOSAL.ToString()) .AddValue("type", WorkflowRequestType.WORKFLOW_APPROVAL_REQUEST.ToString()); // Set default for page. WorkflowRequestPage page = new WorkflowRequestPage(); List <long> worflowRequestIds = new List <long>(); try { do { // Get workflow requests by statement. page = workflowRequestService.getWorkflowRequestsByStatement( statementBuilder.ToStatement()); if (page.results != null && page.results.Length > 0) { int i = page.startIndex; foreach (WorkflowRequest workflowRequest in page.results) { Console.WriteLine("{0}) Workflow approval request with ID '{1}' will be approved.", i++, workflowRequest.id); worflowRequestIds.Add(workflowRequest.id); } } statementBuilder.IncreaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT); } while (statementBuilder.GetOffset() < page.totalResultSetSize); Console.WriteLine("Number of workflow approval requests to be approved: {0}", worflowRequestIds.Count); if (worflowRequestIds.Count > 0) { // Modify statement. statementBuilder.RemoveLimitAndOffset(); // Create action. Google.Api.Ads.Dfp.v201502.ApproveWorkflowApprovalRequests action = new Google.Api.Ads.Dfp.v201502.ApproveWorkflowApprovalRequests(); // Perform action. UpdateResult result = workflowRequestService.performWorkflowRequestAction(action, statementBuilder.ToStatement()); // Display results. if (result != null && result.numChanges > 0) { Console.WriteLine("Number of workflow requests approved: {0}", result.numChanges); } else { Console.WriteLine("No workflow requests were approved."); } } } catch (Exception ex) { Console.WriteLine("Failed to archive workflow requests. Exception says \"{0}\"", ex.Message); } }