[Salesforce]UserのName,FirstName,LastNameのAPI参照項目

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=システム}

[Salesforce]VisualStudioCode Pakage.xml

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>

[Salesforce]Apexのdivideメソッド

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メソッドは、切り上げしています。

[Salesforce]ApexでレコードタイプID取得

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

[Technical terms]プロトタイピング

いきなり完成品を作るのではなく、不完全なものを少しずつ作り、そのつどフィードバックをもらいながら軌道修正を行う開発プロセス
将来完成する予定のプロダクトの不完全なモデルを早期に作ることです。早期に形にすることで、顧客が完成物に対してイメージを持つことができます。
これにより、プロダクトが完成する前に顧客に見せて、フィードバックを得ることができ、完成してからの手戻りを防ぐことができます。

メリット

手戻りを防ぐ
チームメンバー間の認識のずれを防ぐ
仕様の肥大化を防ぐ

注意点

検証をしすぎて、スピードが鈍化する
ユーザーの要望の聞きすぎて、エッジが取れる。(「単なる要望」と「汎用的で本質な欲求」を見極めることが重要です。)

プロトタイピングを中心とした開発プロセスとは

解決する課題とソリューションを発見する
ラフスケッチで主要機能を定義する
ワイヤーフレームのプロトタイプを作成する
デザインのプロトタイプを作成する
インタラクションに関するプロトタイプを作成する
実装する

[Software]Visual Studio CodeでJava開発

Visual Studio Codeの拡張で以下をインストールする。

Java Extension Pack

プログラミングを実行

まずは、Hello, World!を書いてみる。
- ファイル-フォルダを開く
- 新規ファイルを選択
- 右下の言語モードの選択でJavaを選択。文字コード・改行コードはお好みに
- 名前を付けて保存(Ctrl+Shift+S)する。
- デバッグの開始(F5) でプログラムを実行できる。
- TERMINALに実行結果が表示される。

[Technical terms]モブプログラミング

モブプログラミングとは3人以上のエンジニアで1つのプログラムを書く手法。
1人がコードを書き、他の人はディスプレイに映した画面を見ながらやいのやいの意見を言って、プログラムを完成させます。コードを書く人をドライバー、意見を言う人をナビゲーターと言います。

または1人ずつ回りながらコードを書き、周りの人も意見を述べて進めていくパターンなどあります。