Если при редактировании InfoPath формы, привязанной к рабочему процессу на SharePoint, во время сохранения уже отредактированной формы на сервере, она у вас не будет сохраняться с этой ошибкой (англоязычный вариант: "An unknown error has occurred. The form template has been published to the server but it can only be opened in infopath filler"), то не спешите паниковать. Хотя решение и не очевидное - но оно есть.
В интернете, если поискать по английской версии ошибки, находится куча всяких советов, большинство которых, увы не работает (по крайней мере, у меня не заработало). Помогло только добавление компонента "Desktop Experience" (в русскоязычном варианте - "Возможности рабочего стола"). Добавляется она так:
в англоязычной версии:
Server Manager > Features > Add Features > Desktop Experience.
в русскоязычной версии:
Диспетчер сервера > Компоненты > Добавить компоненты > Возможности рабочего стола
Заметки о разработке ПО, советы по .net, SharePoint, SQL, архитектура приложений, литература по программированию. А также просто просто мысли о жизни и рассказы о том, что интересно автору, например путешествиях и вкусной еде ;)
четверг, 10 апреля 2014 г.
Как бороться с ошибкой "шаблон формы опубликован на сервере, но для его открытия нужен Infopath Filler"
вторник, 8 апреля 2014 г.
Про ошибки в русскоязычной версии MS SQL
Как установить стартовой страницу на другом узле.
Допустим, что у вас русская версия сайта и английская находятся на разных узлах, то есть в корне живет русскоязычный сайт, а на сайте /en/ его англоязычная копия. И вдруг вы захотели сделать стартовой страницей страницу англоязычных новостей, то есть /en/Pages/news.aspx. Стандартными средствами (SharePoint Designer, PowerShell) вы это сделать не сможете, из-за того, что страница не является частью сайта для которого вы хотите сделать ее главной. Как быть?
Тут нам на помощь приходит знание того, что сайт SharePoint - это, по сути, обычный ASP.NET сайт. И соответственно, мы можем делать с шарепоинтным конфигом то же самое что и с любым кофигом сайта на ASP.NET. Так что, чтобы сделать совершенно любую страницу стартовой вам достаточно добавить в секцию <system.web> вот такой элемент:
<urlMappings enabled="true">
<clear />
<add url="~/" mappedUrl="~/en/Pages/news.aspx" />
</urlMappings>
воскресенье, 6 апреля 2014 г.
Вызов методов web-сервисов/серверных методов с помощью jQuery
В старые добрые времена, если вы хотели обратиться из клиентского кода к веб-сервису, или, что серверному методу [WebMethod], то приходилось писать много кода использующего javascript-объект XMLHttpRequest. Сейчас же, если вы используете в своем ASP.NET проекте jQuery, сделать серверный запрос из клиентского кода очень просто. Допустим, у вас есть вот такой метод:
[WebMethod] public static string GetSomeNewString(string _id, string _name) { string result; /..../ return result; }
Все что вам нужно, чтобы вызвать его на клиенте это написать что-то типа:
$.ajax({ type: "POST", url: "~/Default.aspx/GetSomeNewString", data: "{'_id': '" + Id + "','_taskid': '' }", contentType: "application/json; charset=utf-8", dataType: "json", context: this, success: function (response) { //сюда мы попадаем в случае успешного выполнения серверной функции //результат выполнения будет в response.d }, failure: function (response) { //сюда мы попадаем в случае ошибки alert(response.d); } });
Кстати, этот же способ можно использовать и для веб-частей SharePoint. Единственное отличие в том, что веб-часть не может содержать серверные методы (то есть, конечно, может, но смысла в этом мало - обращаться к вы можете только либо к веб-сервисам, либо к страницам с веб-методами). Так что, все что вам нужно - это добавить в проект решения для SharePoint страницу приложения (Application Page) которая и будет содержать веб-методы: