Upload
Download free for 30 days
Login
Submit Search
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
4 likes
1,059 views
Akira Kuratani
2012年7月27日に行われた「Developer [Social Enterprise] Summit」(通称:夏サミ)のA-2ブレイクアウトセッションの中で発表した講演資料です。
Technology
Read more
1 of 16
Download now
Downloaded 39 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
More Related Content
PDF
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
PDF
Mahout Canopy Clustering - #TokyoWebmining 9
Koichi Hamada
PDF
Mahout JP - #TokyoWebmining 11th #MahoutJP
Koichi Hamada
PDF
Introduction to Mahout Clustering - #TokyoWebmining #6
Koichi Hamada
PDF
"Mahout Recommendation" - #TokyoWebmining 14th
Koichi Hamada
PDF
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
Koichi Hamada
PDF
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
Koichi Hamada
PDF
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
Koichi Hamada
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
Mahout Canopy Clustering - #TokyoWebmining 9
Koichi Hamada
Mahout JP - #TokyoWebmining 11th #MahoutJP
Koichi Hamada
Introduction to Mahout Clustering - #TokyoWebmining #6
Koichi Hamada
"Mahout Recommendation" - #TokyoWebmining 14th
Koichi Hamada
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
Koichi Hamada
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
Koichi Hamada
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
Koichi Hamada
What's hot
(6)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.1.0対応)
fisuda
PDF
20140708 オンラインゲームソリューション
Takahiro Inoue
PDF
トレジャーデータ新サービス発表 2013/12/9
Treasure Data, Inc.
PDF
データ可視化勉強会
Daichi Morifuji
PDF
ソーシャルデザインパターン -評判と情報収集-
Koichi Hamada
PDF
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
Koichi Hamada
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.1.0対応)
fisuda
20140708 オンラインゲームソリューション
Takahiro Inoue
トレジャーデータ新サービス発表 2013/12/9
Treasure Data, Inc.
データ可視化勉強会
Daichi Morifuji
ソーシャルデザインパターン -評判と情報収集-
Koichi Hamada
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
Koichi Hamada
Ad
Similar to 夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
(20)
PPTX
データサイエンティストが力を発揮できるアジャイルデータ活用基盤
Recruit Lifestyle Co., Ltd.
PDF
Apexデザインパターン
Salesforce Developers Japan
PDF
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
Takahiro Inoue
PPTX
Entity Framework 5.0 deep dive
Atsushi Fukui
PDF
Twitter連携chrome extension作り方
Hiroshi Oyamada
PDF
Heroku Postgres
Ayumu Aizawa
PDF
Heroku Postgres
Salesforce Developers Japan
PDF
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
PPT
クラウド時代の並列分散処理技術
Koichi Fujikawa
PDF
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
Google Cloud Platform - Japan
PDF
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
de:code 2017
PDF
20170703_05 IoTビジネス共創ラボ
IoTビジネス共創ラボ
PDF
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
PDF
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
Hidemasa Togashi
PDF
Treasure Data Intro for Data Enthusiast!!
Takahiro Inoue
PDF
クラウドではじめるリアルタイムデータ分析 #seccamp
Masahiro NAKAYAMA
PPTX
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
PDF
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
PDF
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
PDF
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
データサイエンティストが力を発揮できるアジャイルデータ活用基盤
Recruit Lifestyle Co., Ltd.
Apexデザインパターン
Salesforce Developers Japan
トレジャーデータ株式会社について(for all Data_Enthusiast!!)
Takahiro Inoue
Entity Framework 5.0 deep dive
Atsushi Fukui
Twitter連携chrome extension作り方
Hiroshi Oyamada
Heroku Postgres
Ayumu Aizawa
Heroku Postgres
Salesforce Developers Japan
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
クラウド時代の並列分散処理技術
Koichi Fujikawa
[Cloud OnAir] 最新アップデート Google Cloud データ関連ソリューション 2020年5月14日 放送
Google Cloud Platform - Japan
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
de:code 2017
20170703_05 IoTビジネス共創ラボ
IoTビジネス共創ラボ
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
Hidemasa Togashi
Treasure Data Intro for Data Enthusiast!!
Takahiro Inoue
クラウドではじめるリアルタイムデータ分析 #seccamp
Masahiro NAKAYAMA
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
Ad
More from Akira Kuratani
(20)
PDF
[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス
Akira Kuratani
PDF
愛される管理画面の作り方
Akira Kuratani
PDF
Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス
Akira Kuratani
PPTX
Salesforce World Tour Tokyo 2018 愛される AppExchangeアプリを創るべき「3つの理由」
Akira Kuratani
PPTX
Salesforce World Tour Tokyo 2017 (SalesforceDX〜Salesforceにも継続的デリバリーを〜)
Akira Kuratani
PDF
静的解析、はじまったな
Akira Kuratani
PDF
ReactとSeleniumの幸せな関係
Akira Kuratani
PDF
AppExchange Growth Hacks - Aiming for the world -
Akira Kuratani
PDF
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Akira Kuratani
PDF
Salesforce dug [tokyo] meetup 2016 新年会
Akira Kuratani
PDF
Salesforce DUG meetup #10 MiniHack完全制覇の旅
Akira Kuratani
PDF
Salesforce DUG TOKYO Meetup #9
Akira Kuratani
PDF
Lightning componentの研究ポイントあるいは…
Akira Kuratani
PDF
Salesforce DUG Meetup 2015 新年会
Akira Kuratani
PDF
Salesforce dugもくもく会 #1
Akira Kuratani
PDF
Salesforce dug meetup #6
Akira Kuratani
PDF
Crowd hackchallenge2014 LT
Akira Kuratani
PDF
Salesforce dug meetup #5
Akira Kuratani
PDF
Salesforce DUG meetup #4 LT
Akira Kuratani
PDF
Force.com lightning talks cfj2012 by A.Kuratani
Akira Kuratani
[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス
Akira Kuratani
愛される管理画面の作り方
Akira Kuratani
Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス
Akira Kuratani
Salesforce World Tour Tokyo 2018 愛される AppExchangeアプリを創るべき「3つの理由」
Akira Kuratani
Salesforce World Tour Tokyo 2017 (SalesforceDX〜Salesforceにも継続的デリバリーを〜)
Akira Kuratani
静的解析、はじまったな
Akira Kuratani
ReactとSeleniumの幸せな関係
Akira Kuratani
AppExchange Growth Hacks - Aiming for the world -
Akira Kuratani
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Akira Kuratani
Salesforce dug [tokyo] meetup 2016 新年会
Akira Kuratani
Salesforce DUG meetup #10 MiniHack完全制覇の旅
Akira Kuratani
Salesforce DUG TOKYO Meetup #9
Akira Kuratani
Lightning componentの研究ポイントあるいは…
Akira Kuratani
Salesforce DUG Meetup 2015 新年会
Akira Kuratani
Salesforce dugもくもく会 #1
Akira Kuratani
Salesforce dug meetup #6
Akira Kuratani
Crowd hackchallenge2014 LT
Akira Kuratani
Salesforce dug meetup #5
Akira Kuratani
Salesforce DUG meetup #4 LT
Akira Kuratani
Force.com lightning talks cfj2012 by A.Kuratani
Akira Kuratani
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
1.
ソーシャル機能を取り入れた エンタープライズアプリケーション チームスピリットのご紹介
倉谷 彰 デジタルコースト株式会社 研究開発グループ エンジニア
2.
デジタルコーストとは
を組み込んだ、 ソーシャル・ワークフォースマネジメント・サービス を開発・提供している会社です。 1 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
3.
とは
デモを ビジネスで起こる全ての活動をタイムラインで記録 ご覧ください 勤怠管理 行動を記録 タイムライン プロジェクト 工数管理 経費精算 Project A 移動 Project B 実労働時間 2 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
4.
少し技術的なお話 ソーシャル・エンタープライズを実現する業務アプリの作り方
5.
チームスピリットのアーキテクチャ
勤怠管理 認証 プロジェクト工数管理 Chatter 権限管理 経費精算 承認プロセス レポート/ダッシュボード 業務に関連する機能 汎用的な機能 4 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
6.
例えば、Chatter
Chatter投稿 5 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
7.
コードはどうなっているか? モバイル
Force.com { “time” : ”2012/07/27”, “feed” : “今日は○○社の・・・”, public with sharing class TxsActivityLogic { “latitude” : 35.684337, public static void insertActivity( “longitude” : 139.739649 Map<String,Object> r, RestRequest req) { “placeId” : “WGS84”, Map<String, String> p = req.params; “placeName” : “デジタルコースト・・・” } String s = p.get('time'); Force.com DateTime tim = TxsUtil.now(); if(s != null) REST tim = DateTime.valueOf(s); リソース TxsLog__c log = new TxsLog__c(TargetTime__c=tim); クラス log.Status__c = null; TxsActivity ・・・(位置情報や画像をレコードにセットする) 行動ログ String feed = p.get('feed'); if(feed != null) { TxsLog FeedItem post = new FeedItem(); クラス post.ParentId = UserInfo.getUserId(); TxsActivity post.Body = feed; Chatter投稿 Logic post.Type = 'TextPost'; insert post; log.FeedId__c = post.Id; } insert log; 行動ログレコード追加 r.put('id', log.Id); } ・・・ 6 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
8.
例えば、承認プロセス
承認プロセスの設定 承認申請 7 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
9.
コードはどうなっているか?
Force.com側 // id : 承認申請対象とするオブジェクトのID // comment : 承認申請時のコメント // approver : 承認プロセスのID ・・・ Approval.ProcessSubmitRequest req1 = new Approval.ProcessSubmitRequest(); req1.setObjectId(id); req1.setComments(comment); if(approver != null) { req1.setNextApproverIds(new Id[]{ approver }); } Approval.ProcessResult result = Approval.process(req1); ・・・ 8 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
10.
モバイル・アプリケーション モバイル側
クラウドサービス側 Salesforce Toolkit for Appcelarator OAuth2.0 JSON { “time” : ”2012/07/27”, “feed” : “今日は○○社の・・・”, Apex REST “latitude” : 35.684337, “longitude” : 139.739649 “placeId” : “WGS84”, “placeName” : “デジタルコースト・・・” } 9 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
11.
OAuth2.0
Force.com側 10 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
12.
Apex REST:コードはどうなっているか?
RestResourceアノテーションを利用することで簡単に RESTリソースを公開できます モバイル側 Force.com側 postBtn.addEventListener(‘click’, function() { @RestResource(urlMapping='/txsapi2/activity/*') ・・・ global with sharing class TxsActivity { var oauthJson = JSON.parse(oauthData); @HttpPost global static void doPost(RestRequest req, RestResponse res) { var uri = '/services/apexrest/txsapi2/activity/?'; Map<String,Object> r = new Map<String,Object>(); uri += 'time=' + TSX.timeAsString(); try { uri += '&feed=' + (commentText.value ? commentText.value : ''); String id = TxsUtil.getParamId(req); var restUrl = encodeURI( if(id != null) Ti.Network.decodeURIComponent(oauthJson.instance_url) + TxsActivityLogic.updateActivity(r, req, id); uri); else TxsActivityLogic.insertActivity(r, req); var xhr = Ti.Network.createHTTPClient(); xhr.onload = function() { r.put('success', true); var res = JSON.parse(this.responseText); } // Callbackでの処理 catch(Exception e) { TxsUtil.setException(r, e); } ・・・ res.responseBody = Blob.valueof(JSON.serialize(r)); }; } xhr.open(“GET”, restUrl, true); @HttpGet xhr.setRequestHeader( global static void doGet(RestRequest req, RestResponse res) { “Authorization”, “OAuth ” + Map<String,Object> r = new Map<String,Object>(); Ti.Network.decodeURIComponent(oauthJson.access_token)); ・・・ xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(); ・・・ }; 11 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
13.
モバイルとForce.comアプリの役割分担 モバイル側
クラウドサービス側 OAuth2.0 画面制御 外部 Salesforce Toolkit RESTリソース ロジック Web for Appcelarator TxsActivity サービス RESTリソース ロジック 駅探経路探索エンジン TxsExpense2 RESTリソース ロジック 勤怠計算エンジン TxsWorkTimeLogic サーバ側にロジックを集約 複雑な勤怠計算や経路探索はサーバ側に任せた クライアント側は画面制御に特化 短期間でプロトタイプを開発し、試作を繰り返 すことができた 12 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
14.
最後に ソーシャル化した企業はどのように変わったか?
15.
業務アプリをソーシャル化するということ
エンジニアのちょっとしたアイデアで お客様の業務が大きく変えることができる 14 Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
16.
15
Copyright © DigitalCoast Inc. All Rights Reserved. 2012/7/30
Download