MOSS: Opdatering van 'n persoonlike lys

Daar is baie goeie voorbeelde van die opdatering van persoonlike lyste via die SDK. Hier is nog 'n.

Besigheid probleem: Path vorm ontwerp wat gebruikers in staat stel aanlyn aankooprekwisisies te betree. PO rekwisisienommers moet tradisionele volgorde gebaseerde heelgetalwaardes en bereken outomaties.

Business Solution: Skep 'n persoonlike MOSS lys met twee kolomme: "ControlField" and "ControlValue". Die waarde kolom bevat die volgende aankoop rekwisisienommer. Note that the generic "control" naamkonvensie maak voorsiening vir die toekoms beheer velde wat gebruik kan word as dit nodig is.

Tegniese oplossing: Skep 'n web diens verkry word deur die Path kliënt. Die web diens terug terug die volgende aankooprekwisisie nommer en updates die waarde van die lys.

Lesse wat geleer:

  • Wanneer jy hierdie web diens as 'n data bron aan die Path vorm, Ek het gevind dat dit nodig is om dit te omskep in 'n UDC en stoor dit in 'n data verband biblioteek.
  • Ek het ook gevind dat dit nodig is om kruis domein script via sentrale Dienste Administrasie // aansoek bestuur // vorm bediener verstellings.
  • Die eerste keer wat die vorm het probeer om die web om toegang te verkry, dit neem 'n rukkie en op die geleentheid, sou dit 'n afsnytyd. Ek vroetel met instellings in vorm bediener verstellings die time-out instellings uit te brei en in die oë te help.

Die kode:

die gebruik van Stelsel;
die gebruik van System.Web;
die gebruik van System.Web.Services;
die gebruik van System.Web.Services.Protocols;
die gebruik van Microsoft.SharePoint;
die gebruik van System.Configuration;

[WebService(Namespace = "Http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
openbare klas PoService : System.Web.Services.WebService
{
openbare PoService () {

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

/// <opsomming>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </opsomming>
/// <opbrengste></opbrengste>
[WebMethod]
openbare 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";

die gebruik van (SPSite site = nuwe SPSite(SpPoControlSiteName))
{
die gebruik van (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpPoControlListName];

foreach (SPItem controlItem in currentList.Items)
{

indien (((string)controlItem["ControlField"]).Equals("NextPoNumber"))
{
nextPoReqNumber = (string)controlItem["ControlValue"];

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

terugkeer nextPoReqNumber;

}
}

Een gedagte oor “MOSS: Opdatering van 'n persoonlike lys

  1. KSP wrote:
    Hi Paul,
    We have a similar situation what you are mentioning but the problem is i want to use this web servie on a load balance server.Hence,how to handle concurrency requests in this case or how to make the new request wait and only one request should update the list number till then all other requests should be in que.Please let me know how to achieve this.
    Dankie by voorbaat.
    Antwoord

Laat 'n antwoord

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk *