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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2012, 08:58   #1  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (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, но у меня к нему устойчивая антипатия со времён заливки продуктового справочника. Да и не считаю я правильным делать такое для регулярных операций
__________________
С уважением,
Вячеслав
Старый 08.10.2012, 11:08   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Не совсем понятно - вы допилили стандартный импорт Интересов? Или написали свой? Чем именно стандартный не подходит (он еще в тройке был, в 2012 переведен на AIF)?
__________________
Ivanhoe as is..
Старый 08.10.2012, 11:52   #3  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Не совсем понятно - вы допилили стандартный импорт Интересов? Или написали свой? Чем именно стандартный не подходит (он еще в тройке был, в 2012 переведен на AIF)?
Нет, стандартный не трогали. Лиды будут поступать из разных источникоов и разными способами - решили, что проще курочить свой собственный класс.
__________________
С уважением,
Вячеслав
Старый 08.10.2012, 13:17   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
CRM, конечно в аксе крут, но в MS CRM по-круче будет, пошто не пошли отдельным продуктом, потом за интегрировали и все ?
__________________
Axapta book for developer
Старый 08.10.2012, 14:00   #5  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Пока в этом нет необходимости
__________________
С уважением,
Вячеслав
Старый 08.10.2012, 14:14   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от MikeR Посмотреть сообщение
CRM, конечно в аксе крут, но в MS CRM по-круче будет, пошто не пошли отдельным продуктом, потом за интегрировали и все ?
Предлагаю открыть отдельную ветку и обсудить. Давно самого этот вопрос мучает. В свою очередь готов ответить по модулю AX 2009 (по наличию времени, могу и 2012 глянуть).
__________________
Ivanhoe as is..
Старый 25.10.2012, 05:06   #7  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Предлагаю открыть отдельную ветку и обсудить. Давно самого этот вопрос мучает.
Не подскажете, открыли ли где эту ветку? Тоже интересно.
Старый 25.10.2012, 09:14   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от griefon Посмотреть сообщение
Не подскажете, открыли ли где эту ветку? Тоже интересно.
Старая тема есть Различия между модулями CRM
За это сообщение автора поблагодарили: Ivanhoe (1).
Старый 25.10.2012, 10:26   #9  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
По мимо чисто функциональных отличий есть так же отличия по платформе - это возможность в обход действующих ролей делать общий доступ, вещь, которая бывает сильно нужна.
__________________
Axapta book for developer
Теги
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, время: 05:42.