خزه: به روز رسانی یک لیست سفارشی

بسیاری از نمونه های خوبی از به روز رسانی لیست سفارشی از طریق SDK وجود دارد. در اینجا است که هنوز یکی دیگر از.

مشکل کسب و کار: فرم InfoPath و طراحی شده است که کاربران را قادر می سازد تا وارد نیازهای خرید آنلاین. شماره PO مصادره باید سنتی ترتیب بر اساس مقادیر صحیح محاسبه و به صورت خودکار.

راه حل کسب و کار: ایجاد یک لیست خزه های سفارشی شامل دو ستون: "ControlField" and "ControlValue". مقدار ستون شامل درخواست خرید شماره بعدی. Note that the generic "control" نامگذاری کنوانسیون را فراهم می کند برای زمینه کنترل آینده ای است که ممکن است مورد استفاده قرار گیرد در صورت نیاز.

راه حل های فنی: ایجاد یک وب سرویس در دسترس مشتری 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 the following line if using designed components
//InitializeComponent();
}

/// <خلاصه>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </خلاصه>
/// <بازده></بازده>
[WebMethod]
عمومی رشته GetNextPoNumber()
{
رشته SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
رشته SpPoControlListName; // Name of the actual MOSS list containing the Po control.

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

رشته nextPoReqNumber = "xyzzy";

با استفاده از (SPSite site = جدید SPSite(SpPoControlSiteName))
{
با استفاده از (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpPoControlListName];

حلقه foreach (SPItem controlItem به currentList.Items)
{

اگر (((رشته)controlItem["ControlField"]).برابر("NextPoNumber"))
{
nextPoReqNumber = (رشته)controlItem["ControlValue"];

اعضای هیات int_nextPoReqNumber;
int_nextPoReqNumber = تبدیل.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")

برگشت nextPoReqNumber;

}
}

یکی در "خزه: به روز رسانی یک لیست سفارشی

  1. KSP نوشته:
    سلام پل,
    ما یک وضعیت مشابه آنچه شما ذکر اما مشکل این است که من می خواهم به استفاده از این servie وب در یک server.Hence تعادل بار,چگونه که مسئولیت رسیدگی به درخواست های همزمانی که در این مورد و یا چگونه به انتظار درخواست جدید و تنها یک درخواست باید تعداد لیست تا پس از آن همه سایر درخواست ها باید در que.Please به روز رسانی اجازه دهید من می دانم که چگونه برای رسیدن به این.
    پیشاپیش سپاسگزاریم.
    پاسخ

ترک پاسخ به KSP نوشته: لغو پاسخ

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *