[ELMA3] Конвертация возможности в контрагента сценарием
Рассмотрен пример сценария для конвертации возможности в контрагента (Тип клиента – Юридическое лицо).
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Контекстные переменные:
- context.Vozmozhnostj – переменная типа Возможность.
Пространство имен:
using EleWise.ELMA.API;Текст сценария:
var contractor = PublicAPI.CRM.Lead.ConvertLeadToContractorLegal(context.Vozmozhnostj);
Пример сценария без использования PublicAPI
Контекстные переменные:
- context.Vozmozhnostj – переменная Возможность, тип – объект Возможность;
- context.Kontragent – переменная Контрагент, тип – объект Контрагент.
Для работы сценария необходимо подключить сборки:
Elewise.ELMA.CRM
Пространства имен:
using EleWise.ELMA.CRM; using EleWise.ELMA.CRM.Managers; using EleWise.ELMA.CRM.Models; using EleWise.ELMA.Model.Entities; using EleWise.ELMA.Model.Managers; using EleWise.ELMA.Model.Mappings; using EleWise.ELMA.Model.Services; using EleWise.ELMA.Services;
Текст сценария:
var lead=context.Vozmozhnostj;
var contractorUid = InterfaceActivator.UID<IContractorLegal>();
var entityType = Locator.GetService<IMetadataRuntimeService>().GetTypeByUid(contractorUid);
var contractor = (IContractor)InterfaceActivator.Create(entityType);
var map = LeadManager.Instance.ConvertToContractorMap(contractor.GetType());
PropertyMapHelper.Map(lead, contractor, map);
var map1 = LeadManager.Instance.ConvertToContactMap();
contractor.Contacts.Clear();
foreach (var leadContact in lead.Contacts)
{
var contact = InterfaceActivator.Create<IContact>();
PropertyMapHelper.Map(leadContact, contact, map1);
contact.Contractor = contractor;
contractor.Contacts.Add(contact);
}
LeadManager.Instance.ConvertComplete(lead, contractor, contractor.Contacts, null, null, null);
context.Kontragent=(Contractor)contractor;