YOSUN: Özel bir liste güncelleştiriliyor

Orada birçok iyi örnek SDK ile özel listeleri güncelleme. İşte yeni bir.

İş sorunu: InfoPath formu online girmek için olanaklı kılmak kullanıcı talepleri satın tasarlanmıştır. PO sayı-meli var olmak geleneksel sıra talep tamsayı değerlerine dayalı ve otomatik olarak hesaplanan.

İş çözümü: İki sütun içeren özel bir yosun liste oluşturma: "ControlField" ve "ControlValue". Değer sütununda sonraki satın alma talep numarası içerir. Genel "kontrol unutmayın" gerektiğinde kullanılabilir gelecekteki denetim alanları için adlandırma kuralı sağlar.

Teknik çözüm: InfoPath istemci tarafından erişilen bir web servisi yaratmak. Web hizmeti bir sonraki satın alma talep numarası geri döndürür ve liste değerini güncelleştirir.

Öğrenilen dersler:

  • Bu web hizmeti veri kaynağı olarak InfoPath formu ekleyerek., Udc için dönüştürmek ve bir veri bağlantısı kitaplığında depolamak gerekli buldum.
  • Ayrıca üzerinden Merkezi Hizmetler Yönetim etki alanları arası komut dosyası çalıştırma etkinleştirmek gerekli bulundu // Uygulama Yönetimi // Form sunucu yapılandırması.
  • Formu web hizmetine erişmek için çalıştı ilk kez, bir süre alır ve zaman zaman, o zaman dışarı istiyorsunuz. Zaman aşımı ayarları'nı form sunucu yapılandırma ayarları ile oynuyordu ve yardımcı olacak gibiydi.

Kodu:

kullanma Sistem;
kullanma System.Web;
kullanma System.Web.Services;
kullanma System.Web.Services.Protocols;
kullanma Microsoft.SharePoint;
kullanma System.Configuration;

[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
Genel sınıf PoService : System.Web.Services.WebService
{
Genel PoService () {

//Eğer istimal ertesi gün içini kaplamak bileşenleri tasarlanmış uncomment
//InitializeComponent();
}

/// <Özet>
/// Sonraki PO numarası sharepoint po numarası kontrol listesi elde.
/// Bu listede artışı PO numarası.
/// </Özet>
/// <döndürür></döndürür>
[WebMethod]
Genel dize GetNextPoNumber()
{
dize SpPoControlSiteName; // PO denetim listesi ev sahipliği yapan gerçek MOSS sitenin adı.
dize SpPoControlListName; // Po denetimi içeren gerçek MOSS listesi adı.

SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();

dize nextPoReqNumber = "xyzzy";

kullanma (SPSite Site = Yeni SPSite(SpPoControlSiteName))
{
kullanma (SPWeb Web sitesi =. OpenWeb())
{

SPList.Update() currentList web =. Listeler[SpPoControlListName];

foreach (SPItem controlItem içinde currentList.Items)
{

Eğer (((dize)controlItem["ControlField"]).Eşittir("NextPoNumber"))
{
nextPoReqNumber = (dize)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Dönüştürme.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem["ControlValue"] int_nextPoReqNumber =;
controlItem.Update();
}

} // Bulma, okuma ve listedeki PO numarası güncelleştirme.


} // SPWeb web kullanarak site.openweb =()
} // SPSite sitesini kullanarak yeni spsite =("http://localhost/mizuho")

geri dönmek nextPoReqNumber;

}
}

Bir “konulu düşünceYOSUN: Özel bir liste güncelleştiriliyor

  1. KSP yazdı:
    Merhaba Paul,
    Ne söz vardır benzer bir durum var ama sorun bu web servie bir yük dengesi sunucuda kullanmak istiyorum.Dolayısıyla,Bu durumda eşzamanlılık istekleri işlemek için nasıl ya da nasıl yeni istek yapmak için bekleyin ve sadece bir istek listesi sayı bağ güncelleştirmeniz gerekir daha sonra diğer istekler-meli var olmak içinde sorulaBunu başarmak için bana bildirin.
    Teşekkür peşin.
    Yanıtla

Bir yanıt bırak KSP yazdı: Cevabı iptal

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *