Home | Contact Us

Powered by Blogger

Friday, August 28, 2009

Are Real Estate Companies Starting to Embrace CRM?

Jim Young has written a nice article on the Realcomm Advisory asking whether a bad economy can positively impact Real Estate IT spending. It’s definitely worth a read and parallels my own thoughts and experiences in the world of CRM and commercial real estate, especially lately.

Having a few grey hairs ourselves - muddling through the “dot-bomb” of 01-03 and now “whatever-they-will-call-this” of 07-present, setting everything else aside, it has been interesting seeing how real estate companies have responded to these conditions. In early ’07 and before, as a CRM solution provider we came across two types of prospects: those who were doing so many deals they didn’t need nor want to slow down to address internal systems, and those who had to because of external factors (usually regulatory) and had big budgets to do it.  Neither made for an ideal environment for a new CRM system, as the change agent was usually external. Successful CRM must come from an internally driven mandate.

Now the rules have changed in a big way. Talent is walking out the door (for many reasons) and the organization’s corporate memory with it. Those still in place are finding they have to do more with less. Brokerage and service companies are being held to a higher standard by their customers as they have to actually deliver on the promises they made when landing the customer. Property owners are working hard to reduce tenant churn. We’ve even seen the end users (brokers/agents) jump on management and ask for better systems that address inefficiency and communication roadblocks.

When the change agent comes from within, as it seems to be trending, it is much easier for a CRM solution provider to do business. Our client is now more focused on the end user and their end customer in terms of system design and requirements. The end user is more open to the culture change of information sharing and the factors for success are much more measurable. The only thing missing from the equation in this new economy is, as I’m sure you can guess: money.

When recovery comes to commercial real estate, it will be just as interesting to see how they respond. Will companies finally address their customer relationship management systems, or will it return to being about the deal? I believe it will be the former.

Tuesday, August 25, 2009

It’s Hotter’N Hell at Ascendix

Seven riders from “Team Ascendix” rode in the Hotter-n-Hell Hundred in Wichita Falls, TX on Saturday, August 29th.


Team JerseyClick Here to Read About the Hotter’N Hell


They worked and trained hard for the big race. We sent them all in style and comfort in a deluxe RV the night before for an early start to the big race.

All finished strong and unscathed and had a great time at the event. We'll see if we can't get 10 participants in next year's race!



Thursday, August 20, 2009

SRS Real Estate Partners Select Ascendix Real Estate Advantage

Click Here To Read The Press Release

SRS Real Estate Partners has chosen Ascendix Technologies' Real Estate Advantage ™ as the foundation for their customized CRM and enterprise reporting platform.

Dallas, TX (PRWEB) August 20, 2009 -- SRS Real Estate Partners, the nation's largest retail real estate firm, announced today that they have chosen Ascendix Technologies' Real Estate Advantage ™ as the foundation for their customized CRM and enterprise reporting platform. The new system will serve as the basis for a comprehensive solution that will support business processes, streamline workflow, and integrate with existing accounting and business intelligence applications.

Technology has always played an important role at SRS Real Estate Partners. Prior to partnering with Ascendix, SRS had been utilizing a combination of custom applications designed in-house and various Microsoft technologies. "Because we have always believed an industry-specific solution, uniquely curtailed to our business would yield the best results, we have always looked internally for our CRM and transaction management solutions," explained Dondi Markham, Senior Enterprise Architect of SRS Real Estate Partners. "By implementing Real Estate Advantage ™, we are now able to have that custom solution, specifically tailored to meet our business needs, without all of the overhead associated with maintaining a large IT staff."

In addition to the advantages associated with a customized application built specifically for the real estate industry, the firm determined it was of the utmost importance to find a solution that would take advantage of their existing investment in Microsoft technologies. "We wanted an application that would make the most of our past investments while taking us into the future," SRS Chief Operating Officer, Drew Kiesling said. "Real Estate Advantage ™ allowed us to do just that. By moving to a solution built on the Microsoft CRM platform and operating inside Microsoft Outlook, we anticipate greater user adoption, greater productivity, and ultimately, greater service to our clients."

"Our goal is to always go the extra mile to provide our clients with the best service possible. Our partnership with Ascendix provides us with the tools we need to reach that goal," affirmed Clay Smith, President and CEO of SRS Real Estate Partners.

About SRS Real Estate Partners
The evolution of Staubach Retail into SRS Real Estate Partners brings retail specialists in 20 offices nationwide to this new name with a strong heritage. Clients of SRS Real Estate Partners have a competitive edge with the full range of services which include tenant representation, landlord representation, land brokerage, disposition services, investment services, lease administration, and managed services. More information can be found at www.srsre.com.

About Real Estate Advantage™
Developed on the award-winning Microsoft Dynamics CRM 4.0 platform, this solution allows real estate companies to benefit from a truly enterprise-capable, flexible and customizable business platform without having to spend a great deal of up-front time and money designing it for their industry. The solution leverages the tools organizations already use, including Microsoft Outlook, Excel, Word, Virtual Earth and SharePoint, improving the intuitiveness and adoption rates often plaguing CRM implementations or point applications.

About Ascendix Technologies, Inc.
Founded in 1996 in Dallas, TX, Ascendix Technologies, Inc., is a Microsoft® Certified Gold Partner and solution provider that focuses solely on the implementation of CRM systems for companies in both the mid and enterprise market space. In addition to commercial real estate, Ascendix has vertical solutions for capital markets, alternative investment products, and financial services. For more information on Real Estate Advantage, visit www.advantageworks.com. For more information on Ascendix, visit www.ascendix.com or contact them at 1-888-Find-CRM.

Tuesday, May 26, 2009

Real Estate Advantage Implementation Named as Finalist for Realcomm’s 2009 Digie Award

After reviewing hundreds of nominations, Realcomm has announced the finalists for the prestigious Digital Impact “Digie” Award. Ascendix is pleased to announce that our client, Highwoods Properties has been named a finalist under the category “Best Use of automation” for a property owner in their use of Real Estate Advantage for Microsoft Dynamics CRM.

Read the Realcomm press release here

Highwoods worked with Ascendix to create an information bridge from lease and property data in their ERP back-office system to the prospect and tenant data residing in Outlook, Excel spreadsheets and sticky notes. The vision of their CIO, Art McCann was a 360 degree view of their prospect, tenant and broker relationships - from initial inquiry to lease renewal. Renewal processes have been automated, marketing and lead follow up has been standardized and forecasting and revenue planning has become much more visible and timely to the management team.

*Update*

The winners were announced on Tuesday, June 23rd, and although our implementation did not win the category, we remain very pleased and proud to have been named a top 3 finalist.

Although our solution for commercial real estate was first released in early 2007, and then on the Microsoft CRM 4.0 platform in June, 2008, we are still somewhat of a newcomer in this market and our clients are really starting to see the return on their investment in 2008 and 2009. We are in the process of building some great case studies from our 2008 implementations and are looking forward to making those available soon. We are also in the process of implementing Real Estate Advantage at several other top national brand companies this year and look forward to sharing those success stories in 2010.

Wednesday, March 25, 2009

Time to go bald again, 2009 edition!

Friends, Family and Colleagues;

Thanks to the donations you made on my behalf these past three years, my team and I have helped raise over $15,000 for children’s cancer research. Just from a handful of us, our friends, and people like you who have supported us.

Well, this year the march goes on. Once again we will shave our heads in solidarity with children who have cancer and typically lose their hair during treatment. But this year, I will personally match the funds you donate on my behalf.

So please help support this worthy cause once again. It doesn’t matter if its five dollars or five hundred, every little bit counts. And it’s tax deductible!

Visit my fund raising site

Find out where the money goes

View Pictures from last year’s event

Donate here

Thank you again. As one of the members on my team has said, for us it’s a choice (and I’ll add, some good, clean fun), but for cancer patients, it’s a matter of survival.

For those of you in Dallas, We're shaving at 3:00 this Saturday, the 28th! We will probably arrive at Trinity Hall at around 2:00 or 2:30 for some liquid courage and then let the shaving begin.

Todd

Labels: ,

Thursday, February 19, 2009

The "Top 35 People to Watch" in 2009

We at Ascendix would like to congratulate our friend and our client, Clint Osteen, CIO of Granite Properties, for making Realcomm's "Top 35 People to Watch" in 2009.

Congrats, Clint!!

Friday, December 19, 2008

Using the Microsoft CRM Workflow Engine to Enhance your Mobile Experience

The workflow engine in Microsoft CRM 4.0 is quite a versatile toolkit and can do many things that requires programming in other CRM packages. The following is a practical example of something that we have set up in our production system that has really enhanced the use of information in a mobile environment.image

In this example, we'll focus on Outlook tasks. When referencing a task in Outlook or on your mobile device, wouldn't it be nice if the contact information was readily available in your task, especially if that task required calling, visiting or mailing something to that person. Well, the low tech solution always exists - copy the contact information into your task and bingo.

Or, leverage the power of your CRM system and ensure this will happen automatically with just two quick clicks.

First, while in Outlook, schedule your task. In this case, we want to remind ourselves to do some research on a prospect prior to a visit. Since we're in the business of providing solutions to commercial real estate companies, we'll call this task "Do research on Thompson Brokerage and Grill. Of course we use Set Regarding to link to the company.

Then we close our task and move on with our day.

Then, several days later when the task is due, when we open the record in Outlook, Outlook Mobile, or our Blackberry device, we see:

image

All the user had to do was reference the task to the CRM account, contact, deal or any other CRM entity you define. The workflow takes it from there. Based on the rules of the workflow, it analyzes what type of record to which this task has been regarded, then merges in the appropriate information.

 image

In the above example, we first test to see whether the task is regarded to an account, a lead or a contact. (You could just as easily add cases for deals/opportunities, leases, properties, listings, etc.

Then, the workflow merges in the data as you see fit:

image

This can be used for other Outlook activities such as appointments, or perhaps even more useful, the contact description. By using workflow to merge in important data in your CRM system into the contact's description field, you will be able to reference that information while viewing in your mobile device as well.

Wednesday, December 17, 2008

Merry ACX-Mas from Ascendix!

Our front door security cameras happened to capture some footage of some tree trimming festivities here at Ascendix. Hopefully nobody figures out Ive posted these on our blog...

Enjoy...


Wednesday, July 09, 2008

2008 President's Club, Ctd.

Press release will hit the wire in the next 24 hours.

Posted here.

 

FOR IMMEDIATE RELEASE

Ascendix Named to 2008 Microsoft Dynamics President’s Club
Microsoft Honors Ascendix Technologies for Outstanding Customer Commitment and Sales Achievement

Dallas, Texas — July 10, 2008 — Ascendix Technologies has been named to the 2008 Microsoft Dynamics President’s Club, receiving recognition from Microsoft Corp. for its dedicated commitment to customers. This honor reflects Ascendix’s success in extending the Microsoft Dynamics platform to drive business advantages in companies worldwide.

The recognition came during the Microsoft Worldwide Partner Conference 2008 in Houston. The elite club recognizes the top 5 percent of Microsoft Business Solutions partners worldwide and their constant dedication to delivering solutions that meet their customers’ unique needs, active pursuit of product and technological advancement, and impressive sales performance.

“Microsoft is proud to congratulate Ascendix on being named to this year’s Microsoft Dynamics President’s Club,” said Doug Kennedy, vice president, Microsoft Dynamics Partners. “Ascendix not only has demonstrated a high level of product expertise, but also has provided a superior level of service and commitment to our Microsoft Dynamics customers, ultimately contributing to the overall success of Microsoft Dynamics and companies worldwide.”

Ascendix helps companies across the United States realize the benefits of their investment in Microsoft Dynamics CRM. With 12 years of exclusive focus on the implementation of CRM and sales force automation systems, Ascendix has completed hundreds of successful implementations for small, mid-market and enterprise companies in real estate, financial services, investment products and manufacturing, including a multiple-thousand-user deployment for a Fortune 500 firm.

In late 2006, Ascendix achieved ISV certification for Real Estate Advantage, an integrated solution based on Microsoft Dynamics CRM for commercial real estate companies. Since the release, Ascendix has helped property owners, REITs, and full-service brokerages as they leverage the full value of their Microsoft investments and achieve the enhanced customer service, productivity and operational efficiency that promote growth and competitive advantage.

“I’m proud for our Ascendix team members,” added Todd Terry, managing partner for Ascendix. “Two years ago we made a key, strategic investment in the Dynamics platform to bring our verticals to market, which required a considerable amount of investment in terms of time, effort and money. Reaching President’s Club validates our effort, but more importantly our customers have benefitted greatly. It has enabled us to more efficiently and effectively provide the tools that help our customers execute their strategies for customer relationship management. Whether we are implementing Microsoft CRM as a part of our real estate vertical or for a company in the insurance industry, the highly configurable Dynamics platform has streamlined our efforts and allows us to spend more time with our customer on high-value activities such as workflow configuration or integration with financial systems.”

About Ascendix Technologies, Inc.
Ascendix Technologies, Inc., a Microsoft® Certified Gold Partner, is a privately held corporation located in Dallas, TX. Founded in 1996 by Todd Terry and Wes Snow, the company is celebrating its 12th year in business focused solely on the implementation of CRM systems for companies in both the mid and enterprise market space. In addition to commercial real estate, Ascendix has vertical solutions for capital markets, alternative investment products, and financial services. For more information on Real Estate Advantage, visit http://www.advantageworks.com. For more information on Ascendix, visit http://www.ascendix.com or contact them at 1-888-Find-CRM.

Thursday, July 03, 2008

2008 President's Club

Well we at AdvantageWorks, by virtue of our sister company, Ascendix, are very pleased to be officially recognized by Microsoft as a member of their 2008 President's Club.

Membership in the President's club means we have met a variety of conditions and qualifications, including product sales and service, that places us in the top 5% of partners across the globe.

Congratulations to the members of the Ascendix and AdvantageWorks' team. They definitely earned it.

Wednesday, June 11, 2008

Realcomm 2008

Is another year in the books already? Seems like we were wrapping up Realcomm Boston just about 6 or 8 months ago. Here we are again, but this time in sunny San Diego, meeting and greeting the movers and shakers in the technology space for commercial real estate.

This year we are participating in 2 panel discussions and will of course be presenting our solution during one of the sessions.

Microsoft based solutions are really starting to make some ground into the commercial real estate space - as evidenced by Microsoft's increased participation in this year's event. Real Estate firms are especially starting to realize the benefit that front office and CRM solutions bring to their enterprise. With increasing energy costs and increasing availabilities, commercial real estate firms are putting the focus on vacant space and any inefficiencies in the process of acquiring or keeping tenants. Trying to achieve these objectives without technology, such as CRM, is an unnecessary, uphill battle.

RealComm2008

Ascendix Account Manager Greg Moser and client, Highwoods CIO Art McCann (a member of Realcomm's "Top 35 People to Watch in 2008") take a quick break in the conversation to pose for a picture in our booth.

Labels: , , ,

Saturday, May 31, 2008

Ascendix Technologies Announces the Release of Real Estate Advantage™ for Microsoft Dynamics CRM 4.0

(For immediate Release)

Dallas, Texas (June 1st, 2008) – Ascendix Technologies is pleased to announce the release of Real Estate Advantage 4.1 for the Microsoft Dynamics CRM 4.0 platform.

“Our solution for the commercial real estate industry just got a great deal more powerful,” remarked Todd Terry, CTO and Managing Partner for Ascendix. “The 4.0 release has a host of new features, enhancements and capabilities that directly benefit the complex needs of the real estate professional. The enhancements in the platform have enabled us to bring an even richer offering to brokers, leasing agents, and asset managers; especially those companies which require globally scaled, multi-lingual, multi-currency implementations.”

Along with enhancements for the global enterprise, the Dynamics 4.0 platform adds new functionality for data management, duplication prevention, user-driven ad hoc reporting and an even deeper integration with the Office suite.

“Real estate professionals spend their entire day in Outlook and Office. Real Estate Advantage is embedded in Outlook, which means the user is one click away from managing deals, interacting with customers, or running reports,” added Terry. “When a user has to launch and login to another application, adoption rates are already at risk.”

Microsoft has also embedded their enterprise-class workflow engine in this release with Windows Workflow Foundation. This workflow system is an ideal engine for lease transmittal and approval processes and complex acquisition and disposition processes, and serves as an ideal tool for enterprise notification mechanisms. “Users are kept abreast of critical events, such as lease option expirations or a fast-approaching deadline for a 1031 investment,” added Terry.

Ascendix has also added new enhancements for Real Estate Advantage with this release, which include:

  • Enhanced functionality for managing multi-family properties and deals
  • Deeper integration with Microsoft Virtual Earth for mapping multiple properties with embedded property data and images
  • Improved quick searching with the ability to save custom searches, making it easier to get to data within the system
  • Multiple images allow for the tracking of a complete library of photos in JPG, GIF or other file formats related to a property
  • In-grid editing in the Microsoft grids streamlines the updating of multiple records at a time without losing context in the application
  • Prospect/investor/broker matching to deals and properties based on buying preferences

Ascendix will be demonstrating the Real Estate Advantage solution at RealComm in San Diego on June 9th – 11th. Contact Carolyn Pachall at 972.889.8089 ext 325 for discount conference rates.

About Ascendix Technologies – Ascendix Technologies, Inc., a Microsoft® Certified Gold Partner, is a privately held corporation located in Dallas, TX. Founded in 1996 by Todd Terry and Wes Snow, the company is celebrating its 12th year in business focused solely on the implementation of CRM systems for companies in both the mid and enterprise market space. In addition to commercial real estate, Ascendix has vertical solutions for capital markets, alternative investment products, and financial services. For more information on Real Estate Advantage, visit www.advantageworks.com. For more information on Ascendix, visit www.ascendix.com or contact them at 1-888-Find-CRM.

Monday, March 31, 2008

St Baldrick's 2008

This is our company's second year to participate in St Baldrick's day, where a few of us agree to raise money for research for children's cancer by taking donations on our heads (so to speak). Its a great organization and a great cause. And it's a fun excuse to see what you look like bald.

There were 5 brave souls who volunteered from our company this year. We tagged ourselves the "Smooooth Operators" and should meet our team goal of raising $5000 for the cause.

Enjoy the slideshow of the event:

Monday, March 03, 2008

AdvantageWorks for Microsoft Dynamics CRM 4.0

AdvantageWorks is excited to announce the availability of our full product line for Microsoft Dynamics CRM 4.0.  From our Split View that brings data to the user where they need it, to our Editable Grid allowing data to be edited in place, our products enhance the usability of Microsoft Dynamics CRM 4.0 resulting in increased user adoption, productivity and ultimately a higher ROI on your investment in Microsoft Dynamics CRM.

Split View

Split View - Seamlessly extends the core Microsoft Dynamics CRM user interface, giving users greater freedom and control over their data

  • Navigate multiple entities from the same screen
  • Configurable tab layout
  • Supports both system and custom entities
  • Built-in templates for quick tab development
  • Increases user satisfaction and product adoption
  • Reduces total cost of ownership (TCO) by increasing efficiency and accuracy

 

Editable Grid

Editable Grid - Allows the user to edit the data directly in a grid via a single button click

  • Supports both system and custom entities
  • Respects security roles and customizations
  • Designed to work with the our Split View or as a stand-alone component

 

 

Relationship Navigator

Relationship Navigator - Quick navigation of entities via all of their existing relationships. Create new relationships and activities on the fly without ever leaving the current view

  • Navigate all related entities from a single location
  • Expand entities to show relationships one, two, or any number of degrees away
  • Create custom relationships between any two entities, including entities of the same type
  • Built-in templates for quick tab development
  • Create activities directly in the Navigator for any display entity

 

Dashboard

Dashboard - Customized views of up-to-the-minute information on all key performance indicators (KPI)

  • Configurable layout with zoom-in capabilities
  • Supports filtering
  • Supports editable grid
  • Extensible via custom panels
  • Supports custom panels
  • Visibility controlled by security roles
  • Tabbed interface for multiple dashboards

 

Quick Search

Quick Search - Find records by searching entities by their business required and business recommended fields as defined through standard customizations

  • Makes searching easy
  • Supports both system and custom entities
  • Search across multiple entities
  • Supports both pre-defined and ad-hoc queries
  • Results returned in editable grid
  • Reduces dependency on the Advanced Find, which can be complicated for many users

Of course, all of our components support multi-tenant deployments, speak multiple languages, and make change in your favorite currency.  For more information about our complete product line for Microsoft Dynamics CRM 4.0 please visit our website at http://www.advantageworks.com/products/.

Labels: , , ,

Monday, February 18, 2008

Pseudo-Filtered Lookup Dialog in Microsoft Dynamics CRM 4.0

One of the great unsupported customizations in Microsoft CRM 3.0 was the ability to apply a filter to a lookup with just a few lines of JavaScript.  Ronald Lemmen had a nice post describing this approach that used a FetchXml query to filter the lookup values.  However, in Microsoft CRM 4.0 this customization no longer works and when you attempt it you receive the following depressing error:

CRM Parameter Filter - Invalid parameter 'fetchXml=...' in Request.QueryString on page /_controls/lookup/lookupsingle.aspx

Figuring Microsoft must have renamed the parameters I spent some time today scanning the Microsoft CRM DLL files (Lutz Roeder's Reflector for .NET is a great tool for reverse engineering).  Unfortunately I came up dry and have come to the conclusion this approach no longer works.  Hey, it was unsupported in the first place -- can't really complain ;-)  Since filtering is such an important feature of usability we still wanted to find a way to apply a filter to lookups.  In our world we have relationships where entity names are not always unique across the organization, though they are unique within the context of their parent relationship.

Of the query string parameters still available one still gave promise of a possible solution - search.  When this parameter is specified it defaults the search string in the lookup dialog and applies the search when the dialog is opened.  While we are not able to target our filter to a specific field, we can still leverage the lookup search (and the search columns for the lookup view) to filter the records returned.

For this example assume we have two entities - state and city - with the state being the parent of city.  In the City Lookup View add a find column for the state name:

image

In the onload event of the form we add the following:

document.FilterLookup = function(source, target)
{
    if (IsNull(source) || IsNull(target)) { return; }

    var name = IsNull(source.DataValue) ? '' : source.DataValue[0].name;

    target.additionalparams = 'search=' + name;
}

In the onchange event of the state field on the form we add the following:

document.FilterLookup(crmForm.all.awx_stateid, crmForm.all.awx_cityid);

When the user selects a state...

image

... and then chooses a city, they see this:

image

Filtered?  Yes!  Supported?  Maybe not, but should be good until 5.0 :-)

Labels: , ,

Saturday, February 02, 2008

AdvantageWorks Beta for Microsoft CRM 4.0 (correction)

The previously listed email address for submitting requests to participate in the beta program was incorrect and should read as follows:

If you are interested in being considered as a potential AdvantageWorks beta tester, please send an email to support@advantageworks.com.  Please include information about your company, development environment, type of deployment (on premise, hosted, or live), and a primary contact.

Labels: , , , ,

Using Nurture Marketing and CRM in Commercial Real Estate

Ascendix Technologies will be sponsoring the TCN West Region Conference in Reno Nevada on February 28th and 29th. Wes Snow, President and CEO of Ascendix Technologies, will be presenting a seminar targeted for brokers where he will discuss the concept and philosophies of nurture marketing and how brokers can apply these simple principles to make a significant impact on their effectiveness and earning potential.


Labels: ,

Thursday, January 31, 2008

AdvantageWorks Beta for Microsoft CRM 4.0

AdvantageWorks is pleased to announce the start of the beta period for our suite of products for Microsoft CRM 4.0.  The initial release includes the following components:

image

Being a beta tester means you get to test prerelease versions of AdvantageWorks software currently in development, not available to anyone else outside AdvantageWorks.  In return, we ask that you take the time to fill out bug reports and give us feedback; your job as a beta tester is an important one: to help us build a better, more stable product.

If you are interested in being considered as a potential AdvantageWorks beta tester, please send an email to support@advantageworks.com.  Please include information about your company, development environment, type of deployment (on premise, hosted, or live), and a primary contact.

Labels: , , , ,

Friday, January 11, 2008

AdvantageWorks Update

An update of the AdvantageWorks Components for Microsoft CRM 3.0 is now available for download.  This update includes a number of small bug fixes and enhancements:

  • Fix- Editable grid is allowing closed / inactive records to be edited in the grid
  • New - Added ability to alias (sub-class) entities for purposes of configuration / query differences
  • Fix - Activities in split view is only showing records when the parent is the "regarding" object
  • Fix - Primary key columns are displayed as GUID's instead of links
  • Fix - Navigator generates an error when an activity with an invalid activity party is selected (one that MS CRM cannot resolve)
  • Fix - Clicking on row in contact tab causes exception
  • Fix  - Contact tab - system error
  • Fix - Quick Search is generating a JavaScript error when used
  • Fix - Quick Search is displaying a search field for non-displayed grid columns
  • New - Added nurture marketing fulfillment

Partners can download the update via the Partner Portal.  For a trial of the AdvantageWorks Components for Microsoft CRM 3.0 please click here.

We are currently hard at work on the AdvantageWorks Components for Microsoft CRM 4.0, so please check back here for more information and an expected release date.

Labels: , ,

Wednesday, January 02, 2008

Extending duplicate detection with Soundex

The duplicate detection included in Microsoft CRM 4.0 is great.  It provides a foundation for creating a variety of rules to detect duplicate records using "like" matches across multiple entity types.  However, "like" matches can start to breakdown when the spelling of names differs, which often occurs with proper names.  This article describes how to extend the duplication detection in Microsoft CRM 4.0 to include "fuzzy" matching based on the Soundex algorithm.

The Soundex algorithm converts a name into a four-character string, originally used for indexing, that can also be used for comparisons.  In Microsoft CRM 4.0 to implement Soundex duplicate detection we created a new field on the entities to be compared for storing the Soundex value and added JavaScript to the "onChange" event of the name field to store the value.  The steps involved are:

  1. Add "Soundex" attribute to your entity
    image
     
  2. Add "Soundex" attribute to your form (set as read-only).  This step helps illustrate the example, validates the logic is working correctly, and makes the field available to the JavaScript in step # 3.  However, it is probably best not to display this value to the user and it could be hidden as described here on Ronald Lemmen's blog.

    image
     
  3. In the "onLoad" event set the ForceSubmit flag to true for the Soundex field

    image
     
  4. Apply "onChange" event to the primary name attribute using JavaScript such as the code found here to set the value of the Soundex field.
  5. Create a new duplicate detection rule comparing the Soundex values

    image
     

Once everything is in place, if you create an account named John's Bait Shop and try and create a new account named Jon's Bait Shop the duplication rules will detect a potential duplicate and alert the user accordingly.

What we found is not only is this rule effective in finding potential duplicates, but if Soundex rules are in place there is not really a need to use "like" matches based on the the primary field.  Once the Soundex values are in place they can be used across entities like other duplication rules.

It is worth noting the "onChange" event only fires when the data is input via the standard UI.  It is probably better to apply the Soundex logic via a server-side callout, but for the simplicity of this example we are just demonstrating a client-side approach.

Labels: , ,

Thursday, December 20, 2007

Drip Marketing for Microsoft CRM

We just finished the beta testing phase of our upcoming drip marketing bundle for Dynamics CRM. This has been quite a pet project for us, as we believe strongly in nurture marketing concepts and have practiced these for ourselves for the past 5 or so years. We've been using a tool other than Microsoft CRM for this up to now, and can now fully marry our CRM tools with nurture marketing!

What is nurture marketing? It's a marketing philosophy and selling process made popular by Jim Cecil and his Nurture Institute. At the core, it recognizes that customers will buy on their timeline, and by making "deposits" over time, (not junk mail, mind you) you will be ahead of your competition when your prospect is ready to buy.

A residential real estate agent in my neighborhood understands this concept well. Several times per year I get letters and mailings from her with truly valuable information: local event schedules (Go Cowboys!), neighborhood demographic trends, crime watch information, then occasionally a postcard of a recent sale. Four out of every five things I get from her have nothing to do with her or her services; just a "deposit" of useful information that keeps her top of mind. When we eventually get ready to sell our house, why wouldn't we contact her?

Keeping your company top of mind with prospects is pretty hard work without a technology tool. We look forward to making this module available to our own clients and partners. We strongly believe that using this tool, paired with Microsoft CRM, will impact your business in more ways than you can imagine!

Labels: ,

Tuesday, December 18, 2007

Microsoft Dynamics CRM 4.0

It looks like it is now official -- Microsoft CRM 4.0 has been released to manufacturing and should be available for download soon (any day now).  There many great new features of the new release of Microsoft CRM, but when you look past the new duplicate detection, multi-tenancy, data imports, etc., what we are most excited about are the following:

Business Modeling

With Microsoft CRM 3.0 it was often difficult to truly model a business due to the limitations of the types of relationships available.  Microsoft CRM 5.0 introduces two new relationships, which eliminate the barriers that existed before:

  • Many-to-Many
  • One-to-Many (System-to-System)
  • Self referential
  • Multiple relationships between entities

By being able to more closely model a business the user experience is greatly enhanced through easier navigation, a more intelligent data model, and the flexibility to customize the system on an individual basis.  No longer do we need to explain to our clients why it is not possible to have two contacts linked to a single record :-)

CRM Live

The introduction of CRM Live opens the world of Microsoft CRM to a new subset of businesses.  As opposed to an on-premise deployment, there are no hardware costs associated with CRM Live and the licensing model allows smaller businesses to enjoy the same functionality larger ones have traditionally been able to implement.

Of course an on-premise deployment allows for greater flexibility and customization, and for larger businesses it is still the right choice -- especially where their business processes necessitate customizations beyond what can be achieved "out of the box".  However, CRM Live also supports much of the same configuration options allowing ISV's to offer compelling vertical solutions in a true SaaS model.

Labels: ,

Thursday, October 11, 2007

Virtual Earth Interactive SDK

I was doing some research for some enhancements to our integration with Microsoft Virtual Earth, and I happened on this link to the Interactive SDK for Microsoft Virtual Earth.

http://dev.live.com/virtualearth/sdk/#

Let me say that I was quite impressed. It even gives you source code for each example.

For instance, lets say in our Commercial Real Estate CRM solution we are looking at a property or series of properties on a map. We could have a custom menu with checkboxes such as: Restaurants, Convenience Stores, Airports, Copy and Fax centers, and Post Offices.

When the user checks one or more of the boxes, the SDK can show all businesses that match the checked categories that are nearby the property or properties on our view. The example they use in the SDK is pizza places.

Very slick stuff!!

Labels: ,

Tuesday, September 18, 2007

AdvantageWorks Update

AdvantageWorks is pleased to announce an updated release of our add-on components for Microsoft CRM 3.0.  This update includes enhancements to all of our components, with specific enhancements including:

Editable Grid

  • Added ability to embed grid in a standard CRM form, giving you three ways to implement the Editable Grid:
  • Split View - used to display child records associated with a parent record
  • IFRAME - used to display the grid within the standard Microsoft CRM form or within your own custom application
  • ASP.NET Control - used to programmatically embed the grid in your own custom application

Split View

  • Added ability to add a summary panel for the selected record
  • Added ability to  display c360 components in a split view panel
  • Removed need to define system filters in the AwxCore.xml file

Relationship Navigator

  • Changed Create Relationship dialog to use standard Microsoft CRM lookup controls in place of drop down lists

Quick Search

  • Changed lookup properties to use standard Microsoft CRM lookup controls in place of drop down lists

General

  • Moved documentation to an online format at http://wiki.advantageworks.com
  • Added a “Help About” dialog
  • Added new exception publish method for writing errors to the Event Log

To download the latest version of these components, please submit a download request via our website at http://www.advantageworks.com/Forms/Download.aspx.  If you need an updated trial license, one will automatically be forwarded to you when we receive your request.

Labels: , , ,

Monday, September 10, 2007

AdvantageWorks Wiki

In preparation for the next release of the AdvantageWorks add-on components for Microsoft CRM we have moved our product documentation from a compiled help file to an online wiki format.  This will allow us to keep the documentation more up-to-date, relevant, and targeted.  At the same time the content will be easier to search, navigate, and will no longer require the installation of our trial software to obtain.

The wiki can be found at the following address: http://wiki.advantageworks.com.  We have also started using wikis internally and have chosen to implement the MediaWiki software, which is the same software that runs Wikipedia.  For the short-term we are hosting the AdvantageWorks wiki at ScribbleWiki, but we will be moving it to our servers once we complete some internal upgrades.  When accessing the wiki please use the above URL, as it will point to our current site -- whether it is hosted or not.

In the true spirit of the wiki we encourage you to add relevant content, make edits, and participate in the discussion pages.  However, for support requests please either contact us directly, or post a message to our newsgroup.  We believe support should be available in many forms, and hope you find the wiki to be another useful way to learn about us and our products.

Labels:

Friday, July 20, 2007

Migrating Security Roles

At the Worldwide Partner Conference in Denver Microsoft revealed the next version of Microsoft CRM (Titan) will include the ability to export and import security roles.  On the surface this seems like a small change, but it was significant enough to get my attention as this has always been a sore spot for us.

True, Microsoft does provide some migration tools.  However, the simple task of deploying an implementation from a development environment to a QA or production environment usually meant the manual update of security roles -- not only was this a time consuming practice, it was also error prone.  Because of the number of records involved in the configuration of security roles and privileges and the differences of unique identifiers from one database to another there did not appear to be a simple way to script out the security configuration to automate this step in the deployment process.

Well, now there is :-)

This is something I had meant to do for a while, but never was motivated enough to sit down and work out the SQL statements.  Until today when I found myself clicking little green circles one after another applying security changes from one environment to another.  I came to a quick conclusion that I could write a script to automate this task faster than it would take me to complete the manual application of the security settings.

Warning: Unsupported actions ahead

Assumptions
  1. The source and target environments have the same business unit names
  2. The source and target environments have the same security role names
Instructions

Script out the source security role privileges from the source system as follows (carriage returns have been added for positing purposes):

SELECT DISTINCT 'INSERT INTO ROLEPRIVILEGES (ROLEPRIVILEGEID, ROLEID, 
PRIVILEGEID, PRIVILEGEDEPTHMASK) SELECT NEWID(), (SELECT ROLEID FROM
ROLEBASE R INNER JOIN BUSINESSUNITBASE B ON R.BUSINESSUNITID =
B.BUSINESSUNITID WHERE R.NAME = '
'' + R.NAME + ''' AND B.NAME = '''
+ U.NAME + '''), (SELECT PRIVILEGEID FROM PRIVILEGEBASE WHERE NAME =
'
'' + G.NAME + '''), ' + CAST(P.PRIVILEGEDEPTHMASK AS VARCHAR(10)) +
'' SQL FROM ROLEBASE R INNER JOIN ROLEPRIVILEGES P ON R.ROLEID =
P.ROLEID INNER JOIN BUSINESSUNITBASE U ON R.BUSINESSUNITID =
U.BUSINESSUNITID INNER JOIN PRIVILEGEBASE G ON P.PRIVILEGEID =
G.PRIVILEGEID WHERE R.NAME <> 'System Administrator'

OK -- I know, it's ugly.  What is it doing?  Basically, this script creates a set of insert statements to create the security role privileges in the target system.  The insert statement using the names of the business units and security roles to get their ID's in the target system.


Note, the script does not export the privileges associated with the System Administrator role as this role is constant from one installation to another.  Here is an example of the insert statement created:

INSERT INTO ROLEPRIVILEGES (
ROLEPRIVILEGEID,
ROLEID,
PRIVILEGEID,
PRIVILEGEDEPTHMASK )
SELECT NEWID(),
(SELECT ROLEID
FROM ROLEBASE R INNER JOIN BUSINESSUNITBASE B
ON R.BUSINESSUNITID = B.BUSINESSUNITID
WHERE R.NAME = 'Role Name'
AND B.NAME = 'Business Unit Name'),
(SELECT PRIVILEGEID
FROM PRIVILEGEBASE
WHERE NAME = 'prvAppendAccount'),
32

As you can see the generated statement does not contain any GUID's and has the statements necessary to locate the appropriate identifiers embedded.  Just image this line repeated 1000's of times and you can start to see the value of this approach.  To run the generated statements in the target environment make sure the business units and security roles have been created (they do not need to be configured).  If you are re-applying the security privileges to an existing implementation you can clear the existing records using the following statement:

DELETE FROM  ROLEPRIVILEGES
WHERE ROLEPRIVILEGEID NOT IN (
SELECT P.ROLEPRIVILEGEID
FROM ROLEPRIVILEGES P
INNER JOIN ROLEBASE R ON P.ROLEID = R.ROLEID
WHERE R.NAME = 'System Administrator')

As a reminder, making updates to the database via SQL scripts is not supported by Microsoft.  Errors in the scripts or execution of the scripts can result in damage to your Microsoft CRM installation, your data, or both.  Please proceed with caution.

Labels: , ,

Monday, July 09, 2007

How to brand your CRM implementation

Warning: unsupported (but minor) customizations ahead!

This is something we use in our development environments to quickly identify the client associate with the implementation, but is also a simple way to brand a production installation of Microsoft CRM:

image

To add a logo follow these steps:

  1. Open the bar_top.aspx file in the <Microsoft CRM Web>\_root folder using a text editor
  2. Replace the table with the class stdTable stageContextBar with the following:
    <table class="stdTable stageContextBar" cellspacing="0"
    cellpadding="0">
    <tr>
    <td class="bar">
    <nobr id="tdStageContextBar">
    <%HttpUtility.HtmlEncode(stageContextBarTitle, Response.Output);%>
    </nobr>
    </td>
    <td align="right">
    <img src="../_imgs/logo.png" />&nbsp;
    </td>
    </tr>
    </table>
  3. Copy an image file to the <Microsoft CRM Web>\_imgs folder (in the example above the image is named logo.png).

If you wish you can specify the image dimensions in the HTML, as well as add a title for the mouse over.  That's it.  Nothing fancy, but it gets the job done ;-) 

Labels: ,

Wednesday, June 13, 2007

Creating your own customer fields

Michael Höhne has posted another great article showing just what is possible with client-side scripting in Microsoft CRM.  This particular post discusses how to add a customer field to a form, which is a data type not available as an option in Microsoft CRM (though it is used extensively internally).

If I had the wherewithal to extend what Michael has created I would encapsulate his code in a CSS behavior file and in the OnLoad event set the behavior for the account lookup field to the file created.  This would allow the code to be quickly reused on other forms.  But alas... it is late and I am tired, so I will just imagine myself doing this :-)

There are a lot of great tips and advice on Michael's site, so if you have a moment I suggest you check out:

http://www.stunnware.com

Or if you just want to subscribe to his blog you can get to that here:

http://www.stunnware.com/crm2/atom.aspx

Labels: ,

Website Update: Flash demo now available

We have updated our website with a flash demo of our Split View and Relationship Navigator components.  We will be adding additional demos of our Editable Grid and other components in the next few days.  Please take a look and let us know what you think.

Labels: , , ,

Thursday, June 07, 2007

Exhibiting at RealComm




We had a great time at RealComm in Boston earlier this week as we exhibited our CRM solutions for the commercial real estate industry.



We met and had some great conversations with folks from all sectors: technology, services, brokerages, owner - operators, among others.



I took this picture with my phone, so please excuse the quality. ;-)



A couple of folks from Microsoft were also present and gave a great presentation on some new (and some not so new) technologies that will have an impact on the real estate industry. It was exciting, and we're excited to be a part of the delivery of these technologies. Stay tuned. More to come on this topic.


Labels:

AdvantageWorks Online Store

At the request of our customers we are now accepting orders for our add-on components for Microsoft Dynamics CRM 3.0 online.  You can place an order for individual components, or our new packages that include multiple components at a discounted price.

To place an order click here.

The individual (a la carte) components available for purchase include:

  • Split View
  • Editable Grid
  • Relationship Navigator
  • Dashboard
  • Quick Search
  • We have two discounted packages available:

    Professional Pack which includes

  • Split View
  • Editable Grid
  • Relationship Navigator
  • Enterprise Pack

  • Split View
  • Editable Grid
  • Relationship Navigator
  • Dashboard
  • Quick Search
  • Labels: , ,

    Job Opening for Quality Assurance Analyst/Trainer

    If you or somebody you know is in the market for working with a fun group of folks in the Dallas area, please send your resumes/inquries to: careers@ascendix.com


    Title:

    Quality Assurance and Training Analyst (Jr. and Sr.)

    Purpose:

    The purpose of the Quality Assurance (QA) and Training Analyst is to work with the project team and client to ensure delivery of an exceptional software solution. Successful delivery includes fully testing, client training and supporting the software application.

    Level/Experience Required

    Entry level for Client Care Position with 0 to two years of professional experience.


    Senior Level QA/Trainer requires a minimum of three years of experience in either testing or formal classroom training. Formal SQA training and certification is a plus.

    Primary Responsibilities:

    Develops, revises and verifies quality assurance testing procedures; tests software development according to project requirements; tracks deviations and defects during QA and UAT cycles; creates and utilizes test scripts; maintains communication with the client during testing; ensures timely and satisfactory completion of assignments; documents release notes; prepares training documentation, agendas and manuals; trains client end-users and super-users on system functionality in a group classroom environment; responds to client support calls.

    Resource Requirements:

    Bachelor degree in Information Systems or equivalent, Microsoft Office experience, Testing experience, Software Training experience is desired.


    • Must have good customer service skills, prior experience in a client facing position is highly desired
    • Experience working with clients and deadlines is preferred
    • Occasional travel (up to 10%) required
    • Recent college graduates will be considered if you have notable academic and project or intern work related achievements

    Career Path:

    JR QA and Training Analyst: This is an entry level position. The person hired will have many different routes to choose from for career development: Implementation engineer, Developer, Database Analyst, Junior Business Analyst or Senior Quality and Training Analyst.


    SR QA and Training Analyst: The Senior Analyst position provides the person hired with the following career paths: Client Care Manage, Quality Assurance Team lead, Business Analyst, Project Manager, or a Technical path.

    Work Environment:

    • Fun environment
    • Good Insurance plan choices (Medical, Dental and Vision)
    • Reimburse employees 50% (up to $50/month) of fitness membership dues
    • Cell phone reimbursement depending upon position
    • Three weeks PTO, plus eight holidays
    • Salary plus bonus plan
    • 401K plan with matching fun (after six months of employment)

    Last Revision Date:

    June 7, 2007

    Labels:

    Wednesday, May 30, 2007

    Editable Grid now available

    AdvantageWorks would like to invite you to download a trial of our editable grid control for Microsoft CRM 3.0. As part of our Software Development Kit (SDK), the editable grid allows the end user to edit the contents of a grid directly in the grid by the click of a single button.

    The grid supports editing of the following CRM data types:
    • Picklist
    • Date (no time)
    • Lookup
    • Integer
    • Money
    • Float
    • Boolean
    • Status
    • Customer
    • Owner
    • Decimal
    • String
    Additionally, the grid enforces Microsoft CRM's built-in security model and prevents users from editing the following types of data:
    • State attributes
    • Fields with a display mask of ObjectTypeCode
    • Fields marked as read-only
    • Fields disabled on their associated edit form
    • Fields with an active OnChange event on their associated edit form
    • Fields the user does not have write privileges for (both record and entity level)
    The AdvantageWorks Editable Grid for Microsoft CRM 3.0 is designed to work in conjunction with our Split View control. However, it can also be used as a stand-alone component in your own custom ASP.NET 2.0 pages.

    If you are interested in obtaining a copy of the editable grid, please visit our download page to submit a download request.

    Labels: , ,

    Monday, May 21, 2007

    Technology Adoption in Commercial Real Estate

    A very interesting article was recently posted on the "RealComm Advisory" site regarding the reluctance of commercial real estate companies in adopting technology solutions.

    Basically, the take is that unless the IT department drives the project, many firms have been very slow to adopt technology solutions due to culture, familiarity with proven (low tech) tools, reluctance to change or failure to get the many involved parties in the real estate cycle on the same page.

    I can’t find fault with their take so far. True, many successful real estate professionals are traditionalists and can still meet their lease or acquisition quota by networking, making calls and speaking at events, all coordinated by the telephone, Big Chief and crayons.

    The interesting point of this article (although like my blog post, it takes awhile to get there) is that there is an impending event that will force the corporate real estate industry (perhaps even other laggard industry segments in corporate America) to embrace technology solutions ....

    The energy crisis

    As the article puts it, wasted space, unaccounted for assets and other inefficiencies will be more and more painful to the bottom line in the face of globalization and pressure on more efficient uses of natural resources.

    "Lean, mean, and well-managed real estate will be required to survive - and trying to achieve these new objectives without the strategic use of technology and automation is almost impossible."

    http://www.realcomm.com/advisoryweb.asp?aid=259

    Friday, May 18, 2007

    Microsoft Worldwide Partner Conference 2007

    AdvantageWorks will again be attending the Microsoft Worldwide Partner Conference this year. We are looking to forward to seeing what Microsoft has in store for us, but mostly we are looking forward to putting faces to the many people we have met since last year's event.

    What:Microsoft Worldwide Partner Conference 2007
    Where:Denver, Colorado
    When:July 10th - July 12th

    If you will be attending the conference and want meet with us, please set up a meeting with AdvantageWorks via the WPC Connect site and we will see you there!

    Labels: ,

    Thursday, May 17, 2007

    Inline Grid Editing

    AdvantageWorks is excited to announce the upcoming release of our CRM Grid control, now with inline editing! These screenshots are just a preview of the control in action, which we plan to release in June to our current customers with a trial version following shortly.


    Figure A – AdvantageWorks Grid control within our Split View component


    Figure B – Enabling Inline Grid editing


    Figure C – Applying Changes



    Want to know more? We will be posting additional information in the coming weeks here and on our web site at http://www.advantageworks.com, so check back later for updates.

     

    Labels: , , , ,

    Monday, April 30, 2007

    IE7, XmlHttp, and Nirvana

    We make extensive use of the principles of AJAX on our products, as they deliver an excellent user experience. However, with IE7 we started encounterung an error that was anything but excellent – IE would lock up if the user too quickly navigated from one entity to another from within our Split View control. Because our Split View control uses AJAX calls to load the panels behind the scenes, if the asynchronous requests got too backed up IE would lock-up and the CPU usage would spike until the application was forcibly closed by the user (usually via Task Manager).

    At the root of most AJAX calls it the reliance on the XmlHttp object, which traditionally is instantiated through JavaScript (the "J" in AJAX) by means of the ActiveX Object named Microsoft.XmlHttp. However, IE7 now includes a "native" XMLHttpRequest (XHR) object that supersedes the ActiveX version. Whether or not the IE7 version is really just a wrapper to the ActiveX version is a matter of debate, but for the purposes of this solution it is a moot point. Of course there is no guarantee your users are using IE7, so we must now code for both scenarios – first trying the IE7 approach and then falling back to the ActiveX object:

    var xmlhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');

    I found a number of different designs on the web for determining the correct version for the browser, but since we can safely assume (in our case, at least) the user is using IE6 or IE7 the above check is more than sufficient.

    OK, so does switching to the new IE7 "native" XHR solve our issue? Actually, no it doesn't. But it is the first step in the process. Because the issue is a result of a backlog of AJAX request, and all but the last are actually no longer valid, the solution is to change the way the AJAX calls are queued. For the Split View the only AJAX call being used (at the panel level) is the one to load the panels themselves. By changing the scope the XHR object from local to global we are able to reuse the object for each subsequent request. This small change actually is what makes all the different. Why?

    Each time the Open() method is called on the XHR object, it will implicitly Abort() any previous requests. The browser automatically takes care of cleaning up after itself and IE behaves no matter how quickly the user navigates from record to record. After doing a bit more research I stumbled upon this blog post by Paven Keely where he adds it is important to execute the XHR statements in a certain order. Where it is common practice to first set the callback method (via the onreadystatechange event) and then open() and send() the request such as:

    xmlhttp.onreadystatechange = function() { // Custom Function }

    xmlhttp.open('GET', url, true);

    xmlhttp.send(null);

    In order to successfully reuse the XHR object you must first open the request and set the callback method as the second statement as follows:

    xmlhttp.open('GET', url, true);

    xmlhttp.onreadystatechange = function() { // Custom Function }

    xmlhttp.send(null);

    Putting these three changes together, using the "native" XHR object, changing the scope of the XHR object, and reordering the statements in our code, our issue has been resolved. After reviewing the solution the problem becomes obvious. Best practices for successful coding require we clean up after ourselves and dispose of objects after they are no longer needed. In the case of the XHR, the Abort() method was always an option. However, JavaScript is an often underappreciated technology and consequently JavaScript code does not necessarily follow those best practices. This exercise has given me a greater appreciation for the power and complexity of JavaScript and a greater understanding of how to tame the beast.

    Labels: ,

    Saturday, March 31, 2007

    One-to-Many Relationships - Part II

    This is an update to my previous post with additional instructions for maintaining the lookup value's name on the edit form.

    CAUTION: Unsupported customizations ahead -- use at your own risk!

    Creating one-to-many relationship in Microsoft CRM can usually be accomplished through standard configuration using the tools included in the product. However, relationships between two system entities not previously created by the system cannot be added using the tools. Instead, a custom attribute must be added to the entity via the Export / Import XML customization file.

    The following steps describe the process for creating a one-to-many relationship via custom attribute

    Creating a custom attribute

    1. Export the customizations for the entity to be on the “child” side of the one-to-many relationship
    2. Add a new attribute with a physical name describing the primary key of the “parent” entity
    3. Set the element IsCustomField equal to 1
    4. Set the element ReferencedEntityObjectTypeCode to the object type code of the “parent” entity. For example:
      <attribute PhysicalName="FieldId">
      <Type>lookup</Type>
      <ValidForCreateApi>1</ValidForCreateApi>
      <ValidForUpdateApi>1</ValidForUpdateApi>
      <ValidForReadApi>1</ValidForReadApi>
      <IsCustomField>1</IsCustomField>
      <ReferencedEntityObjectTypeCode>1</ReferencedEntityObjectTypeCode>
      <DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid</DisplayMask>
      <Description />
      </attribute>

    5. Import the customizations and publish the changes
    6. Add a second attribute via the customizations form for storing the name of the selected lookup. This field will not be visible to the user, but is needed to properly display the lookup on the form.
    7. Add both attributes to the edit form
    8. Add the following JavaScript to the OnLoad event of the form:

      Note: This sample assumes the lookup attribute is named FieldId and the name attribute is named FieldIdName
      /* Hide the name field */
      crmForm.all.fieldidname_c.style.display = 'none';
      crmForm.all.fieldidname_d.style.display = 'none';

      /* Retrieve the lookup control */
      var o = crmForm.all.fieldid;
      var a = o.getLookupField().getElementsByTagName("SPAN");

      /* Update the name if a lookup was found */
      if (a && a.length > 0)
      {
      /* Retrieve the name value */
      var name = crmForm.all.fieldidname.DataValue;

      /* Update the lookup with the name value */
      a[0].innerHTML = a[0].innerHTML.replace(/>.*$/, '>' + HtmlEncode(name));

      /* Reset the IsDirty flag by setting the default value */
      o.DefaultValue = o.DataValue;
      }
    9. Add the following JavaScript to the OnChange event of the lookup:
      /* Retrieve the lookup value */
      var items = crmForm.all.fieldid.DataValue;
      var o = (items == null items.length == 0) ? null : items[0];

      /* Update the name field */
      crmForm.all.fieldidname.DataValue = (o == null) ? '' : o.name;

    Labels: ,

    Thursday, March 29, 2007

    Summit Realty Group, a Member of the Cushman & Wakefield Alliance, Selects Real Estate Advantage™

    Download this press release as an Adobe PDF document.

    The commercial real estate solution for Microsoft CRM™.

    Dallas, TX (PRWEB) March 28, 2007 -- Summit Realty Group, a premier commercial real estate firm serving greater-Indianapolis and a member of the Cushman & Wakefield Alliance, and Ascendix Technologies, the publishers of Real Estate Advantage™, announced today that Summit Realty Group has selected Real Estate Advantage™ as its new industry-tailored CRM platform and project management platform. The system will streamline workflow, create greater data efficiencies and integrate with existing applications.

    Before partnering with Ascendix, Summit Realty Group had been searching for a centralized system to manage contacts, projects and property data as well as to improve access to that data. The firm also wanted a system that could be easily used while on the road or in the office. The accessibility and ease of use would yield higher user adoption, which would enable brokers to offer a higher level of service to their clients. Summit Realty Group was impressed with the capabilities of Microsoft Dynamics CRM but continued its search for a solution that could combine the Microsoft technology with applications tailored for the commercial real estate industry.

    "We are very excited about Real Estate Advantage™," said Bill Ehret, Principal and President of Summit Realty Group. "Since the application is built to resemble tools we already use, such as Microsoft Outlook, and offers tremendous integration capabilities, it was an easy decision to move ahead with the implementation. Throughout our very thorough search process, we were committed to find the absolutely best product available - one that could provide that next level of functionality."

    "After meeting with Ascendix Technologies, it was evident that Real Estate Advantage™ was the piece we were looking for to move forward with the Microsoft Dynamics CRM platform," said Brian Zurawski, Principal of Summit Realty. "We knew we found the right solution and that Ascendix was the right partner. It is truly exciting for us to be taking this next step at Summit. I am confident that both our and Ascendix's efforts will be hugely successful."

    "We look forward to working with Summit Realty Group," said Wes Snow, President of Ascendix Technologies. "It is our goal to help them gain efficiencies and ultimately increase profitability with the delivery of Real Estate Advantage™."

    About Summit Realty Group - Summit Realty Group has earned its place as one of the premier commercial real estate firms in the greater-Indianapolis area. With a team of 20 brokers and additional support staff, Summit Realty Group specializes in Office, Industrial, Investment, and Corporate Real Estate Portfolio Management services. Summit is a member of the Cushman Wakefield Alliance, a leading global real estate services provider. With more than 195 offices in 55 countries, the Alliance brings the depth of knowledge, resources, and talent to deliver top-line real estate advisory results. For more information on how Summit Realty Group can provide real estate expertise for your organization, please call (317) 713-2100 or visit www.SummitRealtyGroup.com.

    About Real Estate Advantage™ - Developed on the .Net 2.0 framework by AdvantageWorks, the R&D division of Ascendix Technologies, Real Estate Advantage™ integrates seamlessly with Microsoft CRM. The product helps commercial (office, retail and industrial) real estate companies manage assets, leases, tenants, vendors and prospects in marketing, service, sales and support functions. The solution leverages the tools organizations already use, including Microsoft Outlook, Excel, Word, MapPoint and SharePoint, improving the intuitiveness and adoption rates often plaguing CRM implementations. By building on the Microsoft® Dynamics™ CRM 3.0 platform, Real Estate Advantage™ helps to maximize the investment companies have already made in infrastructure using tools such as Microsoft Exchange, Microsoft® SQL Server, Active Directories and .Net frameworks. For more information about AdvantageWorks' industry solutions and MSCRM add-on products, please visit http://www.advantageworks.com/. To attend an upcoming event featuring Real Estate Advantage™, please visit http://www.ascendix.com/.

    Labels: ,

    Friday, March 23, 2007

    3 Click Rule

    One of our primary design tenants is to make the use of our products a pleasant experience. The definition of pleasant is subjective, but it can also be quantitative when you think about how easy (or difficult) is it for a user to complete a task. This is where we apply the 3 click rule, meaning "that access to any feature of an application, or each logical step in a process, should require no more than 3 clicks."

    With Microsoft CRM it is often noted how clicky it is to use.  To view details about an entity, the user must:

    1. Select the entity type from the navigation bar
    2. Locate the entity in the grid
    3. Select the entity in the grid
    4. Open the entity
    5. Navigate to the tab containing the details

    Minimum of 5 clicks (but likely more)

    If the user then wants to see details on another similar entity, the user must:

    1. Close the open form
    2. Locate the entity in the grid
    3. Select the entity in the grid
    4. Open the entity
    5. Navigate to the tab containing the details

    Minimum of 5 clicks (but likely more)

    So, how do we improve the user experience?  One solution we offer our clients is our Split View component.  The Split View allows the user to view entity details without the need to open the entity for edit.  The Split View can also display extended information from related entities, incorporate our Relationship Navigator, and supports the addition of custom panels to meet other business needs.

    Let's look at the above scenario again.  To view the details about an entity, the user must:

    1. Select the entity type from the navigation bar
    2. Locate the entity in the grid
    3. Select the entity in the grid

    Success!!!  3 clicks.  The Split View does the rest!

    If the user then wants to see details on another similar entity, the user must:

    1. Select the entity in the grid

    Success!!!  1 click!!

    While it may not seem like much, getting from a total of 10 clicks to 4 clicks is a 60% savings.  The result is not only a reduction in the number of times the user has to click their mouse button, but also the amount of time the user must wait for additional dialogs to load.  In addition the server load is reduced, which has a secondary benefit of quicker response times -- again improving the user experience.  When the number of entities viewed grows to three the savings increases to 66%, and at five entities viewed the savings is over 70%.

    This is a simple scenario, but it demonstrates the impact the 3 click rule can make to the user.  Keeping the end user in mind during design increases user adoption during deployment, which results in a higher ROI -- and that translates into a happy customer, our ultimate goal.

    Labels: , ,

    Tuesday, March 06, 2007

    One-to-Many Relationships

    Creating one-to-many relationship in Microsoft CRM can usually be accomplished through standard configuration using the tools included in the product. However, relationships between two system entities not previously created by the system cannot be added using the tools. Instead, a custom attribute must be added to the entity via the Export / Import XML customization file.

    The following steps describe the process for creating a one-to-many relationship via custom attribute:

    1. Export the customizations for the entity to be on the “child” side of the one-to-many relationship
    2. Add a new attribute with a physical name describing the primary key of the “parent” entity
    3. Set the element IsCustomField equal to 1
    4. Set the element ReferencedEntityObjectTypeCode to the object type code of the “parent” entity

    The following is an example of adding an attribute to a “child” entity where the “parent” entity is account:

    <attribute PhysicalName="New_AccountId">
    <Type>lookup</Type>
    <ValidForCreateApi>1</ValidForCreateApi>
    <ValidForUpdateApi>1</ValidForUpdateApi>
    <ValidForReadApi>1</ValidForReadApi>
    <IsCustomField>1</IsCustomField>
    <ReferencedEntityObjectTypeCode>1</ReferencedEntityObjectTypeCode>
    <DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid</DisplayMask>
    <Description />
    </attribute>

    Labels: ,

    Sunday, March 04, 2007

    Shave your head in support of cancer research!

    Cancer has affected many of us, either directly or indirectly. I lost my mother to cancer just a few short years ago. A few of us at our company (Ascendix Technologies) have signed on to have our heads shaved on March 24th as a creative way to show support for cancer research. The charity organization is the St. Baldrick’s Foundation and you can view our site and make a donation by clicking here.

    St. Baldrick’s has raised over $20 million for childhood cancer research since it began on St. Patrick’s Day in 2000. Over 26,000 heads have been shaved – including more than 2,000 women! And all this adds up to more awareness of the disease that kills more kids than any other in North America – and most important, more funds for life-saving research. There are many ways to help this great cause.

    Donate to a shavee like myself, become a shavee, become a barber, or come out and support us all and participate in the fun.

    Thanks for your support!

    Todd

    Wednesday, February 14, 2007

    Entity Inheritance

    One request we seem to see a lot from our customers is the need to have different flavors of accounts and contacts.  For instance, an account may be a financial institution, a tenant, or a vendor.  We could create three different custom entities to represent the uniqueness of each of these account types, but we would then lose the built in functionality regarding an account in Microsoft CRM.

    Alternatively, we could add attributes to the account entity to fulfill the needs of each account type..  However, that would result in having attributes that apply to one type (say tenants) visible for another type (say vendors).  That might reduce the usability of the system.  Granted, we could create a tab for each account type and hide / display the tab based on the type selected.  This is a valid approach, but still requires quite a bit of custom client side code and does not prevent the unrelated attributes from showing in other areas such as the advanced find or system views.

    I would like to hear how others have addressed this question.  Ideally, I would like to be able to inherit from the account entity and create custom entities that are based on account.  Unfortunately, this is not a supported customization and may not be possible in the current version of Microsoft CRM.  Please share your solutions, as this is probably a question many of us have had to answer at one time or another.

    Labels: ,

    Wednesday, February 07, 2007

    Dallas roadshow a success!

    The past few weeks team members from the AdvantageWorks development side and the Ascendix sales and consulting side have been working together to hold our first product launch seminar for Real Estate Advantage.


    Turn out was great, the venue was great, and we had great conversations with people from all areas of commercial real estate: brokerage, property owners, leasing agents, property and facilities management, etc.


    Amazingly enough, the demo gods were even kind to us. I didnt even have to perform any ritual sacrifices, or anything. ;-) (Ok, that joke didnt go over very well at the seminar.)


    Whether it was from our feedback forms or from our conversations, we heard over and over how well the product addresses pains these professionals are experiencing. Of course, we're passionate about the product, it was nice to see others shared those thoughts as well!


    Thanks to Ross Muery, Dale Schlagel and Ron Ellington from Microsoft for their assistance in helping us put this together.


    Next up, New York!!

    Labels:

    Tuesday, January 23, 2007

    Real Estate Advantage™ Receives Certification for Microsoft Dynamics CRM 3.0

    Real Estate Advantage™ is a specialized commercial (office, retail and industrial) real estate solution for property owners, asset managers, brokers, and leasing and servicing agents.

    Dallas, TX – January 23, 2007 – Ascendix Technologies has achieved certification of Real Estate Advantage™ for “Microsoft Dynamics CRM V3.0 Test for ISV Solutions.” The certification milestone was achieved last quarter and was administered by VeriTest. The program identifies applications that successfully integrate with Microsoft Dynamics CRM V3.0. The testing and verification program ensures that applications integrate with CRM V3.0 in a supported manner, maintain the stability of the program, do not restrict any of the core functionality, and continue to function when service packs or upgrades to the base product are applied. VeriTest also confirmed that Real Estate Advantage™ adheres to all published specifications as outlined in the CRM V3.0 Software Development Kit (SDK).

    “We worked very closely with the Microsoft ISV team to make certain our product has the native look and consistent feel of Microsoft CRM, yet meets the complex demands of the commercial real estate professional,” stated Todd Terry, Managing Partner and CTO of Ascendix. “[These professionals] have to manage much more than just customer relationships. We invested a great deal of time in ensuring Microsoft CRM was the appropriate platform to deliver a solution allowing users to manage all aspects of their business: tenants, properties, leases, vendors and financial data, as well as the traditional marketing, opportunity forecasting, issue management and workflow inherent to the CRM platform. Because of Microsoft’s robust platform and native integration with Office and Outlook, we feel strongly that we have made the right platform decision and delivered a world-class solution.”

    Ascendix will be unveiling the Real Estate Advantage™ solution through a series of regional product launch events, with locations tentatively set for Dallas, Irvine, Las Vegas, Chicago, New York and Boston. The first launch event is slated for February 6th in Dallas, Texas at the Microsoft offices in Las Colinas. Visit http://www.ascendix.com/launch for more information on the schedule of events.

    About Real Estate Advantage™ – Developed on the .Net 2.0 framework by AdvantageWorks, the R&D division of Ascendix Technologies, Real Estate Advantage™ integrates seamlessly with Microsoft CRM. The product helps commercial (office, retail and industrial) real estate companies manage assets, leases, tenants, vendors and prospects in marketing, service, sales and support functions. The solution leverages the tools your organization already uses, including Microsoft Outlook, Excel, Word, MapPoint and SharePoint, improving the intuitiveness and adoption rates often plaguing CRM implementations. By building on the Microsoft® Dynamics™ CRM 3.0 platform, Real Estate Advantage™ maximizes the investment you have already made in infrastructure using tools such as Microsoft Exchange, Microsoft® SQL Server, Active Directories and .Net frameworks. For more information about AdvantageWorks’ industry solutions and MSCRM add-on products, please visit http://www.advantageworks.com.

    About Ascendix Technologies – Ascendix Technologies, Inc., a Microsoft® Gold Certified Partner, is a privately held corporation located in Dallas, TX. Founded in 1996, the company is celebrating its 10th year in business focused solely on the implementation of CRM systems for companies in both the mid and enterprise market space. In 2003, Ascendix turned to a vertical strategy, quickly carving out a niche in the investment products, financial services and commercial real estate industries. For more information, please visit Ascendix on the web at www.ascendix.com or contact them at 1-888-Find-CRM.

     

    Wednesday, January 10, 2007

    Microsoft Announces next version of CRM, code-named "Titan"

    Microsoft officially announced the preview of the next version of Microsoft Dynamics CRM with a press release on their site today.  This preview is available to select partners via the company's Technology Adoption Program (TAP):

    “The partner TAP program for ‘Titan’ is another milestone in our strategy to deliver the power of choice to customers,” said Brad Wilson, general manager of Microsoft Dynamics CRM. “Our partners are getting an in-depth look at the power and flexibility of the upcoming release, as well as the terrific upgrade path that it will provide to current customers. With early access to the new release, our partners can develop common offerings that span the deployment options: on-premise, partner-hosted or Microsoft Dynamics Live CRM.”

    AdvantageWorks was selected from a large group of potential candidates to be part of the 75-partner early TAP program.  According to the press release this program will expand to 300 partners in Q1 and then to over 1,000 partners in Q2.  Through this program Microsoft is not only improving their product, but ensuring their partner community is able to deliver on this new platform when it is released later this year.  While we are not able to disclose any details regarding the next version at this time, we are able to say we are excited by what the future brings.

    Labels: ,

    Tuesday, January 09, 2007

    Real Estate Advantage Product Launch Tour

    Join us on February 6th from 8am - 12pm as we unveil the first solution to the market for commercial real estate industry certified for the Microsoft Dynamics CRM platform.

    Topics 

    • Answer to the question: Why Microsoft & why Microsoft CRM
    • Why build a solution specifically for commercial real estate?
    • How to approach implementation of the solution
    • Demonstration of Real Estate Advantage™
    • Is your business people ready?

    Who Should Attend

    Who is this for? Anyone involved in the buying/selling, servicing or investing in commercial real estate.

    • REITs
    • Property Owners
    • Brokerage Firms
    • Real Estate Developers
    • Property Managers

    Location

    Microsoft campus, 7000 Hwy 161, Irving, TX

    Click here to register

    Thursday, January 04, 2007

    Microsoft CRM Hotfix - Import Customizations Web page does not close as expected

    You install Windows Internet Explorer 7. Then, you try to import customizations in Microsoft Dynamics CRM 3.0. However, the Import Customizations Web page does not close as expected after you click Import All Customizations or Import Selected Customizations. Additionally, the import process is not completed.

    https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;en-us;927667

    Ah.... so I am not going crazy :-)

    Monday, December 25, 2006

    MRM - Another angle

    Check out Arash Ghanaie-Sichanie's blog posting about Microsoft CRM as a platform for building your business application.


    He does a good of explaining how Microsoft CRM provides a set of building blocks allowing you to focus on solving true business problems, rather than building all of the fundamentals from scratch. Which is exactly why we are building our vertical solutions on top of Microsoft CRM.

    Labels: ,

    Sunday, December 24, 2006

    New support option

    AdvantageWorks has added an additional method of support for our current and potential customers via our new Google discussion group. We believe the use of our products and solutions should be a pleasant experience and providing this public forum is an extension of that principle. This public discussion group allows you to ask questions, make suggestions, and solicit feedback from the AdvantageWorks product teams, as well as other members of the AdvantageWorks community:

    Please note this forum is not meant to be a replacement for direct support from AdvantageWorks and if you are in need of direct support or prefer to contact support directly please continue to contact us directly via email or phone:

    Labels:

    Tuesday, December 19, 2006

    Happy Holidays

    The team at AdvantageWorks wishes a happy holidays to all of our subscribers and hope the new year brings you many blessings.

    Saturday, December 09, 2006

    Ascendix Technologies Announces the Release of Real Estate Advantage™ - THE Commercial Real Estate Solution for Microsoft CRM

    Dallas, Texas (December 12th, 2006) – Ascendix Technologies, in accordance with their vertical strategy, has announced the release of Real Estate Advantage™, targeted at those companies that are in the business of buying, selling, servicing or investing in commercial real estate. Real Estate Advantage™, awarded Microsoft's certification for the Microsoft® Dynamics™ platform, is a specialized CRM solution helping commercial (office, retail and industrial) real estate companies manage assets, leases, tenants, vendors and prospects in marketing, service, sales and support functions. More effectively managing these complex business relationships helps real estate companies reach their business objectives of becoming more productive, efficient and profitable.

    Built on the Microsoft® Dynamics™ CRM 3.0 platform, Real Estate Advantage leverages the tools your organization already uses, such as Microsoft Outlook, Excel, Word, MapPoint and SharePoint, increasing the intuitiveness and adoption rates that so often plague CRM implementations. In addition, the Microsoft® Dynamics™ CRM 3.0 platform maximizes the investment you have already made in infrastructure using tools such as Microsoft Exchange, Microsoft® SQL Server, Active Directories and .Net frameworks.

    "Selecting Microsoft® Dynamics™ CRM 3.0 as the platform for Real Estate Advantage™ seemed like a natural fit for this vertical offering, considering the abundant usage of the tools like Outlook and Excel already in use at many, if not all, of the target firms. We simply did not want to force anyone to change to a whole new set of tools, but rather to augment that which they already have. With ten years of CRM implementation experience, laser-like focus on commercial real estate and the robust partnership with Microsoft®, we have created a value proposition that simply does not exist in the marketplace today," stated Wes Snow, President and CEO of Ascendix Technologies, Inc.

    "Our partnership with Ascendix exemplifies the Microsoft® vision we are bringing to fruition of 'Integrated Innovation,' leveraging Microsoft Dynamics™ CRM 3.0." stated Darlene Perfetto, Director Dynamics ISV Business Development, Microsoft Corporation. "With the inclusion of dynamic Web services, tight integration with Microsoft Office and the Microsoft development environment (Microsoft Visual Studio® 2005), Microsoft® CRM 3.0 was an obvious choice for Ascendix to use as a platform to bring its Real Estate Advantage™ solution to market in a limited amount of time. Microsoft® CRM 3.0 is the obvious choice for ISVs to build industry leading vertical customer relationship management (CRM) solutions."

    Ascendix will be unveiling the Real Estate Advantage™ solution through a series of regional product launch events, with locations tentatively set for Dallas, Irvine, Las Vegas, Chicago, New York and Boston. The first launch event is slated for February 6th in Dallas, Texas at the Microsoft offices in Las Colinas.

    About Ascendix Technologies – Ascendix Technologies, Inc., a Microsoft® Certified Gold Partner, is a privately held corporation located in Dallas, TX. Founded in 1996 by Todd Terry and Wes Snow, the company is celebrating its 10th year in business focused solely on the implementation of CRM systems for companies in both the mid and enterprise market space. In 2003, Ascendix turned to a vertical strategy, quickly carving out a niche in the alternative investment products, financial services and commercial real estate industries. For more information, please visit Ascendix on the web at www.ascendix.com .

    Wednesday, December 06, 2006

    Website Refresh

    We have updated our website recently, so swing by and take a look.  The original site was designed by a 3rd party and consisted of mostly static pages with lots and lots of images where text and CSS should have been used.  The site now loads much faster and allows us to provide my dynamic content.

    Updates include:

    • New Product Page
    • Support Information
    • Download link

    Our home page has also been refreshed to include our first add-on component for Microsoft Dynamics CRM 3.0 - The Split View.  This is the first in a series of product released designed to enhance the usability of Microsoft Dynamics CRM 3.0 and reduce the time need to develop custom solutions.  Upcoming releases will include:

    • Relationship Navigator
    • Data Import Utility
    • Action Plans
    • Software Development Kit (SDK)

    Thursday, November 16, 2006

    Intellectual Property

    I have been doing a lot of research lately on the subject of protecting intellectual property.  As an ISV, we have a compelling need to protect ourselves from unauthorized use of both our products as well as our source code.  While implementing a licensing scheme mostly addresses the first concern, the latter is much more difficult to address due to the nature of how managed code is compiled.

    Licensing

    There are a number of 3rd party components available to assist with licensing software.  Microsoft has also provided a licensing framework in .NET via the LicenseProvider class.  Out of the box Visual Studio includes only one implementation of a license provider, and it does not offer any real security.  However, it is relatively straightforward to create your own provider and there are a number of examples available online.

    The issue with licensing your managed code, though, is no matter how sophisticated your licensing scheme is it is still vulnerable to an attack if the code can be reverse engineered.  Assuming you have implemented encryption to protect your license keys, where do you put the code to decrypt the license?

    Obfuscation

    When I first looked into protecting our code I assumed I just needed to use an obfuscator and it would produce an assembly that not only could not be decompiled, but would also encrypt any embedded resources to prevent viewing someone from accessing IP by viewing the assembly via a standard text editor.  Unfortunately, this is not the case.  An obfuscator can make it much more difficult to understand your code, but it does not prevent reverse engineering and for the most part is not capable of encrypting embedded resources (embedded strings can be encrypted).

    Obfuscation does definitely make the job of reverse engineering code more difficult, and when combined with other security measures it serves a useful purpose.  However, obfuscation can give you a false sense of security if you are not aware of its shortcomings.

    Client-side code

    In a web application protecting intellectual property becomes even more complicated.  Assuming you are successful in protecting your compiled assemblies, when content is sent over the wire to a client you are once again exposing your intellectual property.  Fortunately, there are ways of protecting client-side code including JavaScript obfuscation and encryption.

    Final thoughts

    After I realized there is no perfect solution for protecting intellectual property, my focus shifted from complete security to a cost / benefit analysis.  If it takes someone more time and energy to reverse engineer our code than to reproduce it, are we really at risk?  If someone is able and willing to break our licensing scheme were they every going to be a customer in the first place?

    Our goal now is to protect our intellectual property from prying eyes by making it difficult (but not impossible) to reverse engineer.  The amount of time it would take someone to decompile, decrypt, and reassemble our products greatly outweighs the benefits of doing so.  In the end we found encryption to be much more powerful than obfuscation, but the combination of the two providing a significantly high level of protection.

    Sunday, October 29, 2006

    Programmatically read the isv.config.xml file

    I recently had a need to read settings from the isv.config.xml file at runtime and spent more time than I should have trying to find an elegant way to do this.  In the end I took a rather simple approach, but it has proven quite effective.

    The first requirement I had was to utilize the same physical configuration file Microsoft CRM uses, to ensure synchronicity.  To do this I was able to query the physical path to the CRM web site from the system registry and (assuming) the location of the isv.config.xml file is constant we get this:

    string fileName = Registry.GetValue(RegistryHive.LocalMachine,
    @"SOFTWARE\Microsoft\MSCRM", "WebSitePath").ToString() +
    "\\_resources\\isv.config.xml";

    Next, I wanted to cache the file so it would only need to be reread when the contents had changed.  For this, I used the built-in ASP.NET cache object:

    HttpContext.Current.Cache.Add("isv.config.xml", result,
    new CacheDependency(fileName), Cache.NoAbsoluteExpiration,
    Cache.NoSlidingExpiration, CacheItemPriority.Default,
    null);

    Now all was left was to read the file from the cache and parse the XML:

    public static XmlDocument Document
    {
    get
    {
    // First, look in the web cache
    XmlDocument result = (XmlDocument)
    HttpContext.Current.Cache["isv.config.xml"];

    if (result == null)
    {
    // Load the XML configuration
    string fileName = <see code above> ;

    // Import the values
    result = new XmlDocument();
    result.Load(fileName);

    // Cache the result
    HttpContext.Current.Cache.Add( <see code above> );
    }

    return result;
    }
    }

    The rest is straight XML:

    public static XmlNode Configuration
    {
    get
    {
    XmlDocument parent = IsvConfig.Document;

    return (parent == null) ? null :
    parent.SelectSingleNode("/configuration");
    }
    }
    public static XmlNode Entities
    {
    get
    {
    XmlNode parent = IsvConfig.Configuration;

    return (parent == null) ? null :
    parent.SelectSingleNode("Entities");
    }
    }
    public static XmlNode GetEntity(string entityName)
    {
    XmlNode parent = IsvConfig.Entities;

    return (parent == null) ? null :
    parent.SelectSingleNode("Entity[@name='" +
    entityName + "']");
    }

    The rest is up to you... :-)


    Wednesday, October 18, 2006

    We're golden!

    We are proud to announce AdvantageWorks has achieved the status of Microsoft Gold Certified Partner.  AdvantageWorks has demonstrated a unique expertise in Microsoft Dynamics CRM 3.0 with the certification earlier this month of our first vertical solution, Real Estate Advantage.  More importantly, though, our commitment to our customers and ability to meet their needs are what drive us to provide industry leading solutions for Microsoft Dynamics CRM 3.0.

    We are very excited by this news and the opportunity it provides us to deliver our customers with enhanced solutions to turn their Business Information into Revenue. 

    tags: , , ,

    Wednesday, October 04, 2006

    XRM?

    I had an interesting conversation with our Microsoft channel management folks on Monday and the whole topic of the appropriateness of the term "CRM" came up. They had their own interesting take on the topic.

    "Instead of CRM", they said, "we like the idea of 'XRM', where you just replace "X" with whatever relationship management the client needs."

    Pretty interesting. I like it.

    Tuesday, September 19, 2006

    Mashups, why all the fuss?

    OK... someone please explain this to me.  What is so revolutionary about mashups?  According to Wikipedia a mashup is a web site or Web 2.0 (don't get me started) application that uses content from more than one source to create a completely new service.  I think I did that back in '98 when I integrated shipping data from UPS in an e-commerce application I was working on.

    Granted API's available today are much easier to use and offer many more services, but just because you attach a cool buzzword to the concept does not make it new.

    Oh yeah... ditto for AJAX :-)

    tags: , ,

    Sunday, September 10, 2006

    FetchXML to Excel XML

    I have really started to like working with FetchXML (at first I was not so sure).  It takes a lot less code to execute a query than other methods and the fact I can load it into an  XML document is an added bonus.  With the addition of a few wrapper functions a simple FetchXML statement can quickly be turned into a DataTable, XML document, or an Excel worksheet.

    The first step for any of these activities is to load the results of the query into an XML document.  This makes the results easier to work with acts as the basis for all other activities.  In this example, we are using a SavedQuery object as the template for an Excel export:

    XmlDocument doc = new XmlDocument();
    doc.Load(new StringReader(CrmService.Fetch(query.FetchXml)));

    The next step is to iterate through the XML document and build the Excel workbook.  Rather than use the Excel object model, we simply generate an Excel XML document and return it as the XLS extension:

    // Worksheet header
    result += "<Worksheet ss:Name=\"" + this.name + "\">";

    // Table header
    result += "<Table ss:ExpandedColumnCount=\"" + this.Layout.Columns.Length + "\" x:FullColumns=\"1\" x:FullRows=\"1\" ss:StyleID=\"s15\">";

    // Column definitions
    foreach (Column column in this.Layout.Columns)
    {
        result += "<Column ss:Width=\"" + column.Width + "\"/>";
    }

    // Column headers
    result += "<Row ss:StyleID=\"s64\">";
    foreach (Column column in this.Layout.Columns)
    {
        result += "<Cell><Data ss:Type=\"String\">";
        result += column.Name;
        result += "</Data></Cell>";
    }
    result += "</Row>";

    XmlDocument doc = Utilities.Fetch.GetXml(this.fetchxml, parentId, this.Layout.Jump, filter, order);

    foreach (XmlNode node in doc.SelectNodes("//resultset/result"))
    {
        result += "<Row>";

        foreach (Column column in this.Layout.Columns)
        {
            result += "<Cell><Data ss:Type=\"String\">";
            result += this.GetValue(node, column, this.Metadata);
            result += "</Data></Cell>";
        }

        result += "</Row>";
    }

    // Footers
    result += "</Table></Worksheet>";

    Note, the above code snippet is taken from a function within our SavedQuery class.  To implement this code you would need to replace the references to "this" with your own references.

    Now all is left is to add our generated worksheet to an Excel template and (optionally) deliver the file to the user.  The template is saved as a resource file and looks like this:

    <?xml version="1.0" ?>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
        <Styles>
           <Style ss:ID="Default" ss:Name="Normal">
                <Alignment ss:Vertical="Bottom"/>
                <Borders/>
                <Font ss:FontName="Arial"/>
                <Interior/>
                <NumberFormat/>
                <Protection/>
            </Style>
            <Style ss:ID="s15">
                <Font ss:FontName="Arial"/>
            </Style>
            <Style ss:ID="s64">
                <Font ss:FontName="Arial" x:Family="Swiss" ss:Color="#FFFFFF" ss:Bold="1"/>
                <Interior ss:Color="#333399" ss:Pattern="Solid"/>
            </Style>
        </Styles>
    </Workbook>

    This was created by executing an Excel export in CRM, saving the results as an XML spreadsheet, and finally using notepad to determine the XML required for the template.  Again using an XML document our output and the template are combined:

    XmlDocument xlsDoc = new XmlDocument();
    xlsDoc.LoadXml(Properties.Resources.ExcelTemplate);
    xlsDoc.DocumentElement.InnerXml += result;

    To stream the result to the browser, it just takes a few more lines:

    context.Response.ContentType = "application/vnd.ms-excel";
    context.Response.AddHeader("content-disposition", "attachement; filename=" + savedQuery.name + ".xls");
    context.Response.Write(result);
    context.Response.Flush();
    context.Response.End();

    Voila!  FetchXML to Excel XML!!

    tags: , , , ,

    Thursday, August 31, 2006

    Dear Santa

    Santa, I know it is just summer but I want to give you a heads up on this year's holiday wish list.  I know how busy things get at the North Pole in the fall, so you may want to start looking at this list now to make sure you allocate enough resources for a December delivery.

    World Peace
    OK - Now I have the altruistic part of my list out of the way, the rest can focus on me.

    BMW 650i Convertible
    Its for my son... really!  Yes, he is only five... but one day.

    Microsoft CRM Enhancements
    Now for the hard part.  This is a list of features I would love to see included in Microsoft CRM 3.0 and hope they will be part of the upcoming Titan release:

    • Allowing for the display of attributes from multiple entities in a single query (beyond the basic lookup information).  The FetchXML schema supports this, but the graphical tools in MS CRM do not.
    • Providing for true many-to-many relationships.  This is a biggie.  Sure, it is possible to create a many-to-many relationship by creating a junction table, but this can lead to awkward navigation for the user.  I would like to see the functionality given to some of the system relationships be available via customization (i.e. Opportunities <--> Competitors).
    • Generic lookups.  I have had a few instances where I want to create an entity that can be attached to several other entities, but not in a many-to-many scenario.  For example, I have created an Image entity that can be associated with an account, contact, custom entity, etc.  The referencing entity can have many images, but an image would never belong to multiple entities.  However, if I create a standard relationship from each referencing entity I end up with an Image entity riddled with physical links back to them.  What I would like to see is the ability to great a generic lookup using the same "ObjectId, ObjectTypeCode" approach MS CRM uses for annotations and activity pointers.
    • Ability to suppress related entities from appearing in the navigation bar when editing an entity.  They can be removed from JavaScript, but this is an unsupported hack (which we have chosen not to implement).  On a similar subject...
    • Ability to suppress custom entities from showing up in the New drop-down menu.  There are times I want to use an entity for system purposes (like one of those many-to-many junction tables) the user does not need to know even exist.
    • Filtered lookup dialog.  Need I say more.

    I know I am asking for a lot this year, Santa.  But I have been very good this year and eating all my veggies every day.

    Yours truly,
    Ross

    Tags -

    Wednesday, August 30, 2006

    ...More on "MRM" vs. "CRM"

    I saw this article referenced in one of the other blogs I read, and it struck a chord with me, especially in reference to my earlier entry "CRM Just Doesn't Cut it Anymore." I think it's dead on...we've worked with many leading CRM packages over the years and they've all evolved to a level of useful competency. It's time to think of these toolsets as a master front end application...the hub of the spokes.

    "But now that we have a broad number of packaged CRM applications that generally work, the temptation to think about CRM as a tactical rather than strategic tool is even greater. Rather than merely use CRM as a sales forecasting application, the time may have arrived when we need to think about it as the new universal front end to all of our other enterprise applications."

    http://www.baselinemag.com/article2/0,1540,1972151,00.asp

    Tags -

    Thursday, August 24, 2006

    Job opening at AdvantageWorks

    Division/Department
    Product Development

    Location
    Dallas, TX, 75240

    Job Title
    Full-time developer (Mid-level)

    Reports to
    Director of Product Development

    General Description

    Microsoft .NET developer who has experience working as part of a team in a fast paced (agile) environment. Needs to be a creative thinker who can solve problems independently, and at the same time someone who interacts with other team members to deliver a consistent, unified, and quality product. Experience with Microsoft CRM (any version) is a plus, but not required. Must have a solid understanding of scope management, the ability to estimate tasks and work under tight deadlines.

    Activities may include ASP.NET development with C# and SQL Server 2005, building deployment packages, object oriented programming, creating Windows and/or Web Services, XML Serialization, defect resolution, and writing documentation.

    Work Experience Requirements

    • Three plus years experience developing solutions using Visual Studio 2003 / 2005, C#, ASP.NET, XML, SQL Server 2000 / 2005, JavaScript, DHTML, and HTML
    • One plus years experience developing Smart Client (desktop) applications using Visual Studio and C#
    • Understanding of “object oriented” concepts such as inheritance, interfaces, and collections
    • Full life cycle experience for at least three projects with teams of five or more resources
    • Understanding of scope management, iterative development, and agile methodologies
    • Practical experience with Visual Source Safe, Visio, Word, Project (from the perspective of a developer)
    • Optional experience (more important) includes Microsoft CRM (any version), SharePoint, Office automation (InfoPath, SmartDocs, etc)
    • Optional experience (less important) includes other CRM products, Windows Services, Mobile applications

    Education Requirements

    • Bachelor of Science in Computer Science or
    • Other degree with five years applicable work experience


    About AdvantageWorks

    AdvantageWorks Software Group, LLC is a privately held corporation located in Dallas, TX. The company is a spinoff and sister company of Ascendix Technologies, Inc., a premier consultancy and implementer of Customer Relationship Management (CRM) systems, founded in 1996. Read more about Ascendix.

    AdvantageWorks stems from a unit formed within Ascendix in 2004 focusing on industry-specific CRM modules for the financial services and real estate industries. The company is led by the CTO and one of the original founders of Ascendix, Todd Terry. In May of 2006, Ross Goldberg joined the firm as Director of Product Development.

    Interested parties should submit resumes and salary requirements to info@advantageworks.com

    Sunday, August 13, 2006

    “CRM” Just Doesn’t Cut it Anymore

    I’m a firm believer in Customer Relationship Management (CRM) tools and philosophies. I’ve seen how tools that support CRM processes and methodologies can really impact an organization. I’ve also seen many organizations implement a CRM tool, thinking they will inherit the espoused benefits of CRM, yet 12 months later have nothing to show for their investment except user indifference and another app for IT to support and maintain. But this is all a different topic for another day. Today, I want to talk about the actual term “CRM.”




    I remember when I first entered this industry about 10 years ago, the tools existed, but the term didn’t. Then, it was called a few things; “SFA” or Sales Force Automation, and “Sales Information Systems” were among the top two of many. Oh, there was definitely a term mismatch: We were implementing SFA and sales information systems for people who weren’t sales people or selling a blasted thing! It seemed like we were constantly “re-branding” the software tools internally so we wouldn’t confuse the eventual end-user community! (“Co-Pilot” was one of my favorite client-termed re-brands for SalesLogix. “Let the tool be your co-pilot” they would say, since none of the end users were sales people.)



    It was all about delivering productivity tools and key business information to users. The one thing that these users seemed to have in common was that they tended to be either directly or indirectly client-facing information workers. This obviously inspired the eventual use of the term “CRM” since most client-facing people are either in sales, marketing or support, the three pillars of CRM.



    Well, during these past 6 or 7 years of using and misusing the term CRM, I’m again finding that it just doesn’t capture the essence of what this tool does or can do, yet I don’t think “front-office productivity system” (FOPS) will unseat the incumbent any time soon!



    A good real-life example is our application of CRM in the commercial real estate industry. We have seen on many occasions where the user of our system is not in sales, marketing or support, and their job of managing clients or client information (the "C" of CRM) is second or third tier to managing the complex processes and relationships around acquiring, managing or disposing of the asset itself. Tenants, leases, construction projects, brokers, listing agents, building owners, property managers, etc. are all entities whose information needs to be managed, but it is not clear which one of these is actually a “customer.”



    So what do we use? Well, at AdvantageWorks and at our sister company, Ascendix, we’ve tried on a few different terms. The one that seems to fit the best for us is “MRM” for “Master Relationship Management.” A master tool, methodology and process for managing all your relationships; be it clients, products, vendors, partners, contracts, issues, you name it.



    We’ve tried it on at a couple of our real estate clients, and it seems to clear away some of the confusion.



    Will it stick? Well, time will tell. But for us, we’ll use “MRM”.

    Labels:

    Monday, July 31, 2006

    Many-to-Many Relationships

    Does Microsoft CRM 3.0 support many-to-many relationship? Sure, just create two one-to-many relationships using a intermediary table and you can create as many complex relationships that you want. Easy for the developer… but what about the end user?

    Let’s say you want to relate students to class given a student can enroll in many classes and a class contains many students. A classic many-to-many situation. Ok, what do we do?

    1. Create a new entity – let’s call it crm_roster
    2. Create a one-to-many relationship from crm_student to crm_rosterhalf way there!
    3. Create a one-to-many relationship from crm_class to crm_roster
    4. Voila! A many-to-many relationship is born!!

    So now what? Say you are an end-user and you want to add students to a class, what do you do?

    1. Open the class entity
    2. Choose the Roster tab and click the New buttonWhat are you presented with? A list of students to pick from? Nope. You are presented with a dialog for editing the relationship (roster item), but not the roster itself. So continuing on….
    3. You click the class search icon to open yet another dialog to select the students. Can you pick multiple students? Nope. Is this list filtered by students associated with this particular school (assuming you have more than one school in the system)? Nope.

    Is there a better way? Of course there is! If you look carefully, Microsoft is using several many-to-many relationships between system entities such as users to roles. If you go to the user settings page and click the manage button, you are not presented with a dialog to edit a single relationship, but rather a checklist to select the roles associated to the user. Exactly what we are after!


    Can you use this magic dialog? Unfortunately not. But don’t give up. There is still hope.

    Solution available in Many-to-Many Relationships part II

    Copyright © 2007 AdvantageWorks Software Group, LLC. All rights reserved.