MOSS: Aktualizacja listy niestandardowej

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;

}
}

Jedna myśl na "MOSS: Aktualizacja listy niestandardowej

  1. Napisał KSP:
    Hi Paul,
    Mamy podobną sytuację, co są wspomnieć, ale problem jest, chcesz używać tym servie sieci web na serwerze, równowaga obciążenia.Stąd,jak obsługiwać żądania współbieżność w tym przypadku lub jak zrobić nowego żądania czekać i tylko jeden wniosek należy zaktualizować numer listy do, a następnie wszystkie inne wnioski powinny być w que.Proszę dać mi znać, jak to osiągnąć.
    Dzięki w posuwać się naprzód.

Odpowiedz

Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *