salesforce apex常用方法(总结)

1、获取当前用户邮箱

String userEmail = UserInfo.getUserEmail();//获取用户邮箱

2、获取page页面网址id

String accid = ApexPages.currentPage().getParameters().get('id');

3、获取当前用户id,获取权限集id

String Uid = Userinfo.getUserId();

String Pid = UserInfo.getProfileId()

4、异步(异步处理发邮箱给管理员)

  //实现Database.Batchable<sObject>
 global with sharing class BathRecalculateMonthlyInventory implements Database.Batchable<sObject>{
    
    //开始 填写要异步处理的方法
    global Database.QueryLocator start(Database.BatchableContext BC){
        system.debug('进入开始方法');
        return Database.getQueryLocator([Select Id,Lock__c,Combination_Key__c,Stock_In__c,Stock_Out__c From Monthly_Inventory__c Where Lock__c = false]);
    }
    
    //执行 填写处理方法的逻辑
    global void execute(Database.BatchableContext BC, List<Monthly_Inventory__c> list_Monthly_Inventory){
       
    }
    
    //结束 前面的方法执行完毕后最后执行这个
    global void finish(Database.BatchableContext BC){
        //邮件通知管理员
        List<User> list_user = [Select Id,Email From User Where Profile.Name in('System Administrator','系统管理员')];
        String[] mailTo = new String[] {};
            for(User u:list_user){
                mailTo.add(u.Email);
            }
        String subject =  ' 库存数据重算已完成';
        String body = '您好,' + ' 库存数据重算已完成,请检查并确认数据。';
        UtilHelper.sendMail(UserInfo.getUserId(),mailTo,subject,body);
    }    
}

5、接口请求

1.接口方法

@RestResource(UrlMapping = '/behaviorApi/importBVPRO') 
global class RestBvproMeetingData extends RestBaseInbound{
    public static LogHanlder logInstance;

    @HttpPost
    global static void  saveLiveMeetingData() {
        logInstance = initLog('RestBvproMeetingData',null );
        Log__c log = getCurrentLog();
        log.Type__c = 'BVPR参会记录';
        logInstance.isPrint = true ;

        try{
            logInstance.requestBody = getRequestBody();
            JsonMappingTemplateUtil u = JsonMappingTemplateUtil.initApiConfigTemp();
            List<object> objs = u.getObjectsForJson(getRequestBody());
            system.debug('objs:'+objs);
            Set<String> userCpde_Set = new Set<String>();
            Set<String> meetingCode_Set = new Set<String>();

            for(Object obj : objs){
                Map<String, Object> temp = (Map<String, Object>)obj;
                String userCode = '' + temp.get('doctor_user_id');
                userCpde_Set.add(userCode);
                String meetingCode = '' + temp.get('EM_meetingcode');
                meetingCode_Set.add(meetingCode);
            }
            List<Sobject> list_sobj = u.toSfSobject('Behavior_Data__c',logInstance.requestBody);
            
			system.debug('list_sobj:'+list_sobj);
			Map<String,id> usertCode_Id_map = LogUtil.querySobjectMap('Contact',userCpde_Set,'doctor_user_id__c');
            system.debug('usertCode_Id_map:'+usertCode_Id_map);
            Map<String,id> meetingCode_Id_map = LogUtil.querySobjectMap('Campaign__c',meetingCode_Set,'CampaignCode__c');
            system.debug('meetingCode_Id_map:'+meetingCode_Id_map);
            List<Behavior_Data__c> bdList = new List<Behavior_Data__c>();
            RecordType rocordType = UtilHelper.getRecordType('BVPRrecords');

            for(Sobject sobj : list_sobj){
                Behavior_Data__c bd = (Behavior_Data__c)sobj;
                bd.recordTypeid = rocordType.id;
                // bd.section_name__r = bd.Section__c != null && system.label.RelevancyKeyword.contains(bd.Section__c) && bd.DetailID__c != null ? new Section__c(UniqueKey__c = bd.Section__c+'_'+bd.DetailID__c) : null;
                bd.Contact__c = usertCode_Id_map.containskey(bd.doctor_user_id__c) ? usertCode_Id_map.get(bd.doctor_user_id__c) : null;
                bd.Event__c = meetingCode_Id_map.containsKey(bd.CampaignCode__c) ? meetingCode_Id_map.get(bd.CampaignCode__c) : null;
                bdList.add(bd);
            }
            system.debug('**************bdList:'+bdList);
            setResponseBody(Database.upsert(bdList,false),objs,null,'doctor_user_id','doctor_user_id');
        }catch(Exception e){
            logInstance.logError(e);
            System.debug(e.getMessage());
            setResponseBody(JSON.serialize(new RestInBoundResponse(0,e.getMessage())));
            //setResponseBody('{"status":0,"message":"'+e.getMessage()+'"}');
        }finally{
            addResponseHeader('Content-Type', 'application/json;charset=UTF-8');
			logInstance.upsertLog(log);
        }
    }
}

2.调用接口的工具

Workbench

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值