CRM v9 — Сохранение данных в сущности CRM с помощью кода C #

#c# #dynamics-crm #crm #dynamics-crm-2016

#c# #dynamics-crm #crm #dynamics-crm-2016

Вопрос:

Я создал новый объект CRM с 2 полями Name и Value. В моем коде C # я извлекаю те же два значения с их именами из Microsoft Unified Service Desk. Теперь у меня есть эти записи в моем коде C #, и теперь я хочу сохранить их в объекте CRM. Я использую приведенный ниже код для извлечения значений на данный момент,

  string QuestionAnswer = string.Empty;

        if (dialog.QuestionControlValidate)
        {
            if (ContextParameterName != string.Empty)
            {
                var ctx = Context.GetContext();

                if (dialog.QuestionControlType == "TextBox")
                    QuestionAnswer = dialog.QuestionControlTextQuestionAnswer.ToString();
                else if (dialog.QuestionControlType == "RadioButton")
                    QuestionAnswer = dialog.QuestionControlRadioButtonSelectionAnswer.ToString();

                var updatedContext = new Context(ctx)
                {
                    [ContextParameterName] = QuestionAnswer
                };

// Code to be added here
            }
  

Я получаю имя внутри ContextParameterName и значение внутри QuestionAnswer. Я хочу сохранить эти записи внутри объекта CRM, который имеет поля имени и значения.

Ответ №1:

Ваш код для создания записи в CRM будет выглядеть примерно так, как показано ниже

Пользовательская сущность = новая сущность

  Entity abc = new Entity()
                {
                    LogicalName = "new_EntityName",
                    ["fieldName"] = ContextParameterName,
                    ["fieldValue"] = QuestionAnswer

                };
                Guid newEntityRecordGuid = CrmConn.Create(abc);
  

newEntityRecordGuid будет иметь вновь созданный идентификатор записи Guid

Комментарии:

1. Я хочу создать запись с помощью ICrmUtilityHostedControl

Ответ №2:

Я получаю данные из Microsoft USD внутри кода C #, а затем хотел сохранить их в объекте CRM. И поскольку в долларах США соединение создается автоматически со средой CRM, поэтому я добился этого без явного определения соединения.

                 dictionary.Add("name", new CrmDataTypeWrapper(ContextParameterName, CrmFieldType.Raw));
                dictionary.Add("value", new CrmDataTypeWrapper(QuestionAnswer, CrmFieldType.Raw));
                dictionary.Add("id", new CrmDataTypeWrapper(updatedContext["Id"], CrmFieldType.Raw));

                Guid EvntId = _client.CrmInterface.CreateNewRecord("historicaldata",dictionary,"",false,new System.Guid());
  

Метод CreateNewRecord создает новое действие для целевого типа сущности

Комментарии:

1. Где находится ICrmUtilityHostedControl?

2. защищенный ICrmUtilityHostedControl _client;

Ответ №3:

Вы можете использовать размещенный элемент управления Global Manager и использовать действие createEntity. Проверьте эту ссылку https://learn.microsoft.com/en-us/dynamics365/customer-engagement/unified-service-desk/global-manager-hosted-control?view=dynamics-usd-4.1