17.12.2008, 19:02 | #41 |
Заноза в заднице
|
2 Aleck: ...и слава Богу, что таких как ты немного.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
За это сообщение автора поблагодарили: Aleck (-1). |
17.12.2008, 19:22 | #42 |
Участник
|
Вышли мне тоже, пожалуйста свою тулзу мне на мыло: popovchenko@softline.kiev.ua, popovchenko@hotmail.com , sntk@i.ua
Огромное спасибо!
__________________
Быть в курсе всего первым - значит быть Первым! |
|
17.12.2008, 19:32 | #43 |
Заноза в заднице
|
2 Aleck: блин, я тебе объясняю, что сделал вещь, которая лишена недостатков того функционала, что производитель предлагает, а ты заладил своё. Различаются пользователи по именам, по фамилиям. Статусы определяются по названию, потому что работа идет с метаданными. Данные готовить не надо. Мозг врубать на 1,5-2 часа (поскромничал, конечно, потому что недельку-то потратил) - не надо. Извращаться с *.CSV, которые для многих не очень интуитивны - не надо. есть таблица - раз и загрузил. Насчет ошибок лог в принципе не нужен, поскольку ошибка может быть только: если запись не сопоставилась - значит ошибка в написании имени, если запись не добавилась, значит есть дубликат. Моё творение загружает сущности по отдельности. Ещё раз обращаю внимание на то, что ты даже не удосужился ознакомиться с тем, что я написал в первом посте, а сразу ломанулся сливать мой труд, потому что он тебе неугоден. Если бы ты прочел первый пост - ты бы знал ответы на многие из тех вопросов, что задаешь.
Я принялся за создание этой вещи потому, что натерпелся от стандартного механизма импорта и потратил непозволительно много времени на то, чтобы его освоить. Создал своё я быстрее, чем ты можешь себе представить - за полтора дня. И поэтому вещь не лишена недостатков, и поэтому у неё чудовищный дизайн, и поэтому каждый, кто хочет может довести вещь до ума по своему разумению. Сделать механизм понятным и прозрачным, а если нужно - и задокументировать. Мой интерес в этом только один: чтобы люди, кому это окажется полезно - воспользовались бы плодом моих трудов, а те, кому это ни к чему - пообсирали бы то, что кто-то другой сделал своими руками. Потому что обосрать всегда легче, чем дать что-то. И напоследок: моё творение дает результат. На первом шаге определяет цель, а на пятом её достигает. Пять шагов. Сколько требуется шагов для того, чтобы воспользоваться стандартной процедурой? Мне можно не отвечать, потому что сам знаю. Ты себе ответь. А заодно ответь: на хрена мне нужен лог ошибок, в тулзине, которая по идее должна корректно всё импортировать? На хрена откатывать импорт, если я в твердом уме и трезвой памяти хочу именно залить и для этого воспользовался вещью? А вот ты мне скажи: может стандартная процедура импорта апдейтить уже залитые раньше записи? Опознает она дубликаты при заливке? Причем дубликаты не по тем правилам, которые устанавливаются в настройках, а по совокупности? Например, когда я заливаю строки сервисных контрактов, то там ключ в двух полях содержится, а система как дубликаты опознает? Со своей вещью я могу добиться того, что у меня будет всё отрабатывать так, как логично и как я вижу в реалиях это дело. А ты можешь стандартную процедуру заставить себя вести так, как ты хочешь? Нет. А в принципе, если мне захочется - моя тулзина сможет всё, что делает стандартная, потому что она работает со стандартными службами, как того требует SDK. Но может она гораздо больше в принципе. А то, что время псу под хвост - ну тебе виднее, может ты им сам деньги платишь.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
За это сообщение автора поблагодарили: ShurikEv (1). |
17.12.2008, 21:39 | #44 |
Участник
|
Цитата:
Т.е. приводить в соответствие к наименованиям в системе надо? Цитата:
В закрытом (неактивном) статусе импортит? Совсем совсем? даже приводить значения пиклистов источника и получателя? А если в CRM системе пользователь "Иванов Петр", а в xls "CN=Petr Ivanov /CN=Users/DC=company/DC=com" (реальный пример) ишкуштвенный интеллект все сдюжит? Цитата:
Цитата:
Цитата:
Цитата:
Сообщение от Likefire
Моё творение загружает сущности по отдельности. Ещё раз обращаю внимание на то, что ты даже не удосужился ознакомиться с тем, что я написал в первом посте, а сразу ломанулся сливать мой труд, потому что он тебе неугоден. Если бы ты прочел первый пост - ты бы знал ответы на многие из тех вопросов, что задаешь.
Цитата:
Цитата:
Цитата:
Сообщение от Likefire
И поэтому вещь не лишена недостатков, и поэтому у неё чудовищный дизайн, и поэтому каждый, кто хочет может довести вещь до ума по своему разумению. Сделать механизм понятным и прозрачным, а если нужно - и задокументировать. Мой интерес в этом только один: чтобы люди, кому это окажется полезно - воспользовались бы плодом моих трудов, а те, кому это ни к чему - пообсирали бы то, что кто-то другой сделал своими руками. Потому что обосрать всегда легче, чем дать что-то.
Кто и где обсирал плоды Ваших трудов. Записи, свидетельства, улики будьте добры предъявить. Цитата:
Цитата:
Цитата:
Сообщение от Likefire
А вот ты мне скажи: может стандартная процедура импорта апдейтить уже залитые раньше записи? Опознает она дубликаты при заливке? Причем дубликаты не по тем правилам, которые устанавливаются в настройках, а по совокупности? Например, когда я заливаю строки сервисных контрактов, то там ключ в двух полях содержится, а система как дубликаты опознает? Со своей вещью я могу добиться того, что у меня будет всё отрабатывать так, как логично и как я вижу в реалиях это дело. А ты можешь стандартную процедуру заставить себя вести так, как ты хочешь? Нет. А в принципе, если мне захочется - моя тулзина сможет всё, что делает стандартная, потому что она работает со стандартными службами, как того требует SDK. Но может она гораздо больше в принципе. А то, что время псу под хвост - ну тебе виднее, может ты им сам деньги платишь.
Не нашел в первом посте упоминания о том, что Ваша тулза это может. Не процитируте? P.S. Это очень мило, что Вы называете эту тулзу "своим творением", но возникает два вопроса, с т.зр. Вашей любимой лицензионной чистоты: 1. Вы её в рабочее время делали? 2. От работодателя получили письменное разрешение на ее распространение? А то смотрите, кризис бродит по стране, соберутся кадры сокращать, а тут такой замечательный повод как хищение интеллектуальной собственности компании... |
|
17.12.2008, 22:39 | #45 |
Moderator
|
Aleck, Likefire, давайте жить дружно? Как коддер я прекрасно понимаю чувства Likefire - критиковать всегда проще, чем ваять предмет критики. Как консультант я скорее на стороне Aleck, ибо мне стандатртный утиль импотра не сделал ничего плохого, а давать пользователям другое решение - обрекать себя на долгие мучения с поддержкой. Функционал у средств в совокупности равный. У стандартной утилиты есть откаты, у утилиты Likefire (давайте ее FireImport звать? ) есть веб интерейс (хотя и тут есть аналог!). Стандартную утилиту, действительно, не переделать - развивать свободное решение можно сколько угодно. В конце концов нам и MS предоставляет исходники своей утилиты: Microsoft Dynamics CRM Team Blog : CRM Data Import Tool.
Мое критическое мнение в другом: не надо мешать с грязью стандартные средства - новички могут пойти неверной дорогой дублирования готового функционала. Если кто-то пошел этой дорогой, пускай даже из лучших побуждений, не надо особо его осуждать. Я за диалог, а не за спор!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
18.12.2008, 00:53 | #46 |
Участник
|
Так я и не спорил, пытался выяснить в чем отличия, не копаясь в коде, т.к. не программер. Вроде выяснил.
Цитата:
Сообщение от Артем Enot Грунин
В конце концов нам и MS предоставляет исходники своей утилиты: Microsoft Dynamics CRM Team Blog : CRM Data Import Tool.
Последний раз редактировалось Aleck; 18.12.2008 в 00:58. |
|
18.12.2008, 08:51 | #47 |
Moderator
|
Цитата:
У DMF есть два сильнейших козыря отличающих ее от любительских решений: 1. Откаты импорта (можно реализовать средствами SDK) 2. Загрузка исторических данных - закрытые заказы и т.д (средствами SDK реализовать нельзя) Во всем остальном выбор - дело вкуса. При желании можно пользоваться и стандартным веб-загрузчиком хотя с моей точки зрения в 3.0 он был даже удобнее...
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
18.12.2008, 13:15 | #48 |
Заноза в заднице
|
Всем, кому отправлял по почте стафф, приношу свои извинения. Есть там один косячок в форме Defaul.aspx, а вернее в коде Defaul.aspx.cs. Там отстутвует один метод, который если кому несложно,- добавьте. Вот он:
Код: protectedvoid ButtonSave_Click(object sender, EventArgs e) { CrmServiceUtility.SaveAppSettings(TxtbxCrmUrl.Text, TxtbxCrmCompany.Text, TxtbxCrmUser.Text, TxtbxCrmPassword.Text); }
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
18.12.2008, 13:30 | #49 |
Заноза в заднице
|
2 Артем Enot Грунин: тут опять возникает вопрос выбора. Я не предлагаю взять и всем начать пользоваться FireImport'ом, а просто сказал, что сдюжил эту тему в одиночку за ограниченное время 4,5 дня по вечерам, что в итоге сложилось в 1.5 дня чистого времени (считай - за выходные). И честно заметил, что творение не лишено недостатков, но общими силами может стать лучше стандартной вещи во сто крат. Я не предложил никому покупать тулзину и коммерческого предложения не выдвигал, поэтому волны критики тут смотрятся вообще как-то неуместно. Я и хотел развить диалог с теми, кого это заинтересует, но зачем же делать некие сравнения с велосипедами и прочей кухонной утварью? Тем более, если к процессу работы подключаться не в желании? Так просто - энергию в связи с кризисом не на кого выбрасывать? Посему: дискуссию на тему что лучше я лично вести дальше не собираюсь. Ответы на конкретные вопросы, типа а есть ли вот это и в каких строках кода это увидеть - веллкам! Всегда отвечу! Форум именно для этого мне и нужен. Вот выслал человеку исходники, он не постеснялся попробовать и ошибку нашел - респект за это! И всем, кто нароет какие-нить баги - пишите, буду только рад. А так,- беспредметно хаять не надо. Майкрософту мозги крутите за свои деньги, а я вам ничего не должен и вы мне, кстати, тоже.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
18.12.2008, 14:58 | #50 |
Kostya Afendikov
|
Предлагаю больше тему этим холиваром не захламлять, а писать сюда все, что касается проекта от Likefire. Я проект получил и постараюсь за выходные с ним повозиться, может что интересное и предложу. Для меня это прекрасный способ ознакомиться с чем-то новым помимо SDK. Еще раз спасибо Likefire
|
|
18.12.2008, 16:10 | #51 |
Участник
|
Как администратор поддерживаю.
Призываю модераторов холивар нещадно отсюда удалять. Полезное переносить в новые ветки полезный оффтопик, если он появится. |
|
18.12.2008, 16:32 | #52 |
Moderator
|
Солидарен.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
19.12.2008, 12:52 | #53 |
Заноза в заднице
|
Ещё одна интересная бага обнаружилась, связанная с локализацией офиса и используемой CurrentThread.CurrentCulture. Выглядит это так:
Использован старый формат, либо библиотека имеет неверный тип. (Исключение из HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) Скорее всего речь в несовместимости локализации и culture. Точного ответа и внятных объяснений на этот вопрос найти не удалось, однако есть некие строки, которые должны по идее исправить положение: 1. Присвоить CurrentCulture значение инвариатной CultureInfo до объявления класса приложения (Application) Interop.Excel (у меня это как раз-таки вызвало упомянутую выше ошибку, но только на ангельском языке) - что это дает, мне неведомо, а объяснения из MSDN на ангельском же языке до меня не очень доходят: Код: System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; 2. Точно указать используемую культуру. Для этого какминимум надо знать, какая культура нужна. Хотя скорее всего, речь о том, что тогда уж лучше в свойствах IIS задать значение необходимой культуры, хотя... Код: // перед объявлением класса приложения (Application) Interop.Excel: System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); //... // <выполнение процедур с данными excel> // ... // после строки "currApp.Workbooks.Close();": System.Threading.Thread.CurrentThread.CurrentCulture = oldCI;
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
20.12.2008, 14:42 | #54 |
Участник
|
Выложил архив.
http://crm.axforum.info/crm-web-service.rar |
|
23.12.2008, 18:38 | #55 |
Участник
|
Цитата:
Сообщение от mazzy
Выложил архив.
http://crm.axforum.info/crm-web-service.rar Network Access Message: The website cannot be found |
|
07.01.2009, 10:03 | #56 |
Участник
|
Цитата:
Сообщение от mazzy
Выложил архив.
http://crm.axforum.info/crm-web-service.rar По ссылке ничего не лежит! Если не трудно намыльте пожалуйста pole{}fromru.com |
|
07.01.2009, 10:10 | #57 |
Участник
|
извините.
попробуйте http://axforum.info/crm/crm-web-service.rar |
|
13.01.2009, 14:22 | #58 |
Участник
|
Добавил заполнения атрибута типа Money
Вставлять в метод protected void CreateButton_Click(object sender, EventArgs e) else if (currAttr.AttributeType.Value == AttributeType.Money) { decimal loadValue = 0; if (decimal.TryParse(loadCell.Text, out loadValue)) { CrmMoneyProperty currIntProp = new CrmMoneyProperty(); currIntProp.Name = currAttr.SchemaName.ToLower(); currIntProp.Value = new CRM_Web_Service.CrmSdk.CrmMoney(); currIntProp.Value.Value = loadValue; arrofProperties = (Property[])CrmServiceUtility.ExpandCurrArray(arrofProperties, arrofProperties.Length + 1); arrofProperties[arrofProperties.Length - 1] = currIntProp; } } Чего не хватает: 1) сохранения настроек в файл 2) простановка атрибутов значениями по умолчанию (в принципе решается добавлением значений в колонки Ёксел таблицы) |
|
05.09.2011, 16:24 | #59 |
MCTS
|
Ссылка на проект не работает, если у кого остался, - можете кинуть на cherv81(at)yandex.ru?
|
|
19.12.2011, 14:19 | #60 |
Участник
|
Поддерживаю, если у кого-то остался проект просьба скинуть на Yegoriy(at)pisem.net
|
|
|
|