I am trying to create a method to publish and finish the workflow activity using core service. am getting the compile error. Below is my code. Can any one correct me? Its an urgent.
public void PublishComponent(string WorkItemId)
{
var client = new SessionAwareCoreServiceClient();
var readoptions = new ReadOptions();
ComponentData component = (ComponentData)client.Read(new TcmUri(WorkItemId), readoptions) as ComponentData;
List<IdentifiableObjectData> ItemToPublish = new List<IdentifiableObjectData>();
ItemToPublish.Add(component);
PublishInstructionData instruction = new PublishInstructionData();
PublicationTargetData pubtarget = (PublicationTargetData)client.Read(new TcmUri("tcm: 0 - 21 - 65537"), readoptions) as PublicationTargetData;
List<PublicationTargetData> target = new List<PublicationTargetData>();
target.Add(pubtarget);
client.Publish(ItemToPublish, instruction, target, PublishPriority.Normal, readoptions);
WorkItemData workitem = new WorkItemData();
workitem.Id = new TcmUri(WorkItemId);
ActivityInstanceData currentactivity = new ActivityInstanceData();
ActivityFinishData finish = new ActivityFinishData();
finish.Message="Published";
client.FinishActivity(currentactivity, finish, readoptions);
}
There were several problems, but the main is that there's no TcmUri
class, like in TOM.NET, it's string in CoreService. And the same for Publish
method, it takes string arrays as input, not item arrays, like in TOM.NET
var client = new SessionAwareCoreServiceClient();
var readoptions = new ReadOptions();
ComponentData component = (ComponentData)client.Read(WorkItemId, readoptions);
List<string> ItemToPublish = new List<string>();
ItemToPublish.Add(component.Id);
PublishInstructionData instruction = new PublishInstructionData();
PublicationTargetData pubtarget = (PublicationTargetData)client.Read("tcm:0-21-65537", readoptions);
List<string> target = new List<string>();
target.Add(pubtarget.Id);
client.Publish(ItemToPublish.ToArray(), instruction, target.ToArray(), PublishPriority.Normal, readoptions);
WorkItemData workitem = new WorkItemData();
workitem.Id = WorkItemId;
ActivityInstanceData currentactivity = new ActivityInstanceData();
ActivityFinishData finish = new ActivityFinishData();
finish.Message = "Published";
client.FinishActivity(currentactivity.Id, finish, readoptions);