Tags

,

CẤU HÌNH DOCUMENT ID TRONG SHAREPOINT 2010

Một trong những tính năng chính của SharePoint là Document Management (DM). Với các tính năng như check in, check out, versioning control,… và kết hợp với việc sử dụng workflow, content type,… DM cung cấp 1 hệ thống quản trị văn bản thật sự mạnh mẽ.

Tuy nhiên, trong phiên bản SharePoint 2007, vẫn có 1 vài vấn đề nhỏ mà SharePoint chưa đáp ứng được 1 cách hoàn hảo. Một trong số đó là vấn đề khi người sử dụng muốn chia sẻ 1 tài liệu đã được upload trên SharePoint bằng cách share link URL của document đó. Tuy nhiên, vì URL này phụ thuộc vào vị trí của document (đang nằm trong library nào? thuộc site nào?), nên chuyện gì sẽ xảy ra nếu như document được chuyển đến 1 library khác? Rõ ràng, khi đó URL này là invalid.

SharePoint 2010 giới thiệu tính năng Document ID cho phép tự động gán cho mỗi Document một ID tương ứng. Feature này có phạm vi hoạt động (scope) trong từng site collection.


1. Bật tính năng Document ID:

  • Sử dụng giao diện: vào Site Settings –> Site Collection Administration –> Site Collection Features và activate feature Document ID Services.
  • Sử dụng SharePoint 2010 Management Shell / PowerShell: gõ lệnh
    Enable-SPFeature -id docid -url <site collection url>

Sau khi enable tính năng Document ID, mỗi Document sẽ có thêm 1 field là Document ID field chứa đường dẫn có dạng như sau:

http://<sitecollectionurl>/_layouts/DocIdRedir.aspx?ID=PCPSF3FMA74P-1-13

Một số chú ý:

  • Document Id chỉ có trong phiên bản SharePoint Server.
  • Các list item không có Document Id.
  • Mặc định, Document Id được tạo ra mỗi khi có 1 document mới được thêm vào. Những document đã tồn tại trước khi bật tính năng này chỉ được cập nhật Document Id khi có 1 lệnh nào đó tác động lên document đó, ví dụ như: check out, check in, edit, … hoặc có thể force quá trình cập nhật bằng cách chạy Job “Document Assignment ID”.
  • Khi di chuyển (move) document, Document Id không thay đổi, nhưng nếu copy document thì SharePoint sẽ tạo 1 Document Id mới.

Trên thực tế, SharePoint tạo ra 1 column group là “document ID” bao gồm 3 column:

  • DocID: chứa giá trị Document ID của document
  • StaticID: chứa đường dẫn URl có sử dụng Document ID của document
  • PersistID: kiểu boolean, để xác định Document Id sẵn có sẽ được giữ nguyên hay phải thay đổi.

2. Tùy biến Document Id

Để tùy biến Document Id, chọn Site Actions –> Site Settings –> Document ID Settings

và có thể điền 1 số lựa chọn như hình vẽ sau:

Trong trường hợp các Document Id này không thỏa mãn được đầy đủ các yêu cầu hoặc không phù hợp, may mắn là SharePoint hỗ trợ cho phép add custom DocumentIdProvider để có thể tạo ra Document Id theo những quy định riêng của mình, ví dụ như: 2012.06.14.16.05.Site1.Test, Sales.Proposals.ABCDocument, …

3. Tạo Custom DocumentIDProvider:

Để tạo 1 custom DocumentIDProvider, các bước thực hiện như sau:

  • Tạo mới 1 Project trong VS2010
  • Add  các reference sau:
    • Microsoft.SharePoint.dll
    • Microsoft.Office.DocumentManagement.dll
  • Tạo 1 class thừa kế Microsoft.Office.DocumentManagement.DocumentIdProvider
  • Build solution
  • Add DLL vào GAC (Global Assembly Cache)
  • Chạy PowerShell script sau để deploy custom DocumentIdProvider vào SharePoint
    $site = Get-SPSite http://<tên site collection>
    
    [System.Reflection.Assembly]::LoadWithPartialName( 
    "Microsoft.Office.DocumentManagement")
    
    $assembly = [System.Reflection.Assembly]::Load(
    "<tên của custom DocumentIDProvider>")
    
    $type = $assembly.GetType(
    "<tên đầy đủ của custom DocumentIDProvider (bao gồm cả namspace)>");
    
    [Microsoft.Office.DocumentManagement.DocumentId]:: SetProvider($site, $type);

Enjoy!!!
Nhat Phan

Một số link tham khảo: