Welcome to the new Box Support website. Check out all the details here on what’s changed.

.Net SDK MetaDataTemplateUpdate

Answered
New post

Comments

1 comment

  • jbwils

    Answered my own question again. Per the API reference, MetadataTemplateUpdate in addEnumOption mode requires .data to be provided, not EnumOptionKeys.

     

    Possible Template Operations:

    • addEnumOption: Adds an enum option at the end of the enum option list for the specified field
      Params:
      data: JSON object of the enum option to be added
      fieldKey: The key of the field to add the enum option. Must refer to an enum field
      Example: {"op":"addEnumOption","fieldKey":"category","data":{"key":"Technology"}}. This will add a new enum option Technologyunder the field category.

    This code works:

    Dim MetaDataMgr As Box.V2.Managers.BoxMetadataManager
            Dim TemplateName As String
            Dim FieldName As String
            Dim FieldKey As Integer
            Dim fld As Box.V2.Models.BoxMetadataTemplateField
            Dim fo As Box.V2.Models.BoxMetadataTemplateFieldOption
            Dim folist As New List(Of String)
            Dim TmpUpdtList As New List(Of Box.V2.Models.BoxMetadataTemplateUpdate)
            Dim TmpUpdt As New Box.V2.Models.BoxMetadataTemplateUpdate
            'Dim fldkeys As New List(Of String)
            Dim fldkeys As New Dictionary(Of String, String)
    
            TemplateName = Me.cbBoxTemplate.SelectedItem
            FieldName = Me.cbBoxTemplateField.SelectedItem.ToString
            FieldKey = Me.cbBoxTemplateField.SelectedIndex
            MetaDataMgr = BoxClient.MetadataManager
            MetaDataTemp = Await MetaDataMgr.GetMetadataTemplate("enterprise", TemplateName)
            fld = MetaDataTemp.Fields(FieldKey)
    
            
            fldkeys.Add("key", "Test Option")
            TmpUpdt.Op = Box.V2.Models.MetadataTemplateUpdateOp.addEnumOption
            TmpUpdt.Data = fldkeys
            TmpUpdt.FieldKey = FieldName
            'TmpUpdt.EnumOptionKeys = fldkeys
            TmpUpdtList.Add(TmpUpdt)
    
            Dim TmpNew As Box.V2.Models.BoxMetadataTemplate
            Try
                TmpNew = Await MetaDataMgr.UpdateMetadataTemplate(TmpUpdtList, "enterprise", TemplateName)
            Catch ex As Exception
                MsgBox("Failed saving changes. Error message from Box is: " & ex.Message)
                'Debug.Print(ex.Message)
            End Try
    0
    Comment actions Permalink

Please sign in to leave a comment.