Cách lấy FieldRef và truy vấn trong caml đúng

Khi chúng ta thực hiện truy vấn CAML trong SharePoint, việc đặt tên các cột trong List nếu theo kiểu tiếng Anh thì sẽ rất dễ dàng để lấy, chẳng hạn như tên cột là CreatedBy thì khi truy vấn sẽ dùng là FieldRef Name=”CreatedBy”, hoặc Created By thì sẽ là FieldRef Name=”Created_x0020_By” (sở dĩ có _x0200_ ở đây là vì các kí tự đặc biệt sẽ được SharePoint mã hóa (encoding)). Nhưng đối với người dùng Việt, chúng ta sẽ gặp phải tình huống tên cột bằng tiếng Việt và khi SharePoint thực hiện việc lưu trữ bên dưới thì sẽ cho ra chuỗi kí tự khác (cũng được SharePoint mã hóa nhưng sẽ phức tạp hơn _x0200_ như trên kia :D).

Giả sử ta có một List với các cột như sau:

caml_name

Khi đó, tên của các cột bên dưới để truy vấn sẽ là

<FieldRef Name="T_x00ea_n_x0020_VPP" />
<FieldRef Name="_x0110__x01a1_n_x0020_v_x1ecb__x" />
<FieldRef Name="S_x1ed1__x0020_l_x01b0__x1ee3_ng" />
<FieldRef Name="S_x1ed1__x0020_l_x01b0__x1ee3_ng0" />

Vậy làm cách nào chúng ta biết được nhưng cái tên loằng ngoằng như vậy để thực hiện câu truy vấn CAML chính xác nhất?

Để lấy đúng tên này, các bạn có thể sử dụng các công cụ hỗ trợ truy vấn CAML như Stramit CAML Viewer 2007 (dùng được cho cả SharePoint 2007 và 2010), U2U CAML.

caml_name_1

Trong các công cụ này có hỗ trợ cả việc kiểm tra kết quả câu truy vấn của bạn có ra đúng hay không. Bạn có thể copy và paste câu truy vấn của mình vào tab Query, sang tab Result chọn Search để xem kết quả.

caml_name_2

caml_name_3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s