Apex 教程


閱讀(272.5k) 收藏 (11)

手冊(cè)簡(jiǎn)介

Apex是由Salesforce.com開(kāi)發(fā)的專有語(yǔ)言。 根據(jù)官方定義,Apex是一種強(qiáng)類型,面向?qū)ο蟮木幊陶Z(yǔ)言,允許開(kāi)發(fā)人員在Force.com平臺(tái)服務(wù)器上執(zhí)行流量和事務(wù)控制語(yǔ)句,同時(shí)調(diào)用Force.com API。

手冊(cè)說(shuō)明

什么是Apex?

Apex是由Salesforce.com開(kāi)發(fā)的專有語(yǔ)言。 根據(jù)官方定義,Apex是一種強(qiáng)類型,面向?qū)ο蟮木幊陶Z(yǔ)言,允許開(kāi)發(fā)人員在Force.com平臺(tái)服務(wù)器上執(zhí)行流量和事務(wù)控制語(yǔ)句,同時(shí)調(diào)用Force.com API。


apex教程


它具有類似Java的語(yǔ)法,并且像數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程。 它使開(kāi)發(fā)人員能夠向大多數(shù)系統(tǒng)事件添加業(yè)務(wù)邏輯,包括按鈕點(diǎn)擊,相關(guān)記錄更新和Visualforce頁(yè)面??梢酝ㄟ^(guò)Web服務(wù)請(qǐng)求和對(duì)象上的觸發(fā)器啟動(dòng)代理代碼。 Apex包含在Performance Edition,Unlimited Edition,Enterprise Edition和Developer Edition中。


Apex

Apex作為語(yǔ)言的特點(diǎn)

集成

Apex內(nèi)置支持DML操作,如INSERT,UPDATE,DELETE以及DML異常處理。它支持內(nèi)聯(lián)SOQL和SOSL查詢處理,返回一組sObject記錄。我們將在以后的章節(jié)中詳細(xì)研究sObject,SOQL,SOSL。


Java語(yǔ)法和易于使用

Apex很容易使用,因?yàn)樗褂孟馢ava這樣的語(yǔ)法。例如,變量聲明,循環(huán)語(yǔ)法和條件語(yǔ)句。


數(shù)據(jù)高度集成

Apex數(shù)據(jù)集中和設(shè)計(jì),以一起執(zhí)行多個(gè)查詢和DML語(yǔ)句。它發(fā)出的多個(gè)數(shù)據(jù)庫(kù)事務(wù)語(yǔ)句。

強(qiáng)類型

Apex是強(qiáng)類型語(yǔ)言。它使用直接引用構(gòu)架對(duì)像,比如sObject,并且任何無(wú)效引用如果被刪除或者如果是錯(cuò)誤的數(shù)據(jù)類型,就會(huì)快速失敗。

多租戶環(huán)境

Apex在多租戶環(huán)境中運(yùn)行。因此,Apex運(yùn)行時(shí)引擎設(shè)計(jì)為密切防范失控代碼,防止其獨(dú)占共享資源。任何違反限制的代碼都會(huì)失敗,并顯示易于理解的錯(cuò)誤消息。

自動(dòng)升級(jí)

Apex作為Salesforce版本的一部分進(jìn)行升級(jí)。我們不必手動(dòng)升級(jí)。

容易測(cè)試

Apex為單元測(cè)試創(chuàng)??建和執(zhí)行提供內(nèi)置支持,包括指示覆蓋了多少代碼的測(cè)試結(jié)果,以及代碼的哪些部分可以更高效。


開(kāi)發(fā)人員應(yīng)在何時(shí)選擇Apex?

當(dāng)我們不能使用預(yù)構(gòu)建和現(xiàn)有的開(kāi)箱即用功能來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)功能時(shí),應(yīng)使用Apex。下面的情況下,我們需要在Salesforce配置使用Apex。


APEX應(yīng)用程序

我們可以使用Apex,當(dāng)我們想:

  • 通過(guò)集成其他系統(tǒng)來(lái)創(chuàng)建Web服務(wù)。
  • 為電子郵件創(chuàng)建電子郵件服務(wù)或電子郵件設(shè)置。
  • 同時(shí)對(duì)多個(gè)對(duì)象執(zhí)行復(fù)雜的驗(yàn)證以及自定義驗(yàn)證實(shí)現(xiàn)。
  • 創(chuàng)建現(xiàn)有工作流功能或流不支持的復(fù)雜業(yè)務(wù)流程。
  • 創(chuàng)建自定義事務(wù)邏輯(在整個(gè)事務(wù)上發(fā)生的邏輯,而不僅僅是單個(gè)記錄或?qū)ο螅?,例如使用Database方法更新記錄。
  • 當(dāng)有一些事件導(dǎo)致觸發(fā)器觸發(fā)時(shí),當(dāng)記錄被修改或修改相關(guān)對(duì)象的記錄時(shí),執(zhí)行一些邏輯。

Apex的工作結(jié)構(gòu)

如下圖所示(參考:Salesforce開(kāi)發(fā)人員文檔),Apex完全按需運(yùn)行Force.com平臺(tái):

Apex的工作結(jié)構(gòu)


操作流程:

當(dāng)開(kāi)發(fā)人員保存代碼并且最終用戶執(zhí)行調(diào)用Apex代碼的一些操作時(shí),有兩個(gè)操作序列,如下所示:

  • 開(kāi)發(fā)人員操作:當(dāng)開(kāi)發(fā)人員將Apex代碼寫入并保存到平臺(tái)時(shí),平臺(tái)應(yīng)用程序服務(wù)器首先將代碼編譯為一組可由Apex運(yùn)行時(shí)解釋程序理解的指令,然后將這些指令保存為元數(shù)據(jù)。
  • 最終用戶操作:當(dāng)最終用戶觸發(fā)Apex的執(zhí)行時(shí),通過(guò)單擊按鈕或訪問(wèn)Visualforce頁(yè)面,平臺(tái)應(yīng)用程序服務(wù)器從元數(shù)據(jù)檢索編譯的指令,并在返回結(jié)果之前通過(guò)運(yùn)行時(shí)解釋器發(fā)送它們。與標(biāo)準(zhǔn)應(yīng)用程序平臺(tái)請(qǐng)求相比,最終用戶觀察到執(zhí)行時(shí)間沒(méi)有差異。


由于Apex是Salesforce.com的專有語(yǔ)言,它不支持一般編程語(yǔ)言支持的某些功能。例如,以下是Apex不支持的一些功能:

  • 它不能在用戶界面中顯示元素。
  • 您不能更改標(biāo)準(zhǔn)SFDC提供的功能,也不能防止標(biāo)準(zhǔn)功能的執(zhí)行。
  • 不支持創(chuàng)建臨時(shí)文件。
  • 創(chuàng)建多個(gè)線程也是不可能的,因?yàn)槲覀兛梢栽谄渌Z(yǔ)言中做到。


了解Apex語(yǔ)法

Apex代碼通常包含許多我們可能從其他編程語(yǔ)言熟悉的東西。


變量聲明:作為強(qiáng)類型語(yǔ)言,必須使用Apex中的數(shù)據(jù)類型聲明每個(gè)變量。如下面的代碼(下面的截圖)所示,lstAcc被聲明為數(shù)據(jù)類型為帳戶列表。

SOQL查詢:這將用于從Salesforce數(shù)據(jù)庫(kù)獲取數(shù)據(jù)。下面屏幕截圖中顯示的查詢是從Account對(duì)象獲取數(shù)據(jù)。

循環(huán)聲明:此循環(huán)語(yǔ)句用于迭代一個(gè)列表或迭代一段代碼指定的次數(shù)。在下面的屏幕截圖中顯示的代碼中,迭代將與lstAcc中的記錄數(shù)相同。

流控制語(yǔ)句:If語(yǔ)句用于此代碼中的流控制?;谔囟l件,決定是執(zhí)行還是停止執(zhí)行特定代碼段。例如,在下面顯示的代碼中,它檢查列表是否為空或者它包含記錄。

DML語(yǔ)句:對(duì)數(shù)據(jù)庫(kù)中的記錄執(zhí)行記錄插入,更新,上升,刪除操作。例如,以下代碼正在使用新字段值更新帳戶。


以下是Apex代碼段的外觀示例。我們將在本教程中進(jìn)一步研究所有這些Apex編程概念。

Apex代碼段


適用人群

本教程是針對(duì)開(kāi)始學(xué)習(xí)的Salesforce的Apex編程。本教程將帶給你知識(shí)的中級(jí)心尖規(guī)劃覆蓋了所有的Apex的重要方面完全動(dòng)手代碼的經(jīng)驗(yàn)。


學(xué)習(xí)前提

需要Salesforce的平臺(tái)和開(kāi)發(fā)的基本知識(shí)。Apex是具有到與Salesforce使用的編程語(yǔ)言。本教程假設(shè)你已經(jīng)安裝將被用來(lái)做我們的Apex編程的Salesforce實(shí)例。


更新記錄

在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)