Sergey Belskiy Technical Blog

All about SharePoint

Как программно сделать Submit в InfoPath 2010

Привет всем. Сегодня столкнулся с проблемой программного сохранения InfoPath форм в SharePoint 2010. И формы сохранять не просто в библиотеку, в в определённую папку библиотеки или под папку.

Так вот. Для начала Вам необходимо вызвать обработчик события Submit.

Делается это просто.

image

Далее необходимо написать что-то в обработчике. Нужно использовать класс FileSubmitConnection.

 

 

public void FormEvents_Submit(object sender, SubmitEventArgs e)
        {
            XPathNavigator root = MainDataSource.CreateNavigator();
            string url = root.SelectSingleNode(“/my:моиПоля/my:GSKGroup/my:urlsite”, NamespaceManager).Value;
            string directorat = root.SelectSingleNode(“/my:моиПоля/my:Directorat”, NamespaceManager).Value;
            string division = root.SelectSingleNode(“/my:моиПоля/my:Division”,

NamespaceManager).Value;
            SPSite oSiteCollection = new SPSite(url);
            SPWeb rootweb = oSiteCollection.RootWeb;
           

// Submit the form to SharePoint
            FileSubmitConnection fc = (FileSubmitConnection)this.DataConnections

[“SharePoint Library Submit”];
            fc.FolderUrl = rootweb.Url + “/DocLib/” + directorat + “/” +

division.Replace(“\””, ” “);

            // Execute the submit connection
            try
            {
                fc.Execute();
                e.CancelableArgs.Cancel = false;
            }
            catch
            {
                e.CancelableArgs.Cancel = true;
            }

        }