Показаны сообщения с ярлыком SharePoint forms. Показать все сообщения
Показаны сообщения с ярлыком SharePoint forms. Показать все сообщения

вторник, 29 апреля 2014 г.

Отправить ссылку на элемент из рабочего процесса

В ходе выполнения рабочего процесса может возникнуть необходимость уведомить определенного пользователя о необходимости изменить поля в элементе списка.
Для уведомления можно использовать электронную почту.

Сформировать письмо и отправить пользователю ссылку:

К сожалению, если использовать способ как картинке выше, то мы получим следующую ссылку:
http://server/Lists/ListName/81_.000

Где 81 - это Id текущего элемента. Такая ссылка на элемент работать не будет.
Что бы создать рабочую ссылку нужно использовать встроенный в SharePoint Designer 2013 построитель строк и сформировать такое:
[%Контекст рабочего процесса:URL адрес текущего сайта %]/Lists/listname/Dispform.aspx?ID=[%Текущий элемент:ID%]




Для этого получаем URL текущего сайта:



И Id текущего элемента:


Теперь у нас есть рабочая ссылка на элемент.

Стоить отметить, что в приведенном примере мы указываем ссылку на форму просмотра.
У нас остается возможность формировать ссылку сразу на форму изменения элемента.


UPD:
Можно использовать контекст рабочего процесса и получить ссылку на документ:
Но при этом нельзя будет сформировать ссылку сразу на форму редактирования.
Создается ссылка на форму просмотра, чего почти всегда достаточно.




понедельник, 28 апреля 2014 г.

Показать поле "Создан" на форме элемента

Некоторые поля, например 'Id' или 'Создано' ('Created') невозможно отображать изначально на формах. В SharePoint Designer они в списке столбцов не отображаются. Заказчик просит изобразить на форме примерно следующее:


Для этого необходимо создать новую форму и добавить в нужное Вам место следующий серверный элемент SharePoint:


В итоге у нас получится примерно следующее:
Не очень красиво, необходимо сменить формат даты. Что бы было еще и на нашем языке.
Для этого мы с Вами попробует библиотеку momentjs.com

Для этого ее надо скачать и подключить к странице. Что бы мы могли отобразить время на нашем языке - качать необходимо moment-with-langs.min.js
Теперь получаем дату в старом формате, меняем и вставляем обратно в страницу.
Что бы пользователь не видел сам процесс обработки - прячем контейнер со старой датой:

<tr>
    <td colspan="2">
        <h1>
            Заявка создана:
            <span id="DateCreationLabel" style="color:navy;display:none">
                <SharePoint:ListItemProperty Property="Created" ID="CreatedDateField" runat="server" />
            </span>
        </h1>
    </td>
</tr>

Над html выше - выполняем JS ниже:

var date = $('#DateCreationLabel').text();
    if (moment(date).isValid()) {
        moment.lang('ru');
        date = moment(date).format('LL');
        $('#DateCreationLabel').text(date);
    }
    $('#DateCreationLabel').show();
После выполнения кода видим следующее:
Вполне приемлемо.