Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Salesforceのツールの作り方
tzmfreedom
September 26, 2019
Technology
0
320
Salesforceのツールの作り方
Salesforce World Tour Tokyo 2019で登壇したときの資料です
tzmfreedom
September 26, 2019
Tweet
Share
More Decks by tzmfreedom
See All by tzmfreedom
DBGpを使って PHPのデバッガーをつくろう / DGBp PHP Debugger
tzmfreedom
1
300
独自フレームワークPHPアプリケーションの改善戦略 / Original Framework PHP Kaizen
tzmfreedom
2
1.7k
PHPでPHPを実装する〜プログラミング言語実装入門〜
tzmfreedom
0
540
Other Decks in Technology
See All in Technology
miisan's career talk
mii3king
0
220
組織の崩壊と再生、その中で何を考え、感じたのか。 そして本当に必要だったもの
kosako
9
3.4k
データチームの境界を考える
yummydum
0
190
JAWS-UG re:Habilitaion 報告 / JAWS-UG OITA rehabilitation
hiranofumio
0
110
越境チャレンジの現在地 〜Epic大臣制度の今〜
yousak
0
830
データエンジニアリングの潮流を俯瞰する
tetsuroito
1
720
HoloLens2とMetaQuest2どちらも動くWebXRアプリをBabylon.jsで作る
iwaken71
0
180
ソフトウェアライセンス 2022 / Software License 2022
cybozuinsideout
PRO
1
970
オンラインでのサーバー切替事例紹介/ColoplTech-05-01
colopl
0
160
MoT TechTalk #12 タクシーアプリ『GO』大規模トラフィックを捌く分析データ基盤の全容に迫る!
mot_techtalk
0
350
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
Scrum Fest Osaka 2022 段階的スクラムマスターのススメ
orimomo
0
710
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
5
2.2k
Gamification - CAS2011
davidbonilla
75
3.9k
Navigating Team Friction
lara
175
11k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
13k
A Tale of Four Properties
chriscoyier
149
21k
Building a Scalable Design System with Sketch
lauravandoore
448
30k
BBQ
matthewcrist
74
7.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
Transcript
Salesforceͷπʔϧͷ࡞Γํ ా࣮
ࣗݾհ • Twitter: @tzm_freedom • GitHub: tzmfreedom • Blog: https://blog.freedom-man.com
• ࣄۀ։ൃձࣾͷαʔόʔαΠυΤϯδχΞ • Ruby/Rails, PHP/Symfony, ... • ࠷ۙϨΨγʔΞϓϦվળۀ • Ϟϊͮ͘Γେ͖ܥΤϯδχΞ • Salesforceͷܦݧલ৬Ͱ5͘Β͍ • Salesforceͷࢿ֨શࣦͯޮʘ(^o^)ʗ • ࠓۀͰSalesforceΛશ͘৮͍ͬͯͳ͍
ࠓ·Ͱ࡞͖ͬͯͨπʔϧ • go-soapforce: GoͷSalesforce SOAP APIΫϥΠΞϯτ • hsforce: HaskellͷSalesforce APIΫϥΠΞϯτ
• fluent-plugin-sforce: fluentdͷSalesforceϓϥάΠϯ • embulk-output-salesforce: embulkͷSalesforceϓϥάΠϯ • hubot-chatter: hubotͷSalesforceΞμϓλ • spm: SalesforceͷύοέʔδϚωʔδϟʔ • land: ApexͷϩʔΧϧ࣮ߦڥ • alt-apex: ApexΛKotlinͰॻ͚ΔΑ͏ʹ͢ΔτϥϯεύΠϥ
ࠓ͢͜ͱ • πʔϧΛ࡞ΔʹͲ͏͍͏ࣝɾٕज़ɾࢹ͕ඞཁͳ ͷ͔ʁ • ಛʹπʔϧ։ൃʹ͓͚ΔϞνϕʔγϣϯʹ͍ͭͯ • πʔϧΛ࡞Δ۩ମతͳํ๏Ͱͳ͘ɺϝλͳࢹͰ͓ ͠·͢
※͜ͷηογϣϯͷεϥΠυ จࣈ͔͠ग़͖ͯ·ͤΜʂ
Salesforce։ൃΛࢧ͑Δπʔϧͨ͘͞Μ͋Δ • Apex։ൃʢGUIɾEditorʣ • ݹ͘ force.com IDEɺݱࡏVS Codeʴplugin • Salesforceૢ࡞؆қԽʢChrome
Extension) • Salesforce Devtools • σʔλೖʢGUIʣ • Salesforce Dataloader • σϓϩΠͷࣗಈԽʢCUIʣ • ant, sfdx, jsforce • APIΛୟ͘ϥΠϒϥϦ • jsforce(JavaScript), restforce(Ruby), go-soapforce(Go), ...
πʔϧΛ࡞ΔͨΊʹ ඞཁͳࣝɾٕज़ɾࢹ
1. SalesforceΛΔ
Salesforceʹ͍ͭͯΔ • SalesforceͰग़དྷΔ͜ͱग़དྷͳ͍͜ͱ • ։ൃͤͣʹͰ͖ΔྖҬͱͰ͖ͳ͍ྖҬͷཧղ • SalesforceΛΧελϚΠζɾ։ൃ্͍ͯ͘͠ͰͲ͏͍͏ۀ ͕සൃ͢Δͷ͔ • SalesforceϓϥοτϑΥʔϜԿ͕ۤखͳͷ͔
• ۤखͳྖҬʹରͯ͠ผͷΞϓϩʔνͰิ͑Δͷͳͷ͔ • Salesforce͕ެࣜʹఏڙ͍ͯ͠Δπʔϧ • Dataloader, SFDX, VS Code Plugin... • ෆศͰͳ͍͔ʁࣗࣾυϝΠϯʹϑΟοτ͍ͯ͠Δ͔ʁ
2. ՝Λղܾ͢ΔͨΊͷ ٕज़ΛΔ
՝Λղܾ͢ΔͨΊͷٕज़ΛΔ • Salesforceͷը໘ΛΑΓ͍͍ͨ͘͢͠ => Chrome֦ுɾϒοΫϚʔΫϨοτɾϢʔβʔεΫϦϓτ • CLIͰSalesforceΛૢ࡞͍ͨ͠ => CLIπʔϧʢCLIϑϨʔϜϫʔΫ oclifͱ͔Thorͱ͔ʣ
• WebΞϓϦͰSalesforceͷAPIΛୟ͘ => APIΫϥΠΞϯτʢRESTɾSOAPɾMetadataɾToolingʣ • σʔλΛ͍͍ײ͡ʹ͢ΔGUIΛ࡞Γ͍ͨ => WebΞϓϦɾσεΫτοϓΞϓϦɾεϚϗΞϓϦ • ੌ͍OSS͕ग़͚ͨͲSalesforce༻ͷϓϥάΠϯ͕ແ͍ʂ => OSSͷϓϥάΠϯ
՝Λղܾ͢ΔͨΊͷٕज़ΛΔ • ެ։ɾΠϯετʔϧํ๏ • GitHub • ֤छύοέʔδཧγεςϜ • WebΞϓϦ •
Heroku Button • Salesforce Button • bashϫϯϥΠφʔ • Πϯετʔϥʔ • ·͊ͰͿͬͪΌ͚ٕज़ͳΜͯޙͰ͓̺ʢޙड़
3. ϞνϕʔγϣϯΛҡ࣋ͯ͠ ࡞ΓΔྗ
࣮πʔϧΛ࡞ΔٕྔΑΓ ϞνϕʔγϣϯΛҡ࣋ͯ͠ ࡞ΓΔͷ͕Ұ൪͍͠
πʔϧ։ൃͷϞνϕʔγϣϯ • ԿΛ࡞͍͍ͬͯͷ͔Θ͔Βͳ͍… • ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ंྠͷ࠶ൃ໌ʹͳͬͯ͠ ·͏ͷͰ… • ៉ྷͳίʔυॻ͚ͳ͍͠ɺίʔυΛެ։͢Δͷ͕ஏ ͔͍ͣ͠… •
ͦͦ͜ͷπʔϧ࡞ͬͯҙຯ͋ΔͷͩΖ͏͔… • ࡞Γ͍ͨͷ͕͋Δ͚Ͳқ͕ߴ͍…
ԿΛ࡞͍͍ͬͯͷ͔Θ͔Βͳ͍…
ԿΛ࡞ͬͯྑ͍ͷ͔Θ͔Βͳ͍ • ෆศʹؾͮ͘ɻͨΓલΛٙ͏ɻ • ৗʹ٬؍తʹݟͯΈΔɻ • Salesforce˓˓ͳ༷͔ͩΒ͠ΐ͏͕ͳ͍ɺఘΊΔ… Ͱͳ͘ɺ։ൃͰϑΥϩʔͰ͖ͳ͍ͷͳͷ͔ɺͲ͏ͳ Εͬͱศརʹ͑Δͷ͔Λߟ͑Δɻ •
SalesforceAPI͕ॆ࣮͍ͯ͠ΔͷͰ։ൃͰϑΥϩʔͰ ͖Δൣғ͍ • ӡ༻ऀɾ։ൃऀʹෆศͳ͕ແ͍͔ฉ͍ͯΈΔ • తSalesforceΛΑΓศརʹ͑ΔΑ͏ʹ͢Δ͜ͱ
ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ ंྠͷ࠶ൃ໌ʹͳͬͯ͠·͏ͷͰ…
ࣅͨΑ͏ͳπʔϧ͕͋Δ͠ंྠͷ࠶ൃ໌ʹͳͬͯ͠·͏ͷͰ… • ंྠͷ࠶ൃ໌্ • શʹಉ͡πʔϧͱ͍͏ͷଘࡏ͠ͳ͍ • ࡉ͔͍͍উखɺඞཁͳϥϯλΠϜ • ಉ͡Α͏ͳπʔϧ͕Կݸ͋ͬͯྑ͍ •
ࣗͷٕज़ྗ࣮֬ʹ্͕Δ • ࣅͨΑ͏ͳπʔϧʹର͢Δཧղྗ্͕Δ • ཧղྗ্͕͕ΔͱτϥϒϧγϡʔςΟϯάʹڧ͘ͳΔ
៉ྷͳίʔυॻ͚ͳ͍͠ ίʔυΛެ։͢Δͷஏ͔͍ͣ͠…
៉ྷͳίʔυॻ͚ͳ͍͠ɺίʔυΛެ։͢Δͷஏ͔͍ͣ͠… • ͦͦ࠷ॳ͔Β៉ྷͳίʔυͳΜͯॻ͚ΔΘ͚͕ͳ͍ • ແཧʹެ։͠ͳͯ͘ྑ͍͠ɺ࠷ॳࣾπʔϧͰશ͘ ͳ͍ • ͕ɺίʔυΛެ։͢ΔϝϦοτ͔ͳΓ͋ΔͷͰ͓͢͢Ί • ঝೝཉٻΛຬͨ͢
• ιʔγϟϧίʔσΟϯάΛମݧͰ͖Δ • ެ։͢Δͱ͍͏ϓϨογϟʔͰ্࣭͕͕Δ • ҙ֎ͱଞͷਓʹͱͬͯ༗༻ͳπʔϧͰ͋Δ͜ͱ͕ଟ͍ • ެ։ͯ͠ҙ֎ͱ୭ݟ͍ͯͳ͍ͷͰؾʹ͢Δඞཁ͕ͳ͍ • ެ։ʹଛͰͳ͍ɻ
ͦͦ͜ͷπʔϧΛ࡞ͬͯ ҙຯ͋ΔͷͩΖ͏͔…
ͦͦ͜ͷπʔϧΛ࡞ͬͯҙຯ͋ΔͷͩΖ͏͔… • ҙຯ࡞ͬͨ͋ͱʹߟ͑ͯྑ͍ • ͱΓ͋͑ͣϓϩτλΠϐϯάతʹਖ਼ৗܥ͚ͩ࡞ͬͯΈΔ • ҙຯΛߟ͑Δલʹͤ͞Δ • ҙ֎ͱͬͯ͘ΕΔਓ͕͍ͨΓ͢Δͷ •
ʹཱͨͳͯ͘ྑ͍ɻָ͚͠ΕOK • ϓϩάϥϛϯάָ͍͠
࡞Γ͍ͨͷ͕͋Δ͚Ͳ қ͕ߴ͍…
࡞Γ͍ͨͷ͕͋Δ͚Ͳқ͕ߴ͍… • қ͕ߴ͍ͷΛ࡞Γ͍ͨͱࢥͬͨͱ͖ࣗͷٕ ज़ྗΛߴΊΔେ͖ͳνϟϯε • ن͕େ͖͍ɺқ͕ߴ͍ͷఔɾඞཁͳٕज़ ཁૉΛղ͢Δ • ̍ʙ̍िؒ͘Β͍ͰୡͰ͖Δখ͍͞ඪΛ࡞ͬͯ ͓͘
• ·ͣ؆୯ͳਖ਼ৗܥΛಈ͔͢ɻ͔ͦ͜Β͍͛ͯ͘ • ࡞Γͳ͕ΒֶͿɺֶͿͨΊʹ࡞Δ
πʔϧΛ࡞Δ্Ͱ େࣄʹ͍ͯ͠Δ͜ͱ
πʔϧΛ࡞Δ্Ͱେࣄʹ͍ͯ͠Δ͜ͱ • ͍͔ͭΔɺͰͳ͘ࠓΔɻίʔυΛॻ͘ɻ • Γͨ͘ͳͬͨͱ͖͕νϟϯεɻ৸͔͢ͱϞνϕʔγϣϯԼ ͕ͬͯΒͳ͘ͳΔɻνϟϯεΛಀ͞ͳ͍ • ϞνϕʔγϣϯԼ͕Δͷɻਖ਼ৗܥ͚ͩͰҰؾʹ࡞ΓΔ • ධՈʹͳΒͳ͍ɺ·ͣखΛಈ͔͢ɻ
• ΞΠσΞΛΞΠσΞͰऴΘΒͤͳ͍ɻ ࣮ͯ͠۩ݱԽͰ͖Δͷ͕ΤϯδχΞͷڧΈ • ۩ݱԽͰ͖ΔͷΛ૿͍͚ͯ͠Δͷ͕ΤϯδχΞͷָ͠Έ Ͱ͋ΓՁʹͳΔ • ԿΑΓɺϓϩάϥϛϯάΛָ͠ΉɻϞϊͮ͘Γָ͍͠ɻ ϓϩάϥϛϯά͕తʹͳͬͯྑ͍ɻ
·ͱΊ • SalesforceͷπʔϧΛ࡞Δͷʹඞཁͳࣝɾٕज़ɾࢹ • SalesforceΛΔ • ՝ղܾ͢ΔͨΊͷٕज़ΛΔ • ϞνϕʔγϣϯΛҡ࣋ͯ͠࡞ΓΔ •
ΞΠσΞΛ࣮ݱͰ͖Δͷ͕ΤϯδχΞͷՁɻ ίʔυΛॻ͍͍͖ͯ·͠ΐ͏ʂ
Enjoy Programming!!