MOSS: Xüsusi siyahı dəqiqləşdirilməsi

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;

}
}

Bir fikir “MOSS: Xüsusi siyahı dəqiqləşdirilməsi

  1. KSP yazdı:
    Salam Paul,
    Biz sizə bəhs nə oxşar vəziyyət var amma problem i bir yük balans server.Hence bu web servie istifadə etmək istəyirəm,concurrency bu halda sorğu və ya necə yeni sorğu wait etmək idarə etmək və sonra bütün digər istekleri que.Please olmalıdır qədər yalnız bir müraciət siyahı sayı yeniləmək necə mənə bu nail olmaq üçün necə bildirin.
    Əvvəlcədən təşəkkür edirik.
    Cavab

Şəkil Yükləmə

E-poçt ünvanından dərc olunmayacaq. Lazım alanlar qeyd olunur *