lưu trữ hàng tháng: Tháng hai 2008

Thông báo công khai tiểu: Thiết đặt bảo mật sống Windows và Contacting Space chủ sở hữu

Tôi nhận được một số thư từ cá nhân thông qua built-in "gửi một tin nhắn" chức năng Microsoft cung cấp với không gian sống (mà cũng tổ chức các blog của tôi) mỗi tháng.

Khoảng một phần ba thời gian, những người dùng có bảo đảm tài khoản trực tiếp tại của họ như vậy mà tôi không thể trả lời. Đây là một số loại tính năng chống thư rác, tôi giả sử.

</kết thúc>

Giải thích đơn giản: “Giá trị không nằm trong phạm vi dự kiến.”

CẬP NHẬT: Một áp phích chưa xác định người để lại một bình luận lớn về nội bộ tên. Hãy chắc chắn để đọc nó.

Khi làm việc với các sự kiện thu và mã khác mà tài liệu tham khảo bản ghi danh sách SharePoint thông qua các mô hình đối tượng, Tôi thường làm cho những sai lầm mà tạo ra lỗi này tại thời gian chạy:

Lỗi nạp và chạy sự kiện nhận Conchango.xyzzyEventReceiver trong xyzzy, Phiên bản = 1.0.0.0, Văn hóa = trung tính, PublicKeyToken = 0dc50a750396c3ac. Bổ sung thông tin là dưới đây. : Giá trị không nằm trong phạm vi dự kiến.

Tôi nghĩ rằng đây là một lỗi khá chung chung có khả năng gây ra nhiều cách khác nhau. Tuy nhiên, một lời giải thích đơn giản là tôi đang tìm một lĩnh vực không chính xác. Nếu tên của trường là "Ngày hết hạn", Tôi phải tham chiếu nó như thế này trong một bộ tiếp nhận sự kiện:

bất động sản.ListItem["Ngày"]

Khi tôi sai hoặc sử dụng các trường hợp sai khi tham khảo các lĩnh vực, SharePoint tạo ra ở trên đề cập đến thời gian chạy lỗi. Ví dụ:, Điều này là sai:

bất động sản.ListItem["ngày"]

</kết thúc>

Đăng ký vào blog của tôi.

Technorati Tags:

Người dùng cuối Mẹo nhanh: Quan điểm phân loại trong một thư viện tài liệu, Danh sách, vv.

Chúng tôi có thể, nên và tạo ra nhiều lần xem trong danh sách SharePoint (thư viện tài liệu, danh sách tùy chỉnh, vv). SharePoint luôn liệt kê các quan điểm có sẵn trong thứ tự chữ cái. Chúng tôi không thể thay đổi điều này bằng cách sử dụng ra khỏi chức năng hộp. Nếu nó có thể được thực hiện thông qua tuỳ biến (và tôi không chắc chắn nó có thể), nó là xa để kỹ thuật cho người dùng cuối điển hình của bạn.

Nếu bạn muốn kiểm soát thứ tự trong SharePoint mà danh sách có sẵn lượt xem, đơn giản chỉ cần thêm một số hoặc thư để xem tên, như trong:

1 – Theo loại tài liệu
2 – Tất cả tài liệu
3 – Ngày hết hạn

-hoặc-

A – Theo loại tài liệu
B – Tất cả tài liệu
C – Ngày hết hạn

Tôi cũng đã tạo ra quan điểm mà mục đích là nghiêm chỉnh để nuôi một KPI. Tôi đã sau này quy ước đặt tên:

Z_KPI_[mô tả]

Rằng nguyên nhân của tôi "KPI" Số lần xem xuất hiện ở dưới cùng của danh sách.

</kết thúc>

Đăng ký vào blog của tôi.

Chủ Nhật Funny: “Khi tôi đã là một cậu bé”

Là một phụ huynh, một nơi nào đó dọc theo đường tôi phát hiện các "khi tôi là một cậu bé" lừa.

Con trai tôi, có lẽ 4 hoặc 5 lúc đó, đã chơi một quả bóng và thích đặt ít nữ có chơi với bong bóng, ông popped nó. Ông đã rất buồn bã. Thế giới đã đi đến một kết thúc. Tôi nói với ông, "khi tôi là cậu bé, Tôi có một quả bóng và nó popped và cuối cùng, Tôi có một quả bóng mới." Nó có vẻ để giúp anh ta đối phó với sự mất mát của mình và đã dẫn đến một thú vị nói về những gì nó đã như khi tôi đã là một cậu bé.

Làm việc cũng như một kỹ thuật an ủi và tôi sử dụng nó một vài lần trong khoảng thời gian, tiếp theo. Tôi đã nhận được vào rắc rối một lần khi người nuôi súc vật quái vật của mình 3 sinh vật chết. Tôi nói chuyện về làm thế nào con chó của tôi, Hoàng tử, đã chết trong một tai nạn xe hơi. Thời gian này, phản ứng của ông là, "Bây giờ tôi cảm thấy xấu về hai điều!" Tôi shied xa bằng cách sử dụng các "khi tôi đã là một cậu bé" kỹ thuật cho sự an ủi sau đó.

Trước khi sự cố chó chết, Tuy nhiên, Tôi cũng đã bắt đầu sử dụng các kỹ thuật để thuyết phục ông ta làm việc vặt. "Khi tôi đã là một cậu bé, Tôi đã phải đi ra ngoài và nhận được trên báo chí", "làm sạch phòng của tôi", "nhận được mẹ của cô ly cà phê", vv.

Đây cũng là khá thành công trong một thời gian, nhưng ông bắt đầu ngày càng nổi loạn chống lại bạo ngược của tuổi thơ của tôi. Một sự kiện, đặc biệt, đánh dấu vào cuối. Tôi nói với ông để mang thùng rác từ lề đường đến nhà để xe. Ông lập luận và tôi trả lời, "Khi tôi đã là một cậu bé, Tôi đã phải đưa rác trở lại đến nhà để xe." Ông trả lời, "Oh có! Tốt khi bạn là một bé, đó là ngu NGỐC!".

</kết thúc>

Đăng ký vào blog của tôi.

Technorati Tags:

Xem và cột vào danh sách và thư viện tài liệu không thể được bảo đảm

CẬP NHẬT (02/29/08): Dự án này mới của codeplex dường như cung cấp một phương pháp để bảo vệ cột cá nhân: http://www.codeplex.com/SPListDisplaySetting. Nếu bạn có bất kỳ kinh nghiệm làm việc với nó, Xin vui lòng để lại một thảo luận.

Diễn đàn áp phích thường xuyên đặt câu hỏi như thế này: "Tôi có một cái nhìn quản lý và và một cái nhìn nhân viên của một danh sách. Làm thế nào tôi an toàn giao diện quản lý do đó nhân viên có thể không sử dụng nó?"

Họ cũng thường yêu cầu một câu hỏi liên quan: "Tôi muốn bảo đảm một cột cụ thể siêu dữ liệu để quản lý chỉ có thể chỉnh sửa cột trong khi những người khác có thể không thậm chí nhìn thấy nó."

Những câu trả lời áp dụng cho cả hai WSS 3.0 và MOSS:

  • SharePoint không cung cấp out-of-the-box hỗ trợ cho bảo vệ lượt xem.
  • SharePoint không cung cấp out-of-the-box hỗ trợ cho bảo mật cột.

Có một số kỹ thuật một có thể làm theo để đáp ứng các loại yêu cầu bảo mật. Dưới đây là những gì tôi có thể nghĩ về:

  • Sử dụng out-of-the-box mục cấp bảo mật. Số lần xem luôn luôn tôn vinh mục cấu hình cấp bảo mật. Sự kiện máy thu và/hoặc quy trình làm việc có thể tự động chuyển nhượng bảo mật.
  • Sử dụng quan điểm cá nhân cho "đặc quyền" Số lần xem. Đây là những dễ dàng, đủ để thiết lập. Tuy nhiên, do cá nhân"của họ" Thiên nhiên, những cần phải được cấu hình cho mỗi người dùng. Sử dụng cấu hình tiêu chuẩn bảo mật để ngăn chặn bất cứ ai khác từ việc tạo ra một cái nhìn cá nhân.
  • Sử dụng một phần web xem dữ liệu và thực hiện một số loại giải pháp trang trí AJAXy bảo mật.
  • Cuộn chức năng hiển thị danh sách riêng của bạn và kết hợp bảo mật trang trí ở mức cột.
  • Sửa đổi các hình thức nhập dữ liệu và sử dụng JavaScript kết hợp với mô hình bảo mật để thực hiện trang trí cột cấp bảo mật.
  • Sử dụng một hình thức InfoPath để nhập dữ liệu. Thực hiện trang trí cột cấp an ninh thông qua các cuộc gọi Dịch vụ web đến SharePoint và có điều kiện là lĩnh vực ẩn khi cần thiết.
  • Cuộn mình ASP.NET dữ liệu nhập hàm thực hiện cột cấp bảo mật trang trí.

Không có những lựa chọn là thực sự là tuyệt vời, nhưng có ít nhất một con đường để làm theo nếu bạn cần phải, ngay cả khi nó là khó khăn.

LƯU Ý: Nếu bạn đi xuống bất kỳ của các đường dẫn, Đừng quên về các "hành động-> Mở Windows Explorer". Bạn muốn chắc chắn rằng bạn kiểm tra với tính năng để đảm bảo rằng nó không làm việc như một cánh cửa của trở lại"" và đánh bại chương trình bảo mật của bạn.

Nếu bạn có ý tưởng cho khác hoặc kinh nghiệm với bảo vệ cột hoặc lượt xem, Vui lòng gửi email cho tôi hoặc để lại một bình luận và tôi sẽ cập nhật này gửi bài phù hợp.

</kết thúc>

Đăng ký vào blog của tôi.

Technorati Tags:

Mẹo nhanh: Các con số phiên bản của BDC ADF là bạn của bạn

Nếu bạn đang bàn tay-coding ADF tập tin và làm rất nhiều nhập/mã thử nghiệm chu kỳ, sử dụng phiên bản số để làm cho cuộc sống của bạn dễ dàng hơn.

Tôi ghét phải thừa nhận nó, nhưng cho đến khi tuần này, Tôi đã luôn luôn xóa ADF và tái nhập nó. Điều này sẽ phá vỡ cột dữ liệu kinh doanh của tôi và làm cho tôi tái dây họ. Tất cả không cần thiết.

Tập tin này theo "đó là rõ ràng khi bạn nhìn thấy nó".

Ví dụ:

<LobSystem
xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance" XSi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Loại="WebService" Phiên bản="1.2.0.0" Tên="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Thay đổi phiên bản đó và re-import và cột dữ liệu doanh nghiệp hiện có sử dụng các phiên bản cập nhật tự động với không có cấu hình bổ sung cần thiết.

</kết thúc>

Đăng ký vào blog của tôi.

Technorati Tags:

Giải pháp: BDC Picker cho thấy chỉ có một cột của kết quả

Trong nỗ lực của tôi trên sẽ cung cấp một cột tra cứu hữu dụng hơn bằng cách sử dụng BDC, Tôi nhấn một bức tường với BDC picker. Nếu bạn không nhìn thấy nó, bộ chọn BDC là tương tự như một bảng chọn người ngoại trừ rằng nó làm việc với cột loại "dữ liệu doanh nghiệp".

Bạn truy cập vào bảng chọn bằng cách nhấp vào biểu tượng mở cửa sổ của một doanh nghiệp dữ liệu cột như hiển thị:

hình ảnh

Hình ảnh ở trên cho thấy một doanh nghiệp dữ liệu cột được gọi là "Thạc sĩ tài liệu Id". Cột được kết nối, Via BDC, Dịch vụ web. Dịch vụ web trả về hai cột thông tin: ID tài liệu và tiêu đề. Mục đích kinh doanh ở đây là cung cấp một "tài liệu này dựa trên" chức năng. Người dùng chọn một "tổng thể" tài liệu và khi họ tiết kiệm, một bộ tiếp nhận sự kiện sao trường dữ liệu meta từ bậc thầy tham chiếu.

Theo mặc định, bộ chọn BDC trông như thế này khi tôi tìm kiếm một tài liệu mà ID = "38":

clip_image002

Đó là hữu ích, nhưng không đủ tốt. Mọi người không nghĩ về ID, họ nghĩ rằng trong điều khoản của tiêu đề và/hoặc dữ liệu meta khác. Bộ chọn cho phép bạn tìm kiếm trên cột khác (Ví dụ như. Tiêu đề) nhưng sẽ không hiển thị trong danh sách thực tế của nó tìm thấy tiêu đề, chỉ là của họ DocId của như được hiển thị ở đây:

clip_image002[1]

(Ảnh chụp màn hình không phải là tuyệt vời như vậy bởi vì tôi đã không nhận một tìm kiếm mà trả về bất kỳ kết quả hợp lệ, nhưng bạn có thể thấy rằng nếu nó đã tìm thấy một số kết quả, nó sẽ chỉ có hiển thị của DocId, Không tên).

Tôi tìm kiếm cao và thấp cho câu trả lời cho điều này và không thành công. Đồng nghiệp của tôi, Các hòa thượng Jonathan Bradshaw, có phải đối mặt và giải quyết vấn đề này. Khi tôi đạt ra cho anh ta để được giúp đỡ, ông đã chỉ cho tôi đi đúng hướng.

Cấu hình bộ chọn để hiển thị nhiều cột thông qua "ShowInPicker" bất động sản tại ADF:

<Bất động sản Tên="ShowInPicker" Loại="System.Boolean">sự thật</Bất động sản>

Chi tiết hơn:

  <!-- Tiêu đề -->
  <TypeDescriptor TypeName="System.String" Tên="Tiêu đề" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Tiêu đề</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Thuộc tính>
      <Bất động sản Tên="DisplayByDefault" Loại="System.Boolean">sự thật</Bất động sản>
      <Bất động sản Tên="ShowInPicker" Loại="System.Boolean">sự thật</Bất động sản>
    </Thuộc tính>
  </TypeDescriptor>

Thiết lập tài sản này giới thiệu một vấn đề nhỏ. Ngay sau khi bạn thiết lập nó một lần, bạn cần phải thiết lập nó cho mỗi cột bạn muốn hiển thị. Trong trường hợp của tôi, BDC picker cho thấy DocId theo mặc định. Tuy nhiên, một khi tôi thêm vào "ShowInPicker" danh hiệu, DocId không còn hiển thị. Tôi đã giải quyết rằng bằng cách thiết lập một cách rõ ràng các tài sản ShowInPicker cho Doc ID.

Đây là kết quả:

hình ảnh

(Tôi sẽ giải thích "lẻ 168 – CamlSchema.xsd" xây dựng trong một bài đăng blog trong tương lai. Trong ngắn hạn, nó là một chuỗi nhiều cho phép cho một kinh nghiệm người dùng tốt hơn một chút).

Tất nhiên, đã viết blog entry này, Tôi chỉ cần làm một tìm kiếm cho "ShowInPicker" và tìm thấy nhiều bài hit, trong đó có một này: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Nó giải thích ý nghĩa của tài sản đó cùng với một số công cụ BDC tốt khác.

</kết thúc>

Đăng ký vào blog của tôi!

Technorati Tags:

Nhanh chóng & Dễ dàng: Tạo một thư mục và gán cho một loại nội dung (Hoặc, Có KPIs của bạn và ăn chúng quá)

Để làm việc xung quanh vấn đề KPI Tôi đã viết về đây, Tôi đã làm một số thử nghiệm và phát hiện ra rằng KPI công việc chống lại các thư mục với meta dữ liệu giống như cách họ làm việc với tài liệu hoặc danh sách các mục. Tôi đã chứng minh nó ra bằng cách tạo ra một loại nội dung mới dựa trên các loại nội dung thư mục và sau đó thêm vào một vài lĩnh vực. Tôi tạo ra một số chỉ tiêu và được chứng minh bản thân mình rằng tiêu chí làm việc như mong đợi. Điều này đã là chào đón tin tức. Nó không phải là hoàn hảo, bởi vì xuống khoan, bạn nhận được từ KPI chống lại các thư mục là không chính xác những gì bạn muốn. Đây không phải là quá nhiều một nhược điểm trong trường hợp của tôi, bởi vì 1) người dùng cuối không biết bất kỳ tốt hơn và 2) khoan xuống đi vào một thư mục. Họ bấm vào tên thư mục và họ đang ở mục. Đó là hai lần nhấp chuột thay vì một, mà không phải là kết thúc của thế giới.

Điều này chảy độc đáo với các công việc tôi đã làm. Tôi là tạo ra một thư mục cho mỗi tài liệu được tải lên. Điều này được thực hiện thông qua một bộ tiếp nhận sự kiện. Kết quả là, đó là một miếng bánh để giữ cho các cặp cha mẹ meta dữ liệu đồng bộ với các dữ liệu meta KPI thúc đẩy từ các tập tin riêng của mình kể từ khi đường ống dẫn nước đã đặt ra. This allows me to have my KPI’s and eat them too 🙂

Tôi sửa đổi nhận sự kiện để thêm các thư mục và sau đó thiết lập kiểu nội dung cặp này mới để tôi loại nội dung thân thiện với KPI tùy chỉnh. Bit của mã này đã làm các trick:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Tài liệu").Thư mục con;
  SPFolder addedFolder = srcFolders.Add(bất động sản.ListItem.ID.ToString());
  SPContentTypeId kpiCT = mới SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Nội dung loại ID"] = kpiCT;
  addedFolder.Item.Update();

Để xác định vị trí thực tế kiểu nội dung ID, Tôi truy cập đó loại nội dung thông qua trang web cài đặt và sao chép/dán nó từ URL như hiển thị:

hình ảnh

</kết thúc>

Đăng ký vào blog của tôi!

Technorati Tags: ,

Nhanh chóng và dễ dàng: Nhận được SPFolder một SPListItem trong một bộ tiếp nhận sự kiện

Tôi ghét phải thừa nhận nó, nhưng tôi phải vật lộn với một tất cả ngày. Nhận sự kiện của tôi cần phải cập nhật một lĩnh vực thư mục mẹ của nó. Điều này chút cho thấy làm thế nào để làm điều đó:

tư nhân void UpdateParentFolder(SPItemEventProperties thuộc tính)
{

SPFolder thisItemFolder = thuộc tính.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ phê duyệt Status"] = "Good news, tất cả mọi người!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Trong trường hợp này, Tôi đang làm việc với một thư viện tài liệu và các thuộc tính đang đến từ một sự kiện ItemAdded.

Các trick là bạn không thể nhận được SPFolder mục trực tiếp từ mục riêng của mình (tức là. bất động sản.ListItem.Folder là không). Thay vào đó, đi vào mục danh sách liên kết tập tin và nhận được các tập tin thư mục.

</kết thúc>

Đăng ký vào blog của tôi!

Technorati Tags:

Được một sự kiện nhận gỡ lỗi Trick

Tôi chắc rằng tôi không phải là người đầu tiên để đi lên với điều này. Tuy nhiên, Tôi đã không nhận thấy bất cứ ai cũng xuất bản một thủ thuật như thế này kể từ khi tôi bắt đầu chú ý cho cộng đồng cuối tháng bảy. Vì vậy, Tôi nghĩ rằng tôi muốn đăng nó này Mẹo nhanh chóng và dễ dàng gỡ lỗi.

Tôi đang làm việc trên một bộ tiếp nhận sự kiện bắt đầu để tạo ra lỗi này trong các 12 tổ ong:

Lỗi nạp và chạy sự kiện nhận Conchango.xyzzyEventReceiver trong xyzzy, Phiên bản = 1.0.0.0, Văn hóa = trung tính, PublicKeyToken = blahbalhbalh. Bổ sung thông tin là dưới đây. : Đối tượng tham chiếu không được đặt để một thể hiện của một đối tượng.

Tôi không biết nơi mà tôi đã giới thiệu lỗi này bởi vì tôi đã làm quá nhiều thứ trong một chu kỳ mã/triển khai/thử nghiệm của tôi.

Tôi đã cố gắng giải pháp này để có được pdb của tôi ở đó với hy vọng rằng SharePoint 12 tổ ong sẽ hiển thị theo dõi stack, nhưng không có may mắn. Tôi không biết nếu nó có thể và nếu ai đó làm, Xin vui lòng cho tôi biết 🙂

Tôi biết nó có thể viết của riêng bạn thông điệp ghi để các 12 tổ ong. Thẳng thắn, Tôi muốn một cái gì đó một chút ít đáng sợ và nhanh hơn để thực hiện.

Nó xảy ra với tôi rằng tôi có thể ít nhận được một số thông tin cơ bản theo dõi bởi đánh bắt và tái ném các ngoại lệ chung như thế này:

  Hãy thử {
    UpdateEditionDate(thuộc tính);
  }
  bắt (Ngoại lệ e)
  {
    ném mới Ngoại lệ("Dispatcher, UpdateEditionDate(): Ngoại lệ: [" + e.ToString() + "].");
  }

Điều này cho thấy trong các 12 hive thusly:

Lỗi nạp và chạy sự kiện nhận Conchango.xyzzyEventReceiver trong xyzzy, Phiên bản = 1.0.0.0, Văn hóa = trung tính, PublicKeyToken = blahblahblah. Bổ sung thông tin là dưới đây. : Dispatcher, UpdateEditionDate(): Ngoại lệ: [Hệ thống NullReferenceException.: Đối tượng tham chiếu không được đặt để một thể hiện của một đối tượng. tại Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties thuộc tính) tại Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties thuộc tính, Chuỗi eventDescription)].

Đó đã cho tôi tất cả các chi tiết tôi cần thiết để theo dõi vấn đề cụ thể đó và tôi hy vọng sẽ sử dụng nó rất nhiều đi về phía trước.

</kết thúc>

Đăng ký vào blog của tôi!