dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]組織のパスワードポリシーをForce.com Migration Toolで変更する

開発やちょっとした検証用に作成した組織のパスワードが定期的に期限切れになると管理するのがつらいので
そういった組織についてはパスワードの有効期間を無期限に設定している。

f:id:dackdive:20150706200335p:plain

これを毎回手作業でやると面倒なので Force.com Migration Tool でやりたい、と思ってメタデータを調べてみた。

続きを読む

[Salesforce]Visualforceコンポーネントをプレビュー表示する方法

ちょいメモ。

Visualforce ページと違って Visualforce コンポーネントには
画面に「プレビュー」ボタンがないので知らなかったんだけど
Visualforce 開発者ガイドに書いてあった。

http://ap.salesforce.com/apexcomponent/[コンポーネント名]

というように、apexcomponent/***** でいけるらしい。

リファレンス

Visualforce 開発者ガイド

(英語)Salesforce Developers

(日本語)Salesforce Developers

[Salesforce]スケジュール済みApexやトリガでVisualforceをpdfファイルに変換する方法(前編)

以前の記事で、Visualforce ページを pdf ファイルとして添付してメール送信する方法について書いた。

この時、問題点として PageReference クラスの getContent() メソッドは
スケジュール済み Apex(Apex スケジューラ?)やトリガなどの非同期処理内では実行できないというのがあった。

この問題を解決するためなんとかしてみたけどなんとかならなかった話。

やりたいこと
  • スケジュール済み Apex を使い、毎週(月)決まった時間に Apex による処理を実行
  • Apex 処理内で特定の Visualforce ページを pdf ファイルとして出力
  • 添付ファイルとしてメールに添付して特定のアドレスに送信

TL;DR

  • Visualforce(PageReference クラス)の getContent を使って取得する方法は不可
    • トリガやスケジュール済み Apex から実行するとうまくいかないため
  • メール送信処理を Apex REST web サービスにするというややハックっぽい方法でもだめ
    • getContent が 9 月ごろにコールアウト扱いになるため REST web サービスから呼べなくなる
  • TODO:「Visualforce テンプレート」というメールテンプレートを使うとできる、かも?
    • <messaging:attachment> タグで添付ファイルが定義できるらしいので

(2015/07/10追記)
つづき書きました。

続きを読む

[Lightning]カスタムコンポーネントをApp Builderに表示する

ちょいメモ。
Lightning コンポーネント開発者ガイドのここを見る。

Salesforce Developers

今回は開発者ガイドに従って、HelloWorld というコンポーネントを作成する。
以下は Force.com Migration Tool を使ってローカルで開発する場合のファイル構成。

src
├── aura
│   └── HelloWorld
│       ├── HelloWorld.cmp
│       ├── HelloWorld.design
│       └── HelloWorld.svg
└── package.xml

※ Lightning コンポーネントをデプロイしたい場合、package.xml には

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>AuraDefinitionBundle</name>
    </types>
    <version>33.0</version>
</Package>

というように AuraDefinitionBundle を指定する。

続きを読む

[Salesforce]リストビューに「一括削除」ボタンを追加する

ちょいメモ。
タイトルの通り、Salesforce のリストビューで選択したレコードを一括削除するボタンがほしい。

f:id:dackdive:20150511102413p:plain

(リストビューとはこの画面)

実は以前にも似たようなことを試していて、

この時はリストビューではなく、レコード詳細画面にある関連リスト。
基本的に同じようなコードで OK だけど、今回は

  • 削除前に確認ダイアログを表示したい
  • 確認ダイアログでレコード名を表示したい

とか考えてると思ったよりややこしくなった。。。

続きを読む

[Salesforce]Summer'15でGAになるCustom Metadata Typeについて

リリースノートで言うとここ。

http://docs.releasenotes.salesforce.com/en-us/summer15/release-notes/rn_forcecom_development_additional_custom_metadata.htm

上のリリースノートからもリンクが貼られていたけど、詳しい解説っぽいブログ記事。

https://developer.salesforce.com/blogs/engineering/2015/04/custom-metadata-types-ga.html

これを読んで、何ができるようになるのかほんとにざっくりとだけ理解できたのでメモ。

続きを読む