Search the FirstSpirit Knowledge Base
Datensätze erhalten neben der FS_ID auch eine eindeutige GID. Diese kann man z.B. bei über die Datensatzeigenschaften anzeigen (siehe Screenshot). Diese GID findet sich auch im Content Transport bzw. ExtSync wieder z.B.:
<DATA>
<TABLE name="Gallery_Media" rows="1">
<ROW index="1">
<COLUMN name="FS_GID">e289f6fb-631e-445d-960a-d4ff5988d3dd</COLUMN>
<COLUMN name="fs_id">1792</COLUMN>
...
Schaut man sich aber den konkreten Datensatz in der Datenbank (im Beispiel Oracle) an, so ist diese GID nicht dem Datensatz offensichtlich zugeordnet, da hier nicht die gleiche Repräsentation verwendet wird:
"FS_GID" (Datentyp RAW): DDD38859FFD40A965D441E63FBF689E2
"FS_ID" (Datentyp NUMBER): 1792
Gibt es eine Möglichkeit in FS bzw. über ein DB-Query eine "lesbare" Zuordnung zu ermöglichen?
Mit dieser Funktion können UUIDS in das Speicherformat konvertiert werden:
public static String convert(final UUID uuid) {
final long l = uuid.getLeastSignificantBits();
final long m = uuid.getMostSignificantBits();
return hex(l, 0) + hex(l, 1) + hex(l, 2) + hex(l, 3) + hex(l, 4) + hex(l, 5) + hex(l, 6) + hex(l, 7) +
hex(m, 0) + hex(m, 1) + hex(m, 2) + hex(m, 3) + hex(m, 4) + hex(m, 5) + hex(m, 6) + hex(m, 7);
}
private static String hex(final long num, final int byteNum) {
return Long.toHexString((num >> (byteNum * 8))& 0xff).toUpperCase(Locale.US);
}
Mit dieser Funktion können UUIDS in das Speicherformat konvertiert werden:
public static String convert(final UUID uuid) {
final long l = uuid.getLeastSignificantBits();
final long m = uuid.getMostSignificantBits();
return hex(l, 0) + hex(l, 1) + hex(l, 2) + hex(l, 3) + hex(l, 4) + hex(l, 5) + hex(l, 6) + hex(l, 7) +
hex(m, 0) + hex(m, 1) + hex(m, 2) + hex(m, 3) + hex(m, 4) + hex(m, 5) + hex(m, 6) + hex(m, 7);
}
private static String hex(final long num, final int byteNum) {
return Long.toHexString((num >> (byteNum * 8))& 0xff).toUpperCase(Locale.US);
}
Hallo Mathias,
benötigst du noch weitere Hilfe oder konnte dir Peters Antwort bereits weiterhelfen? In diesem Fall wäre es toll, wenn du seine "richtige Antwort" entsprechend markierst.
Solltest du eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.
Viele Grüße
Michaela
Verbesserungsvorschlag: Es wäre äußerst hilfreich wenn bei den Datensatzeigenschaften im SiteArchitect auch diese "Speicherformat"-Repräsentation angezeigt werden würde. Dann könnte man einen Datensatz auch ohne die FS_ID eindeutig identifizieren.
Im Allgemeinen macht einem diese unterschiedliche Repräsentation es nicht gerade einfach die Datensätze in der DB und im CMS korrekt zuzuordnen.
Gibt es auch einen Code-Schnipsel für die umgekehrte Transformation (Java / SQL)?