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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2006, 09:08   #1  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Валюты в CRM
Добрый день всем!
Кто нибудь пытался реализовать валютные прайс листы в системе?
Пока вижу только один способ - добавлять собственные сущности
валюта курс валют валютный прайс лист и позиции по валютному прайс листу и прикреплять все это к заказам и счетам.

Может быть есть какой то способ добавить поле валюта к прайс листу или позиции прайс листа ?
Старый 07.08.2006, 12:04   #2  
SidAnn is offline
SidAnn
Участник
 
31 / 11 (1) +
Регистрация: 25.07.2006
Адрес: moscow
Ходят слухи, что следующая версия системы будет многовалютной!

А пока, можно и скрипты использовать (ограниченно, естественно, только, если на конкретные поля вешать).
Старый 07.08.2006, 17:59   #3  
mystic is offline
mystic
Microsoft CRM Certified Professional
Аватар для mystic
SoftLine
 
160 / 12 (1) ++
Регистрация: 13.07.2004
Адрес: Москва
А откуда слухи? Какие ещё слухи бродят? Что есть почитать по слухам?
Старый 08.08.2006, 09:23   #4  
KomatoZo is offline
KomatoZo
Участник
 
36 / 19 (1) ++
Регистрация: 18.01.2006
По слухам есть почитать разные околоCRMовские блоги. Они англоязычные, но тем не менее. Кстати, на одном из этих самых блогов я видел не так давно что-то как раз по многовалютности.
__________________
"Поживем - увидим", сказал слепой, больной СПИДом.
Старый 08.08.2006, 17:03   #5  
SidAnn is offline
SidAnn
Участник
 
31 / 11 (1) +
Регистрация: 25.07.2006
Адрес: moscow
Цитата:
Сообщение от KomatoZo
Кстати, на одном из этих самых блогов я видел не так давно что-то как раз по многовалютности.
FYI: http://blogs.msdn.com/crm/archive/20...26/679193.aspx

НО ЭТО не слухи)))))

Последний раз редактировалось SidAnn; 08.08.2006 в 17:06.
За это сообщение автора поблагодарили: natterru (1).
Старый 09.08.2006, 05:28   #6  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Цитата:
Сообщение от SidAnn
Чужое решение не подходит, надо что то свое,
и честно говоря так и не понял как они его реализовали.

Неужели никто не пробовал?
Старый 01.03.2007, 18:12   #7  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Тоже буду реализовывать, кто уже эти грабли проехал? Куда грести рассказывайте.
Старый 06.03.2007, 11:29   #8  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
чтобы реализовать мультивалютность, нужно хорошо знать алгоритм работы прайсной машины (ценообразования). А где бы почитать об этом?
Типа этого, но поподробнее: http://blogs.msdn.com/crm/archive/20...25/770666.aspx
Старый 10.03.2007, 20:21   #9  
AndyJ is offline
AndyJ
Участник
 
1 / 10 (1) +
Регистрация: 10.03.2007
Я реализовал многовалютность, но в связке с MS NAV. Курсы формируются в NAV, получаются в MS CRM при формировании заказа. В приниципе, решение получилось достаточно прозрачным. Единственная проблема: трудоемкая работа при программировании в JS, это отняло немало времени.
Старый 14.03.2007, 19:05   #10  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Надо убрать знак валюты в типе money наименования поля. Подскажите как?
Старый 14.03.2007, 19:24   #11  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Создал объект "курсы валют"
права у бухов добавлять и менять:
атрибуты этого объекта: Дата, курс евро, курс доллара.
Во многие объкты надо копировать значение даты и курса да еще и менять значение курса в зависимости от даты. Копировать поля внутри формы легко (js), а это как сделать копирование и подстановку из одной формы в другую ума не приложу... Помогите, кто может... хотя бы примерами похожими на js.
Старый 15.03.2007, 06:08   #12  
Tonuch is offline
Tonuch
Softline Solutions
SoftLine
 
7 / 11 (1) +
Регистрация: 01.06.2006
Адрес: Novosibirsk
С помощью js не реализуешь копирование из одной формы в другую. С помощью workflow можно обновлять значения в связанных объектах, но у workflow есть ограничения (запуск правила на события: create, manual, change state и доступны только объекты типа пользователь). Чтобы скопировать значение из одной сущности в другую надо сервис на .NET, который будет запускаться на onchange поля.
Старый 15.03.2007, 06:38   #13  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Цитата:
Сообщение от natterru Посмотреть сообщение
Надо убрать знак валюты в типе money наименования поля. Подскажите как?
на onLoad:

Код:
function nameLabel (fieldname,  str)
{
    var oLabel = document.getElementById(fieldname+"_c");
    if(oLabel != null)
       oLabel.innerText = str;
}

nameLabel( "totalamount", "Сумма заказа без рублей" );
Старый 15.03.2007, 10:38   #14  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
на onLoad формы сделайте вызов веб службы либо aspx страницы, возвращающей ближайший курсы доллара\ евро на текущую дату.

есть веб страница - получает в заголовке код объекта, возвращает что то типа <nodeid >значение</nodeid >

есть функция на js - вызывает эту страницу

Код:

function GetSingleFromPage (url, nodeid )
{

	var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	xmlhttp.open("post", url, false);
	xmlhttp.send();

	var startTag1 = "<"+nodeid+">";
	var endTag1 = "</"+nodeid+">";
	var start =0;
	var end = 0;

	start = xmlhttp.responseXML.xml.indexOf(startTag1, end) + startTag1.length;

	end = xmlhttp.responseXml.xml.indexOf(endTag1, end+1);
	text = xmlhttp.responseXML.xml.substring(start, end);

	if(text != null)
	{
                   	  return text;
	
	}
	else
	{
		alert(xmlhttp.responseXML.xml);
	}
	return null;
	
}
ну а дальше вызываете функцию и получаете строку, ее конвертируйте в число.

Последний раз редактировалось sam; 15.03.2007 в 10:47.
Старый 26.03.2007, 16:03   #15  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Не совсем понятный код, надо бы побольше примеров на jscript.net посмотреть. Посоветуйте чего почитать?
Старый 27.03.2007, 12:06   #16  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Там все просто, создаете aspx страницу - в своем веб приложении, либо свое веб приложение в visual studio. Эта страница получает какой либо параметр, обрабатывает его и возвращает что нужно вам. Там пишите на c# или vb.net.
Там нужно стереть все из html описания формы и вставить свой код.
что типа такого

Код:
<%@ Import Namespace="CRMadv" %>
<%@ Import Namespace="CRMadv.CrmSdk" %>
<%@ Page Language="c#"%>
<script runat="server">

	protected override void Render(HtmlTextWriter writer) 
    {
		Response.Clear();
		Response.ContentType = "text/xml";
		
		// Load the requested "objecttypename" and "db" from the querystring
	
		if( Request.QueryString["ObjectTypeName"] != null)
		{
			string objecttypename = request.QueryString["ObjectTypeName"];
................обработка.........

	        }
		else
		{
			Response.Write("<error>Не указано имя сущности, для нумерации</error>");
		}
		
    } 

</script>
После этого надо из формы объекта ms crm вызвать эту страницу, для чего и используется функция показанная ранее.

Или можете написать веб сервис и вызывать его, есть пример в Sdk (3.0.4)в разделе
ClientSideScripting\ Accessing Web Services


сам все искал в поисковике,
CrmSdk
http://www.stunnware.com/crm2
http://blogs.msdn.com/crm
http://ronaldlemmen.blogspot.com
Старый 27.03.2007, 17:01   #17  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Попробывал, лезет куча ошибок, от массы прочитанного кода голова пухнет.
Из анализа уже созданного я понял, при старте CRM нужно проверять есть ли курс евро и доллара на текущую дату, если нет, то выдавать пугающее сообщение. Т.е. из сущности "Currency" имеющей grid с формами, где хранятся поля с курсами валют и имя формы = дате курса, т.е имя формы с курсами валют копируется из поля дата курса и = сегодняшней дате для последней формы.

Вот эту последнюю форму и надо сделать текущей и извлечь из нее в глобальные переменные значение полей курсов валют. Для winforms зарача была бы простая, неужели здесь надо городить такой огород, чтобы прочитать значение двух полей?

Последний раз редактировалось natterru; 27.03.2007 в 17:21.
Старый 28.03.2007, 06:45   #18  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Вам собственно что нужно?
Чтобы автоматически считывать ближайший курс на дату?

тогда создаете веб приложение с одной веб страницей, подсоединяетесь к веб службе ms crm на вашем сервере.

В html код страницы копируете примерно то что показывал выше, только пишите в качестве namespace название своего приложения.
В самом коде страницы делайте запрос - QueryExpression - на объект курс валют по дате ближайшей к текущей.
Страница должна возвращать текущий курс валют
Это в конце когда пишете Response.Write

("<currencyondate>"+ваш_курс+"</currencyondate>");

В форме, например заказа, на onload, вызывайте эту страницу через функцию GetSingleFromPage ( "http://ваш_сервер/ваше_приложение/ваша_веб_страница" , "currencyondate") , она вернет вам текущий курс, преобразуйте в число и дальше используйте как вам нужно.

А можно проще, создать отношение между курсом валют и объектами счет\ заказ
Настроить для представления lookup сортировку по убыванию по дате курса
и пусть пользователи сами выбирают курс, текущий всегда будет вверху.
За это сообщение автора поблагодарили: natterru (1).
Старый 28.03.2007, 13:01   #19  
natterru is offline
natterru
Участник
 
129 / 26 (1) +++
Регистрация: 22.01.2007
Адрес: Санкт-Петербург
Спасибо, я все понял, ты настоящий друг! Будешь в Питере с меня пиво! Все что сделал до этого прибил. Сделал сущность "курс доллара" и "курс евро" связал их с продуктом, предложением... и т.д. Понял, что нужно сделать сопоставление. тем более пользователи не должны выбирать курс, он для них только ОДИН - на текущую дату. Наверное надо сделать нередактируемый лук-ап? Не нашел где и как сделать сортировку по дате курса... Надеюсь, что моя песочница когда-нить закончится. О общем мое спасибо уже просто не знает границ!
Старый 28.03.2007, 13:57   #20  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Пожалуйста : )
Сопоставление не нужно - никто же не будет создавать заказы\ предложения из курса валют.

Нужно фильтровать лукап.

на Gotdotnet в разделе crm приводился пример фильтрации лукапа,
писал здесь:
Не знаю поддерживаемая ли это кастомизация, так что на свое усмотрение, у себя использовал - работает.

По дате раньше не фильтровал, сейчас попробовал, вот такой пример:
там главное смотреть как работают условия в фильтрах - это sdk раздел fetch

Код:
// абсурдный пример - в курсе валют при выборе валюты отображаем только валюты дата создания которых позже или равна текущей.

//имя лукапа который нужно фильтровать
var oField = crmForm.all.etk_currency_rate;

// дата по которой нужно фильтровать
var mydate = new Date();

// преобразуем дату в строку формата = Месяц\ день\ год
var strdate = mydate.getMonth().toString()+"\\"+mydate.getDay().toString()+"\\"+       mydate.getYear().toString(); 

// Включаем фильтр -  <entity name='etk_currency'>  пишем код сущности которая должна грузиться из лукапа 
// <condition attribute='createdon' operator='on-or-after' фильтруем по атрибуту дата создания, условие 'on-or-after' - такая же или позже
// value=' " + strdate - как значение подставляем нашу дату

oField.lookupbrowse = 1; 
oField.additionalparams = "fetchXml=<fetch mapping='logical'><entity name='etk_currency'><all-attributes/><filter type='and'><condition attribute='createdon' operator='on-or-after' value=' " + strdate +"' /></filter></entity></fetch> ";
p.s. надо будет отнимать от даты часы чтобы считала с нуля часов текущего дня
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
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
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 4.0 Bookshelf Blog bot Dynamics CRM: Blogs 1 22.01.2009 04:46
Microsoft Dynamics CRM Team Blog: Reports for CRM 4.0 using SQL Server 2008 and Report Builder 2.0 Blog bot Dynamics CRM: Blogs 0 11.11.2008 08:05
Microsoft Dynamics CRM Team Blog: Top 14 Microsoft Dynamics CRM Sites and Downloads Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

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

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

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