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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2012, 08:58   #1  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,509 / 432 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Post Импорт потенциальных клиентов
DAX 2012 kernel 6.0.947.0

Дано: Сейлы участвуют в различных мероприятиях, с которых приносят талмудические списки потенциальных клиентов и их контактов, которые потом прозваниваются.
В 2012 (в модуле Sales and marketing) есть достаточно удобный инструмент для этого (call-листы), но предварительно переносить туда информацию из талмудов руками муторно, чревато ошибками, да и просто жаль на это время тратить.
Решили сделать импорт этих данных в Аксапту автоматическим, по установленному шаблону.
Алгоритм - создаём руками call-лист в 2012, нажимаем в нём кнопку импорта, система генерит для каждого потенциального клиента лид (lead, возможный customer) и DirParty, для каждого контакта - Contact и свой DirParty, а потом связывает их.

Пользовательской информации о том, как сделать такое с клиентами в Сети оказалось достаточно много. А вот про лиды там почему-то ничего не нашлось - то ли функционал непопулярный, то ли я не так искал...
В общем, я решил выложить то, что у меня получилось. Возможно, кому-то это облегчит жизнь в будущем. Очевидные вещи вроде приёма данных из файла я опустил.

Так можно создать лиды:
X++:
    smmLeadsService                         leadsService;
    smmLeads                                leads;
    smmLeads_smmLeadTable                   leadTable;
    smmLeads_DirParty_DirOrganization       leadDirOrg;

    DirParty                                party;
    DirPartyName                            custName;

    DirPartyPostalAddressView               partyPostalAddress;
    DirPartyContactInfoView                 partyContactInfo;
    ;

    custName    = "Customer name"; // берём из Экселя

    leadsService    = smmLeadsService::construct();
    leads           = new smmLeads();

    leadTable   = leads.createsmmLeadTable().addNew();
    leadTable.parmSubject(custName);
    leadTable.parmStatus(smmLeadStatus::Open);	

    leadDirOrg  = new smmLeads_DirParty_DirOrganization();
    leadDirOrg.parmName(custName);
    leadDirOrg.parmNameAlias(custName);
    leadDirOrg.parmLanguageId(languageId); // системный язык

    leadTable.createDirParty().add(leadDirOrg);
    leadsService.create(leads);

    ret = DirPartyTable::findByName(custName, DirPartyType::Organization);
    if (!ret)
    {
        throw error ("Лид не был создан");
    }

    party = new dirParty(ret);

    partyPostalAddress.CountryRegionId  = "RUS";	// код страны
    partyPostalAddress.Street           = "Адрес";	// берём из Excel
    partyPostalAddress.ZipCode          = "123456";	// берём из Excel
    partyPostalAddress.IsPrimary        = true;
    party.createOrUpdatePostalAddress(partyPostalAddress);

    partyContactInfo.Type       = LogisticsElectronicAddressMethodType::Phone;
    partyContactInfo.Locator    = "+79019000000";	// берём из Excel
    partyContactInfo.IsPrimary  = true;
    party.createOrUpdateContactInfo(partyContactInfo);

	// ну и т.д. для всех контактов лида в целом
так - контакты для них
X++:
    DirPartyContactInfoView     contactInfo;
    ContactPerson               contactPerson;
    ContactPersonEntity         contactPersonEntity;
    DirOrgPersonRelations       dirOrgPersonRelations;
    ;

    contactPersonEntity = ContactPersonEntity::construct(contactPerson);
    contactPersonEntity.parmFirstName("Иван");			// берём из Excel
    contactPersonEntity.parmLastName("Тёркин"); 		// берём из Excel
    contactPersonEntity.parmProfession("Директор");		// берём из Excel
    contactPersonEntity.parmContactForParty(_custPartyRecId);	// Party лида
    contactPersonEntity.parmSensitivity(smmSensitivity::Personal);

    contactPersonEntity.write();

    contactInfo.Type    = LogisticsElectronicAddressMethodType::Phone;
    contactInfo.Locator             = "1234455";	// берём из Excel
    contactInfo.LocatorExtension    = "678";		// берём из Excxel
    contactInfo.IsPrimary           = true;
    contactPersonEntity.createOrUpdateContactInfo(contactInfo);

	// ну и т.д. для всех персональных контактов
если вместо лида нужен полноценный клиент - то
X++:
    CustCustomerService                     custService;
    CustCustomer                            cust;
    CustCustomer_CustTable                  custTable;

    CustCustomer_DirParty_DirOrganization   dirOrg;
    CustCustomer_OrganizationName           orgName;

    DirPartyName                            custName;
    ;

    custName    = "Customer name"; // берём из Экселя

    custService = CustCustomerService::construct();
    cust        = new CustCustomer();
    custTable = cust.createCustTable().addNew();

    dirOrg = new CustCustomer_DirParty_DirOrganization();
    dirOrg.parmName(custName);
    dirOrg.parmNameAlias(custName);
    dirOrg.parmLanguageId(languageId); // системный язык

    orgName = dirOrg.createOrganizationName().addNew();
    orgName.parmName(custName);

    custTable.createDirParty().add(dirOrg);
    custService.create(cust);
, но на мой взгляд это не совсем правильно. Всё же не каждый лид - готовый клиент.

P.S. Наверное, можно сделать то же самое посредством механизма импорта из Excel через аксаптовский add-in, но у меня к нему устойчивая антипатия со времён заливки продуктового справочника. Да и не считаю я правильным делать такое для регулярных операций
__________________
С уважением,
Вячеслав
Теги
customer, dynamics ax, lead, ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
импорт клиентов ax2009. IKA DAX: Функционал 7 26.03.2010 08:53
импорт "справочника" клиентов Varmen DAX: Программирование 14 02.09.2008 02:06
Стандартный импорт данных. Обновление sparur DAX: Функционал 0 24.03.2008 19:07
импорт данных FTAXF DAX: Администрирование 2 13.07.2004 20:41
Коды клиентов в CRM - проблема Zabr DAX: Функционал 5 01.12.2003 12:41
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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