「NO_MASS_MAIL_PERMISSION, Single email is not enabled for your organization or profile.」エラー対応方法を紹介します。
Setup > Email Administration > Deliverability. にして、
「全てのメール」へ変更
kinkun's blog
SINGLE_EMAIL_LIMIT_EXCEEDED、「The daily limit for the org would be exceeded by this request」エラー時の制限値確認手順を紹介します。
日付項目の日本時間MM/DD形式で出力例を紹介します。
例
datetime.now().format(‘yyyy/MM/dd HH:mm:ss’, ‘JST’)
Date dateToday = Date.today(); String sToday = String.valueof(dateToday.year()) + String.valueof(dateToday.month()) + String.valueof(dateToday.day());
phpMyAdminでデータエクスポート手順を共有します。
メニュー > エクスポート
Export method選択 : 詳細ー可能なオプションをすべて表示
フォーマット選択:SQL
Databases選択:wordpress
その他はDefault値にする。
「実行」ボタン押下する。
生年月日(誕生日)から年齢の算出する数式項目作成例を紹介しまます。
IF(OR(MONTH(today())-MONTH(Birthday__c)>0,AND(MONTH(TODAY()) - MONTH(Birthday__c)>=0,DAY(TODAY()) - DAY(Birthday__c)>=0)),
YEAR(TODAY()) - YEAR(Birthday__c),
YEAR(TODAY()) - YEAR(Birthday__c)-1)
ここで、
Birthday__c : 誕生日の日付項目
TestVisible アノテーションにつついて紹介します。
TestVisible アノテーションを使用すると、テストクラス外にある別のクラスの非公開メンバーまたは保護メンバーにテストメソッドからアクセスできるようになります。これらのメンバーには、メソッド、メンバー変数、内部クラスが含まれます。このアノテーションは、テストを実行する目的でのみ、権限の高いアクセスレベルを有効にします。このアノテーションによって、非テストクラスからアクセスするメンバーの表示が変わることはありません。
このアノテーションでは、メソッドのアクセス修飾子やメンバー変数にテストメソッドでアクセスする場合に、それらを public に変更する必要はありません。たとえば、外部クラスに対して非公開メンバー変数を表示せずに、テストメソッドからアクセスできるようにする場合は、TestVisible アノテーションを変数定義に追加します。
この例では、非公開クラスメンバー変数と非公開メソッドに TestVisible アノテーションを付加する方法を示します。
public class TestVisibleExample {
// Private member variable
@TestVisible private static Integer recordNumber = 1;
// Private method
@TestVisible private static void updateRecord(String name)
{ // Do something }
}
上記のクラスを使用するテストクラスを次に示します。アノテーションが付加されたメンバー変数とメソッドにアクセスするテストメソッドが含まれています。
@isTest private class TestVisibleExampleTest { @isTest static void test1() { // Access private variable annotated with TestVisible Integer i = TestVisibleExample.recordNumber; System.assertEquals(1, i); // Access private method annotated with TestVisible TestVisibleExample.updateRecord('RecordName'); // Perform some verification }
Visual Studio CodeでApex PMDの使い方について共有します。
PMDとは、ソースコードの解析を行い、無駄な変数、ループ、条件式などバグの原因となる可能性のあるコードの判定を行っているツールです。
Apex PMDはApexコードでソースの分析を行ってくれるExtentionです。
・Apex PMDインストールする。
Visual Studio Codeの「Extentions」にて「Apex PMD」をインストールする。
インストール後、画面右下のステータスバーに「Apex PMD」の文字が表示されるようになります。
例えとして、以下のテスト用クラスを作成して保存してコミットします。
コミット後、画面に右下の「Apex PMD]の横にワーニング表示が表示されます。
そしえ、「Problems」のところにワーニング内容が表示されまます。
Apex classes should declare a sharing model if DML or SOQL is used (rule: Security-ApexSharingViolations)
該当箇所:public class testClass {
修正案:public class testClass {
上記の修正案によって、該当ワーニングが消えました。
Class names should begin with an uppercase character (rule: Code Style-ClassNamingConventions)
該当箇所:public with Sharing class testClass {
修正案:public with Sharing class TestClass {
上記の修正案によって、該当ワーニングが消えました。
Use one statement for each line, it enhances code readability. (rule: Code Style-OneDeclarationPerLine)
該当箇所:integer a, b, c = 0;
修正案:
integer a;
integer b;
integer c = 0;
Validate CRUD permission before SOQL/DML operation (rule: Security-ApexCRUDViolation)
該当箇所:User u = [Select id from User Limit 1];
修正案:
ログインユーザについて「ユーザ」オブジェクトについて参照権限付与を確認する。
親オブジェクトから子オブジェクトへのリレーションの辿り方法について共有します。
取引先から取引先責任者を取得する例を紹介します。
for(Account obj : [
Select
Name,
(Select Name From Contacts)
From
Account
]
){
system.debug('obj:'+obj);
system.debug('obj.Name:'+obj.Name);
for(Contact objChild : obj.Contacts){
system.debug('objChild:'+objChild);
system.debug('objChild.Name:'+objChild.Name);
}
}
子オブジェクトから親オブジェクトへのリレーションの辿り方法について共有します。
例として、取引先責任者から取引先を辿る例です。
for(Contact obj : [
Select
Name,
Account.Name,
Account.CreatedBy.Name
From
Contact
]
){
system.debug('obj.Name:'+obj.Name);
system.debug('obj.Account.Name:'+obj.Account.Name);
system.debug('obj.Account.CreatedBy.Name:'+obj.Account.CreatedBy.Name);
}
データローダでExportしようとして、アカウント情報を入力してログインボタン押下すると、「api is not enabled for this organization or partner」エラーがでた。
理由として、Salesforceライセンスによるものでした。
以下の参考だと、今現在APIが有効であるのは、「Enterprise, Unlimited and Developer editions」のことです。
https://help.salesforce.com/articleView?id=000327326&language=en_US&type=1&mode=1
対応案として、SFの「データインポートウィザード」を使うことで解決できます。