काई: किसी कस्टम सूची अद्यतन करना

एसडीके के माध्यम से कस्टम सूचियों को अद्यतन करने का बहुत अच्छा उदाहरण हैं. यहाँ है अभी तक एक और.

व्यापार समस्या: 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;

}
}

पर एक विचार "काई: किसी कस्टम सूची अद्यतन करना

  1. KSP लिखा था:
    हाय पॉल,
    हम क्या आप उल्लेख कर रहे हैं एक ऐसी ही स्थिति है, लेकिन समस्या यह है मैं एक लोड संतुलन सर्वर पर इस वेब servie का उपयोग करना चाहते हैं।इसलिए,कैसे इस मामले में संगामिति अनुरोधों को हैंडल करने के लिए या कैसे नया अनुरोध करने के लिए प्रतीक्षा करें और एक ही अनुरोध सूची संख्या तक अद्यतन चाहिए तो अन्य सभी अनुरोध कतार में होना चाहिएकृपया मुझे पता है कि इस लक्ष्य को हासिल करने के लिए कैसे.
    अग्रिम धन्यवाद.

कोई जवाब दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *