Lookup ๋๋ Line-Item ๋ฐ์ดํฐ์ ๋ถ๊ฐ์ ์ผ๋ก ๊ด๋ จ ๊ฐ์ฒด๋ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ํํํด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
Lookup์ Data Source๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ: ๊ฒ์ ์ค์ (Setup Lookup Selector) ๋จ๊ณ๋ก ์ด๋ํฉ๋๋ค. Line-Item์ Data Source๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ: ํธ์ง๊ธฐ ์ค์ (Setup Line-Item Editor) ๋จ๊ณ๋ก ์ด๋ํฉ๋๋ค.
Add data sources ๋ฒํผ์ ๋๋ฌ Data Source ํธ์ง ๋ ์ด์์์ ์ด์ด์ค๋๋ค.
Line-Item ํธ์ง๊ธฐ๋ Evaluation Event๋ฅผ ํ์๋ก ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. Evaluation Event๋ ์๋์ ๊ฐ์ด ์ ๊ณต๋ฉ๋๋ค.
On Initialization : Line-Item ๋ ์ฝ๋๊ฐ ์๋ก ์ถ๊ฐ๋์์ ๋ ์คํ๋ฉ๋๋ค.
On Loading : Line-Item ํ๋ฉด์ด ๋ก๋๋ ๋๋ง๋ค ์คํ๋ฉ๋๋ค.
Before Save : Line-Item ๋ ์ฝ๋๋ค์ด ์ ์ฅ๋๊ธฐ ์ ์คํ๋ฉ๋๋ค.
Salesforce ๋ด ๊ด๋ จ ๊ฐ์ฒด๋ฅผ ์กฐํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ํํํ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Lookup์ด Product2๋ก ์ง์ ๋ ๊ฒฝ์ฐ PricebookEntry์ ์๋ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๋ ๋ด๋ถ ๋ฐ์ดํฐ์์ค๋ฅผ ์ด์ฉํด ์กฐ๊ฑด์ ๋ง๋ PricebookEntry๋ฅผ ์กฐํํ์ฌ ์ ํ๊ณผ ๋จ๊ฐ๋ฅผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
์ฃผ๋ก ์ธ๋ถ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ๊ฐ์ด ํํํด์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ฑํ Apex Class๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋ฐ์ดํฐ์์ค์ ๋นํด ์์ ๋กญ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ธ๋ถ ์๋ฒ์์ ์ค์๊ฐ ์ฌ๊ณ ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ๊ฐ์ด ํ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ Apex Class์์ Rest API ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ธ๋ถ ๋ฐ์ดํฐ์์ค์ ์ง์ ํ๋ฉด Line-Item 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 ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ ์์ฑ์ ๋๋ค.
Internal Data Source๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ Lookup ๋๋ Line-Item์ ๋งคํํ๊ธฐ ์ํ ์์ ์ ๋๋ค.
Internal ๋ฐ์ดํฐ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ ์์ฑ์ ๋๋ค.
Internal Data Source๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ Lookup ๋๋ Line-Item์ ๋งคํํ๊ธฐ ์ํ ์์ ์ ๋๋ค.
Lookup Selector ๊ฐ์ฒด๋ฅผ Product๋ก ์ง์ ํ์ฌ ์ ํ ๋ชฉ๋ก์ ๊ฒ์ํ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ๋ชฉ๋ก์ PricebookEntry ๊ฐ์ฒด์ ์๋ ๋จ๊ฐ๋ฅผ ํจ๊ป ํ์ํ๋ ค๊ณ ํฉ๋๋ค.
๋ฐ์ดํฐ์์ค์์ Source Object๋ฅผ PricebookEntry๋ก ์ง์ ํฉ๋๋ค.
(์ ํ) Query Wizard๋ฅผ ๋๋ฌ ๋ฐ์ดํฐ ์กฐํ ์กฐ๊ฑด์ ์์ฑํฉ๋๋ค. (SOQL Where
๋ฌธ๊ณผ ๋์ผ)
Product์ ๋ง๋ PricebookEntry ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ๊ธฐ ์ํด ์๋์ ๊ฐ์ด ์ค์ ํฉ๋๋ค.
Source Field : Product2Id
Target Field : Id
Key : true
๋จ๊ฐ๋ฅผ Product ๋ฐ์ดํฐ์ ๊ฐ์ด ํ์ํ๊ธฐ ์ํด Action์ ์ถ๊ฐํ์ฌ Lookup Column์ ์ง์ ํฉ๋๋ค.
Source Field : UnitPrice
Target Field : SBLDVirtual1 (Lookup Virtual Column ์ฐธ๊ณ )
ํญ๋ชฉ | ์ค๋ช | ํ์ |
---|---|---|
ํญ๋ชฉ | ์ค๋ช | ํ์ |
---|---|---|
ํญ๋ชฉ | ์ค๋ช | ํ์ |
---|---|---|
Apex Class Name
์ธ๋ถ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ ํด๋์ค์ ์ด๋ฆ์ ๋๋ค.
โ๏ธ
Key Field
DataSource๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋งคํ์ํค๊ธฐ ์ํ field API ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
โ๏ธ
Parent Field Parameters
DataSource์ Type์ด External์ผ ๊ฒฝ์ฐ Parent Object์ Field ์ค Parameter๋ก ๋๊ฒจ์ค Field๋ฅผ ๋ํ๋ ๋๋ค.
Lookup Field Parameters
DataSource์ Type์ด External์ผ ๊ฒฝ์ฐ Lookup Object์ Field ์ค Parameter๋ก ๋๊ฒจ์ค Field๋ฅผ ๋ํ๋ ๋๋ค.
Active
DataSource์ ํ์ฑ, ๋นํ์ฑ ์ฌ๋ถ์ ๋๋ค.
โ๏ธ
Source Object
Lookup ๋๋ Line-Item์ ๋ฐ์ดํฐ์ ๋งคํํ ์ธ์ผ์ฆํฌ์ค ๋ด๋ถ ๊ฐ์ฒด๋ฅผ ์ง์ ํฉ๋๋ค.
โ๏ธ
Query
Wizard ๋ฒํผ์ ๋๋ฌ Query ์์ฑ ๋ ์ด์์์ ์ฝ๋๋ค. Query Wizard๋ฅผ ์ด์ฉํด ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ํ๋๋ฅผ ๊ฒ์ํ์ฌ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
Active
Data Source๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ์ฑํํด์ผ ํฉ๋๋ค.
โ๏ธ
Evaluation Event
Line-Item ํธ์ง๊ธฐ๋ Evaluation Event๋ฅผ ํ์๋ก ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
On Initialization : Line-Item ๋ ์ฝ๋๊ฐ ์๋ก ์ถ๊ฐ๋์์ ๋ ์คํ๋ฉ๋๋ค.
On Loading : Line-Item ํ๋ฉด์ด ๋ก๋๋ ๋๋ง๋ค ์คํ๋ฉ๋๋ค.
Before Save : Line-Item ๋ ์ฝ๋๋ค์ด ์ ์ฅ๋๊ธฐ ์ ์คํ๋ฉ๋๋ค.
Internal Data Source๋ฅผ ํตํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ Lookup ๋๋ Line-Item์ ๋งคํํ๊ธฐ ์ํ ์์ ์ ๋๋ค.
โ๏ธ
Action Order
๋งคํ ์์๋ฅผ ์ง์ ํฉ๋๋ค.
โ๏ธ
Source Field
Internal Data Source ๊ฐ์ฒด์์ ๋งคํํ ํ๋๋ฅผ ์ง์ ํฉ๋๋ค.
โ๏ธ
Target Field
Lookup ๋๋ Line-Item ๊ฐ์ฒด์ ๋งคํํ ํ๋๋ฅผ ์ง์ ํฉ๋๋ค.
โ๏ธ
Key
Lookup ๋๋ Line-Item๊ณผ ๋ฐ์ดํฐ์์ค ๊ฐ ๋ฐ์ดํฐ ๋งค์นญ ์ ์ฌ์ฉํ Action์ ์ง์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด Lookup์ด Product2๋ก ์ง์ ๋์ด ์๊ณ ๋ฐ์ดํฐ์์ค๋ก PricebookEntry๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ PricebookEntry์ Product2Id(Source Field)์ Product2์ Id ํ๋(Target Field)๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ์ฌ ํํํฉ๋๋ค.
โ๏ธ