2016-01-29 18 views
1

我在Leads模塊中創建了一個Logic Hook以保存到數據庫中的字段。問題是,當我首先保存Lead時,會顯示重複的消息:在SuiteCRM中導出保存數據庫錯誤

數據庫故障錯誤檢查SuiteCRM日誌。

如果我註釋掉這個代碼,Lead然後保存。

LogicHook:

<?php 

class LeadData 
{ 
    public function leadSaveData(&$bean, $events, $arguments) 
    { 
     $stateId = $bean->state_c; 

     if ($stateId != "") { 
      $beanst_state = BeanFactory::getBean('s1_state', $stateId); 
      $StateName = $beanst_state->name; 
      $bean->resstate_c = $StateName; 
     } else { 
      $bean->resstate_c = "Punjab"; 
     } 

     if (!empty($bean->mediatype_c)) { 
      $mediaType = $bean->mediatype_c; 
      $callstatus = $bean->callstatus_c; //for follow up 
      if ($mediaType == 'Selectmedia' && $mediaType != '') { 
       $bean->refrence_c = 'null'; 
      } else if ($mediaType == 'Refrence') { 
       $bean->eventname_c = 'null'; 
      } else { 
       $bean->mediatype_c = 'null'; 
       $bean->refrence_c = 'null'; 
       $bean->eventname_c = 'null'; 
      } 

      if ($callstatus != 'followup') { 
       $bean->calllater_c = '0000-00-00 00:00:00'; 
      } 
      $bean->save(); 
     } 
    } 
} 
+1

推測您按照建議檢查日誌。也許包括這些信息可能有助於某人解決問題? – miken32

回答

2

請按照你的代碼,以使這個錯誤糾正或工作這些步驟。希望它能幫助你。

<?php 

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

if (!defined('sugarEntry') || !sugarEntry) 
    die('Not A Valid Entry Point'); 

class saveextradata_logic_hooks_class 
{ 
    static $already_ran = false; 

    function saveextradata_after_save_method(&$bean, $events, $arguments) 
    { 
     global $db; 

     if (self::$already_ran == true) return; 
     self::$already_ran = true; 

     $lead_id = $bean->id; 

     $stateId = $_POST['state_c']; 
     $sql = "select name from s1_state where id='$stateId'"; 
     $query = $db->query($sql); 
     $result = $db->fetchByAssoc($query); 
     $statename = $result[name]; 

     if ($stateId != "") { 
      $statename; 
     } else { 
      $statename = "Punjab"; 
     } 
     if (!empty($_POST['mediatype_c'])) { 
      $mediaType = $_POST['mediatype_c']; 

      if ($mediaType == 'Selectmedia' && $mediaType != '') { 
       $mediatype = 'Selectmedia'; 
       $reference = 'null'; 
       $eventname = $_POST['eventname_c']; 
      } else if ($mediaType == 'Refrence') { 
       $mediatype = 'Refrence'; 
       $reference = $_POST['refrence_c']; 
       $eventname = 'null'; 
      } else { 
       $mediatype = 'null'; 
       $reference = 'null'; 
       $eventname = 'null'; 
      } 
     } 

     $callstatus = $_POST['callstatus_c'];//for follow up 
     if ($callstatus != 'followup') { 
      $calllater = '0000-00-00 00:00:00'; 
     } 

     /*$bean->eventname_c = $eventname; 
     $bean->refrence_c = $reference; 
     $bean->mediatype_c = $mediatype_c; 
     $bean->calllater_c = $calllater; 
     $bean->resstate_c = $statename; 
     $bean->save();*/ 

     $leadupdate = "update leads_cstm set resstate_c='$statename',eventname_c='$eventname',refrence_c='$reference',mediatype_c='$mediatype',calllater_c='$calllater' WHERE id_c = '$lead_id'"; 
     $resultProductmasterdetail = $db->query($leadupdate); 
    } 
} 
+1

我已經分析過,當我們使用bean保存數據時,導致模塊中存在問題,它會在插入後使數據複製,因此您可以按照特定引導更新數據的步驟。希望這樣可以工作你.. –

+0

你好阿倫,非常感謝你解決這個數據庫錯誤。是的,這是工作和解決我的錯誤。 – Anuradha