MECH: Aktualizace vlastního seznamu

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;

}
}

Jeden myslel na „MECH: Aktualizace vlastního seznamu

  1. KSP napsal/a:
    Ahoj Paul,
    Máme podobné situace, co se zmínit, ale problém je, že chci používat tento web Servië na serveru vyvážení zatížení.Proto,Jak se v tomto případě zpracování souběžného zpracování požadavků, nebo jak k nové žádosti čekání a pouze jedna žádost by měla aktualizovat seznam číslo až pak všechny ostatní požadavky by měly být v que.Prosím, dejte mi vědět, jak toho dosáhnout.
    Děkuji předem.

Zanech odpověď

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *