Zamieściłem ogłoszenie o sprzedaży samochodu w Bergen county, NJ w niedzielny wieczór. Wkrótce potem otrzymał kilka pytań przez e-mail i zamknięte porozumienia z kogoś we wtorek wieczorem.
Prawie także dobry zostać prawdziwy …
Zamieściłem ogłoszenie o sprzedaży samochodu w Bergen county, NJ w niedzielny wieczór. Wkrótce potem otrzymał kilka pytań przez e-mail i zamknięte porozumienia z kogoś we wtorek wieczorem.
Prawie także dobry zostać prawdziwy …
Bardzo często nie zmodyfikować zaawansowane wyszukiwanie XSLT, Tak więc wydaje się, że wspinaczka pagórki za każdym razem.
To jest mój najnowszy lekcja: Przypadku sprawy przy odwoływaniu się do kolumna. W moje wyszukiwanie zaawansowane, Mam kolumny zdefiniowane jako to:
<główny xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Kolumny>
<Kolumna Nazwa="GafTrainingInvoiceNumber" />
<Kolumna Nazwa="GafTrainingInvoiceLocation" />
<Kolumna Nazwa="Identyfikator pracy"/>
<Kolumna Nazwa="Ranga"/>
<Kolumna Nazwa="Tytuł"/>
<Kolumna Nazwa="Autor"/>
<Kolumna Nazwa="Rozmiar"/>
<Kolumna Nazwa="Ścieżka"/>
<Kolumna Nazwa="Opis"/>
<Kolumna Nazwa="Zapis"/>
<Kolumna Nazwa="Nazwa_witryny"/>
<Kolumna Nazwa="CollapsingStatus"/>
<Kolumna Nazwa="HitHighlightedSummary"/>
<Kolumna Nazwa="HitHighlightedProperties"/>
<Kolumna Nazwa="ContentClass"/>
<Kolumna Nazwa="IsDocument"/>
<Kolumna Nazwa="PictureThumbnailURL"/>
</Kolumny>
</główny>
Były XLST, wyświetla położenie numer i faktura faktury:
<p>
Numer faktury szkolenia: <XSL:wartość z Wybierz="GafTrainingInvoiceNumber"/>
<BR></BR>
Lokalizacja szkoleń faktury: <XSL:wartość z Wybierz="GafTrainingInvoiceLocation"/>
</p>
Jednakże, Wybierz musi odwołać właściwość w wszystkie małe litery, jak w:
<p>
Numer faktury szkolenia: <XSL:wartość z Wybierz="gaftraininginvoicenumber"/>
<BR></BR>
Lokalizacja szkoleń faktury: <XSL:wartość z Wybierz="gaftraininginvoicelocation"/>
</p>
Do momentu że poprawione, Wyniki wyszukiwania pokazał etykiety (tj.. "Szkolenia numer faktury") ale nie ma danych.
Scenariusza biznesowego:
Realizacji całego przedsiębiorstwa MOSS dla produkcji firmy z 30+ miejsc i kilka kilkanaście działów firmy.
Celem firmy:
Pomimo wielu grup biznesowych (działy, lokalizacje, itp), Niektóre dane powinny zostać utrzymane na poziomie światowym. Na przykład, autorytatywne główny wykaz wszystkich fizycznej lokalizacji firmy (np.. zakłady produkcyjne, lokalizacji magazynowych, biura sprzedaży) powinny zostać utrzymane w spokojnej.
Problem techniczny:
Taksonomia przedsiębiorstwa został wdrożony przy użyciu wielu zbiorów witryn. Chcielibyśmy stworzyć listy autorytatywny fizycznej lokalizacji w pewien zwyczaj lista WSS. Następnie, Kiedy musieliśmy się kolumna typ zawartości (lub kolumna dodawane do biblioteki listy lub doc) że zawarte atrakcje dla turystów, tworzymy z kolumna przy użyciu wyszukiwania"" Typ danych i wskaż ten główny wykaz.
Niestety, typy danych wyszukiwania musi uzyskać dostęp do listy źródła "lokalnie" co oznacza, że naszą listę autorytatywnych nie może obejmować zbiory witryn.
Rozwiązanie techniczne:
Wdrożenie nowego typu danych niestandardowych realizowane na podstawie SPField i reprezentowane jako DropDownList w interfejsie użytkownika, którego listą pozycji wypełnić z głównej listy WSS.
Stworzyliśmy nową kolekcję witrynę o nazwie "http://localhost/EnterpriseData". Tam, stworzyliśmy listę niestandardową o nazwie "Atrakcje dla turystów". Ta lista tylko używa standardowych tytułu"" pole zawiera wykaz rzeczywistej lokalizacji firmy.
Jeden wynika kilka dyskretnych kroków, aby utworzyć typ danych niestandardowych w WSS. Są one:
Oto kod do tego:
publiczne Klasa XYZZYCorporateLocationField : SPFieldText
{
publiczne XYZZYCorporateLocationField
(SPFieldCollection pola, ciąg atrybut typeName, ciąg displayName)
: podstawy(pola, atrybut typeName, displayName) { }
publiczne XYZZYCorporateLocationField
(SPFieldCollection pola, ciąg displayName)
: podstawy(pola, displayName) { }
publiczne zastępowanie BaseFieldControl FieldRenderingControl
{
Pobierz
{
BaseFieldControl Sterowanie = Nowy XYZZYCorporateLocationFieldControl();
kontroli. Nazwa_pola = to.InternalName;
Powrót kontrola;
} //Pobierz
} // fieldrenderingcontrol
publiczne zastępowanie ciąg GetValidatedString(obiekt wartość)
{
Jeśli (to.Wymagane || wartość. ToString().Równa się(Ciąg.Pusty))
{
rzut Nowy SPFieldValidationException ("Nie przypisano w departamencie.");
}
Powrót podstawy.GetValidatedString(wartość);
} // getvalidatedstring
} // XYZZYCorporateLocation
publiczne Klasa XYZZYCorporateLocationFieldControl : BaseFieldControl
{
chronione DropDownList XYZZYCorporateLocationSelector;
chronione zastępowanie ciąg DefaultTemplateName
{
Pobierz
{
Powrót "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
publiczne zastępowanie obiekt Wartość
{
Pobierz
{
EnsureChildControls();
Powrót to.XYZZYCorporateLocationSelector. SelectedValue;
} // Pobierz
zestaw
{
EnsureChildControls();
to.XYZZYCorporateLocationSelector.SelectedValue = (ciąg)to.ItemFieldValue;
} // zestaw
} // zastąpić obiekt wartość
chronione zastępowanie nieważne CreateChildControls()
{
Jeśli (to.Dziedzinie == pusty || to.ControlMode == SPControlMode.Wyświetlacz)
Powrót;
podstawy.CreateChildControls();
to.XYZZYCorporateLocationSelector =
(DropDownList)FindControl TemplateContainer ustawiony.("XYZZYCorporateLocationSelector");
Jeśli (to.XYZZYCorporateLocationSelector == pusty)
rzut Nowy Wyjątek("BŁĄD: Nie można załadować. Pliku ASCX!");
Jeśli (!to.IsPostBack strony.)
{
przy użyciu (SPSite Strona = Nowy SPSite("http://localhost/enterprisedata"))
{
przy użyciu (Sieci Web programu SharePoint Web = site. OpenWeb())
{
SPList currentList = www. Wyświetla listę["Atrakcje dla turystów"];
foreach (SPItem XYZZYCorporateLocation w currentList.Items)
{
Jeśli (XYZZYCorporateLocation["Tytuł"] == pusty) w dalszym ciągu;
ciąg theTitle;
theTitle = XYZZYCorporateLocation["Tytuł"].ToString();
to.XYZZYCorporateLocationSelector.Items.Add
(Nowy ListItem(theTitle, theTitle));
} // foreach
} // za pomocą spweb web = site.openweb()
} // za pomocą Strona spsite = new spsite("http://localhost/enterprisedata")
} // Jeśli nie postback
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Powyższy kod w zasadzie implementuje logiki dla wypełniania DropDownList wartościami z listy niestandardowe WSS, znajdujące się w http://localhost/enterprisedata i o nazwie "korporacyjnych działów".
Ja zdefiniowane w obu klasach w .cs pojedynczego pliku, Skompilowałem go i umieścić go w pamięci podręcznej GAC (silne wymagane, Oczywiście).
<%@ Kontroli Język= "C#" Dziedziczy="Microsoft.SharePoint.Portal.serveradmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Wersja = 12.0.0.0, Culture = neutral,TokenKluczaPublicznego zespołu = 71e9bce111e9429c" compilationMode= "Zawsze" %>
<%@ Rejestr TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Montaż="Microsoft.SharePoint, Wersja = 12.0.0.0, Kultura = neutral, TokenKluczaPublicznego zespołu = 71e9bce111e9429c" %> <%@ Rejestr TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Montaż="Microsoft.SharePoint, Wersja = 12.0.0.0, Kultura = neutral, TokenKluczaPublicznego zespołu = 71e9bce111e9429c" %>
<SharePoint:Wartość parametru RenderingTemplate IDENTYFIKATOR= "XYZZYCorporateLocationFieldControl" RUNAT= "serwer">
<Szablon>
<ASP:DropDownList IDENTYFIKATOR= "XYZZYCorporateLocationSelector" RUNAT= "serwer" />
</Szablon>
</SharePoint:Wartość parametru RenderingTemplate>
Powyższe jest zapisany w c:\Program filescommon filesmicrosoft sharedweb server extensions12controltemplates.
<?XML Wersja="1.0" kodowanie="UTF-8" ?>
<FieldTypes>
<FieldType>
<Pole Nazwa="Atrybut TypeName">CorporateLocations</Pole>
<Pole Nazwa="Typu elementu nadrzędnego">Tekst</Pole>
<Pole Nazwa="TypeDisplayName">Atrakcje dla turystów</Pole>
<Pole Nazwa="TypeShortDescription">Wszystkie firmy XYZZY miejsc, w tym produkcji lub innych urządzeń.</Pole>
<Pole Nazwa="UserCreatable">PRAWDZIWE</Pole>
<Pole Nazwa="ShowInListCreate">PRAWDZIWE</Pole>
<Pole Nazwa="ShowInDocumentLibraryCreate">PRAWDZIWE</Pole>
<Pole Nazwa="ShowInSurveyCreate">PRAWDZIWE</Pole>
<Pole Nazwa="ShowInColumnTemplateCreate">PRAWDZIWE</Pole>
<Pole Nazwa="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Wersja = 1.0.0.0, Kultura = neutral, PublicKeyToken = b0b19e85410990c4</Pole>
<RenderPattern Nazwa="DisplayPattern">
<Przełącznik>
<Wyrażenie>
<Kolumna />
</Wyrażenie>
<Sprawa Wartość=""/>
<Domyślnie>
<HTML>
<![CDATA[<span style = "color:Czerwony"><b>]]>
</HTML>
<Kolumna SubColumnNumber="0" HTMLEncode="PRAWDZIWE"/>
<HTML><![CDATA[</b></zakres>]]></HTML>
</Domyślnie>
</Przełącznik>
</RenderPattern>
</FieldType>
</FieldTypes>
Ten plik XML dodaje typ danych niestandardowych do WSS "biblioteka" i odpowiada to GAC miał montaż.
Po przeniesieniu wszystkich tych bitów na miejsce, polecenie iisreset na serwerze i należy wszystkie zaczynają działa ładnie.
Dodatkową kategorię: CAML
Tutaj jest to wielki delegowania przez kolegów o nazwie "craig" na technikę znalezienie CAML definicje typów zawartości pola poza prawdziwym żyć definicje z witryny.
Jego komentarz mówi wszystko. W skrócie:
Dodatkowe kategorie: Program Visual Studio 2005
Umożliwiające intellisense przydatnych funkcji, elementy, itp w visual studio 2005:
Technologia IntelliSense jest obecnie włączone dla tego dokumentu XML.
Zobacz tutaj Aby uzyskać więcej informacji na ten temat i instrukcje w jaki sposób automatycznie kojarzy WSS intellisense z dowolnego pliku XML.
Wziął i przeszedł wyżej wymienione badania rano. Znalazłem egzamin za trudną i targi.
Tam jest względna niedostatku informacji na ten egzamin w Internecie. Nie jestem pewien, dlaczego.
Oczywiście przyzwyczajenie się do żadnych szczegółów na temat egzaminu, wziąłem, ale myślę, że śmiało można powiedzieć następujące:
Wymienia się w nim to, co trzeba wiedzieć, aby zdać egzamin i to, IMO, bardzo dokładne.
</koniec>Subskrybowanie mój blog!
Dodatkową kategorię: Program InfoPath
Podsumowanie: Programu InfoPath 2007 formularza wdrożony na serwerze MOSS zawiera listę rozwijaną dostawców powiązana z listy niestandardowej MOSS. Po zaznaczeniu dostawcy, zasady przypisać wartości pola garstkę pola tekstowe, takie jak nazwa handlowy, adres, miasto, Państwo, zip i telefonu. Wydajność jest okropne. Zauważamy, że wydajność gets worse (w sposób liniowy) dla każdego pola dodatkowe aktualizowania w ten sposób. Tj, Jeśli mamy tylko zaktualizować nazwy handlowy, Trwa [x] czas. Jeśli musimy zaktualizować handlowy, Adres1, Adres2, miasto, Państwo, pocztowy, Trwa 10 razy dłużej.
Roztwór: Napisz usługi sieci web (Przykładowy kod można znaleźć tutaj) który jest przekazywany w imieniu dostawcy i ponownie zwraca dane dostawcy. Następnie, przypisać pola w ten sposób. Chociaż zbyt wydaje się wolno, nie było wyraźnej różnicy w wydajności możemy przypisany 1 pole kontra 8 pola. Dodatkowym atutem, użytkownicy otrzymują cool "kontaktowania się z serwerem" Kochał powstaje efekt, podczas gdy oni czekać na formularz, aby wywołać i zajmują usługi.
AKTUALIZACJA: Możemy nigdy ponownie określić główną przyczynę tego problemu oraz że nigdy nie powierzchni.
Zauważamy podczas wdrażania witryny rozwoju, że nagle, dwaj użytkownicy nie są w stanie uzyskać dostęp do zbioru witryn. Rachunki te mogą uwierzytelniać do strony głównej, Jednak przy próbie dostępu do konkretnej kolekcji witryn, one dostać pusty ekran. Nie błędów wyświetlane, biały pustej strony.
Możemy zalogować się jako administrator zbioru witryn i spróbować dodać jeden z tych użytkowników jako administratora witryny i tym razem, po naciśnięciu "OK", otrzymujemy tej wiadomości:
Wystąpił wyjątek. (Wyjątek od HRESULT: 0x 80020009 (DISP_E_EXCEPTION))
Spędziliśmy trochę czasu, to badania i Niestety, nie nadejdzie z czymkolwiek przydatne. Istniały pewne wiadomości w Dzienniku diagnostyczne, ale było trudno dokładnie skorelować je z tego problemu.
W końcu, możemy usunie zbiór witryn i ponownie utworzony i że rozwiązać.
Jeśli mogę wymyślić co spowodowało to w przyszłości, Zaktualizuję na stanowisku tym.