Odeslal jsem inzerát na prodej auta v Bergen county, NJ v neděli večer. Krátce poté dostal několik dotazů prostřednictvím e-mailu a uzavřel dohodu s někým v úterý večer.
Až příliš dobrý být pravdivý …
Odeslal jsem inzerát na prodej auta v Bergen county, NJ v neděli večer. Krátce poté dostal několik dotazů prostřednictvím e-mailu a uzavřel dohodu s někým v úterý večer.
Až příliš dobrý být pravdivý …
Nechci měnit rozšířené hledání XSLT velmi často, tak vypadá to, že stoupám malé kopce pokaždé.
Moje nejnovější lekce je to: Záleží při odkazu na sloupec. V mém pokročilém vyhledávání, Já mít sloupce definovány jako:
<kořen xmlns.:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Sloupce>
<Sloupec Jméno="GafTrainingInvoiceNumber" />
<Sloupec Jméno="GafTrainingInvoiceLocation" />
<Sloupec Jméno="WorkId"/>
<Sloupec Jméno="Pořadí"/>
<Sloupec Jméno="Titul"/>
<Sloupec Jméno="Autor"/>
<Sloupec Jméno="Velikost"/>
<Sloupec Jméno="Cesta"/>
<Sloupec Jméno="Popis"/>
<Sloupec Jméno="Zápis"/>
<Sloupec Jméno="Název serveru"/>
<Sloupec Jméno="CollapsingStatus"/>
<Sloupec Jméno="HitHighlightedSummary"/>
<Sloupec Jméno="HitHighlightedProperties"/>
<Sloupec Jméno="ContentClass"/>
<Sloupec Jméno="IsDocument"/>
<Sloupec Jméno="PictureThumbnailURL"/>
</Sloupce>
</kořen>
XLST, zobrazující umístění faktury číslo a faktura byla:
<p>
Číslo faktury školení: <XSL:hodnota z vybrat="GafTrainingInvoiceNumber"/>
<BR></BR>
Místo faktury vzdělávání: <XSL:hodnota z vybrat="GafTrainingInvoiceLocation"/>
</p>
Avšak, select musí odkazovat na vlastnost všech malými písmeny, stejně jako v:
<p>
Číslo faktury školení: <XSL:hodnota z vybrat="gaftraininginvoicenumber"/>
<BR></BR>
Místo faktury vzdělávání: <XSL:hodnota z vybrat="gaftraininginvoicelocation"/>
</p>
Dokud jsem se opravil, výsledky hledání ukázal štítky (tj. "Číslo faktury školení") ale žádná data.
Obchodní scénář:
Celopodnikové implementace Moss pro výrobní společnosti s 30+ sítě a pár desítek firemních oddělení.
Předmět podnikání:
I přes velké množství obchodních skupin (oddělení, umístění, atd), některé údaje by měla být udržována na globální úrovni. Například, autoritativní hlavní seznam všech fyzické umístění firmy (např.. výrobní zařízení, skladových lokací, prodejní kanceláře) by měl být zachován v centrálním umístění.
Technický problém:
Taxonomie organizace byl realizován pomocí více kolekcí webů. Bychom si přáli vytvořit autoritativní seznam fyzické umístění v seznamu vlastní WSS. Pak, Když jsme potřebovali mít sloupce typu obsahu (nebo sloupec do seznamu nebo dokumentu knihovny) který obsahoval místech firmy, Vytváříme sloupec pomocí vyhledávání"" datový typ a poukazují na tento hlavní seznam.
Bohužel, datové typy vyhledávání musí mít přístup k seznamu zdroj "místně" což znamená, že náš autoritativní seznam nemůže zahrnovat kolekce webů.
Technické řešení:
Zavést nový vlastní datový typ implementována na základě SPField a jako DropDownList v uživatelském rozhraní, jehož položky ListItems naplnit z hlavního seznamu WSS.
Vytvořili jsme novou kolekci webů, které se nazývá "http://localhost/EnterpriseData". Tam, vytvořili jsme vlastní seznam s názvem "Firemní místa". Tento seznam používá standardní titul"" pole obsahující seznam skutečných místech firmy.
Jeden následuje několik samostatných kroků k vytvoření vlastní datový typ v WSS. Jsou to:
Zde je kód, který:
veřejné Třída XYZZYCorporateLocationField : SPFieldText
{
veřejné XYZZYCorporateLocationField
(Třídy SPFieldCollection pole, řetězec typeName, řetězec displayName)
: základna(pole, typeName, displayName) { }
veřejné XYZZYCorporateLocationField
(Třídy SPFieldCollection pole, řetězec displayName)
: základna(pole, displayName) { }
veřejné přepsat BaseFieldControl FieldRenderingControl
{
získat
{
BaseFieldControl ovládací prvek = nové XYZZYCorporateLocationFieldControl();
ovládací prvek. Název = to.InternalName;
návrat ovládací prvek;
} //získat
} // fieldrenderingcontrol
veřejné přepsat řetězec GetValidatedString(objekt hodnota)
{
Pokud (to.Požadováno || hodnota. ToString().Rovná se(Řetězec.Prázdný))
{
hod nové SPFieldValidationException ("Oddělení není přiřazeno.");
}
návrat základna.GetValidatedString(hodnota);
} // getvalidatedstring
} // XYZZYCorporateLocation
veřejné Třída XYZZYCorporateLocationFieldControl : BaseFieldControl
{
chráněná DropDownList XYZZYCorporateLocationSelector;
chráněná přepsat řetězec DefaultTemplateName
{
získat
{
návrat "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
veřejné přepsat objekt Hodnota
{
získat
{
EnsureChildControls();
návrat to.XYZZYCorporateLocationSelector.SelectedValue;
} // získat
nastavit
{
EnsureChildControls();
to.XYZZYCorporateLocationSelector.SelectedValue = (řetězec)to.ItemFieldValue;
} // nastavit
} // přepsat objekt hodnoty
chráněná přepsat void CreateChildControls()
{
Pokud (to.Pole == null || to.ControlMode == SPControlMode.Displej)
návrat;
základna.CreateChildControls();
to.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");
Pokud (to.XYZZYCorporateLocationSelector == null)
hod nové Výjimka("CHYBA: Nelze načíst. Soubor ASCX!");
Pokud (!to.IsPostBack)
{
použití (SPSite místo = nové SPSite("http://localhost/enterprisedata"))
{
použití (SPWeb webové stránky =. OpenWeb())
{
SPList.Update() currentList = www. Seznamy["Firemní místa"];
foreach (SPItem XYZZYCorporateLocation v currentList.Items)
{
Pokud (XYZZYCorporateLocation["Titul"] == null) «««;
řetězec znázorňující pole název;
znázorňující pole název = XYZZYCorporateLocation["Titul"].ToString();
to.XYZZYCorporateLocationSelector.Items.Add
(nové ListItem(znázorňující pole název, znázorňující pole název));
} // foreach
} // použití webu spweb = site.openweb()
} // pomocí webů spsite = nové spsite("http://localhost/enterprisedata")
} // ne-li zpětné volání
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Výše uvedený kód v podstatě implementuje logiku pro vyplnění DropDownList s hodnotami z vlastního seznamu WSS na http://localhost/enterprisedata a s názvem "podnikové oddělení".
Jsem obě třídy definované v jediné .cs souboru, při kompilaci a dát ji do GAC (silné požadováno, Samozřejmě).
<%@ Ovládací prvek Jazyk= "C#" Dědí="Microsoft.SharePoint.Portal.serveradmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Verze = 12.0.0.0, kultura = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Vždy" %>
<%@ Registrace Tagprefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Montáž="Microsoft.SharePoint, Verze = 12.0.0.0, Kultura = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Registrace Tagprefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Montáž="Microsoft.SharePoint, Verze = 12.0.0.0, Kultura = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:Šablonu vykreslování pro ID= "XYZZYCorporateLocationFieldControl" runat= "server">
<Šablona>
<prostředí ASP:DropDownList ID= "XYZZYCorporateLocationSelector" runat= "server" />
</Šablona>
</SharePoint:Šablonu vykreslování pro>
Výše uvedené je uložena do c:\Program filescommon filesmicrosoft sharedweb server extensions12controltemplates.
<?XML verze="1.0" kódování="UTF-8" ?>
<FieldTypes>
<FieldType>
<Pole Jméno="TypeName">CorporateLocations</Pole>
<Pole Jméno="ParentType">Text</Pole>
<Pole Jméno="TypeDisplayName">Firemní místa</Pole>
<Pole Jméno="TypeShortDescription">Všechna firemní XYZZY umístění včetně výrobní nebo jiné zařízení.</Pole>
<Pole Jméno="UserCreatable">PRAVDA</Pole>
<Pole Jméno="ShowInListCreate">PRAVDA</Pole>
<Pole Jméno="ShowInDocumentLibraryCreate">PRAVDA</Pole>
<Pole Jméno="ShowInSurveyCreate">PRAVDA</Pole>
<Pole Jméno="ShowInColumnTemplateCreate">PRAVDA</Pole>
<Pole Jméno="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Verze = 1.0.0.0, Kultura = neutral, PublicKeyToken = b0b19e85410990c4</Pole>
<RenderPattern Jméno="DisplayPattern">
<Spínač>
<Výraz>
<Sloupec />
</Výraz>
<Případ Hodnota=""/>
<Výchozí>
<HTML>
<![CDATA[<span style = "color:Červená"><b>]]>
</HTML>
<Sloupec SubColumnNumber="0" HTMLEncode="PRAVDA"/>
<HTML><![CDATA[</b></rozpětí>]]></HTML>
</Výchozí>
</Spínač>
</RenderPattern>
</FieldType>
</FieldTypes>
Tento XML soubor přidá vlastní datový typ WSS "knihovna" a zápasy proti GAC měli shromáždění.
Po přesunutí všech těchto bitů na místo, iisreset na serveru a to by všichni začneme pěkně pracovat.
Další kategorie: CAML
Tady je skvělý zaúčtování podle chlapík jménem "craig" na techniku pro nalezení CAML definice pro pole typy obsahu založené mimo live definice z webu.
Jeho vyslání mluví za vše. Ve zkratce:
Další kategorie: Visual Studio 2005
Povolení technologie intellisense užitečných funkcí, prvky, atd v aplikaci visual studio 2005:
Pro tento dokument XML je nyní povolena technologie IntelliSense.
Viz Tady Další informace o tomto tématu a pokyny o jak automaticky přiřadit WSS intellisense s jakýkoliv XML souboru.
Vzal a výše uvedené zkoušky ráno. Našel jsem na zkoušku obtížné a spravedlivé.
Je relativní nedostatek informací o této zkoušky na webu. Nejsem si jistý proč.
Zřejmě nedostane do všech detailů o zkoušku, kterou jsem si vzal, ale myslím, že můžu klidně říci následující:
Je to seznam, co potřebujete vědět, aby se složit zkoušku a to, IMO, velmi přesné.
</Konec>Přihlásit se na mém blogu!
Další kategorie: Aplikace InfoPath
Shrnutí: Aplikace InfoPath 2007 formuláře na MOSS server nabízí rozevírací seznam dodavatelů k vlastní seznam MOSS. Při výběru dodavatele, pravidla pole hodnoty přiřadit několik textových polí, například jméno obchodního zástupce, adresa, město, stát, zip a telefon. Výkon je hrozné. Všimněte si, že jsme horší výkon (v non-lineárně) pro každé další pole budeme aktualizovat tímto způsobem. Tj, kdybychom prostě aktualizovat název obchodního zástupce, to trvá [x] množství času. Pokud budeme aktualizovat obchodní zástupce, Address1, adresa2, město, stát, zip, to trvá 10 krát delší.
Řešení: Psát webové služby (Ukázkový kód lze nalézt Tady) To je předán název dodavatele a vrátí zpět detaily dodavatele. Pak, přiřadit pole tak. Ačkoliv se to zdá příliš pomalu, neexistoval viditelnému rozdíl ve výkonu, když jsme přiřadili 1 pole versus 8 pole. Jako bonus, Uživatelé si cool "kontaktování serveru" Cylon účinek, zatímco oni čekají na formuláři pro vyvolání a konzumovat služby výsledky.
AKTUALIZOVAT: Nikdy jsme znovu určit příčinu tohoto problému a to nikdy povrchu.
Jsme si tak náhle během zavádění vývoj webu, dva uživatelé nebudou moci získat přístup kolekci webů. Tyto účty lze ověřit na hlavní stránku, Ale při pokusu o přístup k určité webů kolekce, dostanou jen prázdná obrazovka. Žádné chyby, jen bílý prázdná stránka.
Jsme se přihlásit jako správce kolekce webů a pokusíte se přidat jeden z těchto uživatelů jako správce webu a tentokrát, po stisknutí "OK", dostaneme zprávu:
Došlo k výjimce.. (Výjimka z HRESULT: 0x 80020009 (DISP_E_EXCEPTION))
Jsme strávili nějaký čas to zkoumá a bohužel, Nechtěl přijít s něčím užitečné. Tam byly nějaké zprávy v protokolu diagnostiky, Ale bylo to těžké přesně sladit je s tímto problémem.
Na konci, jsme odstraněním kolekce webů a znovu a to, že to vyřešili.
Pokud jsem přijít na to, co způsobilo to v budoucnosti, Budu aktualizovat tento post.