VisualforceでJavaScriptを共通化

VisualforceでJavaScriptを共通化 複数のVisualforceで同じようなJavaScriptでの処理を行いたい場合は、共通のVFページにJavaScriptを定義することで関数を共通化することができます。 呼び出しページでは、apex:includeタグのpageName属性で共通VFページを指定します。 サンプルコードは、以下となります。 呼び出しページ 共通ページ 参考 https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_include.htm

Continue reading

複数Visualforceページ間で値の引き継ぎ

複数Visualforceページ間で値の引き継ぎ Visualforceでページを遷移する際に値を引き継ぐ2つの方法をサンプルコードベースで説明します。 ビューステート 複数のVFで同一のコントローラを使用することで、PageReferenceにより遷移するとビューステートの項目を引き継ぐことができます。 サンプルコードでは、TransferController.clsのconfirmメソッドでTest_TransferToState.pageのPageReferenceを返して遷移している部分になります。 Getパラメータ 複数のVFでコントローラを分割する場合には、URLのGetパラメータを使用することで項目を引き継ぐことができます。 サンプルコードでは、TransferController.clsのnextメソッドでTest_TransferToParam.pageのPageReferenceにpr.getParameters().put(”,”)で値を設定し、遷移して受けるVFのコントローラ(TransferReceiveController.cls)でApexPages.currentPage().getParameters().get(”)により値を取得します。 サンプルコード 補足 こちらにもアップしてます。 https://github.com/yhayashi30/visualforce-transfer-sample.git

Continue reading

VSCodeでGradleを使い、Javaをビルド→ランするまで

概要

本記事は、タイトルの通り「VSCodeでGradleを使い、Javaをビルド→ランするまで」の手順を簡潔にまとめます。
※Macを使用する前提ですのでご了承ください。

Gradleとは
https://ja.wikipedia.org/wiki/Gradle
GradleはApache AntやApache Mavenのコンセプトに基づくオープンソースビルド自動化システムであり、プロジェクト設定の宣言にはApache Mavenが利用するXML形式ではなくGroovyベースのドメイン…

Continue reading

sforce.oneオブジェクトによるLightning Experienceでのページ遷移

sforce.oneオブジェクトによるLightning Experienceでのページ遷移 Visualforceページはページ遷移する際には通常、遷移先のVFページを指定したPageReferenceをApexから返すことで遷移先へリダイレクトして遷移をさせます。 場合によってはJavaScriptのロジックでページを遷移させる際には、location.hrefでVFページのURLを指定して遷移させる方法もあります。 Lightning Experienceに埋め込まれたVisualforceページでは、location.hrefを使用した遷移は下記の通り推奨されておらず、sforce.oneを使うように記載されております。 window.location を直接設定しない これだけ言えば大丈夫でしょうか。この理由は簡単です。Lightning Experience では、ページに設定する window.location がないためです。Visualforce の「コンテナ」や、iframe でラップされること、Lightning Experience が単一ページアプリケーション (SPA) であることなどはすでに説明しましたが、この点も追記しておく必要があります。Visualforce の

Continue reading

Lightning Experience or Classicを各レイヤーで判定する方法

Lightning Experience or Classicの各レイヤーでの判定方法 VisualforceやApexなどのLightning Experience(以下ではLEXとします)とClassicのどちらからも呼び出される各レイヤーでの処理中で判定する方法を紹介します。 クライアント(Visualforce) 特にVisualforce等でLEXとClassicのどちらからも呼び出される場合に、どちらのモードで動作しているかを判断するスクリプトは、以下となります。 サーバー(Apex,SOQL) 利用しているモードを判定 ApexでSOQLを発行することによりLEXとClassicのどちらを利用しているかを判定する方法は以下となります。 Lightningユーザ権限の有無を判定 ApexでSOQLを発行することによりLightningユーザ権限を保持しているかを判定する方法は以下となります。 ※正確には、付与されている権限セットがあれば、その権限セットの同一カラムを参照する必要もあります。 メタデータ 組織でLEXが有効化されているかを判定する方法は以下となります。 true→有効、false→無効となります。

Continue reading

VisualforceでAjaxによるApex呼び出し後のJSでView Stateを参照する方法

VisualforceでAjaxによるApex呼び出し後のJSでView Stateを参照するサンプルコード View Stateとは、Apexコントローラの状態やVisualforceページの状態をサーバーリクエスト間も保持するための、Visualforceページ内に暗号化されたhiddenのinputフィールドのことです。このフィールドはapex:formタグがページ上にある場合のみ生成されます。 本サンプルコードでは、タイトルの通りAjaxによるApex呼び出し(apex:actionFunctionやapex:actionFunction等)のoncompleteでコールバックしてJSの関数を呼び出した際に、JS上でView Stateの値を参照したい場合のものになります。

Continue reading

Salesforceログインをショートカットする

Salesforceログインのショートカット 小ネタ Salesforceの開発に関わる人は、様々な組織やSandboxを業務で使用することになると思います。 小ネタではありますが、このログインをURLにユーザ名とPWを含んだ形で保存(ブックマーク)しておくことでアクセスをショートカットできるようになります。   <本番組織> https://login.salesforce.com/?un=<ユーザ名>&pw=<Password> <Sandbox> https://test.salesforce.com/?un=<ユーザ名>&pw=<Password>

Continue reading

Apexで権限セット(PermissionSet)を付与

Apexで権限セットを付与 権限セットはユーザに対して付与することができ、ユーザは複数の権限セットを付与されることもできるのでオブジェクトの関係性は多対多となっております。 それらのオブジェクトの間には、PermissionSetAssignmentという連結オブジェクトがありUserとPermissionSetを紐付けてレコードを登録することで権限セットの付与ができます。 サンプルコードは以下です。 参考 https://developer.salesforce.com/docs/atlas.ja-jp.object_reference.meta/object_reference/sforce_api_objects_permissionsetassignment.htm

Continue reading

HerokuにWordPressをいれて独自ドメインで公開するまで

概要

本記事は、Heroku上にWordPressをいれて便利なHerokuのアドオンと連携して、さらに個人ブログとして使えるようにするために独自ドメインをHerokuのDNSとつなぐまでの手順をまとめたものとなります。

構成

サーバー:Heroku(Hobbyプラン *1)
DB:Heroku add-on ClearDB MySQL(無料プラン)
ファイルストレージ:AWS S3
キャッシュシステム:Heroku add-on Redis
メール:Heroku add-on Send…

Continue reading

Lightning Web Componentsで取引先の検索画面を作ってみた

概要

Lightning Web Componentを使って何か実装してみたかったので、取引先を検索して一覧を表示する画面を作ってみました。
とりあえず検索条件を入力して結果の一覧を表示するだけものなので、そのままは使えないかもですがもう少しカスタマイズすれば使えるものになるかなと思います。
本記事は、その実装の中で気づいたことを簡単にまとめた内容となります。

デモ

ソースコード
https://github.com/yhayashi30/lwc-account-search

実…

Continue reading