デジタルな戯言

ホットなIT関連のニュースを取り上げたり、学業、仕事、趣味について記事にしたりしてます。

【2】SharePoint奮闘記 -Designer設定とビュー作成-

管理者に問い合わせたところ、フルコントロールでアクセスすればSharepoint Designerを使うことが可能な権限は付与してあるとのことでした。ムムム、となり微妙にやり方を変えて試してみたところ、あっさり編集画面に入ることができました。管理者さんごめんなさい。


今現在30分ほど使ってみましたが、やはり圧倒的に使いやすいです。流石デザインに特化したソフトウェアだけあって、ある程度感覚的にエイヤッといじっても意外と期待通りの反映をしてくれます。何よりブラウザベース特有のモッサリ感がないのが至高。

 

先日懸念していた技術面の障壁ですが、予想に反してなんとか面倒なコーディング無しに実現しそうです。MSのサポートサイト(https://goo.gl/IWXDbI)を見てみると、

 

たとえば、To Do リストには、期限が本日中となっているタスクのビュー、自分に割り当てられたタスクのビュー、すべてのタスクのビューなど、複数のビューが存在します。

 

とありました。つまり、当日の日付情報の請求はOffice側で勝手にやってくれるということです。ToDoリスト機能があれば当たり前といえば当たり前の機能ですが、そもそもタスク管理まで内包しているとは思わなかったので棚からぼた餅です。

 

ここで見逃せない新しい概念が「ビュー」です。先日の手記を書いた時点では、データベースにアクセスし、特定のクエリでUIに結果を表示するアプリが「リスト」という認識でした。しかしそれは誤りで、「リスト」そのものがそもそもデータベースだったみたいです。リスト内のアイテムを思い通りにソート、表示するのが「ビュー」なのです。つまり、リストだと思っていたものはビューで、データベースだと思っていたものは(その通りなのだが)リストだったというわけです。名前の問題なのでどうでもいいといえばどうでもいいんですが、やはり各用語の意味をしっかり理解しておくことは大事だと思います。

 

シフト中に作業があまり進展しなかった&熱が入ってきてしまったので自宅に持ち帰り作業です。サービス残業です。

 

そんなこんなでDesignerを使って色々いじくりまわした結果、現在業務にて使用しているディスカッションはMSが用意しているテンプレートをそのまま流用したリストで、デフォルトで用意されているビューは編集することができない上に削除もできないということが分かりました。

 

 

これは最悪。

 

 

Designerの使いやすさによる感動はどこ吹く風で、一気にテンションが下がりました。
テンプレートを使ったシェアポイントの初代管理者も、まさかここまで自由度が低いとは露にも思わなかったでしょう。後継者からしてみれば本当に最悪な仕様です。


デフォルトビューには「スレッド形式、フラット形式、管理、件名、特集ディスカッション」の5つがあります。5つも勝手に押し付けられたビューがあるのです。スレッドかフラットか件名かなんてUIを統一すれば済む話なので全くいらない。そして特集ディスカッションなんていう雑誌の増刊号みたいな名前の訳分からんビューもいらない。全部いりません。


削除ができなくてもビューの編集ができれば救いはありました。ソートやクエリをいじらせてくれれば活用できました。何もいじれない。名前すらいじれない。

 

これは流石に終わってます。

 

ただ怒っていても何にもならないので、次に取るべき行動を考えた上で出した選択肢が以下の3つ。

 

①引継ぎだけを表示するビューを新しく作成し、現行のディスカッションリスト(分かりにくいが、デフォルトのビューのこと)の上に乗せる。
②同じくビューを新規作成し、左側のナビゲーションカラムに掲載することで閲覧性を向上させる。
③同じくビューを新規作成し、それを既定のビューにしてしまい、当日の引継が上位にくるようソート設定する。

 

まず、①は見栄えがかなり悪くなるのとできるかどうかの検証がかなり面倒なので没。ビューの上にビュー乗せるだけの作業に数十時間は費やしたくはありません。
③は試そうとしましたが不可能でした。ソートでAND/OR指定ができない(降順/昇順のみ)。クソ仕様だと思ったけど冷静に考えたら普通そんな機能ないかもしれない。

というわけで②を決行することに決定。サラッと先日の手記でやりたくないと言っていたことの逆を行ってしまいましたが、背に腹は変えられません。

 

f:id:stereal-0309:20161013200957p:plain


とりあえず、フィルタ設定完了。
(指定日時ではなくタスクの状態でフィルタ/ソートすることにしました。あまり入力する側に負担をかけたくないのと、単純に日時指定の存在意義が微妙になってきたことが理由です。)

 

 

f:id:stereal-0309:20161013200508p:plain
設定が終わったビューでテストディスカッションを表示してみました。しっかりテスト用のアイテムだけ表示されています。

ディスカッションに飛んでみる。

 

 

f:id:stereal-0309:20161013200609p:plain

 

 

 


(´◉◞౪◟◉)消失..............................................

 

意味が分からない。

 

 

f:id:stereal-0309:20161013200624p:plain
デフォルトのビューからアクセスすると、しっかり表示されます(本文は元々入れてません)。

恐らく参照先が違うんでしょう。それは分かるんですが、なんでそんなことになるのか意味が分かりません。

 

 

というわけでブチ切れたので力業。

f:id:stereal-0309:20161013200652p:plain
(流石にソースコードは出せないので雰囲気で察して下さい)

そのビューの固有設定(ソートなど)が黄色でハイライトした部分(多分)のため、そこだけ避難させてほかのソースを全部デフォルトのビューから持ってくるというゴリゴリな実力行使。

 

そういうことをすると

 

f:id:stereal-0309:20161013200809p:plain大体こういう意味の分からない副産物がついてきます。

もうソースを検証する気にはなれないので、とりあえず動くだけよしとして返信欄は放置します。


と、ここで問題発生。
恐らくどうやって書いても第三者から見ると意味不明な説明になるので、淡々と事実だけを述べると、

 

・ホーム.aspxからアクセスするとデフォルトのビュー(件名)が表示されるのに、Community Discussion.aspxにアクセスすると件名ビューが無くなっており、新しく作った引継事項ビューがデフォルトにすり替わっている

 

状態になってしまいました。


どうだ意味が分からないだろう。俺も分からん。


ソースコードをパクってきたせいでシェアポイント側がデフォルトと新しく作ったビューを判別できなくなって、何かの係数を判別材料として(更新日時とか)新ビューが内部的に上書き処理されて表に出てきてるのかもしれません。でもだったらなんでホーム.aspxは共存できているのか謎です。


とにかくソースコードをいじったことによるコンフリクトが原因なのは確実。実際影響はないので(一番最初にアクセスするページをホーム.aspxにすればいいだけ、というか今までもそうだった)とっても放置したい。
ただこれを放置すると恐らく未来の後継者が地獄の苦しみを味わう、気がする。


...まあとりあえず放置で.....とりあえずだから.........


ゴリゴリ編集しているせいで通り道にボロボロバグを落としていっている気がするのは気のせいでしょうか。それとも使えればいいのでしょうか。技術者の永遠の悩みです(技術者じゃないけど)。

 

明日以降のために、とりあえずクリアしなければいけない問題の優先順位を並べておきます。

 

①現状ディスカッションを編集できるのは作成者だけなので、引き継がれたスタッフがタスクの状態を変更できるようなトグルを実装する必要がある。
②あまりやる気のないスタッフが確認したくなるような仕組み作り。
③返信欄の修正
ソースコードの整理

 

正直②が一番骨折れる。③と④はめっちゃやりたくないだけ。


おやすみなさい。

 

P.S. 元々後輩用に、だである口調で書いたものをですますに変換しながら更新しているので日本語がところどころ変かもしれません。温かい目でお願いします。