ReportingService2005.CancelJob(String) Method
Definition
取消某一作业的执行。Cancels the execution of a job.
public:
bool CancelJob(System::String ^ JobID);
public bool CancelJob (string JobID);
member this.CancelJob : string -> bool
Public Function CancelJob (JobID As String) As Boolean
Parameters
- JobID
- String
想要取消的作业的 ID。The ID of the job that you want to cancel. 可以通过 JobID 对象的 Job 属性获取作业 ID。You can obtain the job ID from the JobID property in a Job object.
Returns
一个 Boolean
值。A Boolean
value. 如果作业成功取消,则返回值 true
。A value of true
is returned if the job was successfully cancelled.
Examples
若要编译此代码示例,必须引用 Reporting Services WSDL 并导入某些命名空间。To compile this code example, you must reference the Reporting Services WSDL and import certain namespaces. 有关详细信息,请参阅 编译和运行代码示例。For more information, see Compiling and Running Code Examples. 下面的代码示例是一个控制台应用程序,它使用户能够取消对给定 Report Server 的所有正在运行的作业:The following code example is a console application that enables users to cancel all running jobs on a given report server:
Imports System
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim jobs As Job() = Nothing
' Return a list of current jobs.
Try
jobs = rs.ListJobs()
' Provides a prompt to cancel current jobs.
If ListRunningJobs(jobs) Then
Console.Write("Do you want to cancel these jobs (Y/N)?")
Dim input As Integer = Console.Read()
If [Char].ToLower(CChar(input)) = "y"c Then
CancelRunningJobs(jobs, rs)
End If
End If
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub 'Main
' Method to send a list of current jobs and their properties
' to standard output.
Public Shared Function ListRunningJobs(jobs() As Job) As Boolean
Dim runningJobCount As Integer = 0
Console.WriteLine("Current Jobs")
Console.WriteLine(("================================" + Environment.NewLine))
Dim job As Job
For Each job In jobs
If job.Status = JobStatusEnum.Running Or job.Status = JobStatusEnum.New Then
Console.WriteLine("--------------------------------")
Console.WriteLine("JobID: {0}", job.JobID)
Console.WriteLine("--------------------------------")
Console.WriteLine("Action: {0}", job.Action)
Console.WriteLine("Description: {0}", job.Description)
Console.WriteLine("Machine: {0}", job.Machine)
Console.WriteLine("Name: {0}", job.Name)
Console.WriteLine("Path: {0}", job.Path)
Console.WriteLine("StartDateTime: {0}", job.StartDateTime)
Console.WriteLine("Status: {0}", job.Status)
Console.WriteLine("Type: {0}", job.Type)
Console.WriteLine("User: {0}" + Environment.NewLine, job.User)
runningJobCount += 1
End If
Next job
Console.Write("There are {0} running jobs. ", runningJobCount)
If runningJobCount > 0 Then
Return True
Else
Return False
End If
End Function 'ListRunningJobs
Public Shared Sub CancelRunningJobs(jobs() As Job, rs As ReportingService)
Try
Dim job As Job
For Each job In jobs
If job.Status = JobStatusEnum.Running Or job.Status = JobStatusEnum.New Then
rs.CancelJob(job.JobID)
End If
Next job
Console.WriteLine("All jobs successfully canceled.")
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub 'CancelRunningJobs
End Class 'Sample
using System;
using System.Web.Services.Protocols;
class Sample
{
public static void Main()
{
ReportingService rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
Job[] jobs = null;
// Return a list of current jobs.
try
{
jobs = rs.ListJobs();
// Provides a prompt to cancel current jobs.
if (ListRunningJobs(jobs))
{
Console.Write("Do you want to cancel these jobs (Y/N)?");
int input = Console.Read();
if (Char.ToLower((char)input)== 'y')
{
CancelRunningJobs(jobs, rs);
}
}
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
// Method to send a list of current jobs and their properties
// to standard output.
public static bool ListRunningJobs(Job[] jobs)
{
int runningJobCount = 0;
Console.WriteLine("Current Jobs");
Console.WriteLine("================================" + Environment.NewLine);
foreach (Job job in jobs)
{
if (job.Status == JobStatusEnum.Running ||
job.Status == JobStatusEnum.New)
{
Console.WriteLine("--------------------------------");
Console.WriteLine("JobID: {0}", job.JobID);
Console.WriteLine("--------------------------------");
Console.WriteLine("Action: {0}", job.Action);
Console.WriteLine("Description: {0}", job.Description);
Console.WriteLine("Machine: {0}", job.Machine);
Console.WriteLine("Name: {0}", job.Name);
Console.WriteLine("Path: {0}", job.Path);
Console.WriteLine("StartDateTime: {0}", job.StartDateTime);
Console.WriteLine("Status: {0}", job.Status);
Console.WriteLine("Type: {0}", job.Type);
Console.WriteLine("User: {0}" + Environment.NewLine, job.User);
runningJobCount++;
}
}
Console.Write("There are {0} running jobs. ", runningJobCount);
if (runningJobCount > 0)
return true;
else
return false;
}
public static void CancelRunningJobs(Job[] jobs, ReportingService rs)
{
try
{
foreach (Job job in jobs)
{
if (job.Status == JobStatusEnum.Running ||
job.Status == JobStatusEnum.New)
{
rs.CancelJob(job.JobID);
}
}
Console.WriteLine("All jobs successfully canceled.");
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
Remarks
下表显示了有关此操作的标头和权限信息。The table below shows header and permissions information on this operation.
SOAP 标头SOAP Headers | (Out) ServerInfoHeaderValue(Out) ServerInfoHeaderValue |
所需的权限Required Permissions | CancelJobs |
如果在参数中传递的作业 ID 未找到,则返回错误 JobID
。An error is returned if the job ID passed in the JobID
parameter is not found. 如果使用已取消的作业的 ID 调用此方法,Report Server 将忽略该操作。If you call this method using the ID of a job that has already been cancelled, the report server ignores the operation.
使用 ListJobs 方法获取当前正在 Report Server 上运行的作业的列表。Use the ListJobs method to obtain a list of jobs that are current running on the report server.