SDK vasitəsilə xüsusi siyahılarının yenilənməsi çox yaxşı nümunələr var. Burada hələ bir başqa.
Biznes problem: InfoPath form istifadəçi online alınması requisitions daxil imkan verir ki, nəzərdə tutulmuşdur. PO sənədlər ədəd ənənəvi ardıcıllığı based tam dəyərlər və avtomatik olaraq hesablanır olmalıdır.
Business Solution: Iki sütun olan xüsusi MOSS siyahısı yaradın: "ControlField" and "ControlValue". Dəyəri sütun növbəti alınması rekvizisiya sayı ehtiva edir. Note that the generic "control" Konvensiyanın adlandırma ehtiyac kimi istifadə edilə bilər ki, gələcək nəzarət sahələrdə təmin edir.
Texniki Həll: InfoPath müştəri tərəfindən əldə bir internet xidmət yarat. Web service geri növbəti alınması rekvizisiya sayı və yenilikləri siyahı dəyəri qaytarır.
Öyrənilmiş Dərslər:
- InfoPath forma bir məlumat mənbəyi kimi web service eklerken, Mən bunu zəruri UDC üçün çevirmək və bir veri bağlantısı kitabxana onu saxlamaq tapılmadı.
- Mən də zəruri mərkəzi xidmətlərin idarəetmə vasitəsilə cross domain scripting imkan tapdı // Application Management // şəklində server konfiqurasiya.
- Ilk dəfə forma web service daxil olmaq üçün cəhd, bir müddət alır və münasibətilə, o vaxt ki,. Mən zaman aşımı ayarları genişləndirmək formada server konfiqurasiya parametrləri ilə fiddled və kömək görünürdü.
Kod:
istifadə Sistem;
istifadə System.Web;
istifadə System.Web.Services;
istifadə System.Web.Services.Protocols;
istifadə Microsoft.SharePoint;
istifadə System.Configuration;
[Belediyesi Web Services(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
ictimai sinfi PoService : System.Web.Services.Belediyesi Web Services
{
ictimai PoService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
/// <xülasə>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </xülasə>
/// <yekunları></yekunları>
[WebMethod]
ictimai sim GetNextPoNumber()
{
sim SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
sim SpPoControlListName; // Name of the actual MOSS list containing the Po control.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
sim nextPoReqNumber = "xyzzy";
istifadə (SPSite site = yeni SPSite(SpPoControlSiteName))
{
istifadə (SPWeb web = site.OpenWeb())
{
SPList currentList = web.Lists[SpPoControlListName];
foreach (Tüpürmək controlItem ilə currentList.Items)
{
əgər (((sim)controlItem["ControlField"]).Bərabər("NextPoNumber"))
{
nextPoReqNumber = (sim)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Çevirmək.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Locating, reading and updating the PO number in the list.
} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/mizuho")
qayıtmaq nextPoReqNumber;
}
}