2015-02-01から1ヶ月間の記事一覧
MavensMate for SublimeでApexクラスの新規作成などを行った時、APIバージョンが28.0とちょっと古いバージョンで作成されてしまいます。このバージョンですが次の設定でカスタマイズできるようになっています。 メニューからMavensMate→Settings→Userの手順…
マルチデバイスに対応できるWebサイトの開発方法について勉強しようとレスポンシブWebデザインという書籍を読んでみました。 Bootstrapなどを利用するのではなくCSSを一から記述する形でマルチデバイスに対応する方法について解説されています。 全4章で構成…
複数のページで使用できる共通部品はVisualforce Componentとして開発することができます。コンポーネント内で完結するような処理の場合は、難しく考えなくても問題ありませんが、コンポーネント内の処理結果をページ側に反映するような場合は少し大変だった…
Visualforceページは基本HTMLと同じ考え方で開発できますが、apexタグという独自タグが用意されているのでコピペだけで簡単に移行するということはできません。 基本的にはapexタグは自動でHTMLタグに変換してくれるので、『input type="text"』なら『apex:i…
VisualforceページではrenderAs="pdf"と宣言することでPDF形式に変換することができます。 たまにですがPDF出力用の画面をプレビュー的な感じで表示したい...というようなことがあります。『renderAs=""』と切り替えることで表示させることが可能です。 これ…
SOQLでレコード件数を取得して画面に表示する場合、50,000件を超えるとシステムエラーとなってしまいます。 例外として、readOnly="true"と宣言することで50,000件を超える件数を画面に表示することが可能です。 ただし、readOnly="true"を宣言した画面では…
『forceChatter:feed』のTypeで指定する内容についての記載が見つからないので、Newsの他に何が指定できるんだ...と探していたのですが、指定できる内容がわかりました。 以下の値を指定できます。 News Bookmarks Company Files Groups Home People Bookmar…
Spring'15のバージョンアップでLightningアプリ開発で使える新しいコンポーネントがいくつか追加されました。その中の1つ『forceChatter:feed』をDev環境で試してみました。 『forceChatter:feed』ですが「フィード項目を表示する Chatter フィード。Salesfo…
Apexクラス内では、『with sharing』を宣言することで実行ユーザのアクセス権限のある情報のみ取得するように制御できます。システム権限で実行する場合は『without sharing』と宣言します。 複数のクラスを使用する処理で『with sharing』と『without shari…
2015年2月12日に海外版 Force.com Blogで公開された『Using the Metadata API to Describe Your Objects』を読んでみました。 JSforceとAngular, Metadata APIについての記事です。 Using the Metadata API to Describe Your Objects - Developer Relations …
商談に紐付く工数の入力アプリをつくってみました。こんなやつです。 アプリ概要 商談に紐付く工数オブジェクトを登録するための画面です。 選択リストで選択した対象年月の工数一覧を表示します。 年または月の値を変更すると再検索処理を実行します。 保存…
大量件数の処理を行う場合、Apex Batchを使用して対応します。『execute』の処理でクエリ実行件数などはリセットされるのでガバナ制限もほとんど気にしなくていいのですが、気をつけなければならない制限もあると思うので約123,000件の取引先を使って検証し…
Apexのガバナ制限を確認するために、Limit Classが用意されています。 Limits Class よく使ってたのはクエリの実行数やステップ数ですが、他にもいろいろ用意されていたので全部動かしてみました。 サンプルコードです。 API 30.0の時点でガバナ制限が緩和さ…
Apex開発したときはテストクラスを作成して処理が正常に実行されるか確認できますが、画面でどのような操作を行うかなど、ひと目で確認できるようにエビデンスを残すことも多々あります。 例えば、サイドバーに表示するログインユーザの言語を切り替えるリン…
Spring'15で重複管理機能が追加されましたが、ApexでもDatabase.DMLOptionsを使うことで重複管理機能を利用することができます。 サンプルコード Database.DMLOptionsのサンプル ※Gistへのリンクです。 Debug Logでの確認 重複管理の設定 一致ルール 重複ル…
今まで住所情報や緯度経度情報を取得したい場合、SOQLで各項目毎に取得する必要がありました。Spring'15でAddressクラスとLocationクラスが追加されたことにより、住所複合項目/地理位置情報複合項目1つを取得することで各サブ項目にアクセスできるようにな…
Spring'15から@testSetupアノテーションが新しく使用できるようになります。これを利用するとテストクラス内の各テストメソッドで使用できるテストデータを作成することが可能です。これにより処理が効率化されテスト実行時間を短縮することが可能になります…
Spring'15から新たに使用できるようになったTooling APIのapexManifestについてです。apexManifestを利用するとApexクラスとApexトリガのリストを取得することが可能です。 SOQLによるクエリと違い一度のAPIコールでクラスとトリガ、両方の情報を取得できま…
Spring'15からChatterMessageのトリガが作成できるようになりました。NGワードを判定したり、送信者にToDoを作成したりといった使い方ができると思います。 ChatterMessageのトリガを開発するにはプロファイルのシステム管理者権限にある『Chatter メッセー…
Tooling APIとは開発者向けに用意されたAPIです。ApexCodeの情報を取得したりできます。開発者向けドキュメントを見てみるとこんな感じで使いますとサンプルコードが記載されています。 ひとまず実際に動かしてみないとわからないこともあるのでコピペで動く…
2015年2月12日に開催されたSalesforce DUG Meetup #8に参加しました。Spring'15 リリースノートの輪読会ということでForce.com Deploymentの部分で少しお話させて頂きました。 以下、参考資料です。 スライド Salesforce DUG Meetup #8 - Force.com Deployme…
ちょっと前にForce.com CLIの使い方を調べてみたり、sublime-lightningプライグインを試してみたりしたのですが、いろいろうまくできていないところがありました。 SFDC:Force.com CLIをつかってみました SFDC:Sublimeを使ってLightning Componentを開発す…
前回、Force.com移行ツールのインストール方法について確認したので、次は移行ツールの使い方を確認してみました。 ApexコードをSalesforce組織にデプロイ 移行ツールを使用してApexコードをデプロイする方法です。次のコマンドで実行できます。 ant -Dpacka…
Force.com移行ツール (Force.com Migration Tool)とはApache の Ant 開発ツールを使用してApex Codeをデプロイしたり、削除したりといったことが行えるツールです。どのようなツールなのかは一応把握しているのですが、実際に利用したことはなかったのでイン…
ApexではURLクラスを使ってURL情報を取得することができます。 次のURLを対象に上の処理の実行結果を確認してみます。 https://c.ap0.visual.force.com/apex/UrlClassDemo?retURL=/home/home.jsp 実行結果 URLクラスの使い方はこんな感じです。 サンプルコー…
Force.com Enterprise Architecture [Kindle版] を購入してみました。著者はAndrew Fawcettという方で、FinancialForce.comのCTOでForce.com MVPのデベロッパーとのことです。 英語の本なのでサッパリ分からないだろうなと思っていたのですが、価格を見てみ…
Lightning Componentの開発といえば現時点では開発者コンソールからとなりますが、Sublimeを使って開発するためのPluginがGithubに公開されていました。dcarroll/sublime-lightning環境構築にはForce CLIが必要になるみたいです。 詳細はREADME.mdに記載され…
主従関係のオブジェクトで従オブジェクトが積み上げ集計に影響無いような条件で更新されたときに主オブジェクトのApexトリガーが実行されるか確認してみました。 こんな感じのトリガーで検証します。 従オブジェクトが新規登録された場合です。 主オブジェク…
JavaScriptからApexクラスの処理を実行するapex:actionFunctionですが、画面上に必須項目が存在した場合、必須エラーが発生してしまいます。保存処理など必須判定が必要な場合は問題ありませんが、必須判定が不要な場合はエラーにしたくありません。 『apex:…
Chatterのプロファイルページのタブ表示を設定できるサブタブアプリケーションの使い方を確認してみました。 この設定は作成→アプリケーションのサブタブアプリケーションで設定できます。 ここでタブの追加、削除を行うことが可能です。 デフォルトで選択さ…