Multi-currency & multi-company handling
This time last week we had no apparent ability to handle the classic CODA multis of multi-currency and multi-company on the Salesforce Platform. Today we have a fully demonstrable solution, with some further worries about data security resolved beyond doubt. Prior to that time we had spent several weeks researching the Force.com platform, explaining our requirements to our contacts at Salesforce and working through various proposals and counter-proposals. It was like trying to solve a problem that needed a high degree of collaboration and communication in a serial manner through a narrow bandwidth pipe. We even proposed a 2-3 hour conference call with the Force.com team but somehow with the time difference and conflicting schedules we could never make it happen. And the beat of our development drum was moving on, we already missed one deadline for clarity on currencies that meant we were starting sprint 6 with some assumptions whose validity was not proven. Clearly we had to meet face to face with the Force.com team.
Within a week of meeting with Salesforce’s President of Platform Alliances & Services in London we had cancelled domestic and work commitments for a CODA team of 3 to travel over from the UK to San Francisco, which we did on Sunday the 10th Feb. Likewise our contacts at Salesforce freed up an awesome team of architects and developers to meet us. What a first day we had – meeting a founder of SFDC who was more really interested in talking about our experiences working through and understanding our problems with the platform. We gave a demo of CODA 2go to an audience of 35 (plus several more over web meeting) – which was very well received, followed by some very informed questions and even a round of applause at the end!
It soon became clear that there is a fundamental difference between the currency handling requirements of a CRM system and a Finance system. In finance, once a transaction is ‘inked in’ to the books, it cannot be allowed to change whatever happens to rates. Whereas a sales order book value can be allowed to ebb and flow as rates move. Once we had established that it was agreed that the platform will be extended to introduce a concept of a simple type, which is left alone and which CODA will be responsible for managing. As part of our previous work we were aware of a proposed multi-company solution and Tuesday saw an energetic day of whiteboarding and trials as we grappled to understand the proposed solution and checked it out against our orgs. After lots of talk it looked OK and we decided to revisit it later in the day. At 3pm however, we found a fundamental flaw. Although we would restrict an individual user to a particular company and object within a company, we could not prevent those users from seeing individual instances or ranges of instances.
For example, Abi the invoice clerk could be limited to posting and viewing invoices, but she could not be prevented from viewing all general ledger accounts – if she could see one she could see them all. This means that she could see, for example, postings to the director’s salary accounts or confidential sales reps’ expenses. SFDC proposed a solution which we found hard to understand and needed to prototype. Essentially the SFDC data model writes security into the database. This was new to us, and being difficult to understand, we were worried about the performance impacts. It took no less a person than the SVP, Platform Division himself to explain it to us. Eventually we saw the light, so test orgs were set up over Tuesday night, flights re-arranged from Wednesday to Thursday and those prototypes duly completed. And it all worked! So – success indeed with our requirements met.
The security solution gives us a real head start against other platforms because it means that we get all reports security filtered without CODA having to do anything. There is simply no way that Abi the clerk can see those expense postings even by running reports on the standard platform which knows nothing about CODA data! Once again we were heartened by the immense support from all the Salesforce team. There was also lots of seafood consumed and the Sea Lions on San Francisco’s Pier 39 duly visited on early morning jogs. But what about that web cam? Tim Tribe, Product Managment, CODA