次のように、Salesforce標準オブジェクトを抽出するためのJavaでの簡単なSOQLクエリがあります-
String soqlQuery = "SELECT FirstName, LastName FROM Contact";
QueryResult qr = connection.query(soqlQuery);
オブジェクト フィールドのデータ型を取得したい。
次のように、Salesforce標準オブジェクトを抽出するためのJavaでの簡単なSOQLクエリがあります-
String soqlQuery = "SELECT FirstName, LastName FROM Contact";
QueryResult qr = connection.query(soqlQuery);
オブジェクト フィールドのデータ型を取得したい。
以下に、Salesforce ORG のカスタム オブジェクトまたは標準オブジェクトに存在する電話フィールドとそのラベルのリストを提供する小さな関数を作成しました。これが、コードのビジネス ロジックを記述するのに役立つことを願っています。
public list<String> getFieldsForSelectedObject(){
selectedPhoneNumber = ''; //to reset home number field
list<String> fieldsName = new list<String>();
selectedObject = 'Object Name' // This should have the object name for which we want to get the fields type
schemaMap = Schema.getGlobalDescribe(); //Populating the schema map
try{
if(selectedObject != null || selectedObject != '' || selectedObject != '--Select Object--'){
Map<String, Schema.SObjectField> fieldMap = schemaMap.get(selectedObject).getDescribe().fields.getMap();
for(Schema.SObjectField sfield : fieldMap.Values()){
schema.describefieldresult dfield = sfield.getDescribe();
schema.Displaytype disfield= dfield.getType();
system.debug('#######' + dfield );
if(dfield.getType() == Schema.displayType.Phone){// Over here I am trying to findout all the PHONE Type fields in the object(Both Custom/Standard)
fieldsName.add('Name:'+dfield.getName() +' Label:'+ dfield.getLabel ());
}
}
}
}catch(Exception ex){
apexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'There is no Phone or Fax Field Exist for selected Object!'));
}
return fieldsName;
}
文字列のサンプル OUTPUT リスト::
名前: Home_Phone__c ラベル: 自宅の電話 名前: Office_Phone__c ラベル: オフィスの電話