Montag, 17. August 2009

CRM Picklist generator updated - supporting values, premade lists



The CRM Picklist generator has been updated and now supports not only generating labels but also setting values. I dropped 3.0 compatibility, because it was used very rarely. In addition I have added some ready to use examples that might be helpful. Examples provided "as is". Completeness of the information and data provided in the given cases and examples is excluded.

If you have suggestions for new lists you'd like to see, leave a comment.

Some premade lists:

International
  • ISO Countries

  • Hours of the day, 30 min

  • Car Brands / Automarken

  • List of years 1900-2009

  • Business Software packages

  • Windows Versions



English
  • Countries of the world

  • US States long

  • US States short

  • British counties

  • Nationalities

  • Main Industries

  • Salutation

  • Medical persons

  • Languages

  • Medical Fields

  • Hobbies

  • Sports & Hobbies

  • Natural desasters



Deutsch
  • Länder der Welt

  • Anrede

  • Bundesländer Deutschland

  • Berufliche Funktionen

Dienstag, 07. April 2009

Agent Communications Panel for OCS and CRM



Obviously Microsoft is heading full speed towards tight integration of strategic business applications. Now they have released a FREE addon that "integrates Microsoft Dynamics CRM with Microsoft® Office Communications Server 2007 R2 (OCS) and enables users to manage their communications (make calls, receive calls, conference, chat, and monitor presence information) from their Dynamics CRM Web client." Compare that to other CRM solutions where you might have to spend a lot of dough to get such a functionality. Nice²

Deployment seems rather easy, download here:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0d689f13-4953-40ea-995e-49469dae559e

Gonna check and let you know more soon....

Donnerstag, 05. März 2009

Pimp your Duplicate Detection with Phonetic Matching (Soundex)




Ever wanted to get some more "fuzziness" in your detection rules? Then Soundex as a phonetic algorithm will be your friend. There are some caveats but for some applications it might be useful. The nice thing is, that it's super-easy to implement.

Let's consider two options (in your project you might want to go for a "best of both worlds" approach by using both):

Method1 Clientside: Generating the Soundex-Code at the onSave event
Pro: Quick and easy implementation
Con: Will not work on imports or Bulk Operations

Step by step:

1) add a custom field "new_soundex_lastname" to the desired entity (lead, account, contact or any custom entity)



2) add the field to the form

3) add this onSave event:
function soundex(str) {
// original from http://phpjs.org/functions/soundex:520

var i, j, l, r, p = isNaN(p) ? 4 : p > 10 ? 10 : p < 4 ? 4 : p;
var m = {BFPV: 1, CGJKQSXZ: 2, DT: 3, L: 4, MN: 5, R: 6};
var r = (s = (str+'').toUpperCase().replace(/[^A-Z]/g, "").split("")).splice(0, 1);
var sl = 0;

sl
= s.length;
for (i = -1, l = sl; ++i < l;) {
for (j in m) {
if (j.indexOf(s[i]) + 1 && r[r.length-1] != m[j] && r.push(m[j])) {
break;
}
}
}

return r.length > p && (r.length = p), r.join("") + (new Array(p - r.length + 1)).join("0");
}

crmForm.all.new_soundex_lastname.DataValue
=soundex(crmForm.all.lastname.DataValue);

4) add a duplicate rule & publish


5) enjoy life without unneccessary duplicates ;-)

Method 2 Plugin: Firing at Pre-Create event
Pro: Works on Imports
Con: A bit more work

You can also create a plugin that generates the soundex-code, just use an example on how to do that.

Donnerstag, 12. Februar 2009

Re-Release of Update Rollup 2 - V2

After experiencing issues with Update Rollup 2 on several servers we decided to uninstall it and stay with Rollup 1. One bug was that servermessages were encrypted and (almost) unreadable. It could be reproduced on several servers using the german version of CRM 4.0.






Due to that we opened a Microsoft supportcase. In the meantime a new version of Rollup Update 2 - "V2" has been released. The issues regarding the servermessages are gone.


So watch out to get the re-released version when planning to install it! You can tell by filename (contains -V2) and in the setupwindow.



Get the re-release here:




Donnerstag, 24. April 2008

Create "real" CRM 4.0-Style form-buttons in 5 minutes


There are several ways to add custom buttons onto a crm form (apart from the boring method of adding buttons via ISV-config 8-):
1. use an iFrame and an external page
Drawback: no offline availability

2.do some DOM-injection and create the buttons at runtime
Drawback: a bit tricky with placement and so on

And then there is:
3. Adis idea to transform a textattribute into a button.
The nice thing is, that you can use the normal formeditor to place it.

So I took the idea further and applied the CRM 4.0 styles to make it look 100% native and more generic to use. (it even reacts to mousedown as expected - hehe ;-)

What to do:
  1. create a textattribute (you can set searchable to "no" so the attribute doesn't show up in advanced search


  2. put it on the form
  3. make it "readonly" (Thanks Marcel!)
  4. copy the sourcecode into the onLoad event.


  5. replace the fieldname "bwt_button1" in the last line with your attributename.

  6. create your functions to tell the button what to do when clicked.


  7. have fun


source:

//////////////////////////////////////////////////////
//////////////////////////////////////////////////////

//CRM 4.0-Style button creator
//Creates a Button from a Textattribute.
//For every Button you need, create a nText Attribute and place it on the Form
//mario raunig, world-direct 04/2008

function create_button_from_textattribute(fieldname, buttontext, buttonwidth,clickevent)
{
functiontocall=clickevent;
crmForm.all[fieldname].DataValue = buttontext;
crmForm.all[fieldname].style.borderRight="#3366cc 1px solid";
crmForm.all[fieldname].style.paddingRight="5px";
crmForm.all[fieldname].style.borderTop="#3366cc 1px solid";
crmForm.all[fieldname].style.paddingLeft="5px";
crmForm.all[fieldname].style.fontSize="11px";
crmForm.all[fieldname].style.backgroundImage="url(/_imgs/btn_rest.gif)";
crmForm.all[fieldname].style.borderLeft="#3366cc 1px solid";
crmForm.all[fieldname].style.width=buttonwidth;
crmForm.all[fieldname].style.cursor="pointer";
crmForm.all[fieldname].style.lineHeight="18px";
crmForm.all[fieldname].style.borderBottom="#3366cc 1px solid";
crmForm.all[fieldname].style.backgroundRepeat="repeat-x";
crmForm.all[fieldname].style.fontFamily="Tahoma";
crmForm.all[fieldname].style.height="20px";
crmForm.all[fieldname].style.backgroundColor="#cee7ff";
crmForm.all[fieldname].style.textAlign="center";
crmForm.all[fieldname].style.overflow="hidden";
crmForm.all[fieldname].attachEvent("onmousedown",push_button);
crmForm.all[fieldname].attachEvent("onmouseup",release_button);
crmForm.all[fieldname].attachEvent("onclick",functiontocall);
}

function push_button(){
window.event.srcElement.style.marginLeft="1px";
window.event.srcElement.style.marginTop="1px";
}

function release_button(){
window.event.srcElement.style.marginLeft="0px";
window.event.srcElement.style.marginTop="0px";
}

// tell the button what to do
function testfunction()
{
alert('Ta-da!');
}

// create the button
create_button_from_textattribute('bwt_button1', 'What a nice CRM 4.0 Button','184px',testfunction);

//////////////////////////////////////////////////////
/
/////////////////////////////////////////////////////

Mittwoch, 16. April 2008

This year's "CRM Jahrestagung 2008"



Also this year we could showcase one of our projects at the annual "CRM Jahrestagung" which is organized by Businesscircle and considered the most important CRM-Event in Austria. Amidst other speakers from companies such as "D. SWAROVSKI & CO", "Nestlè Nespresso", "Telefònica" and "Dresdner Bank" I could talk about our current project for BWT. Project Manager Markus Nachtmann and me focussed on the challenges of user adoption and training. We also gave our solution a name (Jeannie) to be able to blame someone, if it doesn't work as expected ;-)


PS: And yes, you can ask me how we got Jeannie into the left navigation area.

Montag, 31. März 2008

CRM Picklist Generator is 1 year old - and 4.0 compatible


One year has passed and - as tiny as it might be - it seems that my tool to save time when creating large picklists has proved to be pretty handy for many of you out there. It has been used more than 1.400 times up to now by visitors from 71 countries, from New Zealand to Ecuador and 700 cities, from Wellington to Nanaimo. As we are working on 4.0 projects I decided to make it compatible. It was just a minor that distinguishes 3.0 from 4.0 picklists in the export-XML. What is missing in 4.0 is the <options nextvalue="...">-tag. Have fun and drop me a line if you like it.



You can get to the tool here and see how to use it in the original post.