DataSource ์ค์ ์ List View์์ ์ฌ์ฉ๋ ๋ด๋ถ/์ธ๋ถ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
Builder์์ ๋ฐ์ดํฐ์์ค ์ถ๊ฐ
๋น๋์ ์ฐ์ธก ์๋จ์ 'DataSource Setup' ๋ฒํผ์ ๋๋ฌ ๋ฐ์ดํฐ์์ค ์ค์ ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค.
Salesforce ๋ด ๊ด๋ จ ๊ฐ์ฒด๋ฅผ ์กฐํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ํํํ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Lookup์ด Product2๋ก ์ง์ ๋ ๊ฒฝ์ฐ PricebookEntry์ ์๋ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๋ ๋ด๋ถ ๋ฐ์ดํฐ์์ค๋ฅผ ์ด์ฉํด ์กฐ๊ฑด์ ๋ง๋ PricebookEntry๋ฅผ ์กฐํํ์ฌ ์ ํ๊ณผ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
์ฃผ๋ก ์ธ๋ถ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ๊ฐ์ด ํํํด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ฑํ Apex Class ๋๋ Flow๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋ฐ์ดํฐ์์ค์ ๋นํด ์์ ๋กญ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ธ๋ถ ์๋ฒ์์ ์ค์๊ฐ ์ฌ๊ณ ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ Apex Class์์ Rest API ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ธ๋ถ ๋ฐ์ดํฐ์์ค์ ์ง์ ํ๋ฉด List Configurator์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค.
์ฃผ๋ก ์ธ๋ถ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ๊ฐ์ด ํํํด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ฑํ Apex Class๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋ฐ์ดํฐ์์ค์ ๋นํด ์์ ๋กญ๊ฒ ๋ฐ์ดํ ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ธ๋ถ ์๋ฒ์์ ์ค์๊ฐ ์ฌ๊ณ ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ Apex Class์์ Rest API ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ธ๋ถ ๋ฐ์ดํฐ์์ค์ ์ง์ ํ๋ฉด Line-Item Configurator์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค.
External ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ ์์ฑ์ ๋๋ค.
External ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ Apex Class๋ฅผ ๋จผ์ ์์ฑํด์ผ ํฉ๋๋ค. Package์์ ์ ๊ณตํ๋ SBLD.DataSourceService.Fetchable
์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ ค๋ Apex Class์ implements
ํ์ฌ ๊ตฌํํฉ๋๋ค.
์ค๋น์ค์ ๋๋ค.
External ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ ์์ฑ์ ๋๋ค.
External ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ Apex Class๋ฅผ ๋จผ์ ์์ฑํด์ผ ํฉ๋๋ค. Package์์ ์ ๊ณตํ๋ SBLD.DataSourceService.Fetchable
์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ ค๋ Apex Class์ implements
ํ์ฌ ๊ตฌํํฉ๋๋ค.
SBLD.DataSourceService.Fetchable
ํด๋์ค๋ฅผ implements
ํ์ฌ execute()
๋ฉ์๋๋ฅผ ๊ตฌํํฉ๋๋ค.
SBLD.DataSourceService.Parameter
์์ gets()
๋ฉ์๋๋ฅผ ํตํด Line-Item Configurator์ Parent ๋๋ Lookup ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
Line-Item Configurator๋ก ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํด ์๋ ํด๋์ค๋ฅผ ์ด์ฉํฉ๋๋ค.
๋์(Lookup ๋๋ Line-Item)์ ํ๋ง๋ค Action์ ์ง์ ํฉ๋๋ค. Action์ ๋ฐ์ดํฐ์์ค ๊ฐ์ Lookup ๋๋ Line-Item ํ๋์ ๋งคํํ๋ ์์ ์ ๋๋ค.
setKeyValue(Object keyValue) Lookup ๋๋ Line-Item์ ๋์ ๋ ์ฝ๋๋ฅผ ์ฐพ๊ธฐ ์ํ Key๊ฐ์ ์ค์ ํฉ๋๋ค.
putSourceToTargetField(Object sourceValue, String targetField) ๋ฐ์ดํฐ์์ค ๊ฐ์ Lookup ๋๋ Line-Item ํ๋์ ํ ๋นํฉ๋๋ค.
๋งคํ์ด ์๋ฃ๋ Action์ ๋ฆฌํด ๊ฐ์ ์ถ๊ฐํ๋ ์์ ์ ๋๋ค.
addAction(SBLD.DataSourceServiceAction action) SBLD.DataSourceService.Result ์ธ์คํด์ค์ Action์ ์ถ๊ฐํฉ๋๋ค.
์ค๋น์ค์ ๋๋ค.
Salesforce ๋ด ๊ด๋ จ ๊ฐ์ฒด๋ฅผ ์กฐํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ํํํ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Lookup์ด Product2๋ก ์ง์ ๋ ๊ฒฝ์ฐ PricebookEntry์ ์๋ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๋ ๋ด๋ถ ๋ฐ์ดํฐ์์ค๋ฅผ ์ด์ฉํด ์กฐ๊ฑด์ ๋ง๋ PricebookEntry๋ฅผ ์กฐํํ์ฌ ์ ํ๊ณผ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
Internal ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ ์์ฑ์ ๋๋ค.
๋ฐ์ดํฐ์์ค๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ์ ๊ฒฐํฉํ๊ธฐ ์ํ ์์ ์ผ๋ก ๋ฐ์ดํฐ์์ค ํ๋์ ๋ฆฌ์คํธ์ ํ๋๋ฅผ ๋งคํํฉ๋๋ค.
๋ฐ์ดํฐ์์ค๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ์ ๊ฒฐํฉํ๊ธฐ ์ํ ์์ ์ผ๋ก ๋ฐ์ดํฐ์์ค ํ๋์ ๋ฆฌ์คํธ์ ํ๋๋ฅผ ๋งคํํฉ๋๋ค.
๋ฆฌ์คํธ์ ๊ฐ์ฒด๋ฅผ Product๋ก ์ง์ ํ์ฌ ์ ํ ๋ชฉ๋ก์ ๊ฒ์ํ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ๋ชฉ๋ก์ PricebookEntry ๊ฐ์ฒด์ ์๋ ๋จ๊ฐ๋ฅผ ํจ๊ป ํ์ํ๋ ค๊ณ ํฉ๋๋ค.
(์ ํ) Condition ๋์ Product2Id IN {$Current.Id}
๋ฅผ ์
๋ ฅํฉ๋๋ค. (SOQL Where
๋ฌธ๊ณผ ๋์ผ)
Product์ ๋ง๋ PricebookEntry ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ๊ธฐ ์ํด Key ํ์ ๊ฐ์ฅ ์ฐ์ธก์ ์๋ ์ฐํ ๋ฒํผ์ ๋๋ฆ ๋๋ค.
์ด๋ฆฐ ํ์ ์ฐฝ์์ ์๋์ ๊ฐ์ด ์ ํ ํ ์ ์ฅํฉ๋๋ค.
DataSource Field : Product2Id
Lists Field : Id
PricebookEntry์ ๋จ๊ฐ๋ฅผ ๋ฆฌ์คํธ ์ปฌ๋ผ์ ํ์ํ๊ธฐ ์ํด 'Add Action'์ ๋๋ฆ ๋๋ค. (์์ ํ๊ธฐ ์ ๋ฐ์ดํฐํ ์ด๋ธ ์ค์ ์์ Virtual Column์ ์์ฑํฉ๋๋ค.)
์ด๋ฆฐ ํ์ ์ฐฝ์์ ์๋์ ๊ฐ์ด ์ ํ ํ ์ ์ฅํฉ๋๋ค.
DataSource Field : UnitPrice
Virtual Field : SBLDVirtual1
๋ฒํธ | ํ๋๋ช ๋ฐ ์์ญ | ์ค๋ช | ํ์ |
---|---|---|---|
๋ฒํธ | ํ๋๋ช ๋ฐ ์์ญ | ์ค๋ช | ํ์ |
---|---|---|---|
๋ฒํธ | ํ๋๋ช ๋ฐ ์์ญ | ์ค๋ช | ํ์ |
---|---|---|---|
๋ฒํธ | ์์ญ | ์ค๋ช |
---|---|---|
๋ฒํผ์ ๋๋ฌ 'PricebookEntry'๋ฅผ ๊ฒ์ ํ ์ ํํฉ๋๋ค.
1
Key
๋ฐ์ดํฐ์์ค์ ๋ฆฌ์คํธ ๋ ์ฝ๋ ๊ฐ ์ฐ๊ฒฐ์ ์ํด ์๋ก ๊ฐ์ ๊ฐ์ ๊ฐ์ง ํ๋๋ฅผ ์ค์ ํฉ๋๋ค.
โ๏ธ
2
Actions
๋ฐ์ดํฐ์์ค์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ ์ปฌ๋ผ๋ค์ ๋งคํํฉ๋๋ค.
โ๏ธ
3
๋ฒํผ์ ๋๋ฌ Action์ ์ถ๊ฐํฉ๋๋ค.
1
DataSource Field
๋ฐ์ดํฐ์์ค์์ ์ง์ ํ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋ณด์ฌ์ค๋๋ค.
2
Lists Field
๋ฆฌ์คํธ์์ ์ง์ ํ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋ณด์ฌ์ค๋๋ค.
3
Virtual Field
๋ฆฌ์คํธ์์ ์์ฑํ ๊ฐ์ ์ปฌ๋ผ๋ค์ ๋ณด์ฌ์ค๋๋ค.
4
๊ฒฐ๊ณผ
์ผ์ชฝ์ด ๋ฐ์ดํฐ์์ค, ์ค๋ฅธ์ชฝ์ด ๋ฆฌ์คํธ๋ก ์๋ก ๊ฐ ์ด๋ค ํ๋๋ก ๋งคํํ ์ง ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
5
Add Virtual
๋ฐ์ดํฐ์์ค์ ํ์ํ ๊ฐ์ ์ด์ ์์ฑํ ์ ์์ต๋๋ค. ์์ฑ๋ ๊ฐ์ ์ด์ Lists Setup์ Datatable ์ค์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
1
External ์ ํ ์ ํ
External ๋ฐ์ดํฐ์์ค ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ๋ ๊ฐ์ง ์ ๊ณต๋ฉ๋๋ค.
Apex - SBLD.DataSourceService.Fetchable
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ Apex Class๋ฅผ ์ด์ฉํฉ๋๋ค.
Flow - ์๋์คํ ํ๋ก๋ฅผ ์ด์ฉํฉ๋๋ค.
โ๏ธ
2
ํ์ฑํ
๋ฐ์ดํฐ์์ค๋ฅผ ํ์ฑํํฉ๋๋ค. ํ์ฑํ๊ฐ ๋์ด ์์ง ์์ผ๋ฉด ๋ฆฌ์คํธ ๊ตฌ์ฑ ์ ์๋๋์ง ์์ต๋๋ค.
3
Description
๋ฐ์ดํฐ์์ค์ ๋ํ ์ค๋ช ์ ๊ธฐ์ ํฉ๋๋ค.
4
Key Field
๋ฐ์ดํฐ์์ค์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ ์ง์ ๊ฐ์ฒด์ ์ด๋ ํ ํ๋๊ฐ์ผ๋ก ๊ฒฐํฉํ ์ง ์ง์ ํฉ๋๋ค.
โ๏ธ
5
Parameters
๋ฐ์ดํฐ์์ค์ ๋ฆฌ์คํธ ์ง์ ๊ฐ์ฒด์ ํ๋ ๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ ํ๋๋ฅผ ์ ํํฉ๋๋ค.
6
Input Variable
7
Output Variable
โ๏ธ
1
๊ฐ์ฒด ๊ฒ์
๋ฐ์ดํฐ์์ค ๋์ ๊ฐ์ฒด๋ฅผ ๊ฒ์ ํ ์ ํํฉ๋๋ค.
โ๏ธ
2
ํ์ฑํ
๋ฐ์ดํฐ์์ค๋ฅผ ํ์ฑํํฉ๋๋ค. ํ์ฑํ๊ฐ ๋์ด ์์ง ์์ผ๋ฉด ๋ฆฌ์คํธ ๊ตฌ์ฑ ์ ์๋๋์ง ์์ต๋๋ค.
3
Description
๋ฐ์ดํฐ์์ค์ ๋ํ ์ค๋ช ์ ๊ธฐ์ ํฉ๋๋ค.
4
Conditions
5
๋ฐ์ดํฐ์์ค๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ์ ๊ฒฐํฉํ๊ธฐ ์ํ ์์ ์ผ๋ก ๋ฐ์ดํฐ์์ค ํ๋์ ๋ฆฌ์คํธ์ ํ๋๋ฅผ ๋งคํํฉ๋๋ค.
โ๏ธ
ํ๋ก๋ก ์ง์ ๋ ๊ฒฝ์ฐ ํ๋ก์ ์ ๋ฌํ ํ๋ผ๋ฏธํฐ ๋ณ์๋ฅผ ์ ํํฉ๋๋ค. ํ๋ผ๋ฏธํฐ๊ฐ ํ์ ์๋ ๊ฒฝ์ฐ ์ ํํ์ง ์์ต๋๋ค. ๐ก ์ต์ ์์ ๋ณด์ฌ์ง๋ ๊ฐ๋ค์ ์ง์ ๋ ํ๋ก์ ์๋ ๋ฆฌ์์ค(Available for input)์ ๋๋ค.
ํ๋ก ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ณ์๋ฅผ ์ ํํฉ๋๋ค. ๐ก ์ต์ ์์ ๋ณด์ฌ์ง๋ ๊ฐ๋ค์ ์ง์ ๋ ํ๋ก์ ์๋ ๋ฆฌ์์ค(Available for output)์ ๋๋ค.
๋ฐ์ดํฐ์์ค ์ง์ ๊ฐ์ฒด ์กฐํ ์ ์กฐ๊ฑด์ด ํ์ํ ๊ฒฝ์ฐ ์์ฑํฉ๋๋ค. (SOQL์ Where
์ ์ ํด๋นํฉ๋๋ค.)
Field API Name Finder๋ฅผ ์ด์ฉํด ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ํ๋๋ฅผ ๊ฒ์ํ์ฌ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
๋ฆฌ์คํธ ์ง์ ๊ฐ์ฒด์ ํ๋๋ฅผ ์ด์ฉํด ์กฐ๊ฑด๋ฌธ ์์ฑ ์
๏ผ=๏ผ์ด ์๋ ๏ผIN๏ผ์ผ๋ก ์์ฑํด์ผ ํฉ๋๋ค.
$Current
๋ ๋ฆฌ์คํธ ์ง์ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์ Product2Id IN {$Current.Id}
์๋ชป๋ ์ Product2Id = {$Current.Id}