Számos jó példa az SDK via Egyéni listák frissítése. Itt van még egy.
Üzleti probléma: InfoPath-űrlap úgy lett kialakítva, hogy lehetővé teszi a felhasználók számára, hogy adja meg online beszerzési igénylések. PO igénylési számokat kell hagyományos sorozat alapján egészszám-értékeket, és automatikusan.
Üzleti megoldás: Két oszlopot tartalmazó egyéni MOSS lista létrehozása: "ControlField" és "ControlValue". Az érték oszlopban tartalmazza a következő beszerzési igénylési szám. Vegye figyelembe, hogy a generikus "ellenőrzés" elnevezési biztosít a jövőbeli ellenőrzési területeken, szükség esetén felhasználható.
Műszaki megoldás: Létrehozása a webszolgáltatás az InfoPath ügyfél által. A webszolgáltatás adja vissza a következő beszerzési igénylés számát, és frissíti az értéket a listához.
Tanulságok:
- Ha adatforrásként ezt pókháló szolgáltatás hozzáadása az InfoPath-űrlap, Azt találták, hogy kell átalakítani, hogy a udc és készlet ez-ba egy adatkapcsolattár.
- Azt is megállapították, hogy szükséges, hogy a tartományok közötti keresztül központi felügyeleti parancsfájlok // alkalmazások kezelése // űrlap kiszolgálókonfiguráció.
- Először az űrlapot próbált-hoz belépés a pókháló szolgáltatás, eltart egy ideig, és alkalmanként, volna idő. Én fiddled bővíteni az időtúllépési beállítások űrlap szerver konfigurációs beállítások, és úgy látszik, hogy segítsen.
A kód:
használatával Rendszer;
használatával System.Web;
használatával System.Web.Services;
használatával System.Web.Services.Protocols;
használatával Microsoft.SharePoint;
használatával System.Configuration;
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
nyilvános osztály PoService : System.Web.Services.WebService
{
nyilvános PoService () {
//Vedd ki a megjegyzésből az alábbi sort, ha használ tervezett alkatrészek
//InitializeComponent();
}
/// <Összefoglaló>
/// A következő PO-szám megszerzése sharepoint-listából a po szám ellenőrzése.
/// Növekmény a PO szám a listán.
/// </Összefoglaló>
/// <adja vissza></adja vissza>
[WebMethod]
nyilvános karakterlánc GetNextPoNumber()
{
karakterlánc SpPoControlSiteName; // Ad otthont a PO-szabálygyűjtemény tényleges MOSS-hely nevét.
karakterlánc SpPoControlListName; // A tényleges MOSS lista a Po-vezérlőt tartalmazó.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
karakterlánc nextPoReqNumber = "xyzzy";
használatával (SPSite telek = új SPSite(SpPoControlSiteName))
{
használatával (SPWeb Web = site. OpenWeb())
{
Meg az SPList.Update() currentList = webes. Listák[SpPoControlListName];
foreach (SPItem controlItem a currentList.Items)
{
Ha (((karakterlánc)controlItem["ControlField"]).Egyenlő("NextPoNumber"))
{
nextPoReqNumber = (karakterlánc)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Konvertálás.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] int_nextPoReqNumber =;
controlItem.Update();
}
} // Megkeresése, olvasás és a PO szám, a lista frissítése.
} // spweb weben = site.openweb()
} // spsite webhely használatával új spsite =("http://localhost/mizuho")
vissza nextPoReqNumber;
}
}