這是一段關於沒有伺服器權限的開發者於 SharePoint 進行網站開發的恐怖故事。
這段故事實在是太可怕了,伺服器權限在資訊單位手裡,而完全不懂 SharePoint 也不會 .NET 的我只有使用者權限帳號(黑人問號.jpg),看著一點幫助都沒有的 training kit 文件,我必須想辦法把它寫成一個入口網站…
經過摸索研究最終想出了解決方法,我自製母版定義了導航列與頁腳,並利用內容編輯器這個 Web Part 在每個頁面「填入」我要的 HTML 內容,但不得不放棄內建的其他 Web Part,因為我根本無法完全控制那些頑固的東西,它們讓整個頁面佈局看起來相當糟糕!!!
但如此我便擁有整個頁面內容的控制權了,前端頁面佈局樣式就交給 Bootstrap 去搞定啦,而後端就只能依賴 SharePoint REST API 去處理 CRUD。
雖然很荒謬但我還是硬著頭皮上了,最後寫了個多功能的 SharePoint 企業內網 :
- 公告
- 行事曆(支援批次匯入事件)
- 會議室預約
- 工時追蹤填報(支援統計圖表)
- 出勤狀況發佈(系統通知信)
- 討論區
- Smart Chat Bot(答覆公司系統與網站相關問題)
這任務至此告一段落了,紀錄一下 SharePoint REST API 如何使用 :
1 | var api_create = "https://server/site/_api/web/lists('{ your_list_guid }')/items", |
特別留意 SharePoint REST API 返回的資料筆數預設值是100筆,這在我寫的會議室預約功能所依賴的資料庫筆數超過100之後,因為使用者反應預約完成的會議卻沒有顯示在頁面上而發現。此問題只要在 API 裡頭加上一個 “TOP”參數並指定返回的資料筆數即可解決,例如「TOP=5000」,而 API 能返回的最大值為5000筆。如果需要返回更多筆資料,印象中看過網路上相關討論,但我用在查詢會議室預約這樣有時效性的資料,估計5000筆已經綽綽有餘了XDD