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 |