2017-04-06 1 views
1

Ceci est le crochet logique After Save, ce crochet logique fonctionne parfaitement sur ma machine locale.
Mais cela ne fonctionne pas sur sandboxcopy. J'ai posé cette question à l'équipe de soutien de Sugar,
Ils ont constaté que Set_relationship ne fonctionne pas.
Mais ma question est de savoir pourquoi cela fonctionne sur local ou y at-il une autre façon d'écrire ce code, où je me trompe?Set La relation ne fonctionne pas sur le bac à sable Sugarcrm

class RHLogicHook { 

    function ReportingTeam($bean, $event, $arguments) { 

     if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) { 
      $reporting_head = BeanFactory::retrieveBean('Contacts', $bean->contact_id_c); 
      $contact = BeanFactory::retrieveBean('Contacts', $bean->contacts_rh_reporting_head_1contacts_ida); 

      $reporting_team = new RH_reporing_team(); 
      $reporting_team->contact_id_c = $contact->id; 
      $reporting_team->save(); 
      $dataset = array(
       'contacts_rh_reporing_team_1contacts_ida' => $reporting_head->id, 
       'contacts_rh_reporing_team_1rh_reporing_team_idb' => $reporting_team->id, 
      ); 
      $reporting_team->set_relationship('contacts_rh_reporing_team_1_c', array(), false, false, $dataset); 

     } 
    } 

} 

S'il vous plaît aidez-moi.

Répondre

0

veuillez ne pas utiliser ci-dessus. utiliser la relation de charge et ajouter une méthode.

class RHLogicHook { 

    function ReportingTeam($bean, $event, $arguments) { 

     if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) { 
      $reporting_head = BeanFactory::retrieveBean('Contacts', $bean->contact_id_c); 
      $contact = BeanFactory::retrieveBean('Contacts', $bean->contacts_rh_reporting_head_1contacts_ida); 

      $reporting_team = new RH_reporing_team(); 
      $reporting_team->contact_id_c = $contact->id; 
      $reporting_team->save(); 

      $GLOBALS['log']->log('zob_ms_bean ' . print_r($reporting_head, 1)); 


      if ($reporting_head->load_relationship('contacts_rh_reporing_team_1')) { 
       $reporting_head->contacts_rh_reporing_team_1->add($reporting_team->id); 
      } 
     } 
    } 

} 
+0

comment cette réponse est incorrecte je fonctionne parfaitement. –

0

certaines fonctions sont mis à l'index, si c'est le cas, vous pouvez facilement utiliser une astuce pour vous assurer que votre code fonctionne très bien sur la production instance.Try ci-dessous trick mentionné:

$ hack_function = "set_relationship "; $ reporting_team -> $ hack_function ('contacts_rh_reporing_team_1_c', array(), false, false, $ jeu de données);

laisse espérer que cela résout votre problème.