MACHY: Aktualizovanie vlastného zoznamu

Existuje mnoho dobrých príkladov aktualizácie vlastných zoznamov pomocou súpravy SDK. Tu je ďalší.

Obchodné problém: Formulár programu InfoPath bol navrhnutý tak, že umožňuje používateľom zadať online nákup rekvizície. PO požiadaviek čísla by mala byť tradičné postupnosti založené celočíselné hodnoty a vypočítať automaticky.

Obchodné riešenia: Vytvorenie vlastného zoznamu MOSS obsahujúce dva stĺpce: "ControlField" a "ControlValue". Hodnota stĺpca obsahuje ďalšie číslo nákupnej žiadanky. Všimnite si, že generic "ovládanie" konvencia poskytuje pre budúce kontroly polia, ktoré môžu byť použité podľa potreby.

Technické riešenie: Vytvorenie webovej služby prístupné klientovi programu InfoPath. Webová služba vráti späť ďalšie číslo nákupnej žiadanky a aktualizuje hodnotu zoznamu.

Poučenie:

  • Pri pridávaní túto webovú službu ako zdroj údajov pre formulár programu InfoPath, Som zistil, že je potrebné previesť ju MDT a uložte ho do knižnice pripojenia údajov.
  • Som tiež zistil, že potrebné skriptovania cez domény cez centrálne služby správy // Správa aplikácií // formulár servera.
  • Prvýkrát forme sa snažil získať prístup k webovej službe, chvíľu to trvá a príležitostne, to by časový limit uplynul. Som si pohrávala s nastavením v konfigurácii servera formulár rozširovať nastavenia časového limitu a ktoré zrejme pomôcť.

Kód:

pomocou Systém;
pomocou System.Web;
pomocou System.Web.Services;
pomocou System.Web.Services.Protocols;
pomocou Microsoft.SharePoint;
pomocou System.Configuration;

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

//Odkomentovat nasledujúci riadok, ak používate navrhnuté súčasti
//InitializeComponent();
}

/// <Zhrnutie>
/// Získať ďalšie PO číslo zo zoznamu lokality sharepoint po číslo kontroly.
/// Prírastok číslo nákupnej objednávky v tomto zozname.
/// </Zhrnutie>
/// <Vráti></Vráti>
[WebMethod]
verejné reťazec GetNextPoNumber()
{
reťazec SpPoControlSiteName; // Názov aktuálnej stránky MOSS, ktorá je hostiteľom zoznamu PO.
reťazec SpPoControlListName; // Meno skutočného MOSS zoznam obsahujúci Po kontrole.

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

reťazec nextPoReqNumber = "xyzzy minového";

pomocou (SPSite stránky = nové SPSite(SpPoControlSiteName))
{
pomocou (SPWeb webové stránky =. OpenWeb())
{

SPList currentList = web. Zoznamy[SpPoControlListName];

foreach (SPItem controlItem v currentList.Items)
{

Ak (((reťazec)controlItem["ControlField"]).Equals("NextPoNumber"))
{
nextPoReqNumber = (reťazec)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Previesť.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

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

} // Umiestnenie, čítanie a aktualizácia číslo nákupnej objednávky v zozname.


} // pomocou spweb web = site.openweb()
} // pomocou spsite stránky = nové spsite("http://localhost/mizuho")

return nextPoReqNumber;

}
}

Jeden myslel na "MACHY: Aktualizovanie vlastného zoznamu

  1. KSP wrote:
    Ahoj Pavla,
    Máme podobnú situáciu čo ste sú zmienku, ale problém je, chcem použiť tento web Servië na serveri zaťaženie bilancie.Preto,ako v tomto prípade žiadosťami súbežnosť alebo ako podať novú žiadosť počkať a len jedna žiadosť by mal aktualizovať zoznam číslo až potom všetky ostatné požiadavky by mali byť v queProsím, dajte mi vedieť, ako to dosiahnuť.
    Thanks in Advance.
    Odpoveď

Zanechajte odpovedať na KSP wrote: zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *