Salesforce 检查是否有公寓

Salesforce 检查是否有公寓,salesforce,apex-code,Salesforce,Apex Code,我有以下几张表 床位(床位id、价格、是否激活、状态) 房间(房间id、价格、是否活动、状态、床位id) 公寓(公寓id、价格、是否处于活动状态、状态、公寓id) 预订(预订id、开始日期、结束日期、公寓id、房间id、床id) 当预订一套公寓时,公寓中的所有房间都应该是可用的。公寓房间里的所有床都应该是空的 预订完房间后,该房间的所有床位都应可用 我必须这样做,以大规模更新预订记录。在for循环中检查可用性是不可行的。如下所示 对于(预订预订北京:所有预订){ 检查可用性(预订id、床、房间、

我有以下几张表

  • 床位(床位id、价格、是否激活、状态)

  • 房间(房间id、价格、是否活动、状态、床位id)

  • 公寓(公寓id、价格、是否处于活动状态、状态、公寓id)

  • 预订(预订id、开始日期、结束日期、公寓id、房间id、床id)

  • 当预订一套公寓时,公寓中的所有房间都应该是可用的。公寓房间里的所有床都应该是空的

    预订完房间后,该房间的所有床位都应可用

    我必须这样做,以大规模更新预订记录。在for循环中检查可用性是不可行的。如下所示

    对于(预订预订北京:所有预订){

    检查可用性(预订id、床、房间、公寓)

    }


    代码将被写入触发器。

    我曾经像你一样询问人们如何编写代码,但这是一种蝙蝠习惯,必须改变。试着依靠自己,写一些代码;然后问别人。从伪代码开始,看看例子——从长远来看,这可能会对您有所帮助

    根据问题,请在下面找到一些代码。我并没有给你我想要你学习的全部代码

    trigger CheckBooking on Booking__c (after update){
        for(Booking__c booking : trigger.new){
        //Check if the booking is updated   
        If(Updated){
            //Grab the booking Id into a string var, example below:
            String bookingId = booking.Id;
            //Grab the room Id into a string var
            //Grab the Apartment Id into a string var
            //Grab the bed Id into a string var
        }
      // Do SOQL to check if the room, Apartment, bed are available 
       /*SOQL goes here*/
    
       //Check to make sure the availability 
        if(available){
            //do your logic
        }
        else{
            //do your logic
        }
      }        
    }
    
    注意:在批大小为1的情况下执行此更新,以便对每个记录执行此触发器,即事务大小为1

    如果要增大事务大小,请执行以下操作:
    1.将房间、房间、床位ID添加到列表中,然后SOQL检查它们是否可用


    这两种方法都应该很好。试试看。干杯

    这实际上不是一个问题,你需要重新措辞,清楚地问一下你在做什么,这不是一个可以免费编写代码的网站。