プログラマ38の日記

主にプログラムメモです。

MySQL: 8.0でJDBCでの利用時にはまったこと

JDBCを使ってMySQLを使っていますが、MySQL 8.0 でいくつかつまづいたのでメモです。 1.JDBCドライバのクラス名が変更されている com.mysql.cj.jdbc.Driver 以前はcom.mysql.jdbc.Driver 2.JDBCパラメータが追加が必要です。(次の記載は私がよく使うも…

雑記: 繊細さん(HSP)の可能性が高い自分の傾向と対策

オリラジの中田さんのyoutube動画を見て繊細さん(HSP)という言葉を初めて聞きました。 動画を見たり、その他のWebサイトを見たりしてどうやら自分は繊細さんなんだろうなと感じました。 繊細さんの特徴と、自分の現在の傾向や対策をメモしておこうと思います…

Salesforce:標準項目の選択リスト値をリリースする

標準項目の選択リスト値は今まで手動で行っていましたが、メタデータのデプロイでリリースができることを知ったのでメモとして残します。(API48時点での記載です) メタデータの種類は「StandardValueSet」で、このメタデータは取得方法が他のメタデータと違…

Salesforce:Trigger.isDelete での before と after の違いではまったこと

今さらですが、Deleteトリガでの before と after の違いではまりました。 はまったこと 上記のように、オブジェクトBはオブジェクトAを参照しています。オブジェクトBのオブジェクトAへの参照関係項目の「参照レコードが削除された場合の対処方法」は”この…

MySQL: lower_case_table_names の違いではまった

テーブルの大文字と小文字を区別するパラメータ「lower_case_table_names」の違いではまりました。 はまったのは次です。 lower_case_table_names=0 の場合(Linuxなどの場合) テーブル名は、大文字小文字を区別するのでキャメルケースを利用している場合、…

MySQL: 何も考えずにテーブル文字セットをutf8にしてはまった

文字コードはutf8にしておけば問題ないだろうと甘い認識で、MySQLではまりました。 create table sample1 ( column1 varchar(100)) default charset=utf8; 上記のようにテーブル文字セットをutf8にしていると、文字化けしている文字、外字、4バイト文字がエ…

Salesforce: メタデータAPIの renameMetadata を使って 統一感のあるfullNameにする

急いで開発していて、設定の物理名(API名やdeveloper名など)はあまり考えている時間がなかったり、ネーミングルールを後から作ったため、それまでの設定がルールとあっていなかったりする場合があります。 メンテナンス性を考えてそれまでの設定の物理名を変…

Salesforce:Lightning ホームページの割り当てに対応するメタデータ

ホームページの割り当てがメタデータでどう出力されているかのメモです。 まずホームページの割り当ては次の3パターンです。 デフォルトのホームページ アプリケーション別割り当て アプリケーションおよびプロファイル別割り当て それぞれのメタデータにつ…

Salesforce:Lightning 「コミュニティ レコードの詳細」でのforce:hasSObjectName の動き

結論としては、Lightningページでは、force:hasSObjectName インタフェースは利用できますが、 コミュニティ レコードの詳細ページでは使えませんでした。(Spring'20時点) コミュニティのページで次のようなコンポーネントを作成した場合 <aura:component implements="force:hasSObjectName,force:hasRecordId,forceCommunity:availableForAllPageTypes" access="global" ></aura:component>

Salesforce: レコードのフォローを自動化する

レコードのフォローを自動化するには、 ConnectApi.ChatterUsers.follow(String communityId, String userId, String subjectId) を使います。 実際使ってみて気づいた点をメモしておこうと思います。 内部ユーザが外部ユーザのuserIdを指定できるが、外部ユ…

Salesforce: Lightning Component上で取得できるユーザ情報

Apexコントローラをコールしてしまえば必要な情報は取得できますが、Apexコントローラをコールしないでも次の情報が取得できます。 var userinfo = $A.get("$SObjectType.CurrentUser"); var userId = userinfo.Id;var userEmail = userinfo.Email;var isCha…

Salesforce: URLパラメータによるLEX新規作成画面の初期値セット

URLパラメータで新規作成画面の初期値がセットできるようになりました。 例 https://ドメイン/lightning/o/Account/new?recordTypeId=[レコードタイプID]&defaultFieldValues=Name=初期値1,Sic=初期値2,BillingState=初期値3 上記は取引先(Account)の例です…

Salesforce: Lightningページ上に配置したコンポーネントでよく使う aura:hander

Lightningページで、Lightning Componentを組み込んだ際に、初期表示を行ったり、変更やレコードの登録のタイミングでLightning Componentの内容を更新するといった制御が必要です。 そんな時には aura:hander を使いますが、個人的によく使うのは次の3つで…

Salesforce: 動的に作成したコンポーネントとの値のやりとり(cmp.getReference)について

「lightning:overlayLibrary」をはじめとして、動的に作成したコンポーネントと、それを表示する元のコンポーネントとで値のやり取りをしたい場合があります。 例えば、javascriptのconfirmでは、 var result = window.confirm('ボタンをクリックしてくださ…

雑記: メモリを追加してとても快適になりました

メモリ4GBでHDDのPCを使っています。Windows7をWindows10にアップデートをしたものでだいぶ古くなっていた(2013年購入)のですが、このタイミングで8GBのメモリを追加し、12GBのメモリとなりました。 今までは、ブラウザでタブを20,30と開いていくとメモリが…

Salesforce: lightning:picklistPathを使った2段階のステータス表示の実装

前に上記のような2段階でのステータス表示について、lightning:picklistPathを使ったアイデアを書きました。 crmprogrammer38.hatenablog.com そのアイデアの実装内容になります。 実装内容 オブジェクト項目 選択リストの連動関係 ステータスLv2の連動設定…

Salesforce: lightning:picklistPath について調べたこと

lightning:picklistPath について調べて考えたことのメモです。 上記のように、lightning:picklistPathは、いわゆるパスをLightning Componentタグで書ける機能で、次の特徴があります。 パスのように表示する選択リストの項目を変数で指定できる パスの更新…

Salesforce: 開発中の「セッションの設定」メモ

開発組織でのセッションの設定メモです。 設定>セキュリティ>セッションの設定から次を設定します。 1.「ユーザとしてログインしてから再ログインを強制する」のチェックを外す チェックを外すことで、代理ログイン(内部ユーザではユーザのログインボタ…

Salesforce:コミュニティページをメタデータで移行する

コミュニティページやコミュニティの設定をメタデータで移行する方法のメモです。 まず、上記の通り設定>コミュニティ>コミュニティ設定 から「ExperienceBundle メタデータ API を有効化」をチェックいれます。 チェックをいれると、メタデータでコミュニ…

Salesforce: 数式の 「15 オブジェクトの参照」の制限

複雑なオブジェクト構造で数式を作成する場合に気を付ける制限があります。 それは1つの数式で参照できるオブジェクト数は15オブジェクトの制限です。 数式で制限を超えると次のようなメッセージが表示されます。 そして、ここの「15 オブジェクトの参照」…

Salesforce: 監査項目の設定についてのメモ

監査項目の設定で、作成日などをセットすることができます。調べた結果の備忘としてメモします。 関連するSalesforceのHelp ヘルプ | トレーニング | Salesforce Salesforceの設定 ユーザインターフェースから”「レコードの作成時に監査項目を設定」および「…

Salesforce: 主従関係 主オブジェクト削除時の従オブジェクトのトリガの動き

主従関係にすると主オブジェクト削除時に従オブジェクトは自動で削除されますが、主オブジェクト削除した際は、従オブジェクトのトリガ(before delete, after delete)は動きません。 主従関係ではないですが、オブジェクトに関連付けた活動も同じ動きとなり…

Salesforce: リードの取引の開始をApexで行う時の注意事項

リードの取引の開始をまとめて行う場合に、Apex(もしくはAPIの)を使う場合があります。その際の注意事項を書いておこうと思います。 ApexでDatabase.convertLead(APIでconvertLead、以下Apex前提で記載します)を行う場合次の2点の考慮が必要です。 リー…

Salesforce: ディスクストレージの考慮事項

1レコード2KBだとずっと認識していました。大枠は正しいのですが、細かな部分が違っていたのであらためてまとめておこうと思います。内容は以下のヘルプに記載の通りで、基本1レコード2KBですが、キャンペーンや記事などが例外となっています。(キャンペ…

雑記: ブラウザをVivaldiに変えたらSalesforce開発が楽しくなった

まず、最初にブラウザのVivaldiはサポートされていないことはわかっています。ですが、Vivaldiを使ってちょっと便利になってSalesforce開発が楽しくなったので設定や使い方を書いておこうと思います。 1.タブスタッキングが便利過ぎる タブをグループで管…

Salesforce: アプリケーションメニューから、コミュニティを非表示にする

結論としては、アプリケーションに表示されているコミュニティは、プロファイルのアプリケーション設定ではなくアプリケーションメニューから非表示にできます。 以下詳細です。 コミュニティのメンバーとなったプロファイルや権限セットを持つユーザではア…

Salesforce:Lightning showToastイベント(e.force:showToast)のメモ(メッセージの改行など)

データ保存時にメッセージを表示するのに、showToastイベント(e.force:showToast)を使うことがあります。showToastイベントについて調べたことの備忘メモです。 1.mode (画面の表示の仕方) は 3 種類 2.type (色やアイコン) は 5 種類 3.一度に表示で…

Salesforce:Lightning Promiseを使ってサーバコールを順番に処理する

Lightning Componentのクライアントサイドコントローラで業務ロジックを書く時に、サーバサイドコントローラのメソッドを順次呼び出したり、全部の処理が完了した後にメッセージ表示をしたりしたい時があります。 例えば、次のようなhelperとcontrollerを用…

Salesforce:Lightning tableのヘッダを固定する

以前のVisualforceではtableタグのヘッダ固定は、JavaScriptやスタイルシートで自前で設定してきました。ですが、Lightning Componentのスタイルシート(すなわち、SLDSのCSS)ではあらかじめヘッダ固定用のスタイルが定義されています。※今のVisualforceではS…

Salesforce:Lightning 背景/文字/枠線のグレイ(Gray)の色

Lightning Componentで画面を作る際に、文字の色、背景の色、枠線の色へグレイを指定する際に、あらかじめclassが用意されています。 文字の色 slds-color__text_gray-1 から slds-color__text_gray-12 まで指定できます。次が表示した時の色合いです。 slds…