MOSS: Taġġorna lista custom

Hemm ħafna eżempji ta 'aġġornar listi dwana permezz tal-SDK. Hawnhekk huwa pass ieħor.

Problema Business: Forma InfoPath ġie ddisinjat li jippermetti lill-utenti li jidħlu requisitions xiri online. Numri rekwiżizzjoni PO għandhom ikunu l-valuri integer bbażati sekwenza tradizzjonali u ikkalkolat awtomatikament.

Soluzzjoni tan-Negozju: Tinħoloq lista MOSS custom fiha żewġ kolonni: "ControlField" and "ControlValue". Il-kolonna valur fih in-numru rekwiżizzjoni xiri li jmiss. Note that the generic "control" ismijiet konvenzjoni jipprovdi għal oqsma futuri tal-kontroll li jistgħu jintużaw kif meħtieġ.

Soluzzjoni teknika: Jinħoloq servizz web aċċessata mill-klijent InfoPath. Is-servizz web jirritorna lura l-għadd li jmiss rekwiżizzjoni xiri u taġġorna l-valur tal-lista.

Lezzjonijiet Meħuda:

  • Meta żżid dan is-servizz web bħala sors ta 'data għall-forma InfoPath, I sabet li kien meħtieġ li jaqilbu għal UDC u jaħżnu fi librerija konnessjoni tad-data.
  • I wkoll sabet li hu meħtieġ biex jippermetti cross dominju scripting permezz ċentrali amministrazzjoni servizzi // ġestjoni applikazzjoni // konfigurazzjoni server forma.
  • L-ewwel darba l-formola ppruvat taċċessa s-servizz web, hija tieħu filwaqt u f'okkażjoni, ikun Time Out. I fiddled mal-settings fil-konfigurazzjoni server formola biex jespandu l-settings timeout u li dehret li jgħinu.

Il-kodiċi:

użu Sistema;
użu System.Web;
użu System.Web.Services;
użu System.Web.Services.Protocols;
użu Microsoft.SharePoint;
użu System.Configuration;

[Webservice(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
pubbliku klassi PoService : System.Web.Services.Webservice
{
pubbliku PoService () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

/// <sommarju>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </sommarju>
/// <prospetti></prospetti>
[WebMethod]
pubbliku string GetNextPoNumber()
{
string SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
string SpPoControlListName; // Name of the actual MOSS list containing the Po control.

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

string nextPoReqNumber = "xyzzy";

użu (SPSite site = ġdid SPSite(SpPoControlSiteName))
{
użu (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpPoControlListName];

foreach (Bżiq controlItem fil currentList.Items)
{

jekk (((string)controlItem["ControlField"]).Ugwali("NextPoNumber"))
{
nextPoReqNumber = (string)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Ikkonverti.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")

ritorn nextPoReqNumber;

}
}

Wieħed ħasbu dwar "MOSS: Taġġorna lista custom

  1. KSP kiteb:
    Hi Paul,
    Għandna sitwazzjoni simili dak li qed isemmi iżda l-problema hija i jridu jużaw din il-web servie fuq server.Hence bilanċ tagħbija,kif tiġġestjona t-talbiet concurrency f'dan il-każ jew kif jagħmlu l-stenna talba ġdida u talba waħda biss għandha taġġorna l-lista numru till imbagħad kull talba oħra għandhom ikunu fis que.Please let me know kif għandu jinkiseb dan.
    Grazzi bil-quddiem.

Ħalli Irrispondi

Your email address mhux se jkun ippubblikat. Meħtieġa oqsma huma mmarkati *