logo

[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;