Apex - Tổng quan
Apex là gì?
Apex là một ngôn ngữ độc quyền được phát triển bởi Salesforce.com. Theo định nghĩa chính thức, Apex là một ngôn ngữ lập trình hướng đối tượng, được đánh máy mạnh mẽ, cho phép các nhà phát triển thực hiện các câu lệnh kiểm soát luồng và giao dịch trên máy chủ nền tảng Force.com cùng với các lệnh gọi tới API Force.com.
Nó có cú pháp giống Java và hoạt động giống như các thủ tục được lưu trữ trong cơ sở dữ liệu. Nó cho phép các nhà phát triển thêm logic nghiệp vụ vào hầu hết các sự kiện hệ thống, bao gồm các lần nhấp vào nút, cập nhật hồ sơ liên quan và Visualforcepages.Apexmã có thể được khởi tạo bởi các yêu cầu dịch vụ Web và từ các trình kích hoạt trên các đối tượng. Apex có trong phiên bản Performance Edition, Unlimited Edition, Enterprise Edition và Developer Edition.
Các tính năng của Apex như một ngôn ngữ
Bây giờ chúng ta hãy thảo luận về các tính năng của Apex như một ngôn ngữ -
Tích hợp
Apex đã tích hợp sẵn hỗ trợ cho các hoạt động DML như INSERT, UPDATE, DELETE và cả xử lý DML Exception. Nó có hỗ trợ xử lý truy vấn SOQL và SOSL nội tuyến trả về tập hợp các bản ghi sObject. Chúng ta sẽ nghiên cứu chi tiết về sObject, SOQL, SOSL trong các chương sau.
Java giống cú pháp và dễ sử dụng
Apex rất dễ sử dụng vì nó sử dụng cú pháp giống như Java. Ví dụ, khai báo biến, cú pháp vòng lặp và câu lệnh điều kiện.
Tích hợp mạnh mẽ với dữ liệu
Apex là tập trung vào dữ liệu và được thiết kế để thực thi nhiều truy vấn và câu lệnh DML cùng nhau. Nó đưa ra nhiều câu lệnh giao dịch trên Cơ sở dữ liệu.
Đã gõ mạnh
Apex là một ngôn ngữ được đánh máy mạnh. Nó sử dụng tham chiếu trực tiếp đến các đối tượng lược đồ như sObject và mọi tham chiếu không hợp lệ sẽ nhanh chóng bị lỗi nếu nó bị xóa hoặc nếu có kiểu dữ liệu sai.
Môi trường nhiều người
Apex chạy trong môi trường nhiều đối tượng. Do đó, công cụ thời gian chạy Apex được thiết kế để bảo vệ chặt chẽ chống lại mã chạy trốn, ngăn nó độc quyền tài nguyên được chia sẻ. Bất kỳ mã nào vi phạm giới hạn đều không thành công với các thông báo lỗi dễ hiểu.
Tự động nâng cấp
Apex được nâng cấp như một phần của bản phát hành Salesforce. Chúng tôi không phải nâng cấp nó theo cách thủ công.
Kiểm tra dễ dàng
Apex cung cấp hỗ trợ tích hợp để tạo và thực thi đơn vị thử nghiệm, bao gồm kết quả thử nghiệm cho biết lượng mã được bao phủ và phần nào trong mã của bạn có thể hiệu quả hơn.
Khi nào thì nhà phát triển nên chọn Apex?
Apex nên được sử dụng khi chúng tôi không thể triển khai chức năng nghiệp vụ phức tạp bằng cách sử dụng các chức năng sẵn có và được tạo sẵn. Dưới đây là các trường hợp chúng ta cần sử dụng apex trên cấu hình Salesforce.
Ứng dụng Apex
Chúng ta có thể sử dụng Apex khi chúng ta muốn -
Tạo các dịch vụ Web với việc tích hợp các hệ thống khác.
Tạo dịch vụ email cho vụ nổ email hoặc thiết lập email.
Thực hiện xác thực phức tạp trên nhiều đối tượng cùng một lúc và cả triển khai xác thực tùy chỉnh.
Tạo các quy trình kinh doanh phức tạp không được hỗ trợ bởi chức năng hoặc luồng công việc hiện có.
Tạo logic giao dịch tùy chỉnh (logic xảy ra trên toàn bộ giao dịch, không chỉ với một bản ghi hoặc đối tượng duy nhất) giống như sử dụng các phương pháp Cơ sở dữ liệu để cập nhật bản ghi.
Thực hiện một số logic khi một bản ghi được sửa đổi hoặc sửa đổi bản ghi của đối tượng liên quan khi có một số sự kiện khiến trình kích hoạt kích hoạt.
Cấu trúc làm việc của Apex
Như được hiển thị trong sơ đồ bên dưới (Tham khảo: Tài liệu dành cho nhà phát triển Salesforce), Apex chạy hoàn toàn trên Nền tảng Force.com theo yêu cầu
Luồng hành động
Có hai chuỗi hành động khi nhà phát triển lưu mã và khi người dùng cuối thực hiện một số hành động gọi mã Apex như hình dưới đây:
Hành động của nhà phát triển
Khi nhà phát triển viết và lưu mã Apex vào nền tảng, trước tiên máy chủ ứng dụng nền tảng sẽ biên dịch mã thành một tập hợp các hướng dẫn mà trình thông dịch thời gian chạy Apex có thể hiểu được, sau đó lưu các hướng dẫn đó dưới dạng siêu dữ liệu.
Hành động của người dùng cuối
Khi người dùng cuối kích hoạt thực thi Apex, bằng cách nhấp vào nút hoặc truy cập trang Visualforce, máy chủ ứng dụng nền tảng sẽ truy xuất các hướng dẫn đã biên dịch từ siêu dữ liệu và gửi chúng qua trình thông dịch thời gian chạy trước khi trả về kết quả. Người dùng cuối không nhận thấy sự khác biệt nào về thời gian thực hiện so với yêu cầu nền tảng ứng dụng tiêu chuẩn.
Vì Apex là ngôn ngữ độc quyền của Salesforce.com, nên nó không hỗ trợ một số tính năng mà ngôn ngữ lập trình thông thường có. Sau đây là một số tính năng mà Apex không hỗ trợ:
Nó không thể hiển thị các phần tử trong Giao diện người dùng.
Bạn không thể thay đổi chức năng tiêu chuẩn được cung cấp bởi SFDC và cũng không thể ngăn việc thực thi chức năng tiêu chuẩn.
Việc tạo nhiều luồng cũng không thể thực hiện được vì chúng ta có thể thực hiện bằng các ngôn ngữ khác.
Hiểu cú pháp Apex
Mã Apex thường chứa nhiều thứ mà chúng ta có thể quen thuộc với các ngôn ngữ lập trình khác.
Sự định nghĩa biến
Là ngôn ngữ được gõ mạnh, bạn phải khai báo mọi biến có kiểu dữ liệu trong Apex. Như đã thấy trong đoạn mã bên dưới (ảnh chụp màn hình bên dưới), lstAcc được khai báo với kiểu dữ liệu là Danh sách tài khoản.
Truy vấn SOQL
Điều này sẽ được sử dụng để tìm nạp dữ liệu từ cơ sở dữ liệu Salesforce. Truy vấn hiển thị trong ảnh chụp màn hình bên dưới đang tìm nạp dữ liệu từ đối tượng Tài khoản.
Tuyên bố vòng lặp
Câu lệnh lặp này được sử dụng để lặp qua một danh sách hoặc lặp qua một đoạn mã trong một số lần xác định. Trong đoạn mã được hiển thị trong ảnh chụp màn hình bên dưới, số lần lặp sẽ giống như số lượng bản ghi mà chúng tôi có.
Tuyên bố kiểm soát dòng chảy
Câu lệnh If được sử dụng để điều khiển luồng trong đoạn mã này. Dựa trên một số điều kiện nhất định, nó được quyết định xem nên thực thi hay dừng việc thực thi đoạn mã cụ thể. Ví dụ, trong đoạn mã được hiển thị bên dưới, nó đang kiểm tra xem danh sách trống hay nó chứa các bản ghi.
Tuyên bố DML
Thực hiện thao tác chèn, cập nhật, nâng cấp, xóa bản ghi trên các bản ghi trong cơ sở dữ liệu. Ví dụ: mã được cung cấp bên dưới giúp cập nhật Tài khoản với giá trị trường mới.
Sau đây là một ví dụ về cách một đoạn mã Apex sẽ như thế nào. Chúng ta sẽ nghiên cứu sâu hơn về tất cả các khái niệm lập trình Apex này trong hướng dẫn này.