Soap 在sugarcrm中将一个模块的id导入另一个模块
我想要什么? 我想把一个模块的Id转换成另一个模块 说明:- 我创建了两个模块1。发票2。付款这两个模块之间存在一对多关系 现在我使用一个逻辑钩子来计算支付数据。 但我的问题是我的总量字段出现在语音模块中。如果我使用发票模块的硬代码id,它将正常工作 但是我没有从$bean获得当前记录的id var\u dump($bean)返回Null 代码是:Soap 在sugarcrm中将一个模块的id导入另一个模块,soap,logic,hook,sugarcrm,Soap,Logic,Hook,Sugarcrm,我想要什么? 我想把一个模块的Id转换成另一个模块 说明:- 我创建了两个模块1。发票2。付款这两个模块之间存在一对多关系 现在我使用一个逻辑钩子来计算支付数据。 但我的问题是我的总量字段出现在语音模块中。如果我使用发票模块的硬代码id,它将正常工作 但是我没有从$bean获得当前记录的id var\u dump($bean)返回Null 代码是: <?php // prevents directly accessing this file from a web browser if(!
<?php
// prevents directly accessing this file from a web browser
if(! defined('sugarEntry') || ! sugarEntry)
die('Not A Valid Entry Point');
class Process
{
function process(&$bean, $event, $arguments)
{
$focus = new invoi_invoice();
$id='d5112b7d-2e75-cba5-0e72-51e8ed34dcb7';
$a=$focus->retrieve($id);
$b=$a->totalamount;
// calculate item profit
$bean->t_remaing_amount_c = ($b - $bean->t_amount_paid_c);
// calculate sale profit
if(!empty($bean->t_no_of_rooms_c))
{
$bean->t_amount_per_room_c= ($bean->t_total_amount_c / $bean->t_no_of_rooms_c);
}
}
}
?>
此代码工作正常,因为id是硬编码的。当我使用$bean->id获取记录的id时,它实际上不起作用;重新运行空值
请帮助我如何获取当前记录的id。首先,关于您的句子: 当我使用$bean->id获取记录的id时,它实际上不起作用;返回空值 据我所知,您在支付模块中使用逻辑挂钩。因此,Process::Process()中的$bean参数引用了付款模块中的记录。无法想象,如果当前记录(即付款类的实例)已经作为函数参数通过引用传递,为什么需要获取它的id。在您的示例中,您硬编码了发票模块记录的id。那么您实际需要检索哪个模块记录呢?希望你真的需要发票模块一。因此,我们有一个案例来获取父记录。过一会儿再说 我认为您的var_dump()调用返回null的原因是您在save logic hook之前使用它。“保存前”表示聚焦bean仍然没有“id”属性,因为。。。它只是还没有被保存!如果您查看SugarBean::save()方法,您会发现“id”属性(实际上是UUID的形式)是在该方法中调用create_guid()函数时生成的。由于不调用$bean->save(),因此没有id属性。很清楚 回到抓取父记录 有很多方法可以做到这一点
- 在我以前的一个项目中,我使用SugarBean::get_linked_beans()方法获取父记录的数组(由一对多关系中的1个元素组成)李>
- 您可能会发现一些如何使用其他SugarBean类方法来获取父记录的想法
- 尝试浏览$\u请求全局以查找保留父记录id的密钥
- 查看cache/MODULE\u NAME/BEAN\u NAMEvardefs.php文件,并尝试查找以一对多关系命名的“type”=>“link”和“relationship”键的字段定义。我的意思是这样的:
'invoices_s892lyment_ida' => array( 'name' => 'invoices_s892lyment_ida', 'type' => 'link', 'relationship' => 'invoices_payments', 'source' => 'non-db', ... );
$invoice = new Invoice();
$invoice->retrieve($bean->invoices_s892lyment_ida);
首先,谢谢先生给我一个建议,不管你理解什么,一切都是正确的$id=$invoice->retrieve($bean->invoi\u invoice\u t\u hotel\u payment\u 1invoi\u invoice\u ida);它给我一个警告:mysqli_real_escape_string()希望参数2是字符串,第254行/drive2b/current/sugarhotel.devprolive.com/code/include/database/MysqliManager.php中给出的对象可捕获致命错误:第2293行/drive2b/current/sugarhotel.devprolive.com/code/data/SugarBean.php中的Link2类对象无法转换为字符串