пятница, 19 декабря 2008 г.

Infopath и мобильные устройства

Пост первый. Буду краток.

Хочу рассказать о том как передать параметры в Infopath форму для мобильных устройств работающую под Sharepoint Forms Services через URL обращения к форме.

Используя Forms Services для отобржения Infopath форм мы можем передать дополнительные параметры в форму через URL (про то, как это сделать можно почитать напр. здесь http://blogs.msdn.com/infopath/archive/2007/02/26/passing-data-into-a-form-input-parameters.aspx) используя обычный Desktop браузер (напр. IE, Firefox, Safari).

Ситуация меняется, если мы будем пытаться тем же способом передать параметры в форму, которая будет открываться на мобильном устройстве через мобильный браузер (здесь пост о том как разрабатывать формы для отображения на мобильных устройствах http://blogs.3sharp.com/davidg/archive/2006/08/22/1873.aspx). В объекте InputParameters не будет содержаться ни одного параметра переданного через URL. Count ключей и значений будет - 0.

Пример ссылки на форму для мобильных устройств (мой параметр в конце строки Parameter1=ParamValue).
_http://SHAREPOINT/_layouts/mobile/mobileFormServer.aspx?XsnLocation=/FormServerTemplates/Iv.IF.MyForm.xsn&DefaultItemOpen=1&Parameter1=ParamValue

Обойти это ограничение можно с помощью получения AbsoluteUri.

Напр: string sAbsoluteUri = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;

В переменной sAbsoluteUri будет содержаться URL обращения к форме с занесенными туда параметрами.