Apex-개요

Apex는 무엇입니까?

Apex는 Salesforce.com에서 개발 한 독점 언어입니다. 공식 정의에 따르면 Apex는 개발자가 Force.com API 호출과 함께 Force.com 플랫폼 서버에서 흐름 및 트랜잭션 제어 문을 실행할 수 있도록하는 강력한 형식의 개체 지향 프로그래밍 언어입니다.

Java와 유사한 구문을 가지고 있으며 데이터베이스 저장 프로 시저처럼 작동합니다. 개발자는 버튼 클릭, 관련 레코드 업데이트 및 Visualforce를 포함한 대부분의 시스템 이벤트에 비즈니스 로직을 추가 할 수 있습니다.pages.Apex코드는 웹 서비스 요청 및 개체에 대한 트리거에서 시작할 수 있습니다. Apex는 Performance Edition, Unlimited Edition, Enterprise Edition 및 Developer Edition에 포함되어 있습니다.

언어로서의 Apex의 기능

이제 언어로서의 Apex의 기능에 대해 논의하겠습니다.

통합

Apex에는 INSERT, UPDATE, DELETE 및 DML 예외 처리와 같은 DML 작업에 대한 지원이 내장되어 있습니다. sObject 레코드 집합을 반환하는 인라인 SOQL 및 SOSL 쿼리 처리를 지원합니다. sObject, SOQL, SOSL에 대해서는 다음 장에서 자세히 살펴 보겠습니다.

Java와 같은 구문 및 사용하기 쉽습니다.

Apex는 Java와 같은 구문을 사용하므로 사용하기 쉽습니다. 예를 들어, 변수 선언, 루프 구문 및 조건문.

데이터와 강력하게 통합

Apex는 데이터 중심이며 여러 쿼리와 DML 문을 함께 실행하도록 설계되었습니다. 데이터베이스에서 여러 트랜잭션 문을 발행합니다.

강력하게 입력

Apex는 강력한 형식의 언어입니다. sObject와 같은 스키마 개체에 대한 직접 참조를 사용하며 잘못된 참조는 삭제되거나 잘못된 데이터 유형 인 경우 빠르게 실패합니다.

다중 테넌트 환경

Apex는 다중 테넌트 환경에서 실행됩니다. 결과적으로 Apex 런타임 엔진은 공유 리소스를 독점하지 못하도록 폭주 코드를 면밀히 보호하도록 설계되었습니다. 한계를 위반하는 코드는 이해하기 쉬운 오류 메시지와 함께 실패합니다.

자동으로 업그레이드

Apex는 Salesforce 릴리스의 일부로 업그레이드됩니다. 수동으로 업그레이드 할 필요가 없습니다.

쉬운 테스트

Apex는 포함 된 코드의 양과 코드의 어느 부분이 더 효율적일 수 있는지를 나타내는 테스트 결과를 포함하여 단위 테스트 생성 및 실행에 대한 기본 제공 지원을 제공합니다.

개발자는 언제 Apex를 선택해야합니까?

Apex는 사전 구축 된 기존 기능을 사용하여 복잡한 비즈니스 기능을 구현할 수 없을 때 사용해야합니다. 다음은 Salesforce 구성보다 apex를 사용해야하는 경우입니다.

Apex 애플리케이션

원할 때 Apex를 사용할 수 있습니다.

  • 다른 시스템을 통합하여 웹 서비스를 만듭니다.

  • 이메일 폭발 또는 이메일 설정을위한 이메일 서비스를 만듭니다.

  • 동시에 여러 개체에 대한 복잡한 유효성 검사를 수행하고 사용자 지정 유효성 검사를 구현합니다.

  • 기존 워크 플로 기능 또는 흐름에서 지원하지 않는 복잡한 비즈니스 프로세스를 만듭니다.

  • 레코드를 업데이트하기 위해 Database 메서드를 사용하는 것과 같이 사용자 지정 트랜잭션 논리 (단일 레코드 또는 개체가 아닌 전체 트랜잭션에 대해 발생하는 논리)를 만듭니다.

  • 레코드가 수정 될 때 논리를 수행하거나 트리거를 발생시킨 이벤트가있을 때 관련 개체의 레코드를 수정합니다.

Apex의 작업 구조

아래 다이어그램 (참조 : Salesforce 개발자 문서)에 표시된 것처럼 Apex는 전적으로 Force.com 플랫폼에서 실행됩니다.

행동의 흐름

개발자가 코드를 저장할 때와 최종 사용자가 아래와 같이 Apex 코드를 호출하는 작업을 수행 할 때 두 가지 일련의 작업이 있습니다.

개발자 조치

개발자가 Apex 코드를 작성하고 플랫폼에 저장하면 플랫폼 응용 프로그램 서버는 먼저 코드를 Apex 런타임 인터프리터가 이해할 수있는 지침 집합으로 컴파일 한 다음 해당 지침을 메타 데이터로 저장합니다.

최종 사용자 작업

최종 사용자가 단추를 클릭하거나 Visualforce 페이지에 액세스하여 Apex 실행을 트리거하면 플랫폼 응용 프로그램 서버는 메타 데이터에서 컴파일 된 지침을 검색하고 결과를 반환하기 전에 런타임 인터프리터를 통해이를 보냅니다. 최종 사용자는 표준 애플리케이션 플랫폼 요청과 비교하여 실행 시간의 차이를 관찰하지 않습니다.

Apex는 Salesforce.com의 독점 언어이기 때문에 일반 프로그래밍 언어가 수행하는 일부 기능을 지원하지 않습니다. 다음은 Apex가 지원하지 않는 몇 가지 기능입니다.

  • 사용자 인터페이스에 요소를 표시 할 수 없습니다.

  • 표준 SFDC 제공 기능을 변경할 수 없으며 표준 기능 실행을 방지 할 수도 없습니다.

  • 다른 언어로 할 수 있기 때문에 여러 스레드를 만드는 것도 불가능합니다.

Apex 구문 이해

Apex 코드에는 일반적으로 다른 프로그래밍 언어에서 익숙 할 수있는 많은 항목이 포함되어 있습니다.

변수 선언

강력한 형식의 언어이므로 Apex에서 데이터 형식으로 모든 변수를 선언해야합니다. 아래 코드 (아래 스크린 샷)에서 볼 수 있듯이 lstAcc는 데이터 유형을 계정 목록으로 선언합니다.

SOQL 쿼리

Salesforce 데이터베이스에서 데이터를 가져 오는 데 사용됩니다. 아래 스크린 샷에 표시된 쿼리는 계정 개체에서 데이터를 가져 오는 것입니다.

루프 문

이 루프 문은 목록을 반복하거나 지정된 횟수만큼 코드를 반복하는 데 사용됩니다. 아래 스크린 샷에 표시된 코드에서 반복은 우리가 보유한 레코드 수와 동일합니다.

흐름 제어 문

If 문은이 코드에서 흐름 제어에 사용됩니다. 특정 조건에 따라 특정 코드의 실행을 중단할지 아니면 실행할지 결정합니다. 예를 들어, 아래 표시된 코드에서 목록이 비어 있는지 또는 레코드가 포함되어 있는지 확인합니다.

DML 문

데이터베이스의 레코드에 대한 레코드 삽입, 업데이트, upsert, 삭제 작업을 수행합니다. 예를 들어, 아래 제공된 코드는 새 필드 값으로 계정을 업데이트하는 데 도움이됩니다.

다음은 Apex 코드 조각이 어떻게 보이는지에 대한 예입니다. 이 자습서에서는 이러한 모든 Apex 프로그래밍 개념을 더 자세히 연구 할 것입니다.