Получить значение из нескольких списков

Я разрабатываю приложение, размещенное на 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 текущего пользователя.

Другие вопросы по тегам