Tridion 使用核心服务发布和完成活动需要帮助吗

Tridion 使用核心服务发布和完成活动需要帮助吗,tridion,tridion-2011,Tridion,Tridion 2011,我正在尝试创建一个方法来使用核心服务发布和完成工作流活动。我得到了编译错误。下面是我的代码。有人能纠正我吗?这是一项紧急任务 public void PublishComponent(string WorkItemId) { var client = new SessionAwareCoreServiceClient(); var readoptions = new ReadOptions(); ComponentD

我正在尝试创建一个方法来使用核心服务发布和完成工作流活动。我得到了编译错误。下面是我的代码。有人能纠正我吗?这是一项紧急任务

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);
}
公共void PublishComponent(字符串工作项ID)
{
var client=new SessionAwareCoreServiceClient();
var readoptions=new readoptions();
ComponentData component=(ComponentData)client.Read(新的TcmUri(WorkItemId),readoptions)作为ComponentData;
List ItemToPublish=新列表();
ItemToPublish.Add(组件);
PublishInstructionData指令=新的PublishInstructionData();
PublicationTargetData pubtarget=(PublicationTargetData)client.Read(新的TcmUri(“tcm:0-21-65537”),readoptions)作为PublicationTargetData;
列表目标=新列表();
target.Add(pubtarget);
Publish(itemtoppublish、指令、目标、PublishPriority.Normal、readoptions);
WorkItemData workitem=新的WorkItemData();
workitem.Id=新的TcmUri(WorkItemId);
ActivityInstanceData currentactivity=新ActivityInstanceData();
ActivityFinishData finish=新建ActivityFinishData();
finish.Message=“已发布”;
client.FinishActivity(currentactivity、finish、readoptions);
}

有几个问题,但主要是没有
TcmUri
类,就像在TOM.NET中一样,它是CoreService中的字符串。对于
Publish
方法,它采用字符串数组作为输入,而不是像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);
var client=new SessionAwareCoreServiceClient();
var readoptions=new readoptions();
ComponentData组件=(ComponentData)client.Read(WorkItemId,readoptions);
List ItemToPublish=新列表();
ItemToPublish.Add(组件Id);
PublishInstructionData指令=新的PublishInstructionData();
PublicationTargetData pubtarget=(PublicationTargetData)client.Read(“tcm:0-21-65537”,readoptions);
列表目标=新列表();
target.Add(pubtarget.Id);
Publish(ItemToPublish.ToArray(),指令,target.ToArray(),PublishPriority.Normal,readoptions);
WorkItemData workitem=新的WorkItemData();
workitem.Id=WorkItemId;
ActivityInstanceData currentactivity=新ActivityInstanceData();
ActivityFinishData finish=新建ActivityFinishData();
finish.Message=“已发布”;
client.FinishActivity(currentactivity.Id、finish、readoptions);

有几个问题,但主要是没有
TcmUri
类,就像在TOM.NET中一样,它是CoreService中的字符串。对于
Publish
方法,它采用字符串数组作为输入,而不是像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);
var client=new SessionAwareCoreServiceClient();
var readoptions=new readoptions();
ComponentData组件=(ComponentData)client.Read(WorkItemId,readoptions);
List ItemToPublish=新列表();
ItemToPublish.Add(组件Id);
PublishInstructionData指令=新的PublishInstructionData();
PublicationTargetData pubtarget=(PublicationTargetData)client.Read(“tcm:0-21-65537”,readoptions);
列表目标=新列表();
target.Add(pubtarget.Id);
Publish(ItemToPublish.ToArray(),指令,target.ToArray(),PublishPriority.Normal,readoptions);
WorkItemData workitem=新的WorkItemData();
workitem.Id=WorkItemId;
ActivityInstanceData currentactivity=新ActivityInstanceData();
ActivityFinishData finish=新建ActivityFinishData();
finish.Message=“已发布”;
client.FinishActivity(currentactivity.Id、finish、readoptions);

“编译错误”告诉我们的不多。下一次,考虑说明确切的错误(用STACKTROPE)。这将使人们能够在不编译代码的情况下回答问题(这需要相当多的工作)。“编译错误”并没有告诉我们太多。下一次,考虑说明确切的错误(用STACKTROPE)。这将使人们无需编译代码就可以回答问题(这需要相当多的工作)。您可以从项目中添加对Tridion.Common.dll的引用。Tridion.Common中的所有类都可以在Tridion服务器之外安全使用。此dll将包含TcmUri类,您可以使用该类。如果您的web.config或app.config使用Tridion Live Docs中的WCF配置,请使用该类连接到CoreServiceClient。var客户=新SessionaWareCoReserveClient(“netTcp_2011”);此外,需要更新publishInstruction。下面是从构建块中使用的示例,//将发布指令设置为发布到子发布PublishInstructionData指令=新建PublishInstructionData{ResolveInstruction=新建ResolveInstructionData(){IncludeChildPublishings=true},RenderInstruction=new RenderInstructionData()};您可以从项目中添加对Tridion.Common.dll的引用。Tridion.Common中的所有类都可以在Tridion服务器之外安全使用。此dll将包含TcmUri类,您可以使用该类。如果您的web.config或app.config使用Tridion Live Docs中的WCF配置,请使用该类连接到CoreServiceClient。var客户=新SessionaWareCoReserveClient(“netTcp_2011”);此外,需要更新publishInstruction。下面是从构建块中使用的示例,//将发布指令设置为发布到子发布PublishInstructionData指令=新建PublishInstructionData{ResolveInstruction=新建ResolveInstructionData(){IncludeChildPublishings=true},RenderInstruction=new RenderInstructionData()};