如何使用rest api在sugarcrm CE 6.5自定义子面板中创建记录

时间:2015-01-30 08:36:21

标签: php rest sugarcrm

我已经使用REST API为帐户模块创建了记录,现在我想使用由SugarCRM提供的REST API添加子面板的所有相关记录,例如帐户的支付信息,并希望有一对多的关系。

1 个答案:

答案 0 :(得分:0)

相关记录sugarcrm基本上保持单独的表 例如

对于产品模块和库存模块(一对多关系),它将保持表格如下所示。

  

aos_products_i_inventory_1_c

因此,如果我们想要添加相关记录,我们可以在此表中映射产品和库存的ID。

所以,基本上你需要有一个RestApi Call来在你的关系表中插入(映射)账号和付款ID。

您可以从文档中搜索使用哪种方法

Rest Methods call documentation

如果no方法满足您的要求,那么您可以根据需要在 Sugarcrm / service / core / SugarWebServiceImpl.php 下为RestApi创建自己的方法。

考虑这个Api自定义方法示例,该方法将根据产品从(产品模块)返回产品价格,并从(库存模块)返回可用计数。

function get_inventory_count_Productprice($session, $model_number){

$GLOBALS['log']->info('Begin: SugarWebServiceImpl->get_count_relation');
$error = new SoapError();
// check the access for particular sesstion 
if (!self::$helperObject->checkSessionAndModuleAccess($session, 'invalid_session', '', '', '', $error)) {
    $error->set_error('invalid_login');
    $GLOBALS['log']->info('End: SugarWebServiceImpl->get_available_modules');
    return;
} // if
$qur = "SELECT price,id FROM aos_products where part_number='".$model_number."' AND deleted=0 LIMIT 0,1";
$res = $GLOBALS['db']->query($qur);
$row = $GLOBALS['db']->fetchByAssoc($res);

$focus = BeanFactory::getBean('AOS_Products', $row['id']);      //Retrieve bean
$inventory = $focus->get_linked_beans('aos_products_i_inventory_1','i_inventory');  // loading relation ship
$count = 0 ;
foreach ($inventory as $product) {
    if($product->status=='available'){
        $count++;
    }
}
$GLOBALS['log']->info('End: SugarWebServiceImpl->get_count_relation');
return array(
    'price' => $row['price'],
    'count' => $count,
    );

}

我希望这会对你有所帮助。