Existuje mnoho dobrých příkladů aktualizace vlastních seznamů pomocí sady SDK. Tady je ještě další.
Obchodní problém: Formulář aplikace InfoPath je navrženo, že umožňuje uživatelům zadávat on-line nákupní žádanky. PO požadavku čísla by měla být tradiční sekvence založené celočíselné hodnoty a vypočítá automaticky.
Obchodní řešení: Vytvořit vlastní MOSS seznam obsahuje dva sloupce: "ControlField" a "ControlValue". Hodnota sloupec obsahuje další číslo nákupního požadavku. Všimněte si, že obecný "kontrolovat" pojmenování poskytuje pro budoucí kontrolní pole, které mohou být použity podle potřeby.
Technické řešení: Vytvořit webovou službu přístup klienta aplikace InfoPath. Webová služba vrátí zpět další číslo požadavku nákupní a aktualizuje hodnotu seznamu.
Poučení:
- Při přidání této webové služby jako zdroj dat do formuláře aplikace InfoPath, Jsem zjistil, že je nutné jej převést udc a uložit jej do knihovny datových připojení.
- Jsem také zjistil, že je nutné povolit skriptování mezi doménami prostřednictvím ústředních útvarů správy // Správa aplikací // formulář konfigurace serveru.
- Poprvé podobě se pokusil o přístup webové službě, to chvíli trvá a příležitostně, To by časový limit. Jsem si pohrávala s nastavením v konfiguraci formuláře serveru rozbalte nastavení časového limitu a zdálo se, že pomoci.
Kód:
použití Systém;
použití System.Web;
použití System.Web.Services;
použití System.Web.Services.Protocols;
použití Microsoft.SharePoint;
použití System.Configuration;
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
veřejné Třída PoService : System.Web.Services.WebService
{
veřejné PoService () {
//Odkomentujte následující řádek, pokud používáte určené součásti
//InitializeComponent();
}
/// <Shrnutí>
/// Získat další číslo objednávky ze seznamu serveru sharepoint po číslo kontroly.
/// Zvýšit číslo objednávky v tomto seznamu.
/// </Shrnutí>
/// <Vrátí></Vrátí>
[WebMethod]
veřejné řetězec GetNextPoNumber()
{
řetězec SpPoControlSiteName; // Název skutečné MOSS webu, který je hostitelem seznamu PO.
řetězec SpPoControlListName; // Název seznamu skutečných MOSS, obsahující ovládací prvek Po.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
řetězec nextPoReqNumber = "xyzzy";
použití (SPSite místo = nové SPSite(SpPoControlSiteName))
{
použití (SPWeb webové stránky =. OpenWeb())
{
SPList.Update() currentList = www. Seznamy[SpPoControlListName];
foreach (SPItem controlItem v currentList.Items)
{
Pokud (((řetězec)controlItem["ControlField"]).Rovná se("NextPoNumber"))
{
nextPoReqNumber = (řetězec)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Převést.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Hledání, čtení a aktualizace číslo objednávky v seznamu.
} // použití webu spweb = site.openweb()
} // pomocí webů spsite = nové spsite("http://localhost/mizuho")
návrat nextPoReqNumber;
}
}