salesforce dug meetup #4 lt
DESCRIPTION
2013/12/18 Salesforce Developer User Group Meetup #4 LT Salesforce1 パブリッシャーアクションの歩き方TRANSCRIPT
![Page 1: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/1.jpg)
Salesforce Developer User Group [Tokyo] Meetup #4 Lightning Talks
!Salesforce1 パブリッシャーアクションの歩き方
(Visualforce編)
倉谷 彰(@a_kuratani)2013/12/18
![Page 2: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/2.jpg)
自己紹介
倉谷 彰 @a_kuratani
株式会社チームスピリット
R&Dグループ エンジニア
Force.com Advent Calendar 管理人 http://atnd.org/events/45110
![Page 3: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/3.jpg)
Salesforce1対応の機能を 開発していますか?
![Page 4: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/4.jpg)
Salesforce1 の開発方法は…
![Page 5: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/5.jpg)
今回は…
![Page 6: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/6.jpg)
Visualforceページで パブリッシャーアクション
を作る
![Page 7: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/7.jpg)
…ために使える メソッド/イベントを
紹介します
![Page 8: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/8.jpg)
利用できるメソッド
![Page 9: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/9.jpg)
publish publisher.setValidForSubmit
•送信ボタンを活性化する
!
•送信ボタンを非活性化する
!
•ポイント非Salesforce1では送信ボタンが表示されない
Sfdc.canvas.publisher.publish( { name : “publisher.setValidForSubmit", payload:”true" });
Sfdc.canvas.publisher.publish( { name : “publisher.setValidForSubmit", payload:”false" });
![Page 10: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/10.jpg)
publish publisher.close
•アクションを閉じる
!
•ポイント非Salesforce1環境ではアクションを閉じる動作がない
Sfdc.canvas.publisher.publish( { name : “publisher.close", payload : { refresh:"true" } });
![Page 11: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/11.jpg)
publish publisher.refresh
•フィードをリフレッシュする
!
•ポイントSalesforce1環境ではアクションを閉じるときにフィードをリフレッシュするので不要(非Salesforce1環境用?)
Sfdc.canvas.publisher.publish( { name : “publisher.refresh”, payload : { feed:"true" } });
![Page 12: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/12.jpg)
Force.com Canvas SDKの イベントが一部利用できる
![Page 13: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/13.jpg)
subscribe publisher.setupPanel/showPanel/clearPanel
•アクションを含む画面が表示されたときの処理
!
•アクションがアクティブになった時の処理
!
•アクションが非アクティブになった時の処理
Sfdc.canvas.publisher.subscribe( { name : “publisher.setupPanel”, onData:function(e) { alert('setupPanel'); } });
Sfdc.canvas.publisher.subscribe( { name : “publisher.showPanel”, onData:function(e) { alert('showPanel'); } });
Sfdc.canvas.publisher.subscribe( { name : “publisher.clearPanel”, onData:function(e) { alert('clearPanel'); } });
![Page 14: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/14.jpg)
subscribe publisher.post
•送信ボタンが押下された時の処理Sfdc.canvas.publisher.subscribe( { name : “publisher.post”, onData:function(e) { alert('post'); } });
![Page 15: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/15.jpg)
subscribe publisher.getPayload/setPayload/success/failure
• Visualforceページでは利用できなさそう
•参考文献http://www.slideshare.net/developerforce/df13-salesforce1-mt
![Page 16: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/16.jpg)
まとめ
タイプ 名称 S1 非S1 備考
メソッドpublisher.setValidForSubmit
◯ ✕
publisher.close ◯ ✕
publisher.refresh ✕ ◯
Canvasイベント
publisher.setupPanel ◯ ◯ 非S1は初回のみpublisher.showPanel ◯ ◯publisher.clearPanel ◯ ◯publisher.post ◯ ✕
publisher.success ✕ ✕
publisher.failure ✕ ✕
publisher.getPayload ✕ ✕
publisher.setPayload ✕ ✕
![Page 17: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/17.jpg)
demo
![Page 18: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/18.jpg)
パブリッシャーアクションを作って学んだこと
•下記のメソッドが使えればSalesforce1対応はできる setValidForSubmit / post / close ※非Salesforce1では動作しない
•非SalesforceではSubmitしてもアクションが閉じない Submit後に完了画面を表示する、など対応が必要
•送信ボタンは目立たない、かつ、非Salesforce1環境では表示されないSubmitボタンは自作したほうがわかりやすい?
![Page 19: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/19.jpg)
Sample Source Code
• Gisthttps://gist.github.com/kuratani/8007952
!
!
•求む!株式会社チームスピリットでは一緒に開発してくれる 開発者の方を募集中です。ご興味のある方はお声がけください!
![Page 20: Salesforce DUG meetup #4 LT](https://reader036.vdocuments.mx/reader036/viewer/2022062513/557ad5e1d8b42add288b525c/html5/thumbnails/20.jpg)
Enjoy Salesforce1