Version

mS3 PIM ab 6.6

Problem

Beim Browsen der Objektliste wird ein folgender Fehler dargestellt und das PIM Projekt verwendet iMAM.
PIM Error

Test

Wenn dieses Script eine Liste von Werten ausgibt, bitte die Bereinigung unter Lösung ausführen.

SELECT ObjectMasterdata.ObjectMasterdataKey, AttributeName, ValueSText FROM ObjectMasterdataValueLN 
INNER JOIN ObjectMasterdata ON ObjectMasterdata.ObjectMasterdataId = ObjectMasterdataValueLN.ObjectMasterdataId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectMasterdataValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectMasterdataValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectMasterdataValueLN.ValueSText) IS NOT NULL)
SELECT ObjectMasterdata.ObjectMasterdataKey, AttributeName, ValueSText FROM ObjectMasterdataValueLS
INNER JOIN ObjectMasterdata ON ObjectMasterdata.ObjectMasterdataId = ObjectMasterdataValueLS.ObjectMasterdataId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectMasterdataValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectMasterdataValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectMasterdataValueLS.ValueSText) IS NOT NULL)

SELECT ObjectAssortment.ObjectAssortmentKey, AttributeName, ValueSText FROM ObjectAssortmentValueLN 
INNER JOIN ObjectAssortment ON ObjectAssortment.ObjectAssortmentId = ObjectAssortmentValueLN.ObjectAssortmentId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectAssortmentValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectAssortmentValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectAssortmentValueLN.ValueSText) IS NOT NULL)
SELECT ObjectAssortment.ObjectAssortmentKey, AttributeName, ValueSText FROM ObjectAssortmentValueLS
INNER JOIN ObjectAssortment ON ObjectAssortment.ObjectAssortmentId = ObjectAssortmentValueLS.ObjectAssortmentId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectAssortmentValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectAssortmentValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectAssortmentValueLS.ValueSText) IS NOT NULL)

SELECT ObjectPublication.ObjectPublicationKey, AttributeName, ValueSText FROM ObjectPublicationValueLN 
INNER JOIN ObjectPublication ON ObjectPublication.ObjectPublicationId = ObjectPublicationValueLN.ObjectPublicationId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectPublicationValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectPublicationValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectPublicationValueLN.ValueSText) IS NOT NULL)
SELECT ObjectPublication.ObjectPublicationKey, AttributeName, ValueSText FROM ObjectPublicationValueLS
INNER JOIN ObjectPublication ON ObjectPublication.ObjectPublicationId = ObjectPublicationValueLS.ObjectPublicationId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectPublicationValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectPublicationValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectPublicationValueLS.ValueSText) IS NOT NULL)

Lösung

Wichtig: Datenbank sichern!

Das Projekt wurde vermutlich vom alten Bild Managment auf iMAM migriert. Es wurden aber nicht alle Bilder berücksichtigt. Um diese falschen iMAM verknüpfungen zu löschen bitte folgendes Skript ausführen:

DELETE ObjectMasterdataValueLN FROM ObjectMasterdataValueLN 
INNER JOIN ObjectMasterdata ON ObjectMasterdata.ObjectMasterdataId = ObjectMasterdataValueLN.ObjectMasterdataId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectMasterdataValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectMasterdataValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectMasterdataValueLN.ValueSText) IS NOT NULL)

DELETE ObjectMasterdataValueLS FROM ObjectMasterdataValueLS
INNER JOIN ObjectMasterdata ON ObjectMasterdata.ObjectMasterdataId = ObjectMasterdataValueLS.ObjectMasterdataId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectMasterdataValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectMasterdataValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectMasterdataValueLS.ValueSText) IS NOT NULL)

DELETE ObjectAssortmentValueLN FROM ObjectAssortmentValueLN 
INNER JOIN ObjectAssortment ON ObjectAssortment.ObjectAssortmentId = ObjectAssortmentValueLN.ObjectAssortmentId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectAssortmentValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectAssortmentValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectAssortmentValueLN.ValueSText) IS NOT NULL)

DELETE ObjectAssortmentValueLS FROM ObjectAssortmentValueLS
INNER JOIN ObjectAssortment ON ObjectAssortment.ObjectAssortmentId = ObjectAssortmentValueLS.ObjectAssortmentId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectAssortmentValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectAssortmentValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectAssortmentValueLS.ValueSText) IS NOT NULL)

DELETE ObjectPublicationValueLN FROM ObjectPublicationValueLN 
INNER JOIN ObjectPublication ON ObjectPublication.ObjectPublicationId = ObjectPublicationValueLN.ObjectPublicationId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectPublicationValueLN.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectPublicationValueLN.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectPublicationValueLN.ValueSText) IS NOT NULL)

DELETE ObjectPublicationValueLS FROM ObjectPublicationValueLS
INNER JOIN ObjectPublication ON ObjectPublication.ObjectPublicationId = ObjectPublicationValueLS.ObjectPublicationId
INNER JOIN Attribute ON Attribute.AttributeId = ObjectPublicationValueLS.AttributeId
WHERE Attribute.AttributeFormatId = 17 AND NOT (LEN(ObjectPublicationValueLS.ValueSText) = 36 AND TRY_CONVERT(UNIQUEIDENTIFIER, ObjectPublicationValueLS.ValueSText) IS NOT NULL)