एसडीके के माध्यम से कस्टम सूचियों को अद्यतन करने का बहुत अच्छा उदाहरण हैं. यहाँ है अभी तक एक और.
व्यापार समस्या: InfoPath प्रपत्र डिज़ाइन किया गया है कि सक्षम बनाता है उपयोगकर्ताओं को ऑनलाइन दर्ज करने की माँग खरीद. PO पारंपरिक अनुक्रम संख्या होना चाहिए माँग पूर्णांक मानों के आधार और स्वचालित रूप से परिकलित.
व्यापार समाधान: एक कस्टम काई दो स्तंभों वाली सूची बनाएँ: "ControlField" और "ControlValue". मान स्तंभ जिसमें अगले खरीद माँग संख्या. के सामान्य नियंत्रण"कि ध्यान दें" नामकरण परिपाटी भविष्य नियंत्रण क्षेत्रों कि जरूरत के रूप में इस्तेमाल किया जा सकता के लिए प्रदान करता है.
तकनीकी समाधान: InfoPath ग्राहक द्वारा पहुँचा एक वेब सेवा बनाएँ. वेब सेवा वापस अगले खरीद माँग संख्या देता है और मूल्य सूची का अद्यतन करता है.
सबक सीखा:
- जब इस वेब सेवा किसी डेटा स्रोत के रूप में InfoPath प्रपत्र के लिए जोड़ने, मैंने पाया यह यह करने के लिए एक udc कनवर्ट करें और उसे किसी डेटा कनेक्शन लायब्रेरी में संग्रहीत करने के लिए आवश्यक.
- मैं भी इसे केंद्रीय सेवाओं के प्रशासन के माध्यम से पार डोमेन स्क्रिप्टिंग को सक्षम करने के लिए आवश्यक पाया // अनुप्रयोग प्रबंधन // प्रपत्र सर्वर कॉन्फ़िगरेशन.
- पहली बार प्रपत्र वेब सेवा का उपयोग करने की कोशिश की, यह एक समय लेता है और इस अवसर पर, यह समय के बाहर होता. मुझे मध्यांतर सेटिंग्स का विस्तार करें करने के लिए सेटिंग्स के साथ प्रपत्र सर्वर कॉन्फ़िगरेशन में fiddled और मदद करने के लिए लग रहा था कि.
कोड:
का उपयोग कर प्रणाली;
का उपयोग कर System.Web;
का उपयोग कर System.Web.Services;
का उपयोग कर System.Web.Services.Protocols;
का उपयोग कर Microsoft.SharePoint;
का उपयोग कर System.Configuration;
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
सार्वजनिक वर्ग PoService : System.Web.Services.WebService
{
सार्वजनिक PoService () {
//यदि का उपयोग कर निम्न पंक्ति घटक डिज़ाइन uncomment
//InitializeComponent();
}
/// <सारांश>
/// अगले पो संख्या से sharepoint पो संख्या नियंत्रण सूची प्राप्त करें.
/// उस सूची में वेतन वृद्धि पो संख्या.
/// </सारांश>
/// <रिटर्न></रिटर्न>
[WebMethod]
सार्वजनिक स्ट्रिंग GetNextPoNumber()
{
स्ट्रिंग SpPoControlSiteName; // वास्तविक काई साइट पो नियंत्रण सूची होस्ट का नाम.
स्ट्रिंग SpPoControlListName; // वास्तविक काई पो नियंत्रण वाली सूची का नाम.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
स्ट्रिंग nextPoReqNumber = "xyzzy";
का उपयोग कर (SPSite साइट = नई SPSite(SpPoControlSiteName))
{
का उपयोग कर (SPWeb वेब साइट =। OpenWeb())
{
SPList currentList वेब =। सूचियाँ[SpPoControlListName];
foreach (SPItem controlItem में currentList.Items)
{
अगर (((स्ट्रिंग)controlItem["ControlField"]).के बराबर होती है("NextPoNumber"))
{
nextPoReqNumber = (स्ट्रिंग)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = कनवर्ट करें.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] int_nextPoReqNumber =;
controlItem.Update();
}
} // ढूँढ रहा है, पढ़ने और पो संख्या सूची में अद्यतन करना.
} // spweb वेब का उपयोग = site.openweb()
} // spsite साइट का उपयोग करके नए spsite =("http://लोकलहोस्ट mizuho")
वापस जाएँ nextPoReqNumber;
}
}