public function UpdateObjectFromPostedForm($sFormPrefix = '', $sAttList = null, $sTargetState = '')
 {
     parent::UpdateObjectFromPostedForm($sFormPrefix, $sAttList, $sTargetState);
     // And now read the other post parameters...
     $oAttributeSet = $this->Get('attribute_list');
     $aAttributes = array();
     while ($oAttribute = $oAttributeSet->Fetch()) {
         $aAttributes[$oAttribute->Get('attcode')] = $oAttribute;
     }
     $aReconcile = utils::ReadPostedParam('reconciliation', array());
     $aUpdate = utils::ReadPostedParam('update', array());
     $aUpdatePolicy = utils::ReadPostedParam('attr_update_policy', array());
     $aReconciliation = utils::ReadPostedParam('attr_reconciliation_attcode', array());
     // update_policy cannot be empty, so there is one entry per attribute, use this to iterate
     // through all the writable attributes
     foreach ($aUpdatePolicy as $sAttCode => $sValue) {
         if (!isset($aAttributes[$sAttCode])) {
             $oAttribute = $this->CreateSynchroAtt($sAttCode);
         } else {
             $oAttribute = $aAttributes[$sAttCode];
         }
         $bReconcile = 0;
         if (isset($aReconcile[$sAttCode])) {
             $bReconcile = $aReconcile[$sAttCode] == 'on' ? 1 : 0;
         }
         $bUpdate = 0;
         // Default / initial value
         if (isset($aUpdate[$sAttCode])) {
             $bUpdate = $aUpdate[$sAttCode] == 'on' ? 1 : 0;
         }
         $oAttribute->Set('reconcile', $bReconcile);
         $oAttribute->Set('update', $bUpdate);
         $oAttribute->Set('update_policy', $sValue);
         if ($oAttribute instanceof SynchroAttExtKey) {
             $oAttribute->Set('reconciliation_attcode', $aReconciliation[$sAttCode]);
         } elseif ($oAttribute instanceof SynchroAttLinkSet) {
         }
         $oAttributeSet->AddObject($oAttribute);
     }
     $this->Set('attribute_list', $oAttributeSet);
 }