SOQLのnot like文を共有します。
List
Select
Id
, Name
From Attachment
where
(not Name like ‘テスト%’)
];
kinkun's blog
SOQLのnot like文を共有します。
List
Select
Id
, Name
From Attachment
where
(not Name like ‘テスト%’)
];
Sandboxと本番環境の判定について共有します。
Organization org = [select Id, IsSandbox from Organization limit 1];
System.debug(‘—– org.IsSandbox : ‘+org.IsSandbox);
実行結果
Sandbox環境の場合
—– org.IsSandbox : true
本番環境の場合
—– org.IsSandbox : false
Visualforceページタグ表示切替
確認方法
VFページを表示し、短縮キーCtrl-u押下して、Sandbox環境には表示されないが、本番環境では表示されることを確認する。
Apexトリガーエラーメッセージについて共有します。
test__c newObj = Trigger.new[i];
if (Trigger.isInsert) {
// commnet1
newObj.test__c = ‘comment1’;
} else {
test oldObj = Trigger.old[i];
if (newObj.test__c != oldObj.test__c &&
newObj.test__c == ‘test’) {
if(newObj.test2__c != newObj.test2__c) {
newObj.addError(‘エラーメッセージ’);
} else {
//xxx
}
}
}
Visusalforce Pageでボタン二重押下防止例を共有します。
// javascript // htmlSalesforce開発者コンソール画面でDebugする手順について共有します。
1.開発者コンソールを表示する。
2.テスト用Apexクラス作成する。
public with sharing class ApexDebugController {
public ApexDebugController(){
String msg = 'ApexDebugControllermsg';
User loginUser = new User();
}
}
3.テスト用クラス2.の「User loginUser = new User();」行の左サイドにブレイクポイント設定する。
4.Debugタブの「Open Execute anonymous Window」に以下のクラス実行インライン文作成し、実行する。
ApexDebugController cls = new ApexDebugController();
5.「Checkpoins」タブ開いて、ブラ幾ポイント時点での変数値確認する。
UserのName,FirstName,LastNameなどAPI参照項目ですが、それはユーザの詳細画面には表示されませんが、API参照名として存在してます。
それは開発コンソル画面で以下のように確認しましたので、共有します。
User usr = [SELECT Id, Name, LastName, FirstName FROM User limit 1];
system.debug('usr:'+usr);
結果
usr:User:{Id=0050I000009tZe8QAE, Name=システム, LastName=システム}
inputfieldタグを使用して画面に選択リストを表示させると初期表示として「–なし–」と表示される。
初期表示を変えたい場合には、<apex:selectList>を使って実装するしかありません。
VisualStudioCode Pakage.xmlで、標準Object、カスタムObject取得方法を共有します。
例えば、標準の取引先、すべてのカスタムオブジェクト取得の場合は以下です。
<types>
<members>User</members>
<members>Lead</members>
<members>Account</members>
<members>Contact</members>
<members>Opportunity</members>
<members>*</members>
<name>CustomObject</name>
</types>
他の例です。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>ApexClass</name>
</types>
<types>
<members>*</members>
<name>ApexPage</name>
</types>
<types>
<members>*</members>
<name>ApexTrigger</name>
</types>
<types>
<members>*</members>
<name>ApprovalProcess</name>
</types>
<types>
<members>User</members>
<members>Lead</members>
<members>Account</members>
<members>Contact</members>
<members>Opportunity</members>
<members>*</members>
<name>CustomObject</name>
</types>
<types>
<members>*</members>
<name>Workflow</name>
</types>
<types>
<members>*</members>
<name>Layout</name>
</types>
<types>
<members>*</members>
<name>Flow</name>
</types>
<types>
<members>*</members>
<name>FlowDefinition</name>
</types>
<version>47.0</version>
</Package>
Apexのdivide関数について共有します。
テストコードは以下です。
Decimal decimalNumber = 8;
Decimal result1 = decimalNumber.divide(9, 1);
Decimal result2 = decimalNumber.divide(9, 2);
Decimal result3 = decimalNumber.divide(9, 3);
Decimal result4 = decimalNumber.divide(9, 4);
Decimal result5 = decimalNumber.divide(9, 5);
system.debug('result1:'+result1);
system.debug('result2:'+result2);
system.debug('result3:'+result3);
system.debug('result4:'+result4);
system.debug('result5:'+result5);
結果は以下です。
13:00:48:002 USER_DEBUG [15]|DEBUG|result1:0.9
13:00:48:002 USER_DEBUG [16]|DEBUG|result2:0.89
13:00:48:002 USER_DEBUG [17]|DEBUG|result3:0.889
13:00:48:002 USER_DEBUG [18]|DEBUG|result4:0.8889
13:00:48:002 USER_DEBUG [19]|DEBUG|result5:0.88889
divideメソッドは、切り上げしています。
ApexでレコードタイプID取得コードを共有します。
/**
* getRecordTypeIdByQuery
* SOQLを使用してレコードタイプIDを取得
* @param : オブジェクト名(DeveloperName)
* @param : レコードタイプ名(DeveloperName)
* @return : レコードタイプID
*/
private ID getRecordTypeIdByQuery( String objectName, String recordTypeName ){
List<RecordType> recordTypeList = [
SELECT Id
FROM RecordType
WHERE SobjectType = :objectName
AND DeveloperName = :recordTypeName
];
return ( recordTypeList != null && !recordTypeList.isEmpty() ) ? recordTypeList[0].Id : null ;
}
テストする。
Salesforceの開発コンソルにて、上記のソースコードを登録し、以下のソースコードで呼び出す。
ID recordtypeid = getRecordTypeIdByQuery('Account','Business_Account');
System.debug('recordtypeid:'+recordtypeid);
結果
recordtypeid:0xxxx0000000xxxxxx