Получить значение из нескольких списков
Я разрабатываю приложение, размещенное на SharePoint, для расчета значений из нескольких списков в рамках одного семейства сайтов. Я должен искать списки с похожими именами.
Пример: корневой сайт:
/dev
подсайты:
/dev/site1
/dev/site2
И site1, и site 2 имеют список с именем "расписания".
Рассмотрим пользователя 1 и пользователя 2. Каждый пользователь имеет доступ к обоим подузлам. И они обновляют расписания на обоих сайтах.
Мне нужно вычислить значение поля (loggedhours) списка расписаний как для сайта 1, так и для сайта 2, затем добавить его и сохранить в корневом списке сайтов (отдельный список).
Также я должен фильтровать значения только по пользователям.
Пример: В site1 > timesheet - я должен вычислить элементы, созданные текущим пользователем, а в Site2 > timesheet - рассчитать элементы, созданные текущим пользователем, и сохранить их на корневом сайте.
Я использую Caml запрос для получения значений. Но я не знаю, как фильтровать на основе текущего пользователя через запрос caml.
Мой код
var TimesheetList01 = web01.get_lists().getByTitle('Timesheet');
var camlQuery01 = new SP.CamlQuery();
camlQuery01.set_viewXml("<View><Query><Where></Where></Query></View>");
this.collListItem01 = TimesheetList01.getItems(camlQuery01);
currentcontext01.load(collListItem01, 'Include(Id,LoggedHours)');
currentcontext01.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
function onQuerySucceeded(sender, args) {
var mysum01 = 0;
var myloggedHours01 = 0;
var listItemInfo01 = '';
var listItemEnumerator011 = collListItem01.getEnumerator();
while (listItemEnumerator011.moveNext()) {
var oListItem01 = listItemEnumerator011.get_current();
myloggedHours01 = oListItem01.get_item('LoggedHours');
mysum01 = mysum01 + myloggedHours01;`
Пожалуйста помоги.
Спасибо арун
1 ответ
Я бы обновил Where
в свой запрос CAML включить (где "Author" будет внутренним именем поля People, по которому вы хотите фильтровать):
<Where>
<Eq>
<FieldRef Name='Author' />
<Value Type='Integer'>
<UserID />
</Value>
</Eq>
</Where>
UserID
будет разрешено в UserID текущего пользователя.