読者です 読者をやめる 読者になる 読者になる

【Salesforce】URLで指定できるパラメータ一覧

Salesforce Visualforce Apex

はじめに

SalesforceでURLに設定できるパラメータがあるのですが、よく忘れてしまう(覚えきれない)のでまとめておく。

URLパラメータ

新規系

パラメータ名 —–内容—–
retURL 遷移元画面
saveURL 保存後遷移先画面
cancelURL キャンセル後遷移先画面

編集系

パラメータ名 —–内容—–
retURL 遷移元画面
saveURL 保存後遷移先画面
cancelURL キャンセル後遷移先画面

随時、追加していきますー。

【Salesforce】Trailhead「グローバルクイックアクションの作成 」単元でチャレンジが成功しない時は言語設定を見直そう。

Salesforce ひとりごと

Trailhead「グローバルクイックアクションの作成 」単元で、チャレンジを行い結果確認してもなんども失敗します。
trailhead.salesforce.com

何回見直しても、設定した内容は合っている気しかしないので、Google先生に聞いてみました。

言語設定を英語にすると解決

なんと、Salesforceの言語設定を「英語」にすると解決しました!
このチャレンジは英語のみ対応しているみたいです。

参考

​Salesforce1 Mobile Basics - Creating Global Publisher Actions Problem - Salesforce Developer Community

【Salesforce】ログイン時、ID認証を行わないよう設定する方法

Salesforce

はじめに

SalesforceのDeveloper Editionを取得した後の状態だと、ログインする際にID認証が求められる設定が入っています。
これは開発環境としていちいち2段階認証を行わなければならず、めんどくさいので、
ログイン時、ID認証を行わないように設定する手順をまとめました。

手順

  1. 「設定 > 管理者設定 > セキュリティのコントロール > ネットワークアクセス」の信頼済みIP範囲を空白にする。 f:id:kmsyn1234:20170301162616p:plain

  2. 「設定 > 管理者設定 > ユーザの管理 > プロファイル > ユーザーのプロファイル」の任意のプロファイルを選択する。 f:id:kmsyn1234:20170301162646p:plain

  3. プロファイル毎の下の方にスクロールした先の「ログイン IP アドレスの制限」に設定する。 f:id:kmsyn1234:20170301162716p:plain

  4. 「開始:1.1.1.1」「終了:255.255.255.255」を設定する。 f:id:kmsyn1234:20170301162739p:plain

これで、ログイン時にID認証を求められなくなります。

おわりに

今回行った設定は、IPアドレスがどこからであってもID、PWのみでのログインを可能にする設定となっています。
そのため、開発用環境のみに設定するなど、セキュリティの考慮が必要な設定となりますー。

【Java】文字列をequalsで判別する際に注意すること

Java

はじめに

Javaで文字列を比較するときには「=ではなく、equalsメソッドを使用しなきゃだめだよー。」とは言われていますが、
そのほかにも知っておくと良いことを知ったのでまとめます。

定数と変数をメソッドの前後どちらに記載するかで挙動が変わる

「{String1}.equals({String2})」で、

  1. String1に定数をいれ、String2に変数を入れる場合
  2. String1に変数をいれ、String2に定数を入れる場合

で挙動が変わってきます。
以下、それぞれのパターンで何が異なるのかをまとめます。

1. String1に定数をいれ、String2に変数を入れる場合

{String1}の定数に対し、{String2}の変数が同じ文字列であるか否かを判別します。
そのため、{String2}の変数がnullであってもなくても正常に動作します。

2. String1に変数をいれ、String2に定数を入れる場合

一方、{String1}の変数に対し、{Sting2}の定数の文字列が同じであるか否かを判別する場合、
{String1}の変数がnullの時、nullに対して判別処理を実行しようとする
NullPointerExceptionが発生します。

そのため、{String1}の変数のnullチェック処理を行わないと意図せぬ例外が発生していまします。

おわりに

どちらがいいということではなく、

  • 単に文字列を検証するのであれば、後者の方が例外になってくれるので使い易い
  • 上記以外の場合、比較する変数のnullチェックの処理が必要になるため、無駄に処理が増える

かなと、個人的には思っています。
ただ、知らないうちに意図せぬ例外が発生するようなコードを書いてしまうことは避けたいですねー。

サンプルソース

/**
 * 検証用クラス。
 */
public class StringEqualsTest {
    /**
     * メイン。
     * @param args 引数
     */
    public static void main(String[] args) {
        String value = "TEST";
        // String value = null;

        // 定数.equals(変数)の場合
        if ("TEST".equals(value)) {
            System.out.println("同じだよー。");
        }
        // 変数.equals(定数)の場合
        if (value != null) {
            if (value.equals("TEST")) {
                System.out.println("同じだよー。");
            }
        }
    }
}

【Salesforce】Apexの日付操作でハマりがちなこと。

Apex Salesforce Visualforce

はじめに

ApexやVisualforceで日付の表示や日付操作をする際に、個人的によくハマるポイントがあるので、
備忘を兼ね、下記ポイントを整理したいと思います。
特にSalesforce内部で日付はGMT時刻で値を持っているので、JST時刻にし忘れることはよくあります。。

  • 基本
  • 表示形式 ←今回はここまで
  • フォーマット

表示形式

  1. プロパティを使用する場合、GTM時刻で表示される。
  2. <apex:outputText>を使用する時、JST時刻で表示される。
  3. <apex:outputField>を使用する時、GTM時刻で表示される。

サンプルコード

それぞれのサンプルコードが以下のようになります。
f:id:kmsyn1234:20170228203457p:plain

また、表示結果は以下のようになります。
f:id:kmsyn1234:20170228203745p:plain

おわりに

日付処理はよく使うのですが、意外と忘れがちですねー。
また、日付フォーマットを合わせて使用すると、見た目の表示は大丈夫なのですが、時刻がずれているという、意外と単純な見落としが起こるので要注意です。

【Salesforce】メールメッセージの状況項目をVFで表示する。

Salesforce Apex

はじめに

メールメッセージのステータスをApexで取得し、Visualforceで表示したいので、クエリで値を取得し確認してみると status項目の値が数値で取得されているではありませんか?? f:id:kmsyn1234:20170217202212p:plain

これでは想定したstatus項目の値(送信、ドラフトとか)をVisualforce上に表示することができないため、文字列で表示する方法を調べました。

ステータス項目のマッピングをする

取得したステータス項目の値は数値なので、内部的に文字列とマッピングしているようです。 そのため取得した値によって表示文字列を決めるという、いたってシンプルな対応をすれば良いです。
※なんでこんな仕様なんだろ。。。?

こんな感じなマッピングになります。

数値 状況 日本語訳
0 New 新規
1 Read 既読
2 Replied 返信済み
3 Sent 送信
4 Forwarded 転送
5 Email Drafts and Approvals ドラフト

これで、意図した通りの値をVisualforceで表示することができるようになります。

参考

blog.crmscience.com

転職して約1年が経ちました。

ひとりごと

はじめに

約1年前に勤めていた会社を退職して、現職に転職をしたのですが、
今までと環境がまるっきり変わったので、思ったことをとりあえずメモっておく。

バックグラウンド

  • 文系4年目プログラマ
  • 前職は新卒で入った会社でパッケージ開発をしていた地元中小企業。
  • 現職:クラウドインテグレータでいけいけのベンチャー
  • 新たに地方拠点立ち上げるとのことで、立ち上げメンバーとして入社。
  • 基本、本社とリモートで仕事をしている。
  • 同僚は外出が多いので、基本オフィスには私一人しかいない。(人が増えて一人でいることがほとんどなくなりました!笑)

成長したなーと感じたこと

  • リモートワークスキル
    • タスク管理(タスクばらし)をし、想定工数を意識するようになった。
    • 見える化
  • 自己振り返りでKPTサイクルを回すようになった。

しっかりしなきゃなーって感じたこと

  • 忙しくてKPTサイクルが適当になってしまった
  • タスク管理(タスクばらし)の粒度が適当になり、想定工数を十分に考えていない。
  • うまくリモートでコニュニケーションが取れず、アラートあげる・報告の下手。
  • メールとかで、文章力低く(めんどくさがって?)、微妙な認識の違いが生じがち。
  • スピード感がつかめない。

つらかったこと

  • やっぱコミュニケーションし辛い。
    • 仕事を進める上でわからないことはTELとかでも確認することができるが、普段のちょっとした悩み的なことは話せない。
    • でも、こういったことを改善していくことができることも魅力と思えるようになってきた。