Admin Intermediate > Use External Services With a Flow > Register an External Service
이번시간에는 지난 시간에 말로만 떠들어 대던걸 직접 만들어 볼거에요. 일단 External Service로 새로운 Playground를 하나 만드세요.
Plan to Create Process
지난 시간에 연습했던 bank API로 좀더 각색해서 처리하는 로직을 만들거에요. 이 로직에서는:
- 은행 담당자가 bank account를 Salesforce에 추가하게 해주고
- Account Type이나 Account ID가 은행에서 가지고 있는 데이타와 Salesforce Account의 데이타가 서로 일치하는지를 확인합니다.
- 담당자는 한사람 이상이고, 은행 API에서 받아온 정보로 Salesforce에 해당 고객이 있으면 필요한 정보를 추가하고, 만약 기존에 없는 고객이라면 새로운 고객으로 레코드를 생성하여 필요한 정보와 함께 저장합니다.
- 은행 API를 External Service에 등록시키고 Flow Builder에서 사용할거에요.
Flow
- Screen: 은행 계좌 기록. 은행 직원이 화면에 입력한 정보에서 계좌 이름과 계좌 유형을 캡처합니다.
- Action: 은행 계좌 추가. 외부 서비스에 은행 서비스의 API 사양을 등록했으므로, 사양에 정의된 모든 API 작업은 이제 해당 작업으로 플로우 내에서 사용할 수 있습니다. 우리는 addAccount 작업을 사용하고 Salesforce 조직과 은행 서비스 간에 사용할 변수에 할당할 API 입력 및 출력을 지정합니다.
- Decision: 은행 계좌 정보가 업데이트되었나요? 이 로직은 은행 계좌가 존재하는지, 업데이트가 필요한지 평가하거나, 필요한 경우 새 은행 계좌를 생성합니다.
- Assignment: 기존 은행 계좌 ID를 할당합니다. 은행 계좌가 있는 경우, 기존 은행 계좌의 계좌 ID를 할당하고 이 값을 사용하여 Salesforce 사용자 계정을 업데이트합니다.
- Update Records: Salesforce 사용자 레코드를 업데이트합니다. Salesforce 사용자의 성이 은행 계좌 기록과 일치하면, 저희 워크플로는 Salesforce 사용자 레코드를 은행 계좌 유형 및 은행 계좌 ID로 업데이트합니다. 은행 서비스에서 일치하는 성을 찾지 못하고 새로운 은행 계좌 레코드가 생성된 경우, Salesforce 사용자 레코드(Salesforce에 일치하는 이름이 있는 경우)를 새 은행 계좌 유형 및 은행 계좌 ID로 업데이트합니다.
Named Credential
Named Credential은 뭐라고 했죠? 외부 API에 접근하는데 필요한 인증절차를 밟는 거라고 했어요. 근데 지금 테스트하도록 나온 앱이 최신인증을 지원하는 API가 아니라서요. 인증을 안할거라서 New Legacy를 선택할거에요. 그 이유는 지지난 시간에 설명드렸는데 왜 그런지 기억하시죠? 기억안나면 여기
- Setup > Named Credentials > New Legacy
- Label: Bank
- Name: Bank
- URL: https://th-external-services.herokuapp.com
- Save
External Services
여기에서 외부 API의 API Specification을 등록해주는 건데요. API의 스키마는 바로 해당 API에서 제공하고 있어요. Account의 스키마면, https://th-external-services.herokuapp.com/accounts/schema 여기에 JSON으로 API Specification이 다 들어가 있습니다.
- Setup > External Services > Add an External Service
- From API Specification을 선택합니다.
- Next
- Provide Registration Details
- External Service Name: BankService
- Select a Named Credential: Bank
- Service Schema: Relative URL
- URL: /accounts/schema
- Save & Next
- Select Operations (전부선택합니다)
- ✅ addAccount
- ✅ DeleteAccount
- ✅ getAccount
- ✅ updateAccount
- Next
- Finish
지금 우리가 뭘했냐면요 addAccount, DeleteAccount, getAccount, 그리고 updateAccount를 External Service로 등록한거에요. 이거 등록할때 schema도 명시한 이유는 해당 서비스가 어떤 입력값을 받는지도 같이 등록하기 때문이에요. view-source:https://th-external-services.herokuapp.com/accounts/schema여기 보시면 addAccount에 parameters가 accountName이랑 accountType이렇게 두개 나오잖아요. 이게 뒤에서 갑자기 튀어나오거든요? 그러면 아 우리가 addAccount를 External Service에 등록할때 schema를 알려줘서 parameters로 accountName이랑 accountType를 받는게 나오는구나 하시면 되요.
여기까지 하시고 도전과제 제출하시면 됩니다.