Salesforce零碎知识点(三)

本文介绍了如何通过Java调用Salesforce的各种API,如SOAP、REST、BULKAPI,以及如何处理数据导入、元数据修改、日期/时间类型转换和数据库操作,包括DML与Database类的区别和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

七、Salesforce API:
    1.SOAP API:可以用来创建、检索、更新和删除数据。但是相对来说比较笨重。
    2.REST API:功能与SOAP API类似,优势是更加轻量级。
    3.BULK API:基于REST API的大量数据处理API。可以使用query, queryAll, insert, update, upsert和delete等方法。
    4.Metadata API:用于修改Salesforce元数据。
    5.WSDL:Web Service定义语言,提供了在开发环境中用于调用API的详细信息。

八、JAVA调用REST API:

    static int proxyPort = 10080;				
    static String userName = "sys-set@nexim.sony.com";				
    static String password = "nexim1234";				
    static String authEndPoint = "https://login.salesforce.com/services/Soap/u/57.0";				
    static String object = null;				
    static String strSoql = "select id from Account";				
				
				
				
public static boolean login() {				
	// FSC Shiroma ログインユーザIn/Out分割に伴いコメントアウト			
	String soapEndpoint = null;			
	String restEndpoint = null;			
	ConnectorConfig partnerConfig = null;			
	ConnectorConfig config = null;			
	Proxy proxy = null;			
				
	// リトライ可能回数を取得			
	RETRY_LIMIT = 5;			
	RETRY_WAIT_TIME = 10000;			
				
	while (true) {			
		try {		
			// SFDC接続情報設定	
				
			// ログインしてセッションIDを取得	
			partnerConfig = new ConnectorConfig();	
				
			// ログイン情報設定	
			partnerConfig.setUsername(userName);	
			partnerConfig.setPassword(password);	
			partnerConfig.setAuthEndpoint(authEndPoint);	
				
			// proxy情報設定	
			proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));	
			partnerConfig.setProxy(proxy);	
				
			// 接続	
			new PartnerConnection(partnerConfig);	
				
			// 接続設定の定義	
			config = new ConnectorConfig();	
			// セッションIDを格納	
			config.setSessionId(partnerConfig.getSessionId());	
			config.setProxy(proxy);	
				
			soapEndpoint = partnerConfig.getServiceEndpoint();	
			restEndpoint = soapEndpoint.substring(0, soapEndpoint.indexOf("Soap/")) + "async/" + apiVersion;	
			config.setRestEndpoint(restEndpoint);	
				
			// 圧縮設定についてデバッグ時でなければtrueに設定	
			config.setCompression(true);	
			// trueだとHTTPリクエストおよびレスポンスの表示	
			config.setTraceMessage(false);	
				
			// configからBulkConnectionオブジェクトを作成	
			connection = new BulkConnection(config);	
			break;	
		} catch (ConnectionException e) {		
			if (!connectionRetry()) {	
				System.out.println(e.getMessage());
				return false;
			}	
		} catch (AsyncApiException e) {		
			if (!connectionRetry()) {	
				System.out.println(e.getMessage());
				return false;
			}	
		}		
	}			
	return true;			
}				

九、Bulk API:
    1.Bulk API通过简单的接口,可以向Salesforce中导入大量的数据,或是进行大量数据的查询。
    2.Bulk API 2.0要在Salesforce API 41.0及之后的版本的API才能使用,而关于其的查询Job则需要在API 47.0及之后版本才能使用。
    3.API的有效期限:Salesforce API从Release日开始,最少有3年的support时间。

十、Date、Date/Time、Text类型之间的转换:
    1.Date/Time和Date之间的转换:
        (1)Date/Time和Date之间的转换:
            ①DATEVALUE()函数:Date/Time→Date
            ②DATETIMEVALUE()函数:Date→Date/Time,Time默认为标准时间的12:00 am。
        (2)Date和Text之间的转换:
            ①TEXT()函数:Date→Text
            ②DATEVALUE()函数:Text→Date,Text格式应遵循YYYY-MM-DD。
        (3)Date/Time和Text之间的转换:
            ①TEXT()函数:Date/Time→Text
            ②DATEVALUE()函数:Text→Date,Text格式应遵循YYYY-MM-DD。

十一、数据库操作:
    1.Apex操作数据库的方法:
        (1)DML语句:
            查找:[queryString]    
            添加:insert    
            修改:update    
            删除:delete    
            添加或修改:upsert    
        (2)DataBase类的方法:
            查找:[queryString]    
            添加:insert    
            修改:update    
            删除:delete    
            添加或修改:upsert    
    2.DML和Database类操作的区别:
        (1)DML进行批量操作时,如果其中某一条出错,则会全部回滚;而Database类的操作可以设定参数来控制是否跳过出错的那条数据。
        (2)Database类方法可以进行事务处理,DML则无法进行。
    3.两种方法比较:
        (1)普通的增删改查处理推荐使用DML,因为写法简便。
        (2)如果需要使用批处理、事务、或是某一条数据出错跳过的场合则要使用Database类。
    4.Database类常用方法:
    (1)public static List<SObject> query(String queryString)    
        查询
    (2)public static Database.SaveResult insert(sObject recordToInsert, Boolean allOrNone)     
        插入单条数据
       public static Database.SaveResult[] insert(sObject[] recordsToInsert, Boolean allOrNone)
        插入多条数据
       注:allOrNone参数设为true时,一个操作失败则全部回滚;为false时,即使本条数据操作失败,也会继续进行下面的操作。
    (3)update和delete的写法和insert类似。
     5.Database类进行事务处理:
    (1)public static System.Savepoint setSavepoint()   
        设置savepoint
    (2)public static Void rollback(System.Savepoint databaseSavepoint)
        回滚
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值