Istnieje wiele dobrych przykładów aktualizacji list niestandardowych za pomocą zestawu SDK. Oto kolejny.
Problem w biznesie: Formularz programu InfoPath został zaprojektowany, że umożliwia użytkownikom wprowadzanie online zapotrzebowania na zakup. PO rekwizycji, że numery powinny być tradycyjne sekwencji na bazie wartości całkowitych i obliczane automatycznie.
Rozwiązanie dla firm: Utworzyć niestandardową listę MOSS zawierającej dwie kolumny: "ControlField" i "ControlValue". Wartość kolumna zawiera numer kolejny zapotrzebowania zakupu. Należy pamiętać, że nazwę rodzajową "kontrola" Konwencja nazewnictwa przewiduje przyszłość kontroli pola, które mogą być stosowane w razie potrzeby.
Rozwiązanie techniczne: Tworzenie usługa sieci web dostęp do klienta programu InfoPath. Usługa sieci web zwraca następny numer zapotrzebowania zakupu i aktualizuje wartości listy.
Wyciągnięte wnioski:
- Podczas dodawania tej usługi sieci web jako źródło danych do formularza programu InfoPath, I stwierdziła, że trzeba go przerobic udc i przechowywać go w bibliotece połączeń danych.
- Również znaleźć niezbędne do umożliwienia granic domen skryptów za pomocą administracji centralnej usługi // Zarządzanie aplikacjami // Konfiguracja serwera w postaci.
- Po raz pierwszy formie próbował uzyskać dostęp do usługa sieci web, to zajmuje trochę czasu, a przy okazji, to czas. Bawił się z ustawienia w formularzu konfiguracja serwera, aby rozwiń ustawienia limitu czasu i wydawało się pomóc.
Kod:
przy użyciu Systemu;
przy użyciu System.Web;
przy użyciu System.Web.Services;
przy użyciu System.Web.Services.Protocols;
przy użyciu Microsoft.SharePoint;
przy użyciu System.Configuration;
[Usługi WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
publiczne Klasa PoService : System.Web.Services.Usługi WebService
{
publiczne PoService () {
//Usuń oznaczenie komentarza że następujący wiersz, jeśli za pomocą zaprojektowane komponenty
//InitializeComponent();
}
/// <Podsumowanie>
/// Uzyskać następny numer zamówienia z listy programu sharepoint po numer kontroli.
/// Zwiększajšć liczbę PO tej liście.
/// </Podsumowanie>
/// <zwraca></zwraca>
[WebMethod]
publiczne ciąg GetNextPoNumber()
{
ciąg SpPoControlSiteName; // Nazwa rzeczywistej witryny MOSS, obsługującego listę PO kontroli.
ciąg SpPoControlListName; // Nazwa aktualnej liście mech zawierające Po kontroli.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
ciąg nextPoReqNumber = "xyzzy";
przy użyciu (SPSite Strona = Nowy SPSite(SpPoControlSiteName))
{
przy użyciu (Sieci Web programu SharePoint Web = site. OpenWeb())
{
SPList currentList = www. Wyświetla listę[SpPoControlListName];
foreach (SPItem controlItem w currentList.Items)
{
Jeśli (((ciąg)controlItem["ControlField"]).Równa się("NextPoNumber"))
{
nextPoReqNumber = (ciąg)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Konwersja.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Lokalizowanie, czytanie i aktualizowania PO numer z listy.
} // za pomocą spweb web = site.openweb()
} // za pomocą Strona spsite = new spsite("http://localhost/mizuho")
Powrót nextPoReqNumber;
}
}