9
SharePoint Online サンドボックスソリューション開発(PDF編) 株式会社エクシード・ワン 野呂清二

How to create on Share Point Online (Office365)

Embed Size (px)

DESCRIPTION

How to create PDF File on Share Point Online (Office365)

Citation preview

SharePoint Online サンドボックスソリューション開発(PDF編)

株式会社エクシード・ワン 野呂清二

野呂 清二 (のろ せいじ)

Facebook ◦ http://www.facebook.com/home.php#!/seiji.noro

この資料の場所 Techブログ(Office365アプリ開発) ※このアプリのデモサイトについては以下に記載 ◦ http://tech.exceedone.co.jp/office365-application-develop/

所属会社 ◦ 株式会社エクシード・ワン

http://www.exceedone.co.jp/

◦ 最近作った製品: http://fad.exceedone.co.jp/

技術興味 ◦ アンドロイドラジコン(Android +飛行船+ラジコン制御) ◦ Facebook アンドロイドラジコン

http://www.facebook.com/pages/%E3%82%A2%E3%83%B3%E3%83%89%E3%83%AD%E3%82%A4%E3%83%89%E3%83%A9%E3%82%B8%E3%82%B3%E3%83%B3-Android-radio-control/215760341816024

サーバサイドで複雑な処理ができない(サンドボックス) ◦ Excelファイルを開いたり、直接SQLサーバへデータの読み書きができない。(SPオブジェクトにしかアクセスできない。)

◦ 解決案 クライアントサイドでアプリ(Silverlight/JavaScript)を実装し、SPOで不足している機能は外部Webサービスで必要な機能を実装する。

リストのロック(排他制御)ができないので連番の一貫性が保てない (SharePointオンプレミスでも同じ) ◦ 伝票番号等の連番を取得するときに、同時に複数人からリクエストされるとリストロックできないので同じ番号を取得する可能性がある。

◦ IDはリストのデータ移行をすると変わるので、他のリストとIDでリレーションする項目には使えない。(サイトテンプレートして保存は可能ですが不便)

◦ 解決案 リストロックをして連番を作る仕組みを作りました。 http://tech.exceedone.co.jp/office365-application-develop/sharepoint-list-lock-for-sequential-numbe-auto-generator/

印刷 ◦ きれいに整形(伝票形式等)したフォーマットで印刷や添付したい。

◦ 解決案 今回はここを詳しくやります。

レスポンス ◦ クラウドはオンプレミスより遅い。

◦ 解決案 クライアントサイド(Silverlight/JavaScript)でデータだけ更新するようにする。

モバイル対応 ◦ i-phone, Android に対応する方法。(研究中)

SPOできれいに整形(伝票形式等)したフォーマットで印刷や添付したい!けど ◦ WebブラウザーにTableタグで作った帳票は印刷がずれる ◦ InfopathでPDF添付ファイル作れるの?

といろいろ考えた結果

だったらExcelからPDFを作ればいいのでは! ◦ と思ったらSPOは制限がきつい、Office365のサンドボックスプロセス上では、SPオブジェクトのアクセスコードしか書けない。

どうしたらPDFを作れる? ◦ 調査を開始したが、世の中にあるSPの資料が、オンプレミスの資料がほとんど。あっても英語ばかり。

SharePoint Onlineでサンドボックスソリューションで開発してみたが制限がきつかった。 ◦ サーバサイドPGでは

ローカルリソース(ファイル等)にアクセスできない

つまりSharepointオブジェクト以外にはアクセスできない ◦ 配置(Deploy)

サイト定義が使えないサイトTemplateが使えた

PDFを作成する方法

◦ 検索しても方法が見つからないので、諦めて自作することに。Silverlightから外部Webサービスアクセス連携を模索してみた。

◦ 外部Webサービスは、IIS+Excelなら簡単そうだが、試しにオープンソース(Apache+OpenOffice)で作ってみた。 Apache Basic認証でSilverlightが認証できない独自に認証を作った。

IE9+SilverlightのWebサービス(SSL)のアクセスエラーにはまる。 ◦ IE9+SilverlightからWebサービス(SSL)のアクセス中に「クロスドメイン~というエラー」がでてはまる正式なSSL証明書を取得して設定したらOKになった。(IE9のセキュリティがきつい)

Office365+Silverlight+外部Web(PDF)サービス

Office365(MSクラウドサービス) ◦ サンドボックスソリューションを配置(WSP)

サーバサイド サンドボックスソリューションオブジェクトモデル

クライアントサイド 見積アプリ Webパーツ

クライアントオブジェクトモデル(Client Object Model) Javascript(ECMAScript)

Silverlight5(C#.NET Managed Code) with Visual Studio2012

WebサービスASP.NET REST

外部のデータまたはWebサ-ビス(PDF Webサービスにアクセス)

PDF Webサービス(自作Webサービス) Linux+Apache+OpenSSL+Tomcat+AXIS(WSDL)+自作JAVAプログラム+OpenOffice

クライアントPC ◦ Windows7+IE9.0