Updating Teams on an Account through API

I have been trying to update the Team an Account is assigned to through the API but it doesn't seem to update. Has anyone tried to do this?

Parents Reply
  • For anyone interested, I have found the solution. See Manipulating Teams Programmatically - SugarCRM Support Site under the Replacing Teams. I had to also update my endpoint code to do this but here is what I got.

    private function _processEntry($module, $fieldsArray)
        {
            $Logger = Factory::getLogger('default');
            if (array_key_exists('id', $fieldsArray)) {
                $sugarBean = BeanFactory::retrieveBean($module, $fieldsArray['id']);
                if (is_null($sugarBean)) {
                    $Logger->debug('Record ' . $fieldsArray['id'] . ' does not exist');
                    $sugarBean = BeanFactory::newBean($module);
                    /**
                     * When creating a bean, you can specify a value in the id column as
                     * long as that value is unique.  During save, if the system finds an
                     * id, it assumes it is an update.  Setting new_with_id to true will
                     * make sure the system performs an insert instead of an update.
                     *
                     * @var BOOL -- default false
                     */
                    $sugarBean->new_with_id = true;
                }else{
                    $Logger->debug('Record ' . $fieldsArray['id'] . ' does exist');
                }
            } else {
                $sugarBean = BeanFactory::newBean($module);
            }
            if (is_null($sugarBean)) {
                return null;
            }
            foreach ($fieldsArray as $field => $data) {
                if (is_array($data)){
                    foreach ($data as $element => $value) {
                        if (is_array($value)) {
                            foreach ($value as $obj1 => $obj2) {
                                $Logger->debug('Field: ' . $obj1 . ' Data: ' . $obj2);
                                if ($field == 'team_name' && $obj1 == 'id') {
                                    $sugarBean->load_relationship('teams');
                                    $sugarBean->team_id = $obj2;
                                    $sugarBean->teams->replace(
                                        array(
                                            $obj2
                                        )
                                    );
                                }
                            }
                        } else {
                            if ($field == 'team_name' && $obj1 == 'id') {
                                $sugarBean->load_relationship('teams');
                                $sugarBean->team_id = $obj2;
                                $sugarBean->teams->replace(
                                    array(
                                        $obj2
                                    )
                                );
                            }
                        }
                    }
                } else {
                    $Logger->debug('Field: ' . $field . ' Data: ' . $data);
                    $sugarBean->$field = $data;
                }
            }
            $sugarBean->save();
            return $sugarBean;
        }

Children
No Data