Есть ли способ добавить обработчик событий регистрации в Sharepoint 2013, используя код на стороне клиента?(x-post Sharepoint.SE) - PullRequest
0 голосов
/ 09 февраля 2019

Использование SP2013.На моем сайте есть библиотека документов из файлов Excel.У меня есть доступ на стороне клиента для изменения сайта через Sharepoint Designer 2013, нет доступа на стороне сервера.Я хотел бы настроить событие, которое будет запускаться при регистрации документа, чтобы я мог извлечь из документа некоторое содержимое и обновить его метаданные.Примерный алгоритм работы моего кода:

  1. Пользователь нажимает кнопку «Регистрация» на странице Sharepoint или в извлеченной книге Excel.

  2. Выполняется операция регистрации.

  3. Рабочая книга считывается на компьютере пользователя с использованием js-xlsx.

  4. Метаданные обновляютсясо значением, использующим API REST validateupdatelistitem.

Я пытаюсь выяснить, как настроить эту последовательность ответов, используя только код на стороне клиента.Я смотрел на приемники событий, но их можно создавать только с помощью серверного кода, и они полезны только для настройки веб-хуков на удаленно размещенные сервисы.Поскольку мне нужно, чтобы это решение выполнялось локально (нецелесообразно настраивать другой веб-сервер для обработки запросов обработчика событий), я думаю, может быть, было бы хорошо, чтобы обработчик событий (возможно, рабочий процесс?) Загружал страницу насайт Sharepoint, который выполняет шаги (3) и (4) выше и передает ему URL документа в виде запроса GET.Страница, загружаемая обработчиком событий, будет выглядеть примерно так:

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.7.7/xlsx.core.min.js"></script>  

<script>
function getValue(){
    var reader=new FileReader();
    reader.onload=function(e){
        var data=e.target.result;
        var workbook=XLSX.read(data,{type:'binary'});

        //do some stuff to get data from workbook and update doc library
        //using REST API
        updateSharepointSiteWithWorkbookValue(workbook);
    }

    //get file url from the GET request that loaded this page
    inputFileUrl=parseQueryString(window.location.search);

    reader.readAsArrayBuffer(inputFileUrl);
}
</script>

ссылка на Sharepoint.SE вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...