세일즈포스 교육

Basic Developer 6강

으농농이 2021. 3. 10. 16:18

SOQL(Salesforce Object Query Language)

 

sObject relationship을 사용하면 sObject를 Salesforce의 다른 sObject와 연결할 수있습니다. 

Parent-child 관계는 자식 개체의 복수(s)로 명명 

child-parent관계는 부모개체의 이름과 정확히 같은 방식으로 명명 

사용자 지정 관계에서 두 유형은 __r이 추가된다. 

 

스키마 탐색기에서 sObject relationship가 표시되는 방식

__r을 사용하면 전체 개체에 대한 참조가 반환되고, __c를 사용하면 개체 ID만 반환됨

 

child-parent 관계에서 외래키는 관련 레코드의 고유한 18자리ID

Parent-child 관계에서 상위 개체의 한 멤버 변수는 하위개체를 참조하고, 부모 개체에는 부모에 고유한 자식 관계에 대한 복수 자식 이름이 있다. 기본적으로 자식에서 부모로 여러 관계가 있는 경우 관련 목록의 이름은 job_application1__r또는 job_application2__r로 증가한다.

 

SOQL 쿼리는 지정된 필드에 대한 데이터만 반환한다. 

 

루프문에 대한 SOQL

SOQL for 루프를 사용하여 SOQL 쿼리에서 반환된 모든 sObject레코드를 반복할 수 있다. 

for루프를 반복 할 때마다 query및 queryMore 메서드에 대한 암시적 호출을 사용하여 더 많은 레코드가 자동으로 검색된다. 

 

ORDER BY  : select 문에서 order by를 사용하여 쿼리결과의 순서를 제어 할 수있다. 

desc키워드를 사용하여 레코드를 내림차순으로 정렬 할 수있다. 

 

LIMIT키워드를 사용해서 SOQL쿼리에서 반환되는 최대 행 수를 지정

LIMIT 키워드를 ORDER BY와 함께 사용하면 상위 레코드를 반환한다. 

집계함수가 있는 쿼리는 queryMore를 지원하지않고, 쿼리가 for루프에서 2000개 이상의 행을 반환하면 런타임 예외가 발생한다. 

 

FOR UPDATE키워드 

: 반환된 레코드가 다른 요청에 의해 업데이트되지 않도록 잠근다. 레코드는 현재 트리거 컨텍스트를 통해서만 업데이트 가능, 트랜잭션이 종료되면 잠금이 해제 

 

ALL Rows : All Rows 키워드를 사용하여 휴지통의 활성레코드 및 레코드를 포함하여 조직의 모든 레코드를 쿼리할 수있다. 

Right Outer Join : 연관된 위치 데이터가 있는 작업 응용 프로그램

Left Outer Join : 직책 및 관련 직무 지원 데이터 검색

Semi-join : 관련 직무 지원 데이터가 있는 직책 

Right Inner Join: 관련 위치가 있는 작업 응용 프로그램만 검색 

Right Anti-join: 관련 직위가 없는 작업 응용 프로그램

Left-Anti join: 관련 직무 지원이 없는 직위를 검색 

Right Inner Join without condition :특정 관련 직위가 있는 구직 지원서를 검색하려면 원격 조건 없이 Right Inner Join을 사용한다. 

 

SOQL쿼리에 5개 이상의 child-parent 관계를 지정할 수 없다. 

 

SOSL(Salesforce Object Search Language)

SOQL과 마찬가지로 SOSL 조직은 특정 데이터를 검색하는데 사용된다.

 

DML 작업

DML은 데이터 조작 언어를 나타낸다. 

DML문을 사용하면 salesforce 데이터 베이스의 sObject데이터를 삽입, 업데이트 및 삭제 할 수있다. 

Insert,Update,Upsert,Delete,Merget및 Undelete

 

DML독립문형 

DML 독립 실행 형 문이 실행될때 오류로 인해 예외가 발생하고 제출된 레코드가 데이터베이스에 commit되지 않는다.

Database.SaveResult개체가 반환되는 반면 여러 레코드가 제출되면 List <Database.SaveResult>목록 개체가 반환된다.

 

SaveResult개체에는 세가지 메서드가 있다. 

ID getId()는 잘못된 레코드인 Lsit <Database.Error>의 ID를 반환한다. 

getErrors()는 해당 오류 코드 목록을 반환하고 BooleanisSuccess()는 레코드가 성공적으로 저장되었음을 나타낸다. 

 

DML 및 Loop

DML문은 다양한 방식으로 루프에서 실행된다. 

Transaction Savepoint를 사용하여 트랜잭션 수준을 제어하고  수행하는 DML작업의 섹션 또는 하위 집합을 롤백하기 위한 논리를 정의할 수있다. 각 SavePoint및 RollBack문 실행은 총 DML 문 수에 포함된다. 데이터베이스를 추가로 롤백하려고하면 런타임 오류가 발생한다.

 

 

'세일즈포스 교육' 카테고리의 다른 글

Customize Record Details with Page Layout  (0) 2021.03.12
CLI이란?  (0) 2021.03.11
Basic Developer 5강  (0) 2021.03.10
Basic Developer 4강  (0) 2021.03.10
Basic Developer 1,2,3강 정리  (0) 2021.03.10