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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2010, 18:27   #1  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Как формируется uniqieidentifier в базе MS CRM 4.0
Здравствуйте

Я пишу пользовательское приложение и хочу скриптом добавлять данные в базу MS CRM а не через карточки - т.к. так дольше получается.

И в связи с этим вопрос.
Во всех сущностях есть ключевое поле (Primary Key) оно во всех таблицах имеет следующий вид:

AAAAA000-AA0A-AA00-AA00-000000AA000A

разумеется вместо символов "А", и "0" - могут быть либо "латинские буквы" и "символы", соответственно.

Совокупная длина символов - 32 - каким образом они получают такую последовательность символов? генерируют её сами или используют какой то алгоритм шифрования аля "MD5" и другое?

Подскажите пожалуйста.

Заранее спасибо!
Старый 08.11.2010, 18:54   #2  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Для этого используется фнкция SQL Server'а, напрмер http://www.dailycoding.com/Posts/gen...ql_server.aspx
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 08.11.2010, 18:57   #3  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Спасибо большое!!!
А подскажите,
я написал кастомную страницу для CRM 4.0, но её может открыть любой желающий без авторизации доменной которая у меня в CRM есть. Т.е. чтобы войти в CRM у меня система спрашивает пароль и в случае успеха пускает в систему.

Как мне определить ID пользователя который открывает страницу и если он не авторизован запросить авторизацию??

Заранее спасибо.

Кастомная страница написана на PHP, ссылка и переход на кастомную страницу происходит из CRM 4.0 - в Sitemap.xml - я прописал нужную мне ссылку в аттрибуте Url=
Старый 09.11.2010, 13:00   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Прочитав все вышесказанное, могу посоветовать вам только одно: ЧИТАЙТЕ SDK!!!
Вы, часом, не SQL инсерты на php писать собрались? А вы в курсе, кстати, что часть полей может в отдельной таблице храниться (таблице расширения и таблицах адреса)? Про систему безопасности читали? И, кстати, для Сливки будет сюрпризом, что CRM генерирует идентификаторы не через NEWID()! Если вы приглядитесь, то увидите, что для вновь создаваемых записей идентификаторы выдаются последовательно. Про авторизацию на php вопрос вообще убил!
КАК НАДО: пишем страницу на ASPX, кладем ее в каталог ISV. В этой странице прокидываем ссылку на веб референс или используем сборки SDK и работаем с системой через API а не через базу! Да, чуть медленнее, но зато правильно и быстро с точки зрения разработки!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: a33ik (2).
Старый 09.11.2010, 15:52   #5  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Именно SQL-insert и update-ы.
Т.к. у меня стоит очень сложная задача реализовать приложение которое средствами API -CRM-а в принципе не реализовать, вторая сложность это незнание языка .NET, но есть знания в PHP. + сроки сжатые.. на PHP я успею реализовать этот функционал до Нового года, на .NET 1-2 года учиться и потом ещё полгода делать приложение - оно будет уже не актуально.

Я тут летом спрашивал совета где можно найти тренера чтобы научил программить - так и не подсказали. Книги прочитал - ни фига не понятно. С чего начать тоже не понимаю.

В данной ситуации я лишь пытаюсь найти решение проблемы. Оно есть разработка на PHP + MSSQL, но не врублю как сделать авторизацию доменую.

Понимание есть.

нужно написать .APSX страницу в неё вложить фрейм - IFRAME а туда в SRC пусть к моей странице на PHP.

Тогда страница ASPx будет запрашивать авторизацию. Но вот как со страницы APSX в мой PHP скрипт передать GUID залогинненого пользователя вот проблема.

Вторая про генерацию uniqueidentifier, можно генерить уникальные ID-шники записей (предварительно проверяя по базе нет ли уже таких) например MD5 шифрованием (текущей даты и времени (в миллисекундах) + IP адрес клиента) затем разбить на 5 групп через дефис и делать инсерты.

Так ведь будет работать система CRM? если подобные записи появятся в системе?
Старый 09.11.2010, 17:08   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от Dicora Посмотреть сообщение
Именно SQL-insert и update-ы.
Т.к. у меня стоит очень сложная задача реализовать приложение которое средствами API -CRM-а в принципе не реализовать.
Один момент - вы НЕ понимаете как работает система, однако беретесь утверждать, что ваша задача ей не под силу?!?! Если ваша задача, пусть не заключается в том чтобы, но сводится к инсертам и апдейтам, то я вас клятвенно заверяю: захудалый CRM API справится!
Теперь по поводу авторизации... Вы, я так понимаю, смогли каким-то образом запустить php машину под IIS? Тогда где-то в ее мануале вы сможете выяснить как настроить NTLM авторизацию для своего приложения, и как, соответственно, получить логин открывшего сессию пользователя. Это не форум php программистов, это форум по линейке MS Dynamics, так что раз ответ до сих пор не последовал, то дальше ждать его бессмысленно. Как только получите логин, добро пожаловать со своими селектами в таблицу SystemUsers, где вы без труда по логину узнаете GUID вашего клиента.

p.s. Вы думали о том, чтобы доверить разработку третьей стороне?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Dicora (1).
Старый 09.11.2010, 17:32   #7  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Спасибо большое что подсказали направление... почитаю про эту авторизацию.
Я просто думал что есть способ узнать сессию пользователя запустившего браузер Explorer, я думал что CRM в html код родительского фрейма добавляет в какой нибудь скрытый INPUT type=hidden Значение залогинившегося юзера.

Думал сначала через JS его из род фрейма доставать. Но не получилось.

Да, мне удалось настроить PHP машину на IIS 6.0 на винде.

А поповоду Машины CRM API я не сомневаюсь что она справится, врядли сейчас на этом этапе удастся справиться мне с машиной CRM API и её языком ASPx, я его если честно вообще не знаю.

Да я уже понял насчет полей ExtensionBase и т.д. Я это конечно же буду учитывать при написании SQL запросов (insert и update).

у меня по сути было 2 сложности:
Это узнать текущую сессию чтобы моё приложение корректно работало, т.к. для разных категорий пользователей будет разный функционал.

и то как генерируются уникальные идентификаторы.
Старый 09.11.2010, 17:46   #8  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Dicora Посмотреть сообщение
приложение которое средствами API -CRM-а в принципе не реализовать
Простите, но это - бред.

Цитата:
Сообщение от Dicora Посмотреть сообщение
на .NET 1-2 года учиться
Простите, но опять бред. При знании одного языка (заявлен PHP) выучить другой язык - это дело месяца. Правда сужу по себе - с Object Pascal + Delphi я переучился на .Net + Visual Studio 2003 за месяц, может даже наверное меньше.

Цитата:
Сообщение от Dicora Посмотреть сообщение
Я тут летом спрашивал совета где можно найти тренера чтобы научил программить - так и не подсказали.
Как по мне двигателем в обучении должен являться не мифический учитель, а сам человек. По поводу того почему я не ответил на вопрос (хотя я его видел) - это его абсурдность (с моей точки зрения).

Цитата:
Сообщение от Dicora Посмотреть сообщение
Книги прочитал - ни фига не понятно.
Если не трудно - приведите, пожалуйста, примеры - книга, статья или страница, что именно непонятно.

Цитата:
Сообщение от Dicora Посмотреть сообщение
С чего начать тоже не понимаю.
А в данном случае всё зависит от задачи. Что необходимо сделать - с того и надо начинать.

Цитата:
Сообщение от Dicora Посмотреть сообщение
Вторая про генерацию uniqueidentifier, можно генерить уникальные ID-шники записей (предварительно проверяя по базе нет ли уже таких) например MD5 шифрованием (текущей даты и времени (в миллисекундах) + IP адрес клиента) затем разбить на 5 групп через дефис и делать инсерты.
Простите, но это скорее всего изза невладением информации о том, что такое GUID. Вероятность того, что идентичный гуид будет сгенерирован - ничтожно мала, если использовать Guid.NewGuid статический метод структуры Guid .Net или NewId() функцию T-SQL.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.11.2010, 18:07   #9  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
По поводу .NET мне непонятны АЗЫ и логика самого языка соответственно всё остальное тоже. Без понимания как устроен алфавит я физически не могу заставить голову понимать этот язык.

ВО-первых,
Как определять какие Name-спейсы подключать когда пишешь страницу на ASPx, и где искать сборки этих нейм-спейсов.

Вот допустим мне нужно написать страницу которая будет из БД вытаскивать все интересы и разработать свой функционал создания интересов - какой нейм спейс нужно подключить? 1 или 5 штук сразу? нигде это не объясняется.


Далее как работают эти
<script runat=server></script>

что такое runat, почему у стандартных тегов типа input появляются левые и неизвестные самому HTML-у аттрибуты. Как создать форму так, чтобы при нажатии на Submit в скрипте я мог обработать данные отправленной формы.

На PHP если поля формы называются так:
<input name=login>
<input name=password>

то и после отправки они будут называться также

$login
$password

В книге пол книги самой рассказывается о каких то логиках, схемы, болтологии и никакой практической информации - сразу начинается разработка сложных вещей и я ничего не понимаю

В магазине (4 магазина в СПБ обошел) продавцы ничего не соображают. я спрашиваю я не знаю .NET, а мне нужно научиться писать приложения для Microsoft Dynamics CRM 4.0, а они а что такое CRM? как так можно?

Если никто не может посоветовать книг по CRM как ему научиться?
Те книги что Вы мне когда то рекомендовали на английском сайте - они все на англоязычные я только русский знаю. Неужели нет книг по разработке приложений на CRM 4.0 на ASPX в русской редакции??

У меня вопросов миллионы но к сожалению сам я ответы на них найти не могу.
Понимал бы я основы языка .net с большим удовольствием писал бы приложения через API CRM-а.

Книга которую я читал называется так:
Дино Эспозито
Мастер класс

Microsoft ASP.NET 2.0
Базовый курс

Русская редакция, издательство "Питер", 2007

Последний раз редактировалось a33ik; 09.11.2010 в 20:21.
Старый 09.11.2010, 20:32   #10  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Подучите для начала C#. Примеров, статей и форумов - море. Просто попробуйте поисковики. Потом уже ASP.Net. И только потом пробуйте интегрировать это всё в CRM.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.11.2010, 22:36   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Могу добавить лишь слово "печально". Прошу, поймите, мы не издеваемся стараясь казаться крутыми, вовсе нет. Просто со стороны ситуация принимает оборот: "не не нравится этот мир, дайте мне другой глобус".
В CRM я пришел из "анти-microsoft" мира: до этого я работал в компании, которая разрабатывала корпоративные системы на SUN Java + TopLink на СУБД Oracle. Сроки были сжатыми, так что приблизительно за три месяца мне пришлось освоить CRM, С#, MS SQL и SSRS. Это было тяжело, но это пришлось делать, так как весь мой прошлый опыт не был пригоден для работы с этим продуктом! Меня до сих пор тошнит и от C# и MS SQL и от Microsoft в целом, но я пытаюсь продублировать CRM API через абстракции Oracle TopLink, чтобы продолжать писать на Java! В отделе я был один и никто не разжевывал мне про то что такое namespace - мне пришлось самому построить нужные аналогии. И уж простите великодушно, но весь ИТ-мир говорит по английски, так что если вы все еще не в состоянии читать на этом языке техническую литературу (Шекспира в оригинале никто не заставляет!), то у меня для вас нет другого глобуса. Обратитесь к профессионалу и не мучайте систему.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 10.11.2010, 07:09   #12  
RegAndrew is offline
RegAndrew
Участник
 
13 / 10 (1) +
Регистрация: 20.08.2010
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
CRM генерирует идентификаторы не через NEWID()! Если вы приглядитесь, то увидите, что для вновь создаваемых записей идентификаторы выдаются последовательно.
убило...
Причем здесь последовательность?
Вообще то есть WinAPI, к которому обращаются как System.Guid.NewGuid (который скорее всего использует CRM) так и newid (из TSQL).

К автору:
- помимо guid-ов есть и временные поля, которые относятся к вашему локальному часовому поясу, в таблицах же оно хранится в UTC, то есть по Гринвичу. Для перевода нужно использовать функции SQL (dbo.fn_LocalTimeToUTC и обратную ей).
- для начала хорошо подходят книжки от Microsoft Press (Разработка клиентских web-приложений ASP.NET например)

Последний раз редактировалось RegAndrew; 10.11.2010 в 07:31.
Старый 10.11.2010, 12:44   #13  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
-> Dicora

Если хорошо знаете PHP то можете попробовать общаться с CRM посредством SOAP запросов:
http://www.ifc0nfig.com/working-with...hp-and-nusoap/
http://www.zenithies.org/articles/1/...ntication.html
(в инете можно еще примеры найти)

Для определения текущего юзвера используется запрос WhoAmIRequest http://msdn.microsoft.com/en-us/library/bb890244.aspx (правда неуверен, что он корректно отработает из PHP, но вы всегда можете отправить его в CRM сервис (из CRM) с помощью JS и полученный ответ передать в дочерний iFrame посредством строки URL).

З.Ы. неплохой курс по С# и ASP.NET http://www.intuit.ru/department/internet/aspnetvsnet/1/

И еще можете покапаться в этом примере http://phpmscrm.codeplex.com/
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога

Последний раз редактировалось slivka_83; 10.11.2010 в 12:52.
Старый 10.11.2010, 22:17   #14  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от RegAndrew Посмотреть сообщение
убило...
Причем здесь последовательность?
Вообще то есть WinAPI, к которому обращаются как System.Guid.NewGuid (который скорее всего использует CRM) так и newid (из TSQL).
Чтобы не нахамить просто советую вам лично посмотреть и убедиться в том что это не так. Создайте последовательно несколько записей одного типа и убедитесь что их идентификаторы отличаются только последним разрядом. Кроме того, даже GUID и uniqueidentifier имеют массу различии: http://msdn.microsoft.com/ru-ru/library/ms254976.aspx.

Остальные советы прокомментирую неизменно: не дублируйте системные алгоритмы, просто используйте их!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

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

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

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