Microsoft CRM was designed to be easily customizable. Microsoft CRM Software Development Kit (MS CRM SDK) which you can download from Microsoft website contains descriptions of the objects or classes, exposed for customization. It has sample code in C# and partially in VB.Net. In Visual Studio.Net you can analyze all the classes, used by Microsoft developers to create MS CRM - you will discover that most of them are not documented in MS CRM SDK. Microsoft will not support your customization if you use undocumented class or do direct SQL access to CRM database.
Let us describe you - programmer, software developer typical cases of MS CRM Customizations.
1. Integration with SQL Server application. If you have legacy system on MS SQL Server - let’s say you are transportation company and have in-house developed cargo tracking database. Now in MS CRM you want lookup the shipments for the customer (or account in CRM). This is SDK programming and calling SQL stored proc to retrieve cargo info. Instead of SQL Server you can have other database (ORACLE, MS Access, PervasiveSQL to name a few) - you can access multiple Database platforms via ADO.Net connection from your .Net application, which is easily integrated into MS CRM Account screen.
2. Email capturing in MS CRM. You have customer with email Bill@customer.com. Now you want all the emails that you receive from customer.com domain to be attached to Bill who is account in CRM. This is more difficult customization - you have to create MS CRM SDK web service, that one will be creating email activity and call it from COM+ application - Microsoft Exchange event handler (ONSYNCSAVE database event sink). This example maybe complicated with the following requirement. Imagine that Bill, instead of answering to your email (sent from CRM and processed by CRM-Exchange connector) sends you new message from MS Outlook. Then this email will not follow into MS CRM (because it doesn’t have GUID in the header and so is ignored by CRM Exchange connector). If you want to capture these emails - you have to do it in Microsoft Exchange event sink. There maybe scenario when you want to capture and analyze in the sink all the outgoing emails - this is even more complex - y!
ou have to place the sink on transport event.
3. ASP Application integration. You have legacy ASP application, where you capture orders from your customers and you want these orders be transferred to the CRM as activity. Here you understand that ASP doesn’t deploy Active Directory security - and the best way is to create HTTP handler and call it from your ASP page. This HTTP handler in turn will call MS CRM SDK web service with predefined (web.config) Active Directory credentials.
Some cautions. Never create your custom SQL objects (like stored procedure, SQL view, table) in MS CRM database. Instead, create your own database and place your objects there. When you see the first caution - you will never try to alter existing CRM objects, like adding new field to the table.
Happy customizing! if you want us to do the job - give us a call 1-866-528-0577! help@albaspectrum.com
About The Author
Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies - USA nationwide Great Plains, Microsoft CRM customization company, based in Chicago, California, Texas, New York, Florida, Georgia, Minnesota, Oregon, Arizona, Canada, UK, Australia and having locations in multiple states and internationally (www.albaspectrum.com), he is Microsoft CRM SDK, Great Plains Dexterity, SQL, C#/VB.Net and Crystal Reports developer; akarasev@albaspectrum.com
Before we start on the specific elements of general ledger software, and where all the pieces fit, you need to understand the basics of financial statement and how you can read them.
There are two main parts to your business’s financial statement -
The accounting software will produce a Profit and Loss, which shows your day to day income reflected against your expenses and therefore shows what your profit, or loss, is.
The accounting software will also produce a Balance Sheet, which shows your business assets against liabilities and the accumulated earnings of your business over the years.
Lets first look at how these reports are arrived at -
You must first understand, or accept the first main principle of double entry bookkeeping before we start and that is -
For every entry made there must be an equal and opposite entry made somewhere else and when you have finished making your entries they must all add up to zero. Don’t worry most accounting software packages will make most of these day to day entries for you.
Sounds weird - not really. The whole principal is logical and goes back to the days when all books where done manually, because accounting software didn’t exist, and by making all of the entries add up to zero we knew we had correctly entered our numbers. We may not have entered them into the right slot but at least we had created the basis of being on the right track. And even though your accounting software will, in most cases, make most of the entries for you, you must understand the principle behind it.
Even if you enter something in the wrong ’slot’ it is nearly always a simple process to move it where it should be later on.
A Profit and Loss report has five main elements
Income
Cost of Sales
Gross Profit
Expenses
Net Profit (or loss) - sometimes called the Bottom Line
The Net Profit line is also known as The Bottom Line. You sometimes hear the expression that if we did this or that it would go straight to the bottom line. In plain talk what this expression means is that, say for example, we were able to do away with motor expenses in the above Profit and Loss report and incurred no other alternative expense in its place then the $3000.00 motor expenses would go straight to the bottom line and increase our net profit by $3000.00
A balance sheet, in very simplistic terms, has two main elements -
Assets
Liabilities
(please note that assets and liabilities are nearly always broken up into sub sections - typically those that are current - within 1 year - and those that are not current - longer than a year - we are not going into that depth - leave that to your accountant and worry about it when you have mastered everything else)
( Note - the trade debtors account is only money that is owed to us as a result of selling goods on account to customers of ours. Other monies owed to the business such as staff loans etc would be shown separately. The same with Trade Creditors. This is money that we owe to people that we purchase from on an ongoing basis for example - people that we buy goods for resale from, telephone account, petrol account and so on. People that we owe money to on a longer term basis i.e. a bank loan are shown separately)
Regarding the bank account - assuming that your bank account mostly has money in it, and, therefore, it falls under Assets (the money is an asset belonging to your business). If the account is mostly in overdraft then typically it would fall under the Liabilities section (the money is a loan from the bank and a business liability).
If it fluctuates between the two simply pick where it mostly is. It’s not a major issue. Let’s say for example you put it under assets and then it went into overdraft all that would happen is that it would be shown with brackets around it.
Things to regularly check -
(like at least once a month - more when you are starting out and going through the learning curve) -
Your customer’s age trial balance (a list of how much your customers owe you from the receivables module) must always equal the Trade Debtors account in the Ledger.
Logical isn’t it when you think about it. The Receivables module is telling us that the customers owe x amount of money. This amount must be the same as the Ledger is telling us that the customers owe.
Your suppliers age trial balance (a list of how much you owe your suppliers from the Payables module) must always equal the Trade Creditors account in the Ledger
Your Stock Value report from the Products module should always equal the Stock on Hand account in the Ledger
Your bank statement should regularly be reconciled back to the balance that the Bank account shows in the ledger.
Why should you check these balances regularly - because things can go wrong and if you only pick it up several months later you are only making it harder for yourself to find out why they don’t balance. At least if you do it often you may remember if something unusual happened.
If you find something doesn’t balance - find out why as soon as possible and fix it. If you need help get it - ask your accountant, software trainer or some other knowledgeable person
I have been involved in all aspects of the accounting software industry for over 20 years. I run several websites that specialize in various subjects including http://www.diyaccounts.com.au that gives advice on all aspects of accounting software from choosing, setting up and using it. Amongst other sites that I run are http://www.sense-now.com that helps newbies understand what internet business will probably work for them and what won’t. http://www.oumas.com.au is all about arts, crafts, hobbies, wine and beer making.