MOSS: Mengemaskini senarai tersuai

Terdapat banyak contoh baik mengemas kini senarai tersuai melalui SDK dalam. Inilah satu lagi.

Masalah perniagaan: Borang InfoPath telah direka yang membolehkan pengguna untuk memasukkan online membeli requisitions. Rekuisisi PO nombor perlu urutan tradisional berasaskan nilai-nilai integer dan dikira secara automatik.

Penyelesaian perniagaan yang: Mencipta senarai MOSS tersuai yang mengandungi kedua-dua Ruang: "ControlField" dan "ControlValue". Lajur nilai yang mengandungi jumlah permintaan pembelian seterusnya. Ambil perhatian bahawa generik "mengawal" konvensyen penamaan menyediakan bidang kawalan masa depan yang boleh digunakan apabila diperlukan.

Penyelesaian teknikal: Mewujudkan sebuah perkhidmatan web yang dilayari pelanggan InfoPath. Perkhidmatan web pulangan semula jumlah permintaan pembelian seterusnya dan mengemaskini nilai senarai.

Pengajaran yang dipelajari:

  • Apabila menambah perkhidmatan web ini sebagai sumber data untuk membentuk InfoPath, Saya mendapati ia perlu untuk mengubahnya menjadi sebuah udc dan menyimpannya ke dalam Perpustakaan sambungan data.
  • Saya juga mendapati ia perlu untuk membolehkan domain salib skrip melalui Perkhidmatan Pusat Pentadbiran // Pengurusan permohonan // Borang konfigurasi pelayan.
  • Pertama borang cuba untuk mengakses perkhidmatan web, Ia mengambil masa dan kadang-kadang, Ia akan keluar masa. Saya fiddled dengan seting dalam konfigurasi pelayan borang memperluaskan seting tamat dan yang seolah-olah membantu.

Kod:

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

[WebService(Ruang nama = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
awam kelas PoService : System.Web.Services.WebService
{
awam PoService () {

//Tanda komentar baris berikut jika menggunakan direka komponen
//InitializeComponent();
}

/// <Ringkasan>
/// Mendapatkan nombor PO seterusnya daripada senarai kawalan nombor sharepoint po.
/// Kenaikan jumlah PO dalam senarai itu.
/// </Ringkasan>
/// <pulangan yang></pulangan yang>
[WebMethod]
awam rentetan GetNextPoNumber()
{
rentetan SpPoControlSiteName; // Nama sebenar tapak MOSS yang menghoskan senarai kawalan PO.
rentetan SpPoControlListName; // Nama sebenar senarai MOSS yang mengandungi kawalan itu Po.

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

rentetan nextPoReqNumber = "xyzzy";

menggunakan (SPSite lokasi = baru SPSite(SpPoControlSiteName))
{
menggunakan (SPWeb web = halaman. OpenWeb())
{

SPList currentList = web. Senarai[SpPoControlListName];

foreach (SPItem controlItem dalam currentList.Items)
{

jika (((rentetan)controlItem["ControlField"]).Adalah sama dengan("NextPoNumber"))
{
nextPoReqNumber = (rentetan)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Menukar.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

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

} // Mengesan, membaca dan mengemaskini jumlah PO dalam senarai.


} // menggunakan spweb web = site.openweb()
} // menggunakan laman web spsite = baru spsite("http://localhost/mizuho")

kembali nextPoReqNumber;

}
}

Satu fikir mengenai "MOSS: Mengemaskini senarai tersuai

  1. M1919 wrote:
    Hi Paul,
    Kita mempunyai situasi yang sama apa yang anda akan menyebut tetapi Masalahnya ialah saya ingin menggunakan servie web ini pada pelayan imbangan beban. Oleh yang demikian,cara untuk mengendalikan permintaan keserempakan dalam hal ini atau bagaimana untuk membuat permohonan baru tunggu dan hanya satu permintaan hendaklah mengemaskini senarai nombor satu hingga maka semua permintaan lain harus di que. Tolong beritahu saya bagaimana untuk mencapai matlamat ini.
    Terima kasih di Advance.
    Balas

Tinggalkan Jawapan

alamat e-mel anda tidak akan diterbitkan. Ruangan yang diperlukan ditanda *