SalesForce 入門


Salesforce.com 一開始是一個雲端的銷售自動化(Sales Force Automation, SFA)以及客戶關系管理工具(Customer Relationship Management, CRM),但經過這么多年的演化,它已經成為一個可以構建任何企業應用的通用平台。Salesforce 這個名字是一個歷史遺留產物,Salesforce1 平台雖然仍提供 SFA 和 CRM 的應用,但更是一個構建現代企業系統的基礎平台。

 

價格和功能

Salesforce1 平台上提供了許多不同版本的產品,像 CRM 應用 Sales Cloud ,客服應用 Service Cloud 以及 Platform 等等。不同的產品在內置功能上會有所不同,在 http://www.salesforce.com/crm/editions-pricing.jsp 上可查看所有產品和價格表。此外還有專門提供給開發者的免費版本,可在 https://developer.salesforce.com 申請。

 

下面我們從不同視角來看 Salesforce1 平台的組成。

 

元數據驅動的數據模型 (Metadata-driven Data Model)

在 Salesforce1 平台的核心是一個雲端數據庫,通過元數據可以對數據庫進行自定義和配置。元數據定義了數據模型,Salesforce 支持兩種不同的方式來修改元數據,一種是在 web 界面上點擊拖拽等操作來修改,另一種是通過 XML 格式的定義文件來修改。Salesforce1 平台是一個多租戶架構的平台,每一個租戶(也叫做 Organization 或者 Org)的元數據(也就是數據模型)都支持版本控制、可打包、可測試。

數據庫中的每一個對象或表都叫做 SObject,每一個 SObject 都內置了下面的功能:

自定義字段 (Custom Field)

驗證邏輯 (Validation Logic)

字段級別的安全性 (Field Level Security)

引用關系和選項列表 (Reference and Picklist)

Derived Values

 

所有的 SObject 都提供了:

SOAP 和 REST 的 API

基本的增刪改查界面

通過 Salesforce1 的移動端增刪改查界面

加索引的搜索

 

SObject 的字段類型包含:

自動編號 (Auto Number)

公式 (Formula)

累計匯總 (Rollup Summary)

Lookup 關系 (Lookup Reference)

Master-Detail 關系 (Master-Detail Reference)

復選框 (Checkbox)

貨幣 (Currency)

日期和日期時間 (Date and Date/Time)

電子郵件 (Email)

地理位置 (Geolocation)

數字和百分比 (Number and Percent)

電話 (Phone)

選項列表和多選的選項列表 (Picklist)

文本框、文本區域、加密的文本 (Text, Text Area, Encrypted Text)

URL

 

平台上每一個新注冊的 Org 都內置一些標准SObject,具體依版本不同而定。比如說 Sales Cloud 版的 Org自帶了聯系人、線索、業務機會。

 

Salesforce 數據模型內置了一些安全上的特性,比如數據更改的審計(change auditing),字段級別的安全性。

 

編寫代碼來實現自定義擴展

在Salesforce1 平台上,用戶可以完全依靠 web 界面拖拽點擊來構建應用。但有一些用例需要編程來實現自定義,比如自定義的界面、trigger、scheduled jobs。

 

Salesforce1 平台支持的編程語言:

Visualforce:服務器端模版語言,用來自定義用戶界面

Apex:用來編寫 trigger,visualforce controller,scheduled jobs 等代碼邏輯

SOQL:用於數據庫查詢的領域專用語言(Domain Specific Language, DSL)

 

Visualforce 使用了類似 JSP 語法用來創建自定義的 HTML 頁面,內嵌在 Salesforce 或者 Salesforce1 移動應用中。Visualforce 中的頁面使用了傳統的服務器端 MVC 架構,其中 Visualforce 是 View,Apex Class 是 Controller,SObjects 是 Model。Visualforce 頁面可以使用任何的 JavaScript,包括 JavaScript Remoting 和各種 RESTful 的 web service。

 

一個典型的 Visualforce 頁面長這樣:

<apex:page>
    hello, world
</apex:page>

Apex 是一種語法和 Java 類似的,運行在平台上受管的、單獨分隔的、安全的運行時中。Salesforce 提供了 Eclipse 插件 Force.com IDE 和基於 Web 的 Developer Console 用來編寫 Apex 代碼。Apex trigger 綁定在每個 SObject 的事件上,比如 update、delete、create。Batch jobs 和 scheduled jobs 也是用 Apex 編寫。

一個簡單的 trigger 長這樣:

trigger Foo on Contact (after insert) {
    for (Contact newItem : trigger.new) {
        System.debug('Contact Created: ' + newItem.Name)
    }
}

 

SOQL 查詢可以在 Developer Console 中運行或者在內嵌在 Apex 中,比如:

Contact contact = [SELECT Id FROM Contact LIMIT 1];

Apex 包含了一個類似 JPA/Hibernate 的訪問數據庫的語法,有助於方便地在 Apex 中對 SObject 進行增刪改查。

 

一個典型的例子:

Contact c = new Contact(LastName='Bar');
insert c;
c.FirstName = 'Foo';
update c;
delete c;

 

Apex 代碼支持版本控制、可打包、可測試。Apex Runtime 包含了單元測試,達到 75% 以上覆蓋率的代碼才能部署到生產環境。這種代碼覆蓋率的要求有助於保持平台升級的穩定性,因為 Salesforce 通過運行用戶編寫的測試代碼來進行平台升級時的回歸測試。

 

除了編寫 Apex 代碼外,許多業務流程和規則可以通過 Workflow 等來創建。像 SObject 的元數據一樣,workflows 可以通過 web 界面來點擊創建,Workflows 也是一組 XML 格式的定義文件,支持版本控制、可打包。

 

Salesforce.com UI,Salesforce1 手機應用,Apex 運行時,Workflow 引擎都是用來構建企業后台應用,面向和企業員工的交互。而在面向客戶的界面上和 Salesforce 進行數據交互,Salesforce1 平台提供了 Heroku 服務,讓開發者容易地創建、部署、擴展自定義的 web 應用、移動應用、以及Web/RESTful service。Heroku 應用可以使用任何語言編寫(Java、Ruby、Node.js,etc),並部署在一個完全受管的 PaaS 平台上,傳統上開發者得自己從頭搭建一個運行環境和相應的服務。而在 Heroku 上,像負載均衡、失效轉移、集中化日志、持續交付、可擴展性這些功能都是開箱即用的。

 

集成和 ETL

Salesforce1 平台提供了許多方式和其他系統進行集成或者數據遷移同步。數據集成的主要方法有:

Heroku Connect: 一個高性能 Salesforce 數據的標准 SQL 接口

SOAP APIs: 強數據類型的 web service

REST APIs: 支持 JSON 格式的 web service

Streaming APIs: 事件驅動的消息 service

Data Import & Export: 非常多的工具,向導,以及 web service 提供了對 salesforce 數據的導入導出

電子郵件提醒:Apex 和 Workflow 可以用來從 Salesforce 向用戶發送郵件提醒

移動端提醒:移動端提醒是內嵌入 Salesforce1 手機應用的,支持自定義的提醒

OAuth 2.0:Salesforce web service 支持 OAuth 2.0 認證,其他應用可以用 access token 來調用 Salesforce 的 web service

SAML: 支持企業應用間的單點登錄

Mobile SDKs: Salesforce 的 Mobile SDK 支持 Native, Hybrid 和 HTML5 的移動應用開發

第三方集成服務提供商:許多平台集成服務提供商像 Informatics,Boomi,Cast Iron,MuleSoft 都有一些開箱即用的解決方案支持和 Salesforce 的集成

 

平台的生態

圍繞 Salesforce1 平台有許多服務、應用、框架、工具庫。其中包括:

AppExchange:Salesforce1 平台的應用商店

Data.com:全球的聯系人目錄

ExactTarget:Marketing Cloud

開源的框架,SDKs,工具庫,示例,可見 github @forcedotcom 和 @developerforce

 

可信賴的平台

作為企業數據和應用的基礎,Salesforce1 平台必須是值得信賴的(可以參考:https://trust.salesforce.com)。Salesforce 的許多方面體現了企業系統的可信賴,包括系統正常工作和響應都是公開在網上可查詢的,多層的安全機制,隱私和證書服務。

 

如何開始?

准備進入 Salesforce 嗎?最好的方式是自己動手做,Salesforce Developer Workshop(http://ccoenraets.github.io/salesforce-developer-workshop/) 提供了一個簡單的教程,幫助新手通過使用來理解平台上的組件。

 


 

本文是譯文,原文如下:

An Architects Guide to the Salesforce Platform

https://www.jamesward.com/2014/08/19/an-architects-guide-to-the-salesforce1-platform


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM