17/11/2009

É DIFÍCIL




....

16/10/2009

Reporting Services - Relatório fundo preto.

Bom dia, turma!!

Hoje fui informado pelo Breno meu companheiro de CRM, que o Reporting services tem um pequeno bug na criação de relatórios. Quando o modulo de visualização(Preview) é selecionado o fundo do relatório aparece preto!

Junto com o problema, Breno enviou a solução...

Segue a baixo o "Update Package": Suporte Microsoft

22/09/2009

Java Script / Asp.Net

Turma, bom dia!

Recebi um e-mail com algumas dicas e truques...

JS ASP.NET - Função para obter o valor de algum dos parâmetros da Query String da página.

function getQueryStringParam(name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ) return "";
else
return results[1];
}

JS ASP.NET - Função para Converter o primeiro caractere de toda frase em Maiúsculo.

function UCWords(str)
{
var arrStr = str.split(" ");
var strOut = "";
var i = 0;
var stringValues = "da-de-do-das-dos";
while (i < arrStr.length)
{

if (stringValues.indexOf(arrStr[i].toLowerCase()) < 0)
{
firstChar = arrStr[i].substring(0,1);
remainChar = arrStr[i].substring(1);
firstChar = firstChar.toUpperCase();
remainChar = remainChar.toLowerCase();
strOut += firstChar + remainChar + ' ';
}
else
strOut += arrStr[i] + ' ';

i++;
}
return strOut.substr(0,strOut.length - 1);
}



JS ASP.NET - Adicionar / Remover itens em um DropDownList.

function ClearDropDownList(list)
{
for(i=list.options.length-1; i>=0 ;i--)
{
list.remove(i);
}
}
function addDropDownListOption(list, text, value)
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
list.options.add(optn);
}



JS MSCRM 4.0 - Validação de campo Data via JavaScript.

if (ValidateDate(crmForm.all.requestdeliveryby))
{
// Custom code...
}

function ValidateDate(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var leap = 0;
var err = 0;
var i;
err = 0;
var day = DateField.DataValue.getDate();
var month = (DateField.DataValue.getMonth()+1);
var year = DateField.DataValue.getYear();
DateValue = day + "/" + month + "/" + year;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++) {
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i,1);
}
}
DateValue = DateTemp;
/* Validation of month*/
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
if (day < 1) {
err = 22;
}
/* Validation leap-year / february / day */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
leap = 1;
}
if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 0; day = ""; month = ""; year = ""; seperator = "";
}
if (err != 0)
{
alert("Data Inválida!");
DateField.focus();
}
return (err == 0);
}



JS MSCRM 4.0 - Inserir / Formatar objetos dinamicamente na página do CRM.

with(crmForm.all.new_labelicms)
{
style.border = 0;
style.color = '#6699cc';
style.fonteSize = '7px';
style.fontWeight = 'bold';
style.overflow = 'hidden';
Disabled = true;
DataValue = 'Obs % ICMS: No caso de venda direta...'
}

/* Insert Adjacent Elements */
var server = window.location.host;
var oImg = document.createElement("<" + "img src='http://" + server + "/_imgs/ico/16_alert.gif'" + " />");
var oHr = document.createElement("<" + "HR class='ms-crm-MenuList-Spacer'" + ">");
var oSpn = document.createElement("<" + "span" + ">");
oSpn.innerText = ' Observações';
oSpn.style.fontWeight = 'bold';
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oImg);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oSpn);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oHr);



JS MSCRM 4.0 - AJAX no CRM - Chamada assíncrona em um Web Services Customizado.

function FillUOMProduct()
{
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
var server = window.location.host;
var params = "?productID=" + crmForm.all.productid.DataValue[0].id;
params += "&fields=productnumber,defaultuomid";
var url="http://"+ server+"/WebServicesCRM/Product.asmx/GetProductById"+params;
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.setRequestHeader ("SOAPAction", "http://tempuri.org/GetProductById");
xmlHttpRequest.onreadystatechange = HandleStateChangeProduct;
xmlHttpRequest.send();
}

function HandleStateChangeProduct()
{
if (xmlHttpRequest.readyState == 4)
{
var doc = new ActiveXObject('Microsoft.XMLDOM');
var result = xmlHttpRequest.responseXML.xml;
doc.loadXML(result);
}
}

Dicas JavaScript (ASP.NET & MSCRM 4.0)

Turma, bom dia!

Recebi um e-mail com algumas dicas e truques...

JS ASP.NET - Função para obter o valor de algum dos parâmetros da Query String da página.

function getQueryStringParam(name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ) return "";
else
return results[1];
}

JS ASP.NET - Função para Converter o primeiro caractere de toda frase em Maiúsculo.

function UCWords(str)
{
var arrStr = str.split(" ");
var strOut = "";
var i = 0;
var stringValues = "da-de-do-das-dos";
while (i < arrStr.length)
{

if (stringValues.indexOf(arrStr[i].toLowerCase()) < 0)
{
firstChar = arrStr[i].substring(0,1);
remainChar = arrStr[i].substring(1);
firstChar = firstChar.toUpperCase();
remainChar = remainChar.toLowerCase();
strOut += firstChar + remainChar + ' ';
}
else
strOut += arrStr[i] + ' ';

i++;
}
return strOut.substr(0,strOut.length - 1);
}

JS ASP.NET - Adicionar / Remover itens em um DropDownList.

function ClearDropDownList(list)
{
for(i=list.options.length-1; i>=0 ;i--)
{
list.remove(i);
}
}
function addDropDownListOption(list, text, value)
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
list.options.add(optn);
}

JS MSCRM 4.0 - Validação de campo Data via JavaScript.

if (ValidateDate(crmForm.all.requestdeliveryby))
{
// Custom code...
}

function ValidateDate(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var leap = 0;
var err = 0;
var i;
err = 0;
var day = DateField.DataValue.getDate();
var month = (DateField.DataValue.getMonth()+1);
var year = DateField.DataValue.getYear();
DateValue = day + "/" + month + "/" + year;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++) {
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i,1);
}
}
DateValue = DateTemp;
/* Validation of month*/
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
if (day < 1) {
err = 22;
}
/* Validation leap-year / february / day */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
leap = 1;
}
if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 0; day = ""; month = ""; year = ""; seperator = "";
}
if (err != 0)
{
alert("Data Inválida!");
DateField.focus();
}
return (err == 0);
}

JS MSCRM 4.0 - Inserir / Formatar objetos dinamicamente na página do CRM.

with(crmForm.all.new_labelicms)
{
style.border = 0;
style.color = '#6699cc';
style.fonteSize = '7px';
style.fontWeight = 'bold';
style.overflow = 'hidden';
Disabled = true;
DataValue = 'Obs % ICMS: No caso de venda direta...'
}

/* Insert Adjacent Elements */
var server = window.location.host;
var oImg = document.createElement("<" + "img src='http://" + server + "/_imgs/ico/16_alert.gif'" + " />");
var oHr = document.createElement("<" + "HR class='ms-crm-MenuList-Spacer'" + ">");
var oSpn = document.createElement("<" + "span" + ">");
oSpn.innerText = ' Observações';
oSpn.style.fontWeight = 'bold';
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oImg);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oSpn);
crmForm.all.mit_labelicms.insertAdjacentElement("BeforeBegin",oHr);

JS MSCRM 4.0 - AJAX no CRM - Chamada assíncrona em um Web Services Customizado.

function FillUOMProduct()
{
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
var server = window.location.host;
var params = "?productID=" + crmForm.all.productid.DataValue[0].id;
params += "&fields=productnumber,defaultuomid";
var url="http://"+ server+"/WebServicesCRM/Product.asmx/GetProductById"+params;
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.setRequestHeader ("SOAPAction", "http://tempuri.org/GetProductById");
xmlHttpRequest.onreadystatechange = HandleStateChangeProduct;
xmlHttpRequest.send();
}

function HandleStateChangeProduct()
{
if (xmlHttpRequest.readyState == 4)
{
var doc = new ActiveXObject('Microsoft.XMLDOM');
var result = xmlHttpRequest.responseXML.xml;
doc.loadXML(result);
}
}

16/09/2009

Problemas com alteração de rótulos

Os rótulos não são alterados quando você publica uma personalização para os rótulos depois de converter os rótulos no Microsoft Dynamics CRM 4.0...

Causa: Esse problema ocorre porque o Microsoft Dynamics CRM 4.0 não pode publicar as seqüências FormXml para as entradas que usam a linguagem na base.

Para contornar esse problema, execute estas etapas:
Faça logon no cliente da Web do Microsoft Dynamics CRM.
Verifique se a configuração de idioma é definida para o idioma base.
Clique em configurações , clique em personalização e, em seguida, clique em Personalizar entidades .
Clique duas vezes na entidade para o qual você deseja converter os rótulos para o idioma nonbase.
Clique em formulários e modos de exibição .
Clique duas vezes em formulário .
Clique duas vezes em uma guia ou um campo no formulário, alterar o rótulo da guia ou do campo e, em seguida, clique em OK .
Clique em Salvar .
Clique duas vezes na guia ou o campo, alterar o rótulo de volta para o rótulo original e, em seguida, clique em OK .
Clique em Salvar e fechar .
Clique em ações e em seguida, clique em Publicar .
Após seguir essas etapas, os rótulos do formulário são exibidos no idioma nonbase conforme o esperado.

fonte: Support Microsoft

07/08/2009

Universidade de Sorocaba escolhe CRM da Microsoft para aumentar satisfação dos alunos

A equipe de Tecnologia da Informação da Universidade de Sorocaba (Uniso) recebeu um desafio: mapear e avaliar o retorno dos chamados ao help desk. Para isso era necessário adotar uma ferramenta que efetuasse esse levantamento de forma rápida e que servisse como um banco de dados de soluções dos problemas. A instituição optou pelo Microsoft Dynamics CRM, que registra as informações em seu módulo de serviços. O resultado foi uma gestão eficiente dos chamados, produtividade e satisfação dos usuários. Com base na prática bem-sucedida na área de TI, o CRM foi expandido para outros departamentos.

Com um parque de mais de mil computadores, espalhados pelos diversos setores da universidade, mapear os problemas dos PCs e sugerir soluções de maneira rápida tornaram-se fundamentais para elevar o nível de satisfação dos usuários da Uniso. Também não existia uma maneira prática e eficaz de medir a produtividade e eficiência da equipe, não havia um sistema com os processos arquivados. Diante desse cenário, a área de tecnologia decidiu adotar uma ferramenta que, além de registrar os chamados e permitir a visualização de todo o ciclo de suporte, pudesse servir como um banco de dados de problemas e soluções.

O Microsoft Dynamics CRM foi escolhido por atender os requisitos que a Uniso buscava. "Com o CRM, além de identificar onde estavam os pontos críticos, conseguimos estabelecer um banco de soluções, para agilizar processos", conta Maurício Rodrigues Gomes, gerente de TI da Uniso. A plataforma possui um módulo de serviços, no qual são armazenadas todas as informações relativas ao help desk.

"Se antes as solicitações eram feitas de maneira informal, por telefone. Hoje temos registro de tudo e conseguimos atender aos chamados rapidamente e ainda avaliar o desempenho do atendimento", comemora Gomes. A implementação do CRM, realizada com o auxílio da Tridea, parceira Microsoft, trouxe uma nova cultura para a instituição. Os procedimentos deixaram de se apoiar somente em pessoas, para se basear em processos claros e eficazes.

A companhia parceira também ajudou no processo de treinamento dos funcionários da área de TI. De acordo com Rafael Lopes, gerente de contas da Tridea e responsável pelo treinamento na Uniso, foram 40 horas de capacitação. "Com o uso dos materiais oficiais da Microsoft conseguimos alcançar um resultado positivo", conta.

Gomes afirma ainda que a solução permitiu aos gestores de tecnologia da universidade desenvolver e analisar relatórios gerenciais com mais facilidade. "Contamos com uma plataforma de Business Inteligence (BI) que nos permite aumentar a visibilidade dos negócios, melhorando a tomada de decisão, consequentemente, contribuindo para o bem da instituição", analisa.

De acordo com o gerente de TI, o maior benefício com a utilização da ferramenta foi a atualização do parque tecnológico nas áreas acadêmica e administrativa. "Com o mapeamento das reclamações e dificuldades de alunos, professores e outro usuários, identificamos problemas e os solucionamos de maneira eficiente."

A relação entre o setor de tecnologia e as demais áreas também melhorou, graças à agilidade de atendimento proporcionada pelo sistema. "Conquistamos a cultura de bom relacionamento com todos os usuários. Atualmente, as atividades registradas no CRM geram relatórios que nos ajudam nas tarefas do dia-a-dia", avalia. Os técnicos ganharam em produtividade, uma vez que passaram a contar com um banco de soluções. Com isso, a redução no tempo de atendimento diminuiu em 50%.

Fonte: blogs.msdn.com

Microsoft CRM 3.0: Lemonade Stand



Perfeito! heheheh!

Movendo a Base de dados do Microsoft CRM 4.0 para outro servidor

Boa tarde!

Em um único dia consegui experimentar sensações de medo e felicidade extrema!
Chego à empresa feliz, pois hoje é sexta-feira e logo sou surpreendido com a seguinte pergunta: - “É muito difícil mover a base de dados do CRM para outro servidor???”....

Sinceramente não tinha a mínima idéia de como faria isto (sensação de medo), mais uma vez o “senhor sabe tudo” Google me ajudou. Com uma pesquisa simples “How to move the Microsoft Dynamics CRM 4.0 deployment” cheguei à solução no suporte da Microsoft (sensação de felicidade)!

http://support.microsoft.com/default.aspx?scid=kb;en-us;952934&sd=rss&spid=12976

Se for traduzir usando a ferramenta do site lembrem-se:
“IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas.“

Exatamente, tomem cuidado com códigos traduzidos para português!

Bom fds!

Sites relacionado ao Microsoft CRM

Boa tarde!

Foi publicado mês passado no blog MSDN, uma lista com os melhores sites e downloads de ferramentas relacionadas ao Microsoft CRM!

http://blogs.msdn.com/crm/archive/2009/07/24/microsoft-dynamics-crm-top-sites-and-downloads.aspx

Espero que aproveitem bem!
Abraços.

27/07/2009

O separador de palavras do idioma 1046 não está instalado

Ao tentar instalar o CRM 4.0 em português no SQL Server 2005 em inglês, aparece a seguinte mensagem: "O separador de palavras do idioma 1046 não está instalado".

Sei que isto não impede a instalação do CRM, mas como duvidas são duvidas resolvi “Googlar”.

Há solução é bem simples, encontrada no próprio suporte da Microsoft.

Suporte Microsoft: http://support.microsoft.com/kb/908441/pt-br


Qualquer duvida deixe um comentário.

Abraços