Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
InsertEmptyAsset - A message decode failed
Konidala
Hi,
I am trying to InsertEmptyAsset.
Dim metadataArray(0) As MBPNetModel.MBObjects.MBMetadata
metadataArray(0) = New MBPNetModel.MBObjects.MBMetadata
Dim mValues(2) As Object
mValues(0) = "HI"
mValues(1) = "Hello"
mValues(2) = "Bye"
metadataArray(0).mName = "Keywords"
metadataArray(0).mID = "{5BE195ED-0726-11D3-9DDE-0060081F836F}"
metadataArray(0).IsMultipleValue = True
metadataArray(0).mValues = mValues
Dim assetId As String = ""
InsertEmptyAsset("Test Asset", metadataArray, "", assetId)
Public Function InsertEmptyAsset(ByVal assetName As String, ByVal metadataArray As MBPNetModel.MBObjects.MBMetadata(), _
ByVal containerID As String, ByRef assetID As String) As Boolean
Dim bInserted As Boolean = False
assetID = Nothing
Try
If ((assetName Is Nothing) Or (assetName Is String.Empty)) Then
Throw New Exception("Invalid asset name.")
End If
Dim mbSession As MBPSCRIPTMODEL2Lib.MBSession = mbConnection.MediaBinSession
If (mbSession Is Nothing) Then
Return bInserted
End If
If ((containerID Is Nothing) Or (containerID Is String.Empty)) Then
containerID = mbConnection.GetRootContainer.mID
End If
Dim container As MBPSCRIPTMODEL2Lib.MBContainer = mbSession.GetContainer(containerID)
If (container Is Nothing) Then
Return bInserted
End If
Dim colMetaData As MBPSCRIPTMODEL2Lib.MBObjectCollection = mbSession.CreateObjectCollection
Dim enumerator As System.Collections.IEnumerator = metadataArray.GetEnumerator
Do While enumerator.MoveNext
Dim metaDataToEdit As MBPNetModel.MBObjects.MBMetadata = CType(enumerator.Current, MBPNetModel.MBObjects.MBMetadata)
If (Not metaDataToEdit.mValues Is Nothing) Then
Dim metaDataValue As MBPSCRIPTMODEL2Lib.MBMetaDataMultipleValue = Nothing
metaDataValue = mbSession.CreateMetaDataMultipleValue(metaDataToEdit.mID, metaDataToEdit.mValues)
If (Not metaDataValue Is Nothing) Then
colMetaData.Add(metaDataValue, Nothing, Nothing, Nothing)
End If
End If
If (Not metaDataToEdit.mValue Is Nothing) Then
Dim metaDataValue As MBPSCRIPTMODEL2Lib.MBMetaDataValue = Nothing
metaDataValue = mbSession.CreateMetaDataValue(metaDataToEdit.mID, metaDataToEdit.mValue)
If (Not metaDataValue Is Nothing) Then
colMetaData.Add(metaDataValue, Nothing, Nothing, Nothing)
End If
End If
Loop
If colMetaData.Count > 0 Then
assetID = container.InsertEmptyAsset(assetName, colMetaData)
Else
assetID = container.InsertEmptyAsset(assetName)
End If
bInserted = True
Catch ex As Exception
Throw New Exception(ex.StackTrace)
End Try
Return bInserted
End Function
I am getting "A message decode failed" error message.
Any help would be appreciated.
Thanks
Find more posts tagged with
Comments
msnider
Make sure that the registerd version of MBPScriptModel2.dll (which is used by MBPNetModel) is the same version as your MediaBin server.
Mark
Konidala
Thanks Mark. May I know how to check this. I am not sure which DLL to check.
Thanks
Konidala
Hi Mark. I checked and the version is the same. I am using 4.5.1 Build 16 Version.
msnider
I think there may be a problem with passing the metadata values to InsertEmptyAsset...I will try to track it down and get a fix out for it.
In the meantime, you can use the following workaround:
Replace:
If colMetaData.Count > 0 Then
assetID = container.InsertEmptyAsset(assetName, colMetaData)
Else
assetID = container.InsertEmptyAsset(assetName)
End If
with:
assetID = container.InsertEmptyAsset(assetName)
Dim asset As MBPSCRIPTMODEL2Lib.MBAsset = mbSession.GetAsset(assetID)
asset.ReviseMetaData(colMetaData)
Mark
Konidala
Thanks a lot mark