02.02.2008, 19:57 | #1 |
Участник
|
Автоматическое заполнение поля типа lookup при создании формы
Подскажите, пожалуйста.
При создании организации необходимо, чтобы поле Город типа lookup было автоматически заполнено. Какой код необходимо прописать на onLoad формы? |
|
03.02.2008, 11:00 | #2 |
Moderator
|
Читайте SDK! Если ваш город - сточное значение, то писать надо что-то вроде:
crmForm.all.address1_city.DataValue = 'Крыжополь';
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
04.02.2008, 06:55 | #3 |
CRM
|
Example
The following code example shows how to set values in a field of type Lookup. This example shows how to set the parent account lookup field on the account form. //Create an array to set as the DataValue for the lookup control. var lookupData = new Array(); //Create an Object add to the array. var lookupItem= new Object(); //Set the id, typename, and name properties to the object. lookupItem.id = '{1AAC1363-01A1-DB11-8432-0003FF9CE217}'; lookupItem.typename = 'account'; lookupItem.name = 'A Bike Store'; // Add the object to the array. lookupData[0] = lookupItem; // Set the value of the lookup field to the value of the array. crmForm.all.parentaccountid.DataValue = lookupData; Осталось главное - узнать id города (тут пример для организации). Может быть прописан по-разному: либо статически, либо значение вытаскивается из какой-то сущности по какому-то условию. |
|
|
За это сообщение автора поблагодарили: Верба (1). |
04.02.2008, 15:22 | #4 |
Участник
|
Всё получилось. Спасибо.
id прописывается статически, взяла из базы sql. |
|
27.05.2008, 09:30 | #5 |
Участник
|
Вопрос:
В объекте Звонок есть lookup OwnerId, который ссылается на Ответсвенного пользователя. Нужно в добавленный lookup "Ответственное подразделение" автоматически записывать ссылку на подразделение, к которому относиться пользователь с Ownerid. Как вытащить атрибут businessunitid из объекта systemuser, на который ссылается ownerid, и проставить значение businessunitid в lookup "Ответственное подразделение" ? заране благодарю. |
|
27.05.2008, 11:09 | #6 |
CRM
|
Я точно не знаю, т.к. вспоминать надо, но могу дать наводку.
1. В SDK есть статья Using Link Tables.Можно заиспользовать QueryExpression 2. У systemuser есть поле organizationid. Это не оно? Если нет, то см. п.1.
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
27.05.2008, 11:52 | #7 |
Участник
|
Цитата:
> 2. У systemuser есть поле organizationid. Это не оно? Если нет, то см. п.1.
в нете докопался до того, что SOAP запросы надо подавать на MSCRMServices. Цитата:
1. В SDK есть статья Using Link Tables.Можно заиспользовать QueryExpression
хотел уточнить, что хочу написать код в виде javascript'a на событие в форме. Последний раз редактировалось Bakai Madybaev; 27.05.2008 в 11:56. |
|
27.05.2008, 12:17 | #8 |
Moderator
|
Данный вопрос уже обсуждался на форуме. Смотрите Как получить значение поля одной сущности при обработке формы другой сущности Есть и другие темы, код, в целом, тот же.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: Bakai Madybaev (1). |
27.05.2008, 12:27 | #9 |
CRM
|
См. Обращение к полю сущности я там ответил на подобный вопрос
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
27.05.2008, 12:28 | #10 |
CRM
|
Синхронно
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
|
За это сообщение автора поблагодарили: Bakai Madybaev (1). |
28.05.2008, 08:07 | #11 |
Участник
|
Спасибо, большое - получилось!
|
|
29.05.2008, 15:57 | #12 |
Участник
|
Новые проблемы:
Посылка http запросов влечет свои особенности. Выскакивает окно авторизации для ввода логина и пароля. У моего логина уже что-то заблокировалось, что логин и пароль не принимаются и запрос не выполняется. Хотя на сайт я захожу именно под данным логином. Еще выходит сообщение: Цитата:
Данная страница обращается к данным, которые не удается проверить, что вызывает рискованное нарушение безопасности. Продолжить?
Если выбрать "Нет", то в течении всей сессии работы с сайтом, скрипт вываливается с ошибкой и надо заново логиниться и все равно выбирать "Да". |
|
29.05.2008, 16:34 | #13 |
Moderator
|
Убедитесь, что сайт CRM внесен в надежные узлы. Для них разрешено использование XMLHTTP и описанный выше скрипт не будет вызывать проблем с авторизацией
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
30.05.2008, 06:45 | #14 |
CRM
|
Убедитесь что в настройках ИЕ для вашей зоны стоит автоматический вход
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
30.05.2008, 08:35 | #15 |
Участник
|
Цитата:
Убедитесь что в настройках ИЕ для вашей зоны стоит автоматический вход
|
|
30.05.2008, 09:37 | #16 |
Заноза в заднице
|
В свойствах обозревателя броузера. В IE на вкладке Безопастность перечислены основные зоны. Скорее всего у Вас установлен уровень безопасности, принимающий данные только из надежных узлов (зона так и называется - Надежные узлы). Для того, чтобы задать автоматический вход (всего может быть два варианта авто-входа) - нужно нажать кнопку "Другой уровень" ( предварительно выбрав узел), а далее в открывшемся окне отскроллить список, найдя в дереве: узел "Проверка подлинности" - подузел "Вход" - ну а далее выбрать в подузле "Вход" одну из опций входа. Например, у нас стоит "Автоматический вход в сеть только в зоне интрасети". Возможно, что Вы ходите в корпоративную сеть через инет или VPN - тогда Вам нужно скорее всего выбрать другую опцию. Ну а в целом - так.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
30.05.2008, 12:22 | #17 |
Участник
|
Благодарю.
Таковы результаты: Поместил сайт в Надежные узлы. В настройках по-умолчанию стоит "Вход" - "Автоматический вход в сеть с текущим пользователем и паролем". Это решило только проблему выскакивания окна: Цитата:
Данная страница обращается к данным, которые не удается проверить, что вызывает рискованное нарушение безопасности. Продолжить?
|
|
30.05.2008, 12:42 | #18 |
Участник
|
влияет ли на это наличие/отсутствие в строке запроса заголовочных тегов от функции GenerateAuthenticationHeader() ?
|
|
02.06.2008, 07:37 | #19 |
CRM
|
Откуда взялось GenerateAuthenticationHeader?
Если можно, то приведите код, можно без строки запроса, раз нормально она отрабатывается. Может какие-нибудь параметры не указали.
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
02.06.2008, 09:03 | #20 |
Участник
|
Цитата:
Откуда взялось GenerateAuthenticationHeader?
Цитата:
var ownerLookupItem = new Array;
ownerLookupItem = crmForm.all.ownerid.DataValue; var lookupData = new Array(); var bUnitLookupItem= new Object(); var debug = false; if (ownerLookupItem != null) { if (ownerLookupItem[0] != null) { var oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); var serverurl = "http://inftb:5555/"; sGUID=ownerLookupItem[0].id; if (sGUID != null) { var sEntityName="systemuser"; var sAttributeName="businessunitid"; var bUID =""; if(debug) crmForm.all.new_debug.DataValue = sEntityName + " | " + sGUID + " | "+ sAttributeName; bUID = GetAttributeValue(sEntityName, sGUID, sAttributeName); var bUEntityName ="businessunit"; var bUEntityType ="name"; if(debug) crmForm.all.new_debug.DataValue +=bUEntityName + " | " + bUID + " | "+ bUEntityType; var bUName = GetAttributeValue(bUEntityName, bUID, bUEntityType); bUnitLookupItem.id = bUID; bUnitLookupItem.typename = bUEntityName; bUnitLookupItem.name = bUName; lookupData[0] = bUnitLookupItem; crmForm.all.new_businessunit_phonecall.DataValue = lookupData; if(debug) crmForm.all.new_debug.DataValue += " >>" + lookupData[0].id + " | "+ lookupData[0].name; } } else { //alert("crmForm.all.ownerid is Null"); } } function GetAttributeValue(sEntityName, sGUID, sAttributeName) { var xml = ""; xml +="<?xml version=\"1.0\" encoding=\"utf-8\"?>"; xml +="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"; xml += GenerateAuthenticationHeader(); xml +="<soap:Body>"; xml +="<entityName xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sEntityName + "</entityName>"; xml +="<id xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sGUID + "</id>"; xml +="<columnSet xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\" xmlns:q=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q:ColumnSet\">"; xml +="<q:Attributes>"; xml +="<q:Attribute>" + sAttributeName + "</q:Attribute>"; xml +="</q:Attributes>"; xml +="</columnSet>"; xml +="</soap:Body>"; xml +="</soap:Envelope>"; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", serverurl + "/mscrmservices/2006/CrmService.asmx", false); xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2006/WebServices/Retrieve"); xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlHttpRequest.setRequestHeader("Content-Length", xml.length); xmlHttpRequest.send(xml); if(debug) crmForm.all.new_debug.DataValue +=xml; var doc = xmlHttpRequest.responseXML; if(debug) crmForm.all.new_debug.DataValue +=xmlHttpRequest.responseText; var retValue = ""; if (doc.selectSingleNode("//RetrieveResult/q1:" + sAttributeName) != null) retValue = doc.selectSingleNode("//RetrieveResult/q1:" + sAttributeName).text; else { if(debug) crmForm.all.new_debug.DataValue += xmlHttpRequest.responseXML; } return retValue; } |
|
|
|