SlideShare a Scribd company logo
Salesforce Developers Meetup #29
画面フローとLightningWebComponentの
ハイブリッド開発について
Toru Inoue
自己紹介
井上 徹 (Inoue Toru)
所属: 株式会社テラスカイ
居住地:大阪 出身地:岡山
Salesforce歴:約6年
ロール:Salesforce開発プロジェクトのPM/PMO、アーキテクト
トピック:LWCの勉強始めました!
@tiaug30
皆さんフロー使ってますか??
コード開発しなくても色々作れて便利!!
かなり使えるようになっているけど、少し物足りない!!
複雑な機能は結局個別開発が必要なんじゃない?
• 標準コンポーネントだけだとやりたいことができない
• AppExchangeにあるものだと微妙に機能がマッチしない
• 画面フローでできないので、すべて個別開発で対応した
画面フローで使えるLWCを作ります
こんなことないですか??
ないなら自分で作ってみよう!!
画面フローとLWCの違い
画面フロー Lightning Web Component(LWC)
タイプ 標準機能(Low-Code) 個別開発(Pro-Code)
利用者 アドミン~開発者 開発者
難易度 〇
低~中
△
高
コスト 〇
低
△
高
自由度
△
基本的に標準設定の範囲内
〇
個別開発により自由度高
特性 シンプルな画面をスピーディに実現したいときに便利 複雑な機能や独自のUIを作り込める
どちらもメリット・デメリットがある
• 基本はフローベースで開発
• フローでは実装できない最低限の画面コンポーネントをLWCで開発する
• コーディングは最低限にとどめる(フローでできることはフローでやる)
• フローのお手軽さとLWCの自由度のおいしいところ取りをする
画面フローとLWCのハイブリッド開発のアプローチ
画面FLOW
標準コンポーネント
カスタムコンポーネント
(LWC)
標準コンポーネント
デモアプリ
デモアプリ
住所型項目(Summer’22新機能)
住所項目の地図を表示(フロー)
地図(LWC)
<template>
<lightning-map
map-markers={mapMarkers}
zoom-level={zoomLevel}>
</lightning-map>
</template>
flowMap.html
地図コンポーネントのLWC
import { api, LightningElement } from 'lwc';
export default class FlowMap extends LightningElement {
@api city;
@api country;
@api postalCode;
@api state;
@api street;
@api zoomLevel;
mapMarkers;
connectedCallback() {
let mapMarkers = [
{
location: {
City: this.city,
Country: this.country,
PostalCode: this.postalCode,
State: this.state,
Street: this.street
}
}
]
this.mapMarkers = mapMarkers;
}
}
flowMap.js
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>55.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>Map Component In Flow</masterLabel>
<targets>
<target>lightning__FlowScreen</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__FlowScreen">
<property name="country" label="Country" type="String"/>
<property name="state" label="State" type="String"/>
<property name="city" label="City" type="String"/>
<property name="street" label="Street" type="String"/>
<property name="postalCode" label="PostalCode" type="String"/>
<property name="zoomLevel" label="Zoom Level" type="Integer"/>
</targetConfig>
</targetConfigs>
</LightningComponentBundle>
flowMap.js-meta.xml
フローから渡すパラメータを指定
LWC標準のタグを置くだけ
lightning-mapに渡す住所情報を構成
フローから渡されるパラメータを格納する変数
フローから呼び出し可能に設定
フローで指定したパラメータがLWCに受け渡される
パラメータ①
↓
パラメータ②
↓
パラメータ③
・
・
・
LWCのライフサイクルフローとパラメータの設定タイミング
constructor()
コンポーネントインスタンスの作成時に起動
connectedCallback()
コンポーネントが DOM に挿入されると起動
renderedCallback()
コンポーネントの表示フェーズが完了したら起動
パラメータはフロービルダーの表示順にセットされる。
LWC側のsetプロパティで何かしらの処理をする場合は
実行順序に注意が必要
※公式ドキュメントは未確認
デモアプリのフロー定義(Lightningページの地図)
パラメータのrecordIdを条件にレコードを取得
カスタムの地図コンポーネントを配置
住所項目から国、郵便番号、都道府県、市区群、
町名番地を地図コンポーネントに渡す。
① LWCがカスタムセクションに表示される
② 画面にカスタムコンポーネントを配置
③ LWCに渡すパラメータを指定
住所型項目利用時の注意点
①住所型項目の国と都道府県は選択リストであり、データベース上はコード値(ラベルでない)で登録される。
レコードは州コード(API参照名)で登録される。
州コードは英数字のみ指定可
住所型項目の選択リスト値の設定
⇒ 住所型項目の選択リストのコードを地図コンポーネントが国、都道府県として認識されないコード体系で定義すると、
地図が正しく表示されない可能性があるので要注意!!(必要に応じてフローでコード変換する必要がでてくる)
②画面フロー標準の住所入力コンポーネントの選択リスト値は、住所型の選択リストの設定が適用されない。(フロー側で独自設定する)
住所型項目の値(コード値)を渡す場合は要注意!!
デモアプリ完成!!
あとはLightningアプリケーションビルダーでフローを配置するだけ
まとめ
• 画面フローとLWCを使ったハイブリッド開発を行うことで、フロー単独ではできないことができるようになる。
• プログラミング開発を最低限にすることで開発コストや難易度を低減させることができる。(フル個別開発>ハイブリッド開発)
• 汎用的なコンポーネントを作成しておけば、様々なユースケースで再利用できる。
• プログラミング開発を外注している場合は、外注費用を下げることができる。(システム管理者やユーザにもメリットがある)
まとめ
今回の手法を使えば画面フローでこんなこともできます!
まとめ
データテーブルコンポーネント リッチテキスト入力コンポーネント
<lightning-datatable> <lightning-input-rich-text>
資料公開・解説記事
@tiaug30
@tiaug30

More Related Content

What's hot

インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
NHN テコラス株式会社
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
Yong Shean Chong
 
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
UnityTechnologiesJapan002
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
Kotaro Ogino
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
furuCRM株式会社 CEO/Dreamforce Vietnam Founder
 
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行
Salesforce Developers Japan
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
Salesforce Developers Japan
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
 
Best Practices for a CoE
Best Practices for a CoEBest Practices for a CoE
Best Practices for a CoE
Splunk
 
カスタムリスト添付ファイル Power Apps をそえて
カスタムリスト添付ファイル Power Apps をそえてカスタムリスト添付ファイル Power Apps をそえて
カスタムリスト添付ファイル Power Apps をそえて
Teruchika Yamada
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
Amazon Web Services Japan
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツ
infinite_loop
 
超初心者向けForce.com入門
超初心者向けForce.com入門超初心者向けForce.com入門
超初心者向けForce.com入門
Salesforce Developers Japan
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Salesforce Developers Japan
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
Salesforce Partners
 
おひとりさまAWS Organizationsのススメ
おひとりさまAWS OrganizationsのススメおひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
政雄 金森
 

What's hot (20)

インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
インフラ運用の観点から考えるAWS~運用における利点と移行のポイント~
 
開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
Architecting Multi-Org Solutions
Architecting Multi-Org SolutionsArchitecting Multi-Org Solutions
Architecting Multi-Org Solutions
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
 
Best Practices for a CoE
Best Practices for a CoEBest Practices for a CoE
Best Practices for a CoE
 
カスタムリスト添付ファイル Power Apps をそえて
カスタムリスト添付ファイル Power Apps をそえてカスタムリスト添付ファイル Power Apps をそえて
カスタムリスト添付ファイル Power Apps をそえて
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツ
 
超初心者向けForce.com入門
超初心者向けForce.com入門超初心者向けForce.com入門
超初心者向けForce.com入門
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
 
おひとりさまAWS Organizationsのススメ
おひとりさまAWS OrganizationsのススメおひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
 
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
 

Similar to SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx

【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
SFDG ROOKIES
 
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいことSalesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
 
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
Serverworks Co.,Ltd.
 
Lightning Component × Lightning Design System
Lightning Component × Lightning Design SystemLightning Component × Lightning Design System
Lightning Component × Lightning Design System
Taiki Yoshikawa
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
Lync でできる? 仕事効率化
Lync でできる? 仕事効率化Lync でできる? 仕事効率化
Lync でできる? 仕事効率化Manato KAMEYA
 
Html5fun 20150123 JavaScript効率化
Html5fun 20150123 JavaScript効率化Html5fun 20150123 JavaScript効率化
Html5fun 20150123 JavaScript効率化
Katsushiro Koizumi
 
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Kazuki Shibata
 
開発者が話すSalesforceのui設計とは?
開発者が話すSalesforceのui設計とは?開発者が話すSalesforceのui設計とは?
開発者が話すSalesforceのui設計とは?
Junji Imaoka
 
Fxug
FxugFxug
Fxug
satoshi
 
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
schoowebcampus
 
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
webcampusschoo
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2
Yoshitaka Seo
 
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズDon't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
Takahito Miyamoto
 
HoloLens first impression & development
HoloLens first impression & developmentHoloLens first impression & development
HoloLens first impression & development
c-mitsuba
 
会話型UI事始め
会話型UI事始め会話型UI事始め
会話型UI事始め
DeNA
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
Takashi Hatamoto
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
 
早く・良いものを作るための、WordPressサイト構築ワークフロー
早く・良いものを作るための、WordPressサイト構築ワークフロー早く・良いものを作るための、WordPressサイト構築ワークフロー
早く・良いものを作るための、WordPressサイト構築ワークフロー
Takako Horiuchi
 
LightSwitchでマルチデータソース
LightSwitchでマルチデータソースLightSwitchでマルチデータソース
LightSwitchでマルチデータソース
Yoshitaka Seo
 

Similar to SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx (20)

【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
 
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいことSalesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
 
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
 
Lightning Component × Lightning Design System
Lightning Component × Lightning Design SystemLightning Component × Lightning Design System
Lightning Component × Lightning Design System
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
Lync でできる? 仕事効率化
Lync でできる? 仕事効率化Lync でできる? 仕事効率化
Lync でできる? 仕事効率化
 
Html5fun 20150123 JavaScript効率化
Html5fun 20150123 JavaScript効率化Html5fun 20150123 JavaScript効率化
Html5fun 20150123 JavaScript効率化
 
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
 
開発者が話すSalesforceのui設計とは?
開発者が話すSalesforceのui設計とは?開発者が話すSalesforceのui設計とは?
開発者が話すSalesforceのui設計とは?
 
Fxug
FxugFxug
Fxug
 
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
 
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
 
LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2LightSwitch で遊んでみた Rev. 2
LightSwitch で遊んでみた Rev. 2
 
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズDon't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
Don't Stop Deploying!! SFDX時代のデプロイ体験 リターンズ
 
HoloLens first impression & development
HoloLens first impression & developmentHoloLens first impression & development
HoloLens first impression & development
 
会話型UI事始め
会話型UI事始め会話型UI事始め
会話型UI事始め
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
 
早く・良いものを作るための、WordPressサイト構築ワークフロー
早く・良いものを作るための、WordPressサイト構築ワークフロー早く・良いものを作るための、WordPressサイト構築ワークフロー
早く・良いものを作るための、WordPressサイト構築ワークフロー
 
LightSwitchでマルチデータソース
LightSwitchでマルチデータソースLightSwitchでマルチデータソース
LightSwitchでマルチデータソース
 

SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx