MOSS: Actualizarea o listă particularizată

Există multe exemple bune liste particularizate prin intermediul SDK-ul de actualizare. Aici este încă un alt.

Problema de afaceri: Formular InfoPath a fost conceput, care permite utilizatorilor să intre online cumpăraţi rechiziţiile. PO aprovizionare numere ar trebui să fie secvenţă tradiţionale bazate pe valori şi calculează automat.

Soluţie de afaceri: Crea o listă personalizată de muşchi care conţine două coloane: "ControlField" şi "ControlValue". Coloana valoare conţine următorul număr de aprovizionare cumpărare. Reţineţi că generic "control" Convenţia prevede controlul viitoare câmpuri care pot fi utilizate după cum este necesar.

Soluţii tehnice: Creaţi un serviciu web accesate de catre client de InfoPath. Serviciul web se întoarce înapoi la următorul număr de aprovizionare de cumpărare şi actualizează valoarea de listă.

Lecţiile învăţate:

  • Când adăugaţi acest serviciu web ca o sursă de date formular InfoPath, L-am găsit necesar să convertizor it la spre un CZU şi stocaţi-o într-o bibliotecă de conexiuni de date.
  • Am găsit-o, de asemenea, necesare pentru a permite transdomeniu scripting prin intermediul serviciilor centrale administraţiei // management aplicație // formular de configurare a serverului.
  • Prima data încercat forma pentru a accesa serviciul web, este nevoie de o perioada de timp şi cu ocazia, ar fi timpul. Am gadila cu setările în formă de server de configurare pentru a extinde setările de expirare şi care părea să ajute.

Codul:

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

[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
publice Clasa PoService : System.Web.Services.WebService
{
publice PoService () {

//Decomentaţi următoarea linie dacă utilizaţi componentele proiectate
//InitializeComponent();
}

/// <Rezumat>
/// Obţine următorul număr PO la po numărul de control listă sharepoint.
/// Incrementului PO numărul în listă.
/// </Rezumat>
/// <întoarce></întoarce>
[WebMethod]
publice şir GetNextPoNumber()
{
şir SpPoControlSiteName; // Numele site-ului MOSS reale care găzduieşte lista de PO Control.
şir SpPoControlListName; // Numele din lista de MOSS reale care conţine controlul Po.

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

şir nextPoReqNumber = "xyzzy";

folosind (SPSite site-ul = noi SPSite(SpPoControlSiteName))
{
folosind (SPWeb web = site-ul. OpenWeb())
{

SPList.Update() currentList = web. Liste[SpPoControlListName];

foreach (SPItem controlItem în currentList.Items)
{

Dacă (((şir)controlItem["ControlField"]).Este egal cu("NextPoNumber"))
{
nextPoReqNumber = (şir)controlItem["ControlValue"];

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

int_nextPoReqNumber ;

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

} // Localizarea, lectură şi actualizarea PO numărul din lista.


} // folosind spweb web = site.openweb()
} // folosind site-ul spsite = nou spsite("http://localhost/mizuho")

reveni nextPoReqNumber;

}
}

Un gând pe „MOSS: Actualizarea o listă particularizată

  1. KSP wrote:
    Hi Paul,
    Avem o situaţie similară ce sunt menţionând, dar problema este doriţi să utilizaţi acest servie web pe un server de echilibru sarcină.Prin urmare,cum să se ocupe de concurenţă de cereri în acest caz sau cum să facă cerere nou aşteptaţi şi doar o singură cerere ar trebui să actualizeze lista numărul pana atunci toate celelalte cereri ar trebui să fie în que.Vă rugăm să-mi spuneţi cum de a realiza acest lucru.
    Mulţumesc în avans.
    Răspuns

lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *