2011-08-23 68 views
0

我有一個定義的內容模型,裏面有一個LIST類型的約束值。約束:07230001該值不是允許的值

我有一個頁面包含r:與「位置」類型的節點關聯的propertySheet,並且該類型具有引用約束LIST的屬性。

該頁面的呈現是正確的,但是一旦我從NodeService執行代碼setProperties,我有以下錯誤。 操作過程中發生系統錯誤:07230003發現1個完整性違規:無效的屬性值:Node:workspace:// SpacesStore/4c7464b2-2c1b-4346-b3f4-215a3818ac9c類型:{www.ds.alfresco.security.extension.com }位置屬性:{} www.ds.alfresco.security.extension.com約束權限:07230002值是不是允許值:[讀取SADER,寫SADER,READ WARED]

在哪裏我的代碼是:

  if(currentPosition != null && currentPosition.getNodeRef() != null){ 
       Map<String,Object> properties = currentPosition.getProperties(); 
       ArrayList<String> permissions = (ArrayList<String>)properties.get(Constants.SecurityModelQNames.PROP_SEC_POSITION_POSITION_PERMISSIONS); 
       Map<QName,Serializable> qnameSerializableProperties = NodeUtil.prepareQnameSerializableList(properties); 
       for(Map.Entry<QName, Serializable> entry : qnameSerializableProperties.entrySet()){ 
        System.out.println(entry.getKey()+","+entry.getValue()); 
       } 
       getNodeService().setProperties(currentPosition.getNodeRef(), qnameSerializableProperties); 
      } 

我該如何讓這段代碼可執行?

+0

您確定您的約束條件有效嗎?我的意思是你說它渲染得很好,但你可以創建一個內容並通過UI編輯屬性? –

+0

好的,謝謝塔希爾我的問題已經解決,因爲返回類型是列表 –

+0

@MohammedAmr請回答你自己的問題然後,所以它看起來像回答。 – Florian

回答

0

簡單地說,我從頁面讀取值並填充到列表中,然後再將此列表設置爲節點的屬性。