Sunday, December 6, 2020


Web Tabanlı infopath uygulamalarında Form Kitaplığına yetkisi olmayan Kullanıcıların Infopath Form’unu kullanabilmesini sağlamak ve kullanıcıyı başka sayfaya Yönlendirmek

Bir infopath formu bir form kitaplığına yayınlanılırken ,formu kullanacak kullanıcıların formun yayınlandığı form kitaplığına erişim yetkilerinin olması gerekir.

Bir Form kitaplığına yayınlanmış bir form içeriğinin kullanıcılar tarafından etkin kullanılmasını sağlayabilmek için, bu form kitaplığına erişim sağlayacak kullanıcılara belirli izinller tanımlamak gerekir.(Görüntüleyebilme, Ekleyebilme, Silebilme v.b gibi)

Form kitaplığı





Form Kitaplığı  Ayarları







Ama bazı durumlarda Kullanıcıların sadece bu formu sınırlı ölçülerde kullanmasını isteyebiliriz. Mesela organizasyondaki tüm kullanıcılara bu form kitaplığına herhangi bir izin atamadan kullanıcıların formu görüntüleyebilmesini,kullanabilmesini, kaydedebilmesini sağlayabiliriz hatta formu kaydettikten sonra kullanıcıyı başka sayfalara da yönlendirebiliriz.

Aşağıdaki örnekte Personel Iletişim Formu, form kitaplığına yayınlanmış olan personelden isimli infopath formunu, yetkisi olmayan tüm kullanıcıların açabilmesini Sharepoint sitesinde ana sayfada bir link yardımıyla sağlayacağız.





Yani kullanıcın ,bu form kitaplığına erişm izninin olmasına gerek kalmadan formu ana sayfada  ki link yardımıyla görüntüleyebileceğiz.

Sharepoint ana sayfasına web part ekleyip bu web part’ın özeliklerini kullanarak link vereceğiz.














****Dikkat edilmesi gereken en önemli nokta; yeni açılacak formun linkinin doğru yazılması








<TABLE border=0 width="100%">

<TBODY>

<TR>

<TD width="8%">

<IMG onclick="FP_goToURL('/*href*/'http://portalnew:3695/_layouts/FormServer.aspx?XsnLocation=http://portalnew:3695/FormServerTemplates/Personelden.xsn&SaveLocation=http%3A%2F%2Fportalnew%3A3695%2Fdeneme&Source=http%3A%2F%2Fportalnew%3A3695%2Fdeneme%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1')" border=0 align=right src="http://portal/Dokman%20Paylam/BT%20Duyuru%20Belgeleri/Formlar_hizli_erisim_web/Butonlar_form_acma/logo_butonlar/MS_InfoPath_.jpg" width=20 height=20></TD>

<TD width="89%"><FONT size=1><A title="" href=" http://portalnew:3695/_layouts/FormServer.aspx?XsnLocation=http://portalnew:3695/FormServerTemplates/Personelden.xsn&SaveLocation=http%3A%2F%2Fportalnew%3A3695%2Fdeneme&Source=http%3A%2F%2Fportalnew%3A3695%2Fdeneme%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1" target="">Genel Müdür İletişim Formu</A> </FONT></TD></TR></TBODY></TABLE>

Kullanıcı linke tıkladığında Personel Iletişim Formu form kitaplığına yetkiye gerek kalmadan yeni bir Form açabilecektir.

Şimdi sıra geldi kullanıcının Formu ilgili form kitaplığına kaydedebilmesine.Formun ilgili form kitaplığına gönderilebilinmesini sağlamak için  bir veri bağlantısı tanımlarız.






Yukarıda anlattığımız gibi Form kitaplığına yetkisi olmayan kullanıcıların formu gönderebilmesini sağlamak için ;

SPSecurity. RunWithElevatedPrivileges Method (Microsoft.SharePoint)

Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint ( microsoft.sharepoint.dll)

 SPSecurity. RunWithElevatedPrivileges Method yüksek ayrıcalıklara sahip bir hesaptır.

Kaynaklara Sharepoint system hesabı ile ulaşır ve tam yetkili olarak işlemlerini sürdürür.

 Gonder butonunun altında yazacağımız kod aşağıdaki gibi olur.

  public void CTRL9_5_Clicked(object sender, ClickedEventArgs e)

        {

            string konu = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:konu", NamespaceManager).Value;

            if (konu != "")

           {

                SPSecurity.RunWithElevatedPrivileges(delegate()

                {

                    using (SPSite site = new SPSite("http://portalnew:3695/deneme/"))

                    {

                        //infopath formunu veri bağlantısı kullanarak gönderme

                        FileSubmitConnection fc = (FileSubmitConnection)this.DataConnections["Gonder"];

                        fc.Execute();

                    }

                });               MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:FormGiris", NamespaceManager).SetValue("1");

            }

            //Kullanıcıyı Başka sayfaya yönlendirme.

            string url = String.Empty;

            url = "http://portalnew:3695/default.aspx";

            HttpContext.Current.Response.Redirect(url.ToString(), false);

        }

Kullanıcı Formu kullanmak için portalde ana sayfayı açtığında linke tıklaığında

Form üzerinde gerekli işlemleri tamamladıktan sonra Formu Gönder butonuna bastığında

Form yukarıdaki kod yardımı ile Personel Iletişim Formu form kitaplığına gönderilecek.

Hazırlayan:Güler ONUK

No comments:

Post a Comment

Infopath Formlarında Dinamik Kontroller Yaratma

                                  Sharepoint Form Kitaplığında Klasörleme Bir sharepoint Form kitaplığında ki item kayıtlarının fazlalığı ...