Эй, у меня есть форма для администраторов, где они вставляют имя пользователя ("domain\name"), и код получает и устанавливает некоторую информацию из него.
Это - огромный проект, и некоторые списки содержат имя пользователя как строку ("domain\name"), но некоторые списки только рассчитывают на столбец "Created By", который автосоздается.
Я хочу знать то, что является самым быстрым способом запросить эти списки с помощью строки имени пользователя. Я пытался использовать тот же запрос в качестве того, который я использую для первого вида списков, и он, очевидно, не работал -
<Where><Eq><FieldRef Name='UserName'/><Value Type='Text'>domain\\username</Value></Eq></Where>
Спасибо.
Существует два различных поля "Created By", одно для всех элементов, а другое специально для библиотек документов ("Document Created By"). Внутреннее название поля "Created By" - "Author", поэтому
будет лучшим началом. Второе поле, которое является автором фактического файла в библиотеке документов, имеет внутреннее имя "Created_x0020_By". Судя по вашему сценарию, мне кажется, что вам понадобится только первое, но второе все равно полезно знать, потому что данные, хранящиеся в них, отличаются.
"Created By" - это поле пользователя, поэтому строковая версия его данных - ID;#Full Name
. Между тем, "Document Created By" - это текстовое поле для одной строки текста, и его данные хранятся как фактическое имя пользователя (с доменом, если применимо). Поэтому ваш вышеприведенный запрос будет работать в случае библиотеки документов и поиска по
. Однако если вы хотите выполнить поиск по полю "Created By", вам придется быть немного хитрее, но вы должны быть в состоянии выполнить его, ссылаясь на идентификатор SharePoint ID пользователя. Ниже приведен пример другого запроса поля User, который я использую для сравнения.
<Eq><FieldRef Name='AssignedTo' /><Value Type='Integer'><UserID Type='Integer' /></Value></Eq>
Здесь специально отфильтровывается текущий пользователь. Чтобы использовать его в своих целях, замените 'AssignedTo' на 'Author' и
на ID пользователя, о котором идет речь.