Salesforce 개발자 자습서 : Salesforce 프로그래밍 시작



이 자습서 블로그에서는 Salesforce 개발자로서 경력을 시작하기 위해 알아야하는 visualforce 및 apex와 같은 다양한 프로그래밍 개념에 대해 설명합니다.

소프트웨어 애플리케이션 개발자가되고 싶습니까? Force.com 플랫폼에서 고유 한 응용 프로그램을 구축 하시겠습니까? 이러한 질문에 대한 답변이 '예'라면 Salesforce 개발자가되는 것을 확실히 고려해야합니다.

이전 블로그에서 , Salesforce 인증 또한 맞춤형 애플리케이션 구축 Salesforce에서 사용할 수있는 선언적 옵션을 사용합니다. 이 블로그에서는 응용 프로그램을 개발하기 위해 Salesforce에서 사용할 수있는 프로그래밍 옵션에 대해 설명합니다.





MVC 아키텍처

Visualforce 및 Apex를 사용하여 응용 프로그램을 빌드하기 전에 먼저 Salesforce 모델-보기-컨트롤러 아키텍처에 대해 논의하겠습니다. 아래는 다양한 Salesforce 구성 요소와 함께 Salesforce 모델보기 컨트롤러 아키텍처를 개략적으로 설명하는 다이어그램입니다.

mvc-Salesforce 개발자-Edureka



모델: 모델은 Salesforce 데이터 개체, 필드 및 관계입니다. 표준 (계정, 기회 등) 및 사용자 지정 개체 (사용자가 만든 개체)로 구성됩니다.

전망: 뷰는 데이터의 표현, 즉 사용자 인터페이스를 나타냅니다. Salesforce에서보기는 Visualforce 페이지, 구성 요소, 페이지 레이아웃 및 탭으로 구성됩니다.

제어 장치: 컨트롤러는 실제 애플리케이션 로직의 빌딩 블록입니다. 사용자가 Visualforce와 상호 작용할 때마다 작업을 수행 할 수 있습니다.



실행중인 Salesforce

Salesforce 개발자가 되려면 먼저 Salesforce 응용 프로그램의 작동 방식을 알아야합니다. 아래는 이미지입니다 Salesforce의 전체 그림을 제공합니다. 클라이언트 또는 사용자는 Salesforce 응용 프로그램에 정보를 요청하거나 제공합니다. 이것은 일반적으로 Visualforce를 사용하여 수행됩니다. 그런 다음이 정보는 Apex로 작성된 응용 프로그램 논리 계층으로 전달됩니다. 정보에 따라 데이터가 데이터베이스에서 삽입되거나 제거됩니다. Salesforce는 또한 웹 서비스를 사용하여 응용 프로그램 논리에 직접 액세스하는 옵션을 제공합니다.

Salesforce 개발자는 선언적 또는 프로그래밍 방식 옵션을 사용하여 개발에 접근 할 수 있습니다. 다음은 각 사용자 인터페이스, 비즈니스 로직 및 데이터 모델 계층에서 사용할 수있는 선언적 접근 방식과 프로그래밍 방식 모두에 대한 세부 정보를 제공하는 이미지입니다. 사용자 인터페이스를 구축하려면 페이지 레이아웃 및 레코드 유형을 사용하는 선언적 접근 방식을 사용하거나 Visualforce 페이지 및 구성 요소와 같은 프로그래밍 방식을 사용할 수 있습니다. 일반적으로 선언적 접근 방식을 사용하여 필요한 사용자 인터페이스를 얻을 수없는 경우에만 프로그래밍 방식을 사용해야합니다. 응용 프로그램의 비즈니스 논리 계층을 개발하기 위해 워크 플로, 유효성 검사 규칙 및 승인 프로세스의 Salesforce 선언 옵션을 사용하거나 트리거, 컨트롤러 및 클래스와 같은 프로그래밍 방식을 사용할 수 있습니다. 데이터 모델에 액세스하려면 개체, 필드 및 관계를 사용하는 선언적 접근 방식을 사용할 수 있습니다. 메타 데이터 API, REST API 및 벌크 API를 사용하여 프로그래밍 방식으로 데이터 모델에 액세스 할 수도 있습니다.

Salesforce 응용 프로그램의 작동 방식, Salesforce에서 개발에 사용되는 MVC 아키텍처 및 Salesforce 개발자가 사용할 수있는 두 가지 접근 방식을 살펴 보았습니다. 이제 Visualforce와 Apex에 대해 논의하겠습니다.

Visualforce

Salesforce 플랫폼에서 응용 프로그램을 구축하려면 사용자 인터페이스를 개발하고 응용 프로그램 논리를 작성하는 방법을 알아야합니다. Salesforce 개발자는 Visualforce를 사용하여 사용자 인터페이스를 개발할 수 있습니다. Visualforce는 Force.com 플랫폼을위한 사용자 인터페이스 프레임 워크입니다. javascript Angular-JS 프레임 워크를 사용하여 웹 사이트에 대한 사용자 인터페이스를 구축하는 방법과 마찬가지로 Visualforce를 사용하여 Salesforce 응용 프로그램에 대한 사용자 인터페이스를 디자인하고 구축 할 수 있습니다.

사용자 지정 페이지를 구축해야 할 때마다 Visualforce를 사용할 수 있습니다. Visualforce를 사용할 수있는 몇 가지 상황의 예는 다음과 같습니다.

  • 이메일 템플릿을 작성하려면
  • 모바일 사용자 인터페이스를 개발하려면
  • Salesforce에 저장된 PDF 데이터를 생성하려면
  • 표준 페이지 레이아웃에 포함하려면
  • 표준 Salesforce 페이지를 재정의하려면
  • 응용 프로그램에 대한 사용자 정의 탭을 개발하려면

Visualforce 페이지는 두 가지 기본 요소로 구성됩니다.

  • Visualforce 마크 업 – visualforce 마크 업에는 visualforce 태그, HTML, JavaScript 또는 기타 웹 지원 코드가 포함됩니다.
  • Visualforce 컨트롤러 – Visualforce 컨트롤러에는 사용자가 구성 요소와 상호 작용할 때 발생하는 작업을 지정하는 지침이 포함되어 있습니다. Visualforce 컨트롤러는 Apex 프로그래밍 언어를 사용하여 작성되었습니다.

아래의 다양한 구성 요소와 함께 간단한 Visualforce 페이지 코드를 살펴볼 수 있습니다.

아래에서는 국가 및 통화 값을 표시하기위한 간단한 Visualforce 페이지를 작성하는 단계를 보여줍니다.

1 단계: 설정에서 빠른 찾기 상자에 Visualforce 페이지를 입력 한 다음 Visualforce 페이지를 선택하고 새로 만들기를 클릭합니다.

2 단계: 편집기에서 다음 코드를 추가하여 국가 및 통화 값을 표시합니다.

꼭대기

사용자 인터페이스 개발이 완료되면 Salesforce 개발자로서 응용 프로그램에 사용자 정의 논리를 추가하는 방법을 알아야합니다. Apex 프로그래밍 언어를 사용하여 컨트롤러 코드를 작성하고 응용 프로그램에 사용자 정의 논리를 추가 할 수 있습니다. Apex는 Force.com 플랫폼에서 흐름 및 트랜잭션 제어 문을 실행할 수있는 개체 지향 프로그래밍 언어입니다. 이전에 자바 프로그래밍 언어를 사용한 적이 있다면 Apex를 쉽게 배울 수 있습니다. Apex 구문은 Java의 구문과 70 % 유사합니다.

응용 프로그램에 사용자 지정 논리를 추가 할 때마다 Apex를 사용할 수 있습니다. Apex를 사용할 수있는 몇 가지 상황의 예는 다음과 같습니다.

  • 애플리케이션에 웹 및 이메일 서비스를 추가하려는 경우
  • 복잡한 비즈니스 프로세스를 수행하려는 경우
  • 애플리케이션에 복잡한 유효성 검사 규칙을 추가하려는 경우
  • 레코드 저장과 같은 작업에 사용자 지정 논리를 추가하려는 경우

아래는 루핑 문, 제어 흐름 문 및 SOQL 쿼리와 같은 다양한 구성 요소와 함께 Apex 코드의 스크린 샷입니다.

이제 Apex가 무엇이며 언제 사용해야하는지 이해 했으므로 Apex 프로그래밍에 대해 자세히 살펴 보겠습니다.

Apex에서 프로그래밍

위에서 설명한 개념을 이해했다면 Salesforce 개발자가되는 여정의 중간 정도입니다. 이 섹션에서는 다양한 데이터 유형 및 변수, 데이터베이스에서 데이터를 검색하는 다양한 방법에 대한 정보를 제공하고 클래스 및 메서드를 작성하는 방법을 보여줌으로써 Apex에 대해 자세히 알아볼 것입니다.

데이터 유형 및 변수

Salesforce는 4 가지 데이터 유형 및 변수를 제공합니다. 아래 표는 4 가지 데이터 유형 각각에 대한 정보를 제공합니다.

데이터 유형 및 변수 기술
원어Salesforce의 기본 데이터 유형에는 부울, 날짜, 정수, 개체, 문자열 및 시간이 포함됩니다.부울 isSunny = true

정수 I = 1

jframe을 만드는 방법

String myString =“Hello World”

sObjectssObject는 데이터베이스에 저장할 수있는 모든 개체를 나타냅니다.계정 a = new Account ()

MyCustomObj__c obj = 새로운 MyCustomObj__c ()

컬렉션Apex에는 다음 유형의 컬렉션이 있습니다.

  • 기울기
  • 지도
  • 세트
목록 var_lst = new List ()

setOne = new Set () 설정

지도 var_map = 새지도 ()

열거 형열거 형은 한정된 식별자 집합을 취하는 값이있는 추상 데이터 형식입니다.Public enum Seasons {겨울, 봄, 여름, 가을}


SOQL 및 SOSL

소프트웨어 애플리케이션을 개발하려면 데이터베이스에서 데이터를 삽입하고 검색하는 방법을 알아야합니다. Salesforce에서 SOQL 및 SOSL을 사용하여 데이터베이스에서 데이터를 검색 할 수 있습니다. Salesforce 개발자가 되려면 이러한 쿼리 언어를 모두 알아야합니다. 아래에서 이러한 언어에 대한 자세한 설명을 제공했습니다.

  • SOQL은 Salesforce Object Query Language를 나타냅니다. SOQL 문을 사용하면 데이터베이스에서 sObject 목록, 단일 sObject 또는 정수 메서드 (count 메서드)로 데이터를 검색 할 수 있습니다. SOQL을 SELECT SOQL 쿼리와 동일하게 생각할 수 있습니다. 아래에 SOQL 쿼리의 예를 제공했습니다.

목록 accList = [Select Id, Name from Account WHERE Name =”YourName”]

C ++의 범위 확인 연산자
  • SOSL은 Salesforce Object Search Language를 나타냅니다. SOSL 문을 사용하여 sObject 목록을 검색 할 수 있습니다. 각 목록에는 특정 sObject 유형에 대한 검색 결과가 포함됩니다. SOSL을 데이터베이스 검색 쿼리에 해당하는 것으로 생각할 수 있습니다. 아래에 SOSL 쿼리의 예를 제공했습니다.

명부searchList = [반환하는 모든 필드에서 '지도 *'찾기 (ID, 이름), 연락처, 기회, 리드]

데이터가있는 객체를 알고 있으면 SOQL을 사용하고 데이터가있는 객체의 이름을 모를 때 SOSL을 사용할 수 있습니다.

클래스 및 방법

다른 모든 객체 지향 프로그래밍 언어와 마찬가지로 Apex를 사용하여 클래스와 메서드를 개발할 수 있습니다. 클래스는 개별 개체를 만들고 사용하는 청사진이라고 생각할 수 있습니다. 메서드는 데이터에 대해 작동하고 값을 반환하는 하위 프로그램으로 생각할 수 있습니다. 아래에 클래스와 메서드를 작성하는 구문을 제공했습니다.

이제 Apex에서 클래스와 메서드를 추가하는 방법을 보여 드리겠습니다.

1 단계: 설정에서 QuickFind 상자에 Apex 클래스를 입력 한 다음 Apex 클래스를 선택하고 새로 만들기를 클릭합니다.

2 단계: 편집기에서 다음 클래스 정의를 추가하십시오.

Public class HelloWorld {

}

3 단계 : 클래스 열기 및 닫기 대괄호 사이에 메서드 정의를 추가합니다.

Public static void helloWorldMethod (Country__c [] countries) {

For (Country__c 국가 : 국가) {

country.currency_value__c * = 1.5

}

}

4 단계 : 저장을 클릭하면 전체 수업이 다음과 같이 표시됩니다.

Public class HelloWorld {

Public static void helloWorldMethod (Country__c [] countries) {

For (Country__c 국가 : 국가) {

country.currency_value__c * = 1.5

}

}

위에 표시된 구문과 예제를 사용하여 Salesforce 응용 프로그램에 대한 고유 한 클래스 및 메서드를 개발할 수 있습니다. Salesforce 개발자가 되려면 단순히 클래스와 메서드를 작성하는 것 이상을 알아야합니다. 다음 몇 섹션에서는 Salesforce 플랫폼에서 응용 프로그램을 간단하고 쉽게 개발할 수있는 주제에 대해 설명합니다.

트리거

모든 Salesforce 개발자는 Salesforce 트리거의 개념을 알아야합니다. 이전에 다른 데이터베이스로 작업하는 동안 트리거를 발견했을 수 있습니다. 트리거는 Salesforce 레코드 변경 전후에 작업을 수행 할 때 호출되는 저장된 프로그램에 불과합니다. 예를 들어 삽입 작업이 수행되기 전이나 업데이트 작업이 수행 될 때 트리거를 실행할 수 있습니다. 트리거에는 두 가지 유형이 있습니다.

  • 트리거 전 – 데이터베이스에 저장하기 전에 이전 트리거를 사용하여 레코드 값을 업데이트하거나 유효성을 검사 할 수 있습니다.
  • 트리거 후 – 이후 트리거를 사용하여 시스템에서 설정 한 필드 값에 액세스하고 다른 레코드의 변경 사항에 영향을 줄 수 있습니다.

트리거는 아래 작업 전후에 실행됩니다.

  • 끼워 넣다
  • 최신 정보
  • 지우다
  • 가다
  • 죄송합니다
  • 삭제 취소

위의 클래스에서 본 Country 개체에 대한 트리거를 추가하여 apex에 트리거를 추가하는 방법을 보여 드리겠습니다.

1 단계: 국가에 대한 개체 관리 설정에서 트리거로 이동하여 새로 만들기를 클릭합니다.

2 단계: 트리거 편집기에서 다음 트리거 정의를 추가하십시오.

Country__c에서 HelloWorldTrigger 트리거 (삽입 전) {

Country__c 국가 = Trigger.new

HelloWorld.helloWorldMethod (국가)

}

위의 코드는 데이터베이스에 삽입 할 때마다 해당 국가의 통화를 업데이트합니다.

주지사 제한

Salesforce가 다중 테넌트 아키텍처에서 작동한다는 것을 알고있을 수 있습니다. 즉, 리소스가 여러 클라이언트에서 공유됩니다. 어떤 클라이언트도 공유 리소스를 독점하지 않도록 Apex 런타임 엔진은 거버너 제한을 엄격하게 적용합니다. Apex 코드가 제한을 초과하면 예상 관리자가 처리 할 수없는 런타임 예외를 발행합니다. 따라서 Salesforce 개발자는 응용 프로그램을 개발하는 동안 매우주의해야합니다.

대량 작업

Salesforce 개발자는 항상 코드가 관리자 제한을 유지하는지 확인해야합니다. Apex가 거버너 제한을 준수하는지 확인하려면 대량 호출 디자인 패턴을 사용해야합니다. 대량 작업은 DML 작업을 수행 할 때 둘 이상의 레코드를 커밋하는 것을 의미합니다. DML 작업을 수행하기 전에 항상 컬렉션에 행을 추가했는지 확인해야합니다. 다음은 벌크 작업 설계 패턴에 대한 완전한 설명을 제공하는 이미지입니다.

DML 및 데이터 작업

이전에 SOQL 및 SOSL 쿼리를 사용하여 데이터베이스에서 데이터를 검색하는 방법을 살펴 보았습니다. 이제 Salesforce 데이터베이스에 데이터를 삽입하는 데 사용할 수있는 다양한 문을 살펴 보겠습니다. Salesforce 개발자의 경우 이러한 명령문이 수행 할 수있는 작업과 사용 방법을 알아야합니다.

DML 문

기술
끼워 넣다조직의 데이터에 하나 이상의 sObject를 추가합니다.
최신 정보하나 이상의 기존 sObject 레코드를 수정합니다.
죄송합니다새 레코드를 만들고 sObject 레코드를 업데이트합니다.
지우다하나 이상의 기존 sObject 레코드를 삭제합니다.
삭제 취소하나 이상의 기존 sObject 레코드를 복원합니다.
가다동일한 sObject 유형의 최대 3 개의 레코드를 하나의 레코드로 병합

Visualforce 및 Apex

Salesforce 개발자가되기 위해 많은 노력을 기울였습니다. 다음으로 visualforce 페이지와 apex 코드를 통합하는 방법에 대해 설명하겠습니다. 컨트롤러 및 확장을 사용하여 Visualforce 페이지와 apex 코드를 연결할 수 있습니다.

C ++ 피보나치 시리즈
  • 맞춤형 컨트롤러 –Visualforce 페이지가 권한 및 필드 수준 보안없이 시스템 모드에서 완전히 실행되도록하려면 사용자 지정 컨트롤러를 사용하십시오.

  • 컨트롤러 확장 –표준 또는 사용자 지정 컨트롤러의 기능을 확장하는 새 작업이나 기능을 추가하려면 컨트롤러 확장을 사용하십시오.

아래 코드에서 Visualforce 페이지에 사용자 지정 컨트롤러를 포함하는 방법을 보여 드렸습니다.

아래 코드에서 Visualforce 페이지에 컨트롤러 확장을 포함하는 방법을 보여 드렸습니다.

예외 처리

이전에 응용 프로그램을 개발했다면 분명히 예외가 발생했을 것입니다. 예외는 프로그램 실행의 정상적인 흐름을 변경하는 특수 조건입니다. 예를 들어 숫자를 0으로 나누거나 범위를 벗어난 목록 값에 액세스합니다. 이러한 예외를 처리하지 않으면 프로세스 실행이 중지되고 DML이 롤백됩니다.

Salesforce 개발자는 이러한 예외를 포착하는 방법과이를 포착 한 후 수행 할 작업을 알아야합니다. 예외를 포착하기 위해 try, catch 및 finally 구성을 사용할 수 있습니다. 예외를 포착 한 후에는 아래에 언급 된 방법으로 처리 할 수 ​​있습니다.

예외 그것을 처리하는 방법
DML레코드 또는 필드에서 addError () 메서드 사용
VisualforceApexPages.message 클래스 사용
예외시 이메일 보내기개발자에게 이메일로 알릴 수 있습니다.
사용자 지정 개체에 로그인미래 방법을 사용하여 사용자 정의 개체를 잡을 수 있습니다.

지금까지이 Salesforce 개발자 블로그에서 Visualforce를 사용하여 사용자 인터페이스를 개발하는 방법을 살펴 보았고, Apex 및 트리거, 대량 작업 및 예외 처리와 같은 다양한 개념을 사용하여 사용자 정의 논리를 작성하는 방법을 살펴 보았습니다. 마지막으로 Salesforce 테스트 프레임 워크를 살펴 보겠습니다.

테스팅

Salesforce 개발자는 작성한 코드를 테스트하는 방법을 알아야합니다. 테스트 주도 개발은 소프트웨어 애플리케이션의 장기적인 성공을 보장하는 좋은 방법입니다. 애플리케이션이 예상대로 작동하는지 확인할 수 있도록 애플리케이션을 테스트해야합니다. 특히 고객을위한 애플리케이션을 개발하는 경우 최종 제품을 제공하기 전에 테스트하는 것이 매우 중요합니다. Apex는 단위 테스트를 작성하고, 테스트를 실행하고, 테스트 결과를 확인하고, 코드 검사 결과를 얻을 수있는 테스트 프레임 워크를 제공합니다.

두 가지 방법으로 애플리케이션을 테스트 할 수 있습니다.

  1. Salesforce 사용자 인터페이스를 통해 이러한 테스트 방법은 중요하지만 응용 프로그램의 모든 사용 사례를 파악하지는 못합니다.
  2. 대량 기능을 테스트 할 수 있으며 SOAP API 또는 Visualforce 표준 세트 컨트롤러를 사용하여 코드를 통해 최대 200 개의 레코드를 전달할 수 있습니다.

테스트 클래스는 데이터베이스에 데이터를 커밋하지 않으며 @isTest로 주석 처리됩니다. 아래 HelloWorld 클래스에 테스트 클래스를 추가하여 테스트 클래스를 추가하는 방법을 보여 드렸습니다.

@isTest

개인 클래스 HelloWorldTestClass {

static testMethod void validateHelloWorld () {

Country__c country = new Country__c (Name =”India”, currency_value__c = 50.0)

국가 삽입

country = [SELECT currency_value__c FROM Country WHERE Id = country.Id]

System.assertEquals (75, country.currency_value__c)

}

}

Salesforce 개발자가되기 위해 알아야 할 모든 개념을 이해 하셨기를 바랍니다. 더 자세한 내용을 알아 보려면 강사 주도 라이브 교육 및 실제 프로젝트 경험과 함께 제공됩니다. 의견이 있으시면 아래의 의견란에 남겨주세요.