View
What is Apex?
개발자가 세일즈포스 서버에서 Flow, 트랜잭션 제어문을 실행할 수 있도록 지원하는 강력한 유형의 객체 지향 프로그래밍 언어.
Apex 특징
1. Integration with DML Calls, APIs
DML문 (INSERT, UPDATE, DELETE) 지원 & DML Exception 처리
SOQL, SOSL 지원, sObject/API 반환
2. Easy to use
Java와 비슷. (ex. 변수, 표현식, 블록, 루프, 객체, 배열 ...)
3. Data Focused
Apex는 여러 세일즈포스 서버에서 작업할 수 있도록 여러 쿼리, DML문을 단일 단위로 스레딩 하도록 설계됨.
개발자는 데이터베이스 저장 프로시저를 사용해 데이터베이스 서버의 여러 트랜잭션문을 비슷한 방식으로 스레드.
4. Multitenant Aware
Apex는 Multitenant 환경에서 실행됨.
=> Apex 런타임 엔진은 런어웨이 코드로부터 보호하도록 설계되어 공유자원을 독점하는 것을 방지.
limit을 위반하는 코드는 error
Apex를 사용하는 경우
- 세일즈포스를 다른 어플리케이션과 통합하는 웹 서비스 만들 때
- 이메일 설정 위해 이메일 서비스 만들 때
- Workflows, Flows, Process builder로 구현할 수 없는 기능을 만들 때
- 여러 개체에 대해 복잡한 검증을 수행할 때
Apex 환경
Apex developer 환경
1. Force.com Developer Console
: Setup - Developer Console
2. Force.com IDE
: Force.com 어플리케이션을 구축하고 배포하기 위한 통합 인터페이스를 제공하는 Eclipes IDE용 플러그인
3. Code Editor in the Salesforce User Interface
: 모든 클래스와 트리거가 저장될 때 컴파일되며 구문 오류가 플래그로 지정됨
Apex Datatypes & Variables
{ Datatypes }
1. Primitive
ex. Integer, Decimal, Long, Date, DateTime, String, ID ...
2. Sobject
- Generic sObject
- Specific sObject (ex. Account, Contact ...)
3. Enums
: 순서가 없는 값의 set 정의
4. Collection
- List
- Set
- Map
- Parameterized Typing (변수 사용할 때 data type 지정. ex. Integer x = 1;)
5. 사용자 지정 Apex classes
6. 시스템 제공 Apex classes
7. Null
{ Variables }
1. Null Variables & Initial Values
: 변수를 선언하고 initialize하지 않으면 기본적으로 null
2. Variable Scope
Integer i;
{
// Integer i; <- not allowed!
}
for(Integer j=0 ; j<10 ; j++);
for(Integer j=0 ; j<10 ; j++);
3. Case Sensitivity
: SOQL, SOSL 처럼 Apex도 대소문자 구분 X
Apex Keywords
- Final
- return
- with sharing (sharing rule 적용 O)
- without sharing (sharing rule 적용 X)
Apex Statements
- 조건문 if / if-else
- Switch문
- Loop문 do-while / while / for
참고 : Salesforce Developer Guide - Getting Started with Apex
'Apex > Apex Basic' 카테고리의 다른 글
Type class (0) | 2022.03.03 |
---|---|
Apex basic 04_Trigger (0) | 2021.12.30 |
Apex basic 03_Apex&.Net (0) | 2021.12.29 |
Apex basic 02_Classes (0) | 2021.12.16 |