[Salesforce]Apex StandardControllerテストクラス

Apex StandardControllerテストクラス

@isTest
private class Test_testController {

    static testmethod void test1() {
        
        Account acc = new Account(
            Name='テスト'
        );
        insert acc;

        Test.startTest();
        
        ApexPages.StandardController sc = new ApexPages.StandardController(acc);
        testController testSC = new testController(sc);

        PageReference pageRef = Page.testPage;
        pageRef.getParameters().put('id', String.valueOf(acc.Id));
        Test.setCurrentPage(pageRef);

        testSC.testMethod();

        Test.stopTest();
    }
}

[Salesforce]項目一括作成

項目一括作成

シナリオとして、取引先のカスタム項目をカスタムオブジェクトに一括コピーする。

手順

・組織のソースファイルを持ったvscodeのターミナルに下記コードを入力して実行する。実装すると、ソースファイルがメタデータに変換され、メタデータのフォルダとその下にファイルが新たに作成される。

sfdx force:source:convert

・作成したメタデータのコードをコピーして、作成したいカスタム項目のコードを追加する。

・ターミナルに下記コードを入力したら実行してメタデータをソースファイルに再変換する。

sfdx force:mdapi:convert -r メタデータフォルダパス

例えば、

sfdx force:mdapi:convert -r metadataPackage_1234567890123

・対象のファイルをデプロイすると、環境にカスタム項目が一括で作成される。

ただ、別途項目レベルセキュリティの設定が必要である。

[Salesforce]Visualforceのfooter

Visualforceのfooter

<apex:page renderAs="pdf">
    <head>
        <style>

            @page{
                size: 8.27in 11.69in;

                @bottom-center {
                    content: element(footer);
                }
            }

            body {
                font-family: Arial Unicode MS;font-size: 11pt;
            }


            div.footer {
                display: block;
                padding: 10px;
                position: running(footer);
            }

        </style>
    </head>

    <apex:outputPanel >

        <body>
            

            <div class="footer" name="footer">
            	<p>Footer</p>
            </div>

        </body>

    </apex:outputPanel>
</apex:page>

[Salesforce]カスタム設定getInstanceメソッドによる取得

カスタム設定getInstanceメソッドによる取得

getInstance()使用ない場合

public class CountryCodeHelper {
  public static String getCountryCode(String country) {

    Country_Code__mdt countryCode = [
      SELECT Id, MasterLabel, Country_Code__c
      FROM Country_Code__mdt
      WHERE MasterLabel = :country
      LIMIT 1
    ];
  
    return countryCode.Country_Code__c;
  }
}

getInstance()使用する場合

public class CountryCodeHelper {
  public static String getCountryCode(String country) {
    Country_Code__mdt countryCode = Country_Code__mdt.getInstance(country);
  
    return countryCode.Country_Code__c;
  }
}