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;
}
}