プログラマ38の日記

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

Salesforce

Salesforce: メールの文字コードについて

Salesforceからメールを送信する時の文字コードではまったのでメモです。 (はまったのはユーザ情報でメールの文字コードを「Shift_JIS」にしていたのに、送信されたメールで丸数字"①"などが化けていたという事象です。原因はメールテンプレートの文字コード…

Salesforce: データの共有に関する設定箇所

Salesforceでは、あるレコードを参照できる人・できない人のセキュリティ制御が可能です。 標準機能のグローバル検索やビュー・レポートの結果も参照できるレコードのみで表示されるし、URLを直接変更されて参照できないレコードのIDを指定されてもアクセス…

Salesforce: visualforce「apex:relatedList」のlist属性で指定できる標準の子リレーション名 (api41)

visualforceの 「apex:relatedList」 で標準で用意される関連リストを表示したい時があります。 api41で使えるlist属性の値のメモです。 カスタムオブジェクトの標準関連リストで次をvisualforceで個別に表示します。 listで次を指定することで個別に指定で…

Salesforce/Excel: ナレッジのカテゴリを一覧表示するマクロを作成しました

ナレッジのデータカテゴリを一覧化するマクロを作成しました。※このツールは、TLS1.1以上で通信する必要があり、Windows10や、TLS1.1以上を使うようにレジストリを変更したWindows7などで利用できます。 ダウンロードはこちらからです。 記事とカテゴリのひ…

ツール: 今まで作成したツールの一覧

今まで、いくつか作成したツールを紹介してきました。 あらためて次のように表にまとめてみました。これからも増やしていきたいと考えています。 [作成したツール一覧] # ツール 内容 紹介記事 /ファイルリンク 利用している仕組み 1 TERADATAデータインポー…

Salesforce/Excel: 直接AnonymousApexを実行するExcelマクロを作成しました

Salesforceで用意されている関数を試してみたり、開発した関数の動きを確認したり、AnonymousApexを利用したい時があります。 AnonymousApexは、開発者コンソールやForce.com IDE、Salesforce Workbenchで実行できますが、実行結果をExcelで保存したいなーと…

Salesforce: apache httpclient / commons http を使ってREST APIでファイル(ContentVersion)を登録する

Salesforceへバイナリファイルを連携するには、通常はデータローダをはじめとするSOAP APIを使いbase64変換した文字列を送信します。 ファイル(ContentVersion)は2GBと大きいサイズでも登録が可能ですが、SOAP APIでは、Base64変換後のサイズで50MBのサイズ…

Salesforce: Rest API で思ったこと

SalesforceのRest APIで思ったことのメモです。 まずSalesforceのRest APIは次の特徴を持ちます。(個人的に思っていることです。。詳細な仕様はSalesforceのヘルプを参照ください) httpsの通信ができれば、SalesforceとAPIのやり取りが可能 APIの送受信の…

Salesforce: ログインユーザが利用可能なレコードタイプの一覧を取得する

レコードタイプの選択を、Visualforceで行いたい時があります。 標準のレコードタイプ選択画面であれば、ログインしているユーザのプロファイルに応じたリストが表示されますが、 そのリストをApexで作成する場合のメモです。 [サンプルコード] ※Sample__cは…

Salesforce: 時間型(ベータ)が追加されている件と項目作成マクロの更新の件

Winter18のバージョンアップでカスタム項目の型に、時間型が追加されていますね。 まだベータですが、時分を入力する項目を次のように用意することが多いので便利になります。 ・時分を入力するテキスト欄を用意 ・HH:MMを保証する入力規則を用意 ・もしくは…

Salesforce/Excel: SOQLとビューのexplain結果を表示するExcelマクロを作成しました

Salesforceで、オブジェクトの件数が増えてくると、SOQLやビューが遅いときがあります。 そんな時は、explainの結果を見てSOQLやビューの条件を見直したり、外部IDを作成、カスタムインデックスの作成を依頼するなどの対応となります。 複数のexplain結果を…

Salesforce/Excel: 直接カスタム表示ラベルの作成 / 一覧表示するExcelマクロを作成しました

Salesforceで多言語対応したアプリケーションを開発する時は、多くのカスタム表示ラベルを登録する必要があります。 一度に多くのカスタム表示ラベルを作成できるExcelマクロを作成しました。※このツールは、TLS1.1以上で通信する必要があり、Windows10や、T…

Salesforce: 開発でちょっと便利になる関数のメモ(トリガ用:参照項目をSet<Id>で取得、文字列操作:lenb、leftb、 rightb)

いくつか関数を作ったのでメモです。 用意した関数は次の4つです。 トリガでよく使う参照項目のIdのSetを作る 文字のバイト数(Excelのlenbと同等) 文字のバイト数(Excelのleftbと同等) 文字のバイト数(Excelのrightbと同等) 1. トリガでよく使う参照…

Salesforce: メタデータエクスポートツールのバージョンを上げました(APIVer41)

Salesforceのバージョンアップに伴い、コマンドラインで動作するメタデータのエクスポートツールのバージョンを上げました。 ダウンロードはこちらです。 今回のバージョンアップでは、メタデータで目立って追加されているものはないように思います。(Topics…

Salesforce/Excel: 直接オブジェクト一覧と項目一覧を取得するExcelマクロのバージョンをあげました(APIver41)

Salesforceのバージョンアップに伴い、オブジェクト一覧と項目一覧(子リレーション一覧も含む)のバージョンを上げました。※このツールは、TLS1.1以上で通信する必要があり、Windows10や、TLS1.1以上を使うようにレジストリを変更したWindows7などで利用で…

Salesforce: データローダの起動についてのメモ(メモリ不足の対応)

Salesforceのデータをまとめて編集をする時に、データローダを使います。 環境的な制約でうまく動作しなかった時のメモになります。 ※データローダのバージョンは40を前提としています。 環境的な問題 Javaのインストールが許可されていない メモリ不足のエ…

Salesforce: データ連携時に気をつけること(Salesforce→他システム)

Salesforceから他システムへデータを渡したい時があります。 入力はsalesforceでPCとモバイルから行い、その後入力したデータを基幹システムや分析システムに連携することはよくあることだと思います。 その時に気をつけておくことのメモです。 大量データを…

Salesforce/Excel: 直接オブジェクト一覧とオブジェクト項目一覧を取得できるExcelマクロを作成しました

Apexでプログラムを書いたりする時に、オブジェクトの一覧やオブジェクトの項目一覧が欲しいなという時があります。 特に、内部のオブジェクトはヘルプで調べたりしないといけなくて不便を感じます。そんな時に使える(と自分では思っている)Excelマクロを…

Salesforce: Apex開発で気をつけていること

自分がApexでの開発で気をつけていることのメモです。 Salesforce IDの項目はID型で定義する。 トリガでの他オブジェクトの作成/更新処理を作り過ぎない 項目自動更新とトリガを混在させない そこでしか使わない処理は無名ブロックで囲み変数のスコープを限…

Salesforce: Force.com移行ツール(Force.com Migration Tool)で指定するコンポーネント名をselect可能なSオブジェクト

件名がやたら長くなってしまいました。 オブジェクトのメタデータは、オブジェクトの情報をまとめて取得する方法と、カスタム項目、リストビュー、レコードタイプ、入力規則、カスタムボタンまたはカスタムリンクを個別で取得する方法があります。個別で取得…

Salesforce/Excel: 直接カスタム項目を作成するExcelマクロを作成しました

前回、ロールを作成するExcelマクロを作成しましたが、同様にカスタム項目を作成するExcelマクロを作成しました。メタデータAPIを使用している点など仕組みは前回と同じになります。 ※このツールは、TLS1.1以上で通信する必要があり、Windows10や、TLS1.1以…

Salesforce/Excel: 直接ロールを作成するExcelマクロを作りました

Salesforceの環境構築をする際に、ロールの設定を行いますがロールの作成や更新を簡単にするためのExcelマクロを作成しました。 ※このツールは、TLS1.1以上で通信する必要があり、Windows10や、TLS1.1以上を使うようにレジストリを変更したWindows7などで利…

Salesforce: テストクラスの作成での留意事項

SalesforceのApex開発を行う場合、本番環境にリリースするためにテストクラスを作成する必要があります。 設定とちょっとのトリガなどの開発であれば、テストクラスの作成はさほど大変ではないのですが、サイトやコミュニティで多くの画面を作りこむ場合、テ…

Salesforce: カスタムボタンのJavaScriptで注意すること

Salesforceでは、標準レイアウトにカスタムボタンを配置してアプリケーションを作成していきます。(Lightning Experience ではなくClassicを対象とした場合です) 自分がカスタムボタンの作成時に注意することのメモです。 環境依存の文字列はカスタム表示…

Salesforce: Shift_JISのテキストファイルを作成して添付ファイルに登録する

SalesforceのApexプログラムの中で、Shift_JISのCSVファイルを作成したい時があります。 Salesforceの文字列とバイナリは、StringとBlobを使います。BlobからStringとその逆の変換の関数は用意されていますが、その際のエンコーディングはUTF-8となります。 …

Salesforce: SOQLやビューでよく使う日付の検索条件文字列

ビューやSOQLでは、当日を起点にして何日前や何日後といった条件を指定したい時があります。 たくさんある中でよく使う書き方のメモです。 ビューでの日付の検索条件文字列 Salesforceのリンクはこちらです。 日付の検索条件リテラル コメント 過去n日間 演…

Salesforce/SQL: 検索条件でのnullの扱いの違いについて

Salesforceではデータの取得でSOQLを使います。一般的なRDBのSQLと似ていますが、結合処理や、検索の指定がSQLと異なります。 検索条件でのnullの指定と検索結果について、SOQLとSQLの違いがあるのでメモです。 次のデータをサンプルとしてSOQLとSQLで検索結…

Salesforce: 最終更新日(LastModifiedDate)とSystem Modstamp(SystemModstamp)の違い

最終更新日(LastModifiedDate)とSystem Modstamp(SystemModstamp)は、今まで特に意識もせず、同じタイムスタンプが入っているなーぐらいの認識でした。 ですが、「レコードの作成時に監査項目を設定」を有効化して、最終更新日(LastModifiedDate)に直接タイ…

Salesforce: Communityの共有セットでのデータ共有で気をつけること

Communityで、Customer Communityというライセンスの時に気をつけることのメモです。(Customer Community Plus、Partner Communityは関係ありません) 共有ルールは使えず、共有セットを使う 1に伴い、Sharingのオブジェクトは使えない 1に伴い、共有セットの…

Salesforce: 重複ルールで作成・編集を許可している時の、標準画面以外からのデータの登録について

Salesforceで、重複ルールという機能があります。(前はなかったのですが、とても欲しかった機能でした。実装されてちょっと嬉しかったです) 重複ルールの設定次第では、重複レコードが他にあった際に警告を出しつつそのまま保存ができます。 この設定にし…