For developers

From DevSummit
Jump to navigation Jump to search

Facilitated by Akhilesh Gupta,

Session Description is very different from typical database development platforms. In this session, we will do a deep dive into the capabilities of the platform and answer questions on platform features like APIs, web sites, development languages, custom database schema and so on. If you want to learn the technical ins-and-outs of building on the platform, this session is a good start.

Session Notes

  • what we are interested in/why we are here
    • developer api
    • differences between civicrm
    • general overview
  • how we feel about cloud computing
    • mixed, depends on project and data
    • as well, using cloud services such as hosting and AWS is different than cloud applications such as Salesforce
  • Different type of cloud computing - use Salesforce if you only care about solving the problem easily and quickly (no need to fully manage your own server down to the OS level). It's a platform for building applications, CRM, social networking etc...
  • It's a balance between control and convenience, such as easily adding on event registration
  • Salesforce schema can be whatever you want, default schema is for CRM, beyond that you can modify this or create your own, developer can create new tables, columns, etc
  • Example of NP using Salesforce - db to store for lessons, trainers, notes
  • Salesforce is working on legislation changes about security and records
  • Data hosted on cloud services is being handed over without notification to customers from subpeonas, some even without them, a security concern with using the cloud. Use cloud services with providers that you trust not to do this.
  • Developer account is free, and there is a free version for enterprises.
  • Question - custom objects, how to build complex relationships, and what the limits are versus building your own sql relationship and how to query - what are the limits of the object model?
  • In SF there are two types of relationships - simple lookup, and master details, mater details are usefull for rolling up data to parent from child
  • SOQL - is the SF web service based query language
  • Salesforce has appexchange, like the iphone app store, build and package apps and anyone can install on your instance of Salesforce. With these apps, upgrades are applied without breaking anything
  • There are also unmanaged packages/apps which are open source and after install you can change and modify it but you won't get automatic developer upgrades
  • For nonprofits, there is the nonprofit starter package.
  • The Salesforce foundation recently had a developer summit for nonprofit starter package to bring developers together to build new features.
  • The non profit starter package contains 5 apps:
    • individual account
    • relationships - relates contacts
    • affiliations - relates orgs and contacts
    • donation package
    • householding - allows for contacts to be in same household
  • Example scenario of how to extend: Events, HIV prevention presentations
  • Can create table for events, relate contacts to events, campaigns can also relate to events

using campaign member or just use campaigns for each new event.

  • API - workflow is a functionality that you get in the system - setup, create, objects - new tables, can edit, create new tables, create new fields (columns).
  • Workflow rules - create new rule, choose table, i.e. contact, if revenue is more than X, receive notification, run on creation or on update, etc...New task, New email, New field, existing action
  • And per object, you can creat triggers (like on an individual campaign)
  • Apex language - similar to java, don't have to connect to DB, don't have to worry about caching, etc...
  • Salesforce has 3 or 4 data centers, with disaster recovery, europe singapore, a few in US, as big as google apps
  • Outbound message - URL, permissions, what fileds you want to send, and this gets sent in a post, soap message - http post

soap message is always a post in the body

  • wsdl - will need to be added to your system to understand soap message
  • AJAK toolkit shell - dev tools to submit javascript calls - describe object, global - returns all tables, built on partner wsdl
  • To access toolkit shell, login to your account, then go to this URL, based on your account and version:<api version 20.0>/debugshell.html

  • APIs include -
    • Enterprise - primarily for your data model
    • Partner - is generic, anyone can use it, use describe to discover customizations
    • Metadata - change the data model using the API, eclipse api
  • Other customization areas
    • Pages create your own UI
    • Sites - create public pages
    • S-Control - old, no longer supported, prior to pages, no new functionality