Kategooria Arhiiv: MOSS

MOSS Täpsem otsing kohandamine — Nii asi Täpsem otsing XSLT

Ärge muutke täpsema otsingu XSLT väga sageli, nii tundub, et olen ronida väikseid künkaid iga kord.

Minu uusim õppetund on see: Juhul on tähtis, kui viitate veerg. Minu Täpsem otsing, Mul on see määratletud veergude:

<juur xmlns:Xsi="http://www.w3.org/2001/XMLSchema-instance">
<
Veerud>
<
Veerg Nimi="GafTrainingInvoiceNumber" />
<
Veerg Nimi="GafTrainingInvoiceLocation" />
<
Veerg Nimi="Töö ID"/>
<
Veerg Nimi="Rank"/>
<
Veerg Nimi="Pealkiri"/>
<
Veerg Nimi="Autor"/>
<
Veerg Nimi="Suurus"/>
<
Veerg Nimi="Tee"/>
<
Veerg Nimi="Kirjeldus"/>
<
Veerg Nimi="Kirjutage"/>
<
Veerg Nimi="SiteName"/>
<
Veerg Nimi="CollapsingStatus"/>
<
Veerg Nimi="HitHighlightedSummary"/>
<
Veerg Nimi="HitHighlightedProperties"/>
<
Veerg Nimi="ContentClass"/>
<
Veerg Nimi="IsDocument"/>
<
Veerg Nimi="PictureThumbnailURL"/>
</
Veerud>
</
juur>

Kuvatakse arve number ja arve asukoht XLST olnud:

<p>
Koolituse arve Number: <XSL-i:väärtuse kohta Valige="GafTrainingInvoiceNumber"/>
<
br></br>
Koolituse arve asukoht: <XSL-i:väärtuse kohta Valige="GafTrainingInvoiceLocation"/>
</
p>

Aga, valimine on viitamiseks vara kõiki väiketähti, nagu ka:

<p>
Koolituse arve Number: <XSL-i:väärtuse kohta Valige="gaftraininginvoicenumber"/>
<
br></br>
Koolituse arve asukoht: <XSL-i:väärtuse kohta Valige="gaftraininginvoicelocation"/>
</
p>


Kuni ma korrigeeritud mis, Otsingu tulemused näitasid Sildid (St. "Koolituse arve Number") aga pole andmeid.

MOSS / InfoPath Forms Server (InfoPath 2007) ripploendi tulemuslikkuse

Täiendav kategooria: InfoPath

Kokkuvõte: InfoPathi 2007 MOSS serveri kasutusele võtta vorm pakub seotud kohandatud MOSS loend hankijate loendist. Pärast hankijat, Reeglid määrata väljaväärtused käputäis tekstiväljad nagu müügiesindaja nimi, aadress, City, riik, ZIP ja telefoni. Jõudlus on jube. Märkame tulemuslikkuse süveneb (mittelineaarsete viisil) iga täiendav välja uuendame sel viisil. St, Kui me lihtsalt uuendatud müügiesindaja nimi, See võtab [x] aeg. Kui me update müügiesindaja, address1, aadress 2, City, riik, ZIP, See võtab 10 korda pikem.

Lahus: Kirjutage veebiteenusele (proovi kood võib leida Siin) hankija nime vastu ning tagastab tagasi müüja andmed. Seejärel, määrata väljad nii. Kuigi see tundub liiga aeglane, puudus tajutavatest erinevus tulemuslikkuse kui oleme määratud 1 väli versus 8 väljad. Lisaboonusena, Kasutajad saavad "ühendust server lahe" Cylon mõju kui nad oodata vormi kasutada ja tarbida teenuse tulemusi.

MOSS: Ilmnes erand. (HRESULT Erandina: 0x 80020009 (DISP_E_EXCEPTION))

VÄRSKENDUS: Me kunagi kindlaks algpõhjus see probleem ja see kunagi pind uuesti.

Märkame, et äkki rakendamisel arengu veebilehte, kaks kasutajat ei saa saidikogumi juurdepääsu. Need kontod saab autentimiseks, main Site, Aga kui proovin avada mõne kindla saidikogumi, nad lihtsalt saada tühi ekraan. Tõrkeid ei kuvata, vaid tühi valge leht.

Me saidikogumi administraator sisse logida ja proovida lisada üks neist kasutajatest saidi admin ja seekord, pärast pressimist "OK", Me saame seda teadet:

Ilmnes erand. (HRESULT Erandina: 0x 80020009 (DISP_E_EXCEPTION))

Veetsime aega uurides seda ja kahjuks, ei tulla midagi kasulikku. Seal olid mõned sõnumid diagnostikalogi, Aga see oli raske täpselt neid korrelatsioonis probleemi.

Aasta lõpus, Me saidikogumi kustutada ja uuesti luua ning et lahendada see.

Kui ma aru saada, mis põhjustas selle tulevikus, Ma ajakohastavad seda postitust.

MOSS: Iterating läbi kohandatud loendite ja filtreeritud andmeid tulles InfoPath

Äri stsenaariumi:

Meetodit, mis võimaldab kasutajatel kiiresti sisestada täpne ostu ostutellimused.

Äriprobleemi:

Kliendi ärisuhetes mitu sada hankijatega.

Müüjad on "tüüp" konkreetsete. See tähendab, et müüja müüb arvutiseadmed (näiteks. Dell) või kontoritarbed (näiteks. Klambrid).

Kuidas lubada lõppkasutajatele, kes loomine ost ostutellimused Vali sobiv hankija?

Majandustarkvaraga:

Eristada hankijate süsteemi kaudu "tüüp".

Kasutajatele võimaluse valida tüüp"" toote andmete filtreeritud komplekti sobiv müüjad.

Tehniline lahendus:

InfoPathi vorm on mõeldud võimaldab kasutajatel sisestada online osta ostutellimused.

Kaks InfoPathi valikute kontrollida hankija valik. Esimese, Kui kasutaja valib "ostu tüüp". See piirab teise valiku loendi sisaldavad ainult müüjad, kes müüvad selle ostu jaoks. See on klassikaline kuhjuvate rippmenüü.

Hankijate salvestatakse MOSS kohandatud loendi kohandatud veerud hankija atribuute nagu nimi, aadress ja eriti "tüüp".

Rakendada InfoPathi kliendiga tarbida mis veebiteenuse itereerib kohandatud loendi kaudu, tagasi ainult müüjad sobitamine esitatud "tüüp".

Kasuta web teenust InfoPath vormi kaudu.

Õppetunnid:

  • Esimese, vaja minna seda teed. Ma oleksin eelistanud teha täiesti InfoPathist filtreerimine ja ei tekita mingeid web service funktsionaalsust siin. Aga, Forms server ei esita nõutud filtreerimise võimalus. Panime peale reegel on "tüüp" valikuloend omamoodi uuesti avada hankija päringu vorm, kuid me ei saa seda tööd korralikult. Seetõttu, tuli rakendada web service.
  • See on klassikaline "kuhjuvate valiku loend" probleem InfoPathi vormid server maailma ja on palju häid näiteid seal, mis selgitavad, kuidas seda probleemi lahendada.
  • Hankijate loendis veeru tühiväärtus tagastada tühja stringi kui sellist, millele viitab: initItem["Hankija nimi"]. Selle asemel, See annab vastuseks väärtust null.

Mõned muud märkused:

  • Tagastab massiivi[] müüjad, sest mul oli raskusi, tagastades oma loendit ArrayList. InfoPathi oli kurtnud seda ja mul ei olnud aega või kalduvus võidelda üle. See, Muidugi, paneb kunstlikku piiri kokku mitu hankijat. See ka sundida mind rakendada trimmi() massiivi meetodiga, sest ma vihkan idee tagasi tagasi 100 nullväärtusega hankijate. InfoPath ei hooli, kuid see nagged mind. (Uuesti, See oli lihtsam kui InfoPath όle ArrayLists).
  • Rakendatud on GetSpecificVendorByName() Samuti funktsioon, mis võib olla õpetlik.

Kood:

kasutades Süsteemi;
kasutades System.Web mitu;
kasutades System.Web.Services;
kasutades System.Web.Services.Protocols;
kasutades Microsoft.SharePoint;
kasutades System.Configuration;

/// <Kokkuvõte>
///
Hankija teenus: Pakub hankija seotud teenused, mis täna tarbib InfoPathi kliendiga vormi.
///
/// Ajalugu:
/// ——–
/// 07/24/07: Esialgse kodeerimine, Paul J. Gavin Conchango.
///
/// </Kokkuvõte>
[Veebiteenuse(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
avalik klass VendorService : System.Web.Services.Veebiteenuse
{

/// <Kokkuvõte>
/// Esindab hankija poolt MSUSA kohandatud SharePointi loendist.
/// </Kokkuvõte>
avalik klass Hankija
{
avalik Hankija() { }

avalik Hankija(SPItem initItem)
{
Kui (! (initItem["Hankija nimi"] == null)) VendorName = initItem["Hankija nimi"].ToString();
Kui (! (initItem["Aadress 1"] == null)) VendorAddress1 = initItem["Aadress 1"].ToString();
Kui (! (initItem["Aadress 2"] == null)) VendorAddress2 = initItem["Aadress 2"].ToString();
Kui (! (initItem["City"] == null)) VendorCity = initItem["City"].ToString();
Kui (! (initItem["VendorPhone"] == null)) VendorPhone = initItem["VendorPhone"].ToString();
Kui (! (initItem["PurchaseType"] == null)) VendorType = initItem["PurchaseType"].ToString();
Kui (! (initItem["Riik"] == null)) VendorState = initItem["Riik"].ToString();
Kui (! (initItem["Zip"] == null)) VendorZip = initItem["Zip"].ToString();
Kui (!(initItem["Faks"] == null)) VendorFax = initItem["Faks"].ToString();
Kui (!(initItem["SalesRepName"] == null)) VendorSalesRepName = initItem["SalesRepName"].ToString();

VendorItemId = initItem.ID; // Via MOSS säilitada ainu-ID.
}

avalik int VendorItemId;
avalik stringi VendorName;
avalik stringi VendorAddress1;
avalik stringi VendorAddress2;
avalik stringi VendorCity;
avalik stringi VendorState;
avalik stringi VendorZip;
avalik stringi VendorPhone;
avalik stringi VendorType;
avalik stringi VendorSalesRepName;
avalik stringi VendorFax;
}

avalik VendorService () {

//Eemalda kommentaar rea kui kasutades loodud komponendid
//InitializeComponent();
}

erasektori Hankija[] GenerateTestVendors()
{
Hankija[] resultList;
resultList = Uus Hankija[100];

Hankija v;
v = Uus Hankija();
v.VendorAddress1 = "v1_address1";
v.VendorAddress2 = "v1_address2";
v.VendorCity = "v1_city";
v.VendorName = "v1_vendorname";
v.VendorPhone = "v1_vendorphone";
v.VendorState = "v1_st";
v.VendorType = "v1_type";
v.VendorZip = "v1_zip";

resultList[0] = v;

v = Uus Hankija();

v.VendorAddress1 = "v2_address1";
v.VendorAddress2 = "v2_address2";
v.VendorCity = "v2_city";
v.VendorName = "v2_vendorname";
v.VendorPhone = "v2_vendorphone";
v.VendorState = "v2_st";
v.VendorType = "v2_type";
v.VendorZip = "v2_zip";

resultList[1] = v;

v = Uus Hankija();
v.VendorAddress1 = "v3_address1";
v.VendorAddress2 = "v3_address2";
v.VendorCity = "v3_city";
v.VendorName = "v3_vendorname";
v.VendorPhone = "v3_vendorphone";
v.VendorState = "v3_st";
v.VendorType = "v3_type";
v.VendorZip = "v3_zip";

resultList[2] = v;

edasi-tagasi resultList;

}

[WebMethod]
avalik Hankija GetSpecificVendorById(int vendorId)
{
stringi SpVendorSiteName; // Tegelik MOSS veebilehekülg, mis majutab kohandatud loendi nimi.
stringi SpVendorListName; // Tegelik MOSS loend, mis sisaldab müüjate nimi.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

kasutades (SPSite'i Site = Uus SPSite'i(SpVendorSiteName))
{

kasutades (SPWebi Web = site. OpenWeb())
{

SPList currentList = web. Nimekirjad[SpVendorListName];

SPItem specificItem = currentList.Items[vendorId];

edasi-tagasi Uus Hankija(specificItem);

} // kasutades spweb web = site.openweb()
} // kasutate SPSite'i koduleheküljel = uue SPSite'i("http://localhost/mizuho")

}

[WebMethod]
// Eeldab, et müüja nimi on ainulaadne, vaatenurgast
avalik Hankija GetSpecificVendorByVendorName(stringi tuleb)
{
stringi SpVendorSiteName; // Tegelik MOSS veebilehekülg, mis majutab kohandatud loendi nimi.
stringi SpVendorListName; // Tegelik MOSS loend, mis sisaldab müüjate nimi.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

kasutades (SPSite'i Site = Uus SPSite'i(SpVendorSiteName))
{
kasutades (SPWebi Web = site. OpenWeb())
{

SPList currentList = web. Nimekirjad[SpVendorListName];

foreach (SPItem vendorItem aastal currentList.Items)
{
Kui (vendorItem["Hankija nimi"] == null) jätkata;

Kui (vendorItem["Hankija nimi"].ToString().Võrdub(tuleb))
edasi-tagasi Uus Hankija(vendorItem);
}

Hankija v = Uus Hankija();
v.VendorPhone = "ei leitud: " + tuleb;

edasi-tagasi v;

edasi-tagasi null;

} // kasutades spweb web = site.openweb()
} // kasutate SPSite'i koduleheküljel = uue SPSite'i("http://localhost/mizuho")

} // meetod

[WebMethod]
avalik Hankija[] GetVendorsOfType (stringi filterType)
{

stringi SpVendorSiteName; // Nime tegelik MOSS veebilehekülg, mis majutab t
He hankija kohandatud loend.
stringi SpVendorListName; // Tegelik MOSS loend, mis sisaldab müüjate nimi.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

Hankija[] resultList;
int vendorIndex = 0;
resultList = Uus Hankija[1000];

// Lähtesta loend koos vaikesõnumiga sõbralik.
Hankija v = Uus Hankija();
v.VendorName = "Valige hankija tüüpi selle loendi asustamiseks.";
resultList[0] = v;

// Teisenda filter väiketäheliseks lihtsam hiljem string võrdlus.
filterType = filterType.ToLower();

// Kui filtritüüpi edasi on "test", mõned lihtsad andmete loomiseks.
#piirkond Filtreerida type = "testi"
Kui (filterType. võrdub("katse"))
edasi-tagasi GenerateTestVendors();
#endregion

Kui (True)
{
kasutades (SPSite'i Site = Uus SPSite'i(SpVendorSiteName))
{
kasutades (SPWebi Web = site. OpenWeb())
{

v = null;

SPList currentList = web. Nimekirjad[SpVendorListName];

// Itereerima läbi kõigi kaupade hankijate loend.
foreach (SPItem vendorItem aastal currentList.Items)
{

stringi lowerVendorType;

lowerVendorType = vendorItem["PurchaseType"].ToString().ToLower();
lowerVendorType = lowerVendorType.Substring(3);

Kui (lowerVendorType. võrdub(filterType))
{
resultList[vendorIndex ] = Uus Hankija(vendorItem);
}
} // iterating läbi kõigi hankijate loendis


edasi-tagasi TrimVendorArray(vendorIndex, resultList);
// tagasi resultList;

} // kasutades spweb web = site.openweb()
} // kasutate SPSite'i koduleheküljel = uue SPSite'i("http://localhost/mizuho")

} // kui tõene

edasi-tagasi null;
}

erasektori Hankija[] TrimVendorArray(int newsize, Hankija[] originalVendorArray)
{
Hankija[] trimmedArray;

Kui (newsize == 0) newsize = 1;
trimmedArray = Uus Hankija[newsize];

int currentCounter = 0;

jaoks (currentCounter = 0; currentCounter < newsize; currentCounter )
{
trimmedArray[currentCounter] = originalVendorArray[currentCounter];
}

edasi-tagasi trimmedArray;

}
}