Ausgangslage
In combit CRM wird an unterschiedlichen Stellen (z. B. in der Eingabemaske oder der Übersichtsliste) die Datensatz-ID (als global eindeutige ID bzw. GUID) angezeigt. Diese weicht jedoch in dem dargestellten Format von dem in anderen Anwendungen verwendeten Format ab.
Für die in diesem Artikel verwendete Beispielfirma Luna Aventuras
sieht dieses Format wie folgt aus:
ce05a0f11dbf464f8a7f14666ddd0f3a
(combit CRM)F1A005CE-BF1D-4F46-8A7F-14666DDD0F3A
(Microsoft SQL Server Management Studio)
Hintergrund
Dieser Unterschied des Formats ist dadurch begründet, dass in combit CRM eine allgemeine Datenbankzugriffsschicht verwendet wird, da sowohl Microsoft SQL Server
als auch PostgreSQL
als Datenbanksystem unterstützt wird, diese aber unterschiedliche Formate verwenden.
Das von PostgreSQL
genutzte Format ist dabei identisch zu dem in combit CRM. Die nachfolgende Lösung bezieht sich demnach ausschließlich auf den Microsoft SQL Server
.
Lösung
Das Format dieser Datensatz-ID kann in combit CRM für jedes gewünschte Feld angepasst werden. Üblicherweise wird das der Fall sein für Felder der internen Feldtypen Datensatz-ID
und Global eindeutige ID
, nicht aber ausschließlich, wenn z. B. ein Feld vom internen Feldtyp Zeichen
eine Datensatz-ID enthält.
Es empfiehlt sich, in den Ansichteneigenschaften für das gewünschte Feld ein neues Formelfeld anzulegen und die nachfolgende Formel zu verwenden:
«(Mid$(ID,6,2) +
Mid$(ID,4,2) +
Mid$(ID,2,2) +
Mid$(ID,0,2) + '-' +
Mid$(ID,10,2) +
Mid$(ID,8,2) + '-' +
Mid$(ID,14,2) +
Mid$(ID,12,2) + '-' +
Mid$(ID,16,4) + '-' +
Mid$(ID,20,12))»
Eingabemaske
In der Eingabemaske haben Sie die Möglichkeit, neben dem neuen Formelfeld alternativ auch ein Textfeld mit der Formel zu befüllen.
(oben: standardmäßig, mittig: Textfeld mit Formel, unten: Formelfeld)
Übersichtsliste
In der Übersichtsliste ist es nicht möglich, ein Textfeld zu verwenden, hier kommt nur das Formelfeld in Frage.
(links: standardmäßig, rechts: Formelfeld)
SQL-Abfragen
SQL Server-seitig enthält ein solches Datensatz-ID-Feld physikalisch keine Bindestriche, geschweifte Klammern o. ä., diese werden dort erst bspw. bei der Wandlung in einen Zeichenkettentyp wie nvarchar
hinzuformatiert, analog dazu verhält sich das Microsoft SQL Server Management Studio
bei der Darstellung der Werte.
Um im Microsoft SQL Server Management Studio
das Format ohne Bindestriche, wie eben in combit CRM standardmäßig dargestellt, in SQL-Abfragen verwenden zu können, können Sie der Datensatz-ID ein 0x
voranstellen:
SELECT
[ID]
,[CustomerNo]
,[Company]
FROM [Companies]
WHERE ID = 0xce05a0f11dbf464f8a7f14666ddd0f3a
Alternativ können Sie dazu auch die combit CRM-SQL-Funktion dbo.cmbt_fct_UnformatGUID
verwenden:
SELECT
[ID]
,[CustomerNo]
,[Company]
FROM [Companies]
WHERE dbo.cmbt_fct_UnformatGUID([ID]) = 'ce05a0f11dbf464f8a7f14666ddd0f3a'
Der Vollständigkeit halber sei noch erwähnt, dass es ebenso die combit CRM-SQL-Funktion dbo.cmbt_fct_FormatGUID
gibt, die das Format in die andere Richtung umformatieren kann, diese wird jedoch für diesen Artikel nicht benötigt.
Wie oben erwähnt, ist es unter PostgreSQL bzw. pgAdmin
nicht notwendig, eine Abfrage zu formatieren, da hier bereits das unformatierte Format verwendet wird:
SELECT
"ID"
,"CustomerNo"
,"Company"
FROM "Companies"
WHERE "ID" = 'ce05a0f11dbf464f8a7f14666ddd0f3a'