SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Title - Titel Column - verschiedensprachige Server

Geprüfte Antwort Dieser Beitrag hat 2 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 23 Juli 2015 14:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe ein Powershell Skript entwickelt welches bei meiner lokalen Maschine auf deutschsprachigem SharePoint & Betriebssystem sämtliche Inhalte vorbereitet.
Auf dem Zielsystem kam es bei Ausführung meines Skriptes nun zu einem Problem weil die Spalte Titel dort Title heißen muss.

Bin mir grade ein IF am zusammenbauen, mir mangelt es allerdings eher an einer Idee als an der Syntax.

Hier grob in Pseudocode der zeigt, was gewünscht ist:
if ( getfieldbyname Title = null )
$variable = "Titel"
else
$variable = "Title"

Und dann für jedes Vorkommen der Spalte als String die $Variable verwenden.
Allerdings ist mir jetzt unklar von wo ich dieses GETFIELD aus aufrufen soll, da Titel zwar in Listen standardmäßig miterstellt wird, aber keine Websitespalte ist die in jedem System existiert.
Es ist doch sicherlich sehr unsauber gelöst wenn ich auf eine meiner selbst erstellten Listen abfrage..

hat jemand eine Idee?
lg

mstel

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Juli 2015 14:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Man geht da ganz anders vor und dann funktioniert es auch in wirklich allen Sprachen:

Niemals irgendwelche Elemente über einen sprachabhängigen Namen ansprechen, sondern immer etwas sprachneutrales verwenden. Bei Feldern gibt es gleich zwei Möglichkeiten. Das eine ist der interne Name, der immer identisch ist. z.B.:
$field = $web.Fields.GetFieldByInternalName("Title")
Das andere ist die ID, die ebenfalls immer identisch ist. Damit man es einfacher hat, kann man SPBuiltInFieldId verwenden, da sind alle aufgelistet:
$field = $web.Fields[[Microsoft.SharePoint.SPBuiltInFieldId]::Title]

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
634 Beiträge
Olaf Didszun Als Antwort am 23 Juli 2015 14:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

verwende doch für den Zugriff nicht den Namen, sondern die ID des Feldes. Bei dem Title/Titel-Feld ist das {fa564e0f-0c70-4ab9-b863-0177e6ddd247}, egal in welcher Sprache die Liste angelegt wurde. Damit sparst du dir die if-then-else Struktur und fällst auch nicht auf die Nase, wenn dann auf einmal eine chinesische Site auftaucht.

Die IDs findest du für die ootb-Felder hier: C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\FEATURES\fields\fieldswss.xml

Beste Grüße

Olaf