我已经使用REST API为帐户模块创建了记录,现在我想使用由SugarCRM提供的REST API添加子面板的所有相关记录,例如帐户的支付信息,并希望有一对多的关系。
答案 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,
);
}
我希望这会对你有所帮助。