C# 无法从新创建的记录中获取GUID

C# 无法从新创建的记录中获取GUID,c#,dynamics-crm,workflow,C#,Dynamics Crm,Workflow,用这句话: Guid AlertsId = service.Create(NewAlert); NewAlert["new_alertguid"] = "Spennende: " + AlertsId.ToString(); 我正在尝试获取新创建的GUID。 但什么也没发生。我没有得到GUID,工作流也没有失败。 它也没有在字段中写“Spennende”。但我不知道如何找出我做错了什么 我能做些什么来解决这个问题。你们有什么不对劲吗 试图在同一字段中插入其他值 using System; us

用这句话:

Guid AlertsId = service.Create(NewAlert);
NewAlert["new_alertguid"] = "Spennende: " + AlertsId.ToString();
我正在尝试获取新创建的GUID。 但什么也没发生。我没有得到GUID,工作流也没有失败。 它也没有在字段中写“Spennende”。但我不知道如何找出我做错了什么

我能做些什么来解决这个问题。你们有什么不对劲吗

试图在同一字段中插入其他值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;

namespace WordCountWorkflow
{
    public class WordCount : CodeActivity
    {



        [Input("Hvilket felt skal endres")]
        public InArgument<string> FieldToChange { get; set; }

        [RequiredArgument]
        [Input("Tekst som skal telles")]
        public InArgument<string> InputText { get; set; }

        [Output("Antall tegn")]
        public OutArgument<int> CountOfWords { get; set; }


        protected override void Execute(CodeActivityContext context)
        {
            this.CountOfWords.Set(
                context,
                this.InputText.Get<string>(context).Split(
                    new char[] { ' ', '\r', '\n' },
                    StringSplitOptions.RemoveEmptyEntries).Length);
            //------------------
            ITracingService tracingService = context.GetExtension<ITracingService>();
            IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = context.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.UserId);
            Entity NewAlert = new Entity("new_alerts");
            NewAlert["new_name"] = "Navn på alert";
            NewAlert["new_message"] = "Her er beskjed";
            Guid AlertsId = service.Create(NewAlert);
            NewAlert["new_alertguid"] = "Spennende: " + AlertsId.ToString();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用系统活动;
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Workflow;
命名空间WordCountWorkflow
{
公共类字数:CodeActivity
{
[输入(“Hvilket feel skal endres”)]
公共InArgument字段更改{get;set;}
[必需参数]
[输入(“Tekst som skal telles”)]
公共InArgument输入文本{get;set;}
[输出(“安塔尔tegn”)]
公共OutArgument CountOfWords{get;set;}
受保护的覆盖无效执行(CodeActivityContext上下文)
{
这个.CountOfWords.Set(
上下文
this.InputText.Get(context.Split)(
新字符[]{“”,'\r','\n'},
StringSplitOptions.RemoveEmptyEntries).Length);
//------------------
ITracingService tracingService=context.GetExtension();
IWorkflowContext workflowContext=context.GetExtension();
IOOrganizationServiceFactory=context.GetExtension();
IOOrganizationService=serviceFactory.CreateOrganizationService(workflowContext.UserId);
实体新警报=新实体(“新警报”);
NewAlert[“new_name”]=“Navn påalert”;
NewAlert[“new_message”]=“她的er beskjed”;
Guid AlertsId=service.Create(NewAlert);
NewAlert[“new_alertguid”]=“spennend:+AlertsId.ToString();
}
}
}
我试图改变这一点:

    ITracingService tracingService = context.GetExtension<ITracingService>();
    IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
    IOrganizationServiceFactory serviceFactory = context.GetExtension<IOrganizationServiceFactory>();
    IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.UserId);
    Entity NewAlert = new Entity("new_alerts");
    Guid AlertsId = service.Create(NewAlert);
    NewAlert["new_name"] = "Navn på alert";
    NewAlert["new_message"] = "Her er beskjed " + AlertsId.ToString();
    NewAlert["new_shortmessage"] = "Spennende: " + AlertsId.ToString();
ITracingService tracingService=context.GetExtension(); IWorkflowContext workflowContext=context.GetExtension(); IOOrganizationServiceFactory=context.GetExtension(); IOOrganizationService=serviceFactory.CreateOrganizationService(workflowContext.UserId); 实体新警报=新实体(“新警报”); Guid AlertsId=service.Create(NewAlert); NewAlert[“new_name”]=“Navn påalert”; NewAlert[“new_message”]=“Her er beskjed”+AlertsId.ToString(); NewAlert[“new_shortmessage”]=“Spennend:+AlertsId.ToString();
但后来一切都停止了。并且没有填写的字段。

您可以使用下面的代码为记录创建guid

Entity NewAlert = new Entity("new_alerts");
NewAlert.Id = Guid.NewGuid();
NewAlert["new_name"] = "Navn på alert";
NewAlert["new_message"] = "Her er beskjed";            
NewAlert["new_alertguid"] = "Spennende: " + NewAlert.Id.ToString();
Guid AlertsId = service.Create(NewAlert);
或者您可以创建新对象,然后对其进行更新

Entity NewAlert = new Entity("new_alerts");
NewAlert["new_name"] = "Navn på alert";
NewAlert["new_message"] = "Her er beskjed";
Guid AlertsId = service.Create(NewAlert);        
Entity CompleteNewAlert = new Entity("new_alerts",AlertsId );
CompleteNewAlert ["new_alertguid"] = "Spennende: " + AlertsId.ToString();
service.Update(CompleteNewAlert );

您可以在创建记录的guid时使用以下代码

Entity NewAlert = new Entity("new_alerts");
NewAlert.Id = Guid.NewGuid();
NewAlert["new_name"] = "Navn på alert";
NewAlert["new_message"] = "Her er beskjed";            
NewAlert["new_alertguid"] = "Spennende: " + NewAlert.Id.ToString();
Guid AlertsId = service.Create(NewAlert);
或者您可以创建新对象,然后对其进行更新

Entity NewAlert = new Entity("new_alerts");
NewAlert["new_name"] = "Navn på alert";
NewAlert["new_message"] = "Her er beskjed";
Guid AlertsId = service.Create(NewAlert);        
Entity CompleteNewAlert = new Entity("new_alerts",AlertsId );
CompleteNewAlert ["new_alertguid"] = "Spennende: " + AlertsId.ToString();
service.Update(CompleteNewAlert );


AlertsId
变量中得到什么?它是空的。实际上,它也没有在字段中写“Spennende”。但是它没有失败,所以我没有看到任何错误。然后你需要查看服务代码,看看那里发生了什么。我在哪里找到它?我对开发工作流一无所知。这是我的第一次。我想它与Guid AlertsId=service.Create(NewAlert)有关;在
AlertsId
变量中得到什么?它是空的。实际上,它也没有在字段中写“Spennende”。但是它没有失败,所以我没有看到任何错误。然后你需要查看服务代码,看看那里发生了什么。我在哪里找到它?我对开发工作流一无所知。这是我的第一次。我想它与Guid AlertsId=service.Create(NewAlert)有关;我试过上面的那个,但我只想说:“Spennende:00000000-0000-0000-0000-000000000000”。实际上没有GUID。但是我们更接近了:-)试试下面的那一个,你会更容易的。我在电脑前再试试。但是为什么上面的那个不起作用呢?第一个也起作用了。很明显我上次做错了什么。我试了上面的那个,但我只说了一句:“Spennende:00000000-0000-0000-0000-000000000000”。实际上没有GUID。但是我们更接近了:-)试试下面的那一个,你会更容易的。我在电脑前再试试。但是为什么上面的那个不起作用呢?第一个也起作用了。显然我上次做错了什么。