AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2009, 19:04   #1  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb
Цитата:
Сообщение от Yarilo Посмотреть сообщение
У меня вопрос по схожей тематике, только нужно заполнять значение одного лукап поля (Лукап1) при изменении другого лукап поля (Лукап2). При этом нужный ИД для Лукап1 сидит не в самой записи сущности в поле Лукап2, а через одну сущность. Т.е. поле Лукап2 с типом Сущность2, в ней есть лукап с типом Сущность3 и в ней уже лукап с полем Сущность1, значение из которого необходимо подставить в поле Лукап1 формы. После этого еще с десяток полей на форме нужно заполнить значениями из этой найденной записи Сущности1. Поначалу у меня были мысли насчет кастомной сборки в бизнес-процессе по изменению атрибута Лукап2, но здесь я смотрю предлагается решение через ява-скрипт. Есть ли какие-то общие рекомендации по этому поводу, как правильно делать, через бизнес-процесс или клиентский код?
Зависит конечно от задачи, но как по мне - самое надёжное это плагин в такого рода задачах.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 22.04.2009, 20:14   #2  
Yarilo is offline
Yarilo
Участник
 
19 / 10 (1) +
Регистрация: 08.08.2008
Адрес: Харьков, Украина
Цитата:
Сообщение от a33ik Посмотреть сообщение
Зависит конечно от задачи, но как по мне - самое надёжное это плагин в такого рода задачах.
Да мне тоже ближе как-то через плагин сделать, но пока не получается создать бизнес-процесс с его участием. После добавления шага вызова сборки при попытке добавить следующий шаг выдается ошибка

Цитата:
Error: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Error Message: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Source File: Not available
Line Number: Not available
Request URL: http://10.160.105.2:5555/zat611/AppW.../Workflow.asmx
Stack Trace Info: [ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index]
Плагин пока простейший, чисто убедиться, что будет работать:
Код:
using System;
using System.Collections;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
using System.Reflection;

using Microsoft.Crm.Workflow;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using Microsoft.Crm.Sdk.Query;

namespace Miratech.Miro.CrmPlugin
{
  [CrmWorkflowActivity("PayDirection.AktInsurance.OnChange")]
  public class PayDirectionAktInsuranceChange : Activity
  {
    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
    {
       InsContract = new Lookup("new_ins_contract", new Guid("BEB08AF1-5723-DE11-A1E5-0016E68BF392"));
       return base.Execute(executionContext);
    }

    public static DependencyProperty InsAktProperty = 
      DependencyProperty.Register("InsAkt", typeof(Lookup), typeof(PayDirectionAktInsuranceChange));

    [CrmInput("InsAkt")]
    [CrmReferenceTarget("new_ins_akt")]    
    public Lookup InsAkt
    {
       get
       {
          return (Lookup)base.GetValue(InsAktProperty);
       }
       set
       {
          base.SetValue(InsAktProperty, value);
       }

    }

    public static DependencyProperty InsContractProperty = 
       DependencyProperty.Register("InsContract", typeof(Lookup), typeof(PayDirectionAktInsuranceChange));

    [CrmOutput("InsContract")]
    [CrmReferenceTarget("new_ins_contract")]    
    public Lookup InsContract
    {
       get
       {
          return (Lookup)base.GetValue(InsContractProperty);
       }
       set
       {
          base.SetValue(InsContractProperty, value);
       }

    }
  }
}
Взял пример с СДК, немного видеоизменил под свои нужды.

Теперь сижу, думаю, что такая ошибка может значить.
Старый 22.04.2009, 20:34   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb
Не путайте воркфлоу и плагин. Вы предоставили текст кастомного воркфлоу.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 22.04.2009, 20:54   #4  
Yarilo is offline
Yarilo
Участник
 
19 / 10 (1) +
Регистрация: 08.08.2008
Адрес: Харьков, Украина
Цитата:
Сообщение от a33ik Посмотреть сообщение
Не путайте воркфлоу и плагин. Вы предоставили текст кастомного воркфлоу.
Так плагин в чистом виде не подходит, ибо работает только на создание/изменение записи, а мне нужно заполнять поле именно при смене значения поля на форме. Под "плагином" в последнем сообщении я подразумевал кастомную сборку в бизнес-процессе, я же как раз и спрашивал в исходом вопросе: бизнес-процесс или ява-скрипт?
Старый 22.04.2009, 21:01   #5  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
:)
Цитата:
Сообщение от Yarilo Посмотреть сообщение
Так плагин в чистом виде не подходит, ибо работает только на создание/изменение записи, а мне нужно заполнять поле именно при смене значения поля на форме. Под "плагином" в последнем сообщении я подразумевал кастомную сборку в бизнес-процессе, я же как раз и спрашивал в исходом вопросе: бизнес-процесс или ява-скрипт?
Воркфлоу тоже работает на создание/изменение/удаление/смену ответственного/изменение статуса. Если поля надо изменять при изменении поля на форме то только Java Script.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 22.04.2009, 21:21   #6  
Yarilo is offline
Yarilo
Участник
 
19 / 10 (1) +
Регистрация: 08.08.2008
Адрес: Харьков, Украина
Цитата:
Сообщение от a33ik Посмотреть сообщение
Воркфлоу тоже работает на создание/изменение/удаление/смену ответственного/изменение статуса. Если поля надо изменять при изменении поля на форме то только Java Script.
Хм, в мастере бизнес-процессов я вижу опцию "Параметры для автоматических бизнес-процессов" - "Условия запуска" - "Изменение атрибутов записи" ("Options for automatic workflows" - "Start when" - "Record attributes change") - Выбираю нужный мне атрибут. Это разве не оно? Система СРМ 4.0 Проф Рус с апдейт роллапами 1 и 2.
Старый 22.04.2009, 21:48   #7  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
:)
Цитата:
Сообщение от Yarilo Посмотреть сообщение
Хм, в мастере бизнес-процессов я вижу опцию "Параметры для автоматических бизнес-процессов" - "Условия запуска" - "Изменение атрибутов записи" ("Options for automatic workflows" - "Start when" - "Record attributes change") - Выбираю нужный мне атрибут. Это разве не оно? Система СРМ 4.0 Проф Рус с апдейт роллапами 1 и 2.
Оно. Но только бизнес-процесс запускается через некоторое время после сохранения изменений в карточке, а совсем не в момент редактирования значений в карточке.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Yarilo (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Создание Lookup формы. Xelaan Dynamics CRM: Разработка 0 03.09.2008 12:17
Как взять текстовое значение из поля LookUp tatra Dynamics CRM: Разработка 2 21.11.2007 08:20
Как сделать в поле типа "Lookup" осуществить множественный выбор значений? Alexey-IT Dynamics CRM: Функционал 5 01.11.2007 11:48
Динамическое заполнение из выбранного атрибута lookup Sibcons Dynamics CRM: Разработка 4 15.06.2007 17:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:34.