091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 16.02.2018
  • DE/EN

Root Cause Analysis: "Could not create an instance of type OpenText.WS.MS.Core. WebServices.AssetCommit.Commit."

Soziale Netzwerke und Communities sind schon was feines, da wirft man eine Frage in die Runde und nach kurzer Zeit ist die Lösung da bzw. alle sind zufrieden ;) ... Wie in diesem Fall, welchen wir im OWUG-Slack hatten...


Regel 24

Das Feedback der Kunden ist manchmal schmerzhaft, aber immer gut. (Rolf Hansen)


Meldungen

REST API Call:
   POST /folders/{folderGuid}/assets

Fehlermeldung:
   Could not create an instance of type OpenText.WS.MS.Core.WebServices.AssetCommit.Commit.


Ursache

Kleine Änderung an der REST-API, welche noch nicht in der Dokumentation bzw. in den Unterlagen steht:

ALT: POST /folders/{folderGuid}/assets

{
 "Commits": [{
    "Metadata": [{
        "Field": {
            "Id": {
                "$type": "UserDefinedMetadataItemId",
                "Id": "25FAA5760FF346DD9E17F1FBAD20DB12",
                "FieldName": "Autor"
            },
            "IsWriteable": true,
            "DefaultValue": ""
        },
        "Value": ""
    }],
    "ConflictBehavior": 0,
    "TemporaryName": "*fileguid*",
    "FinalName": "*dateiname*",
    "ExtractArchive": false
 }]
}

Lösung

NEU: POST /folders/{folderGuid}/assets

{
"Commits": [{
    "$type": "UploadCommit",
    "Metadata": [{
        "Field": {
            "Id": {
                "$type": "UserDefinedMetadataItemId",
                "Id": "25FAA5760FF346DD9E17F1FBAD20DB12",
                "FieldName": "Autor"
            },
            "IsWriteable": true,
            "DefaultValue": ""
        },
        "Value": ""
    }],
    "ConflictBehavior": 0,
    "TemporaryName": "*fileguid*",
    "FinalName": "*dateiname*",
    "ExtractArchive": false
}]
}

Anmerkungen

Zitat: "Man beachte das hinzugekommene $type-Property ganz oben. Wenn das da ist, dann tritt der Fehler nicht mehr auf." ;)

Ebenfalls wird ein Update der Dokumentation und dem Beispiel-Code geben. Es wurde noch ein Tipp gegeben: Zitat: "...falls irgendwo noch so ein Problem sein sollte, dann kann man die Operation 1x im Asset folder ausführen und sich mit den Browser Developer Tools (F12) abschauen, was dort für REST API Calls gesendet wurden."

An dieser Stelle nochmals Danke an Yarin, welcher uns im Slack immer mit Rat & Tat zur Seite steht bzw. immer eine schnelle Lösung zur Hand hat ;)


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.