tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:VSCodeとApex開発でGitコマンド実行を試してみました

VSCodeにはTerminalのWindowが用意されているのでここからGitコマンドを実行できます。Terminalのウィンドウを開いてディレクトリ情報を確認するとこんな感じ。

f:id:tyoshikawa1106:20190810173037p:plain


プロジェクトファイルをgit管理したいときは「git init」コマンドをそのまま実行すれば良さそうです。
f:id:tyoshikawa1106:20190810173242p:plain


コマンドの流れとしてはこんな感じ

$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin git@*********.git
$ git push -u origin master

f:id:tyoshikawa1106:20190810173520p:plain


これでGit Hubにプロジェクトファイルをプッシュできます。
f:id:tyoshikawa1106:20190810173700p:plain


ちなみにREADME.mdファイルはSalesforceプロジェクト作成時に自動で作成され、内容もそれっぽい情報がデフォルトで表示されていました。
f:id:tyoshikawa1106:20190810173853p:plain

関連

SFDC:Lightning Design Systemのslds-text-titleとslds-text-title_capsの違いについて

Lightning Design Systemでページタイトルするときはslds-text-titleまたはslds-text-title_capsを利用します。

f:id:tyoshikawa1106:20190810171617p:plain

f:id:tyoshikawa1106:20190810171710p:plain


Ligtning Design Systemのサンプルコードをそのまま使うとおそらく上記のように英字が大文字に変換される形で表示されると思います。これは「slds-text-title_caps」が宣言されているためです。「_caps」を除外して「slds-text-title」の宣言に変更することで自動大文字変換が無効になります。

f:id:tyoshikawa1106:20190810172030p:plain

f:id:tyoshikawa1106:20190810172058p:plain

参考

SFDC:データローダバッチ開発時に意識すること

CSVファイルを取り込んでSalesforceに登録したり、SalesforceのデータをCSVファイルの形式で出力したりできるデータローダというツールがあります。このデータローダはバッチモードで実行することができ、これによりデータ連携処理の自動化が実現できます。

f:id:tyoshikawa1106:20190805073458p:plain

データローダをバッチモードで使用する際の設定手順


昔やり方を覚えたときのメモがこちら。数年前のメモでしたが今でもほぼ変わらない方法で実装できました。


やり方はほぼ変わりませんでしたがいくつかハマったところもありました。データローババッチ開発するときには下記については意識しておくと良さそうです。

1. 数値型のエクスポート

レポートからCSV出力するときには特になかったのですが、データローダをバッチモードで起動してエクスポート処理を実行した場合、下記の現象が発生しました。

データ型設定上では小数点以下は0にしていても「1」などの値が「1.0」と出力される。


おそらくこの出力したファイルを再度Salesforceに取り込む場合は「1.0」となっていても問題ないと思いますが、別システムとの連携の際には少し困ります。このトラブルを回避する方法としては「テキスト型の数式項目を用意してそちらを出力する」という方法が良いと思います。テキスト型の数式項目で対応することで、数値型や通貨型で自動で付いてくる区切り文字の「,」(カンマ)を表示しないようにもできます。

2. 出力項目とSDLファイルについて

データ出力のための項目指定はSOQLクエリで指定しますがそれだけでは出力されません。SDLファイルでマッピング対象として初めて出力されます。またSDLファイルでは出力時の項目名も指定することになりますが、日本語指定はできないのでAPI名やそれ以外の英字で指定する必要があります。

3. 実行環境はWindowsのみ

今回自分でハマった箇所ではありませんが、データローダバッチの開発はWindows環境で行う必要があります。Salesforce開発はMac環境で行う場合も増えていますので、普段Macで作業している場合はデータローダバッチ開発の際に別途作業用PCが必要になることを意識しておくと慌てずに済むと思います。

4. プロキシ設定

企業によってはネットワークの制限が厳しい場合があると思います。ブラウザからSalesforceにログインできてもデータローダなどのツールからはアクセスできないというケースがありえます。設計段階でデータローダによるアクセスが可能かは確認しておくのが良いと思います。

リクエストの送信に失敗した旨のエラーが表示され、データローダへ接続することができない

5. 実行ドライブやパスの検討

開発時には特に意識することなくCドライブで作業することが多いと思います。データ連携用の処理として開発するときには必ずしもCドライブとは限らないと思います。データローダバッチ開発ではバッチファイルなどのディレクトリを指定することになるので早めにに実行パスなどは検討しておくのが良いと思います。Cドライブでは動いてもそれ意外のドライブで実行するとエラーとなる可能性もありますのでそのあたりも考慮してスケジュールを決めていくとギリギリになって慌てずに済むと思います。

まとめ

データローダバッチ開発の際には上記について意識しておくと良いと思います。特に他社システム開発を請け負って作業する場合に実行環境について意識しないと納品直前で実行できないというトラブルに遭遇することになります。

SFDC:VSCodeからJSforceをつかったSalesforceへのアクセスを試してみました

VSCodeではTerminalの機能が利用できるようになっています。そのためエディタで作業しながら必要に応じてCommand Lineで処理を実行できます。Salesforce APIを実行できるJSforceというライブラリがありますが、この機能と組み合わせると便利そうだったので少し試してみました。

f:id:tyoshikawa1106:20190801074514p:plain


初期設定の方法とかは公式サイトで紹介されています。
f:id:tyoshikawa1106:20190801074615p:plain

JSforce


JSforceのインストール。(Nodeはある前提)

$ npm install -g jsforce


ログイン

$ jsforce
> .connect username@salesforce.example.org
Password: *******
Logged in as : username@salesforce.example.org

f:id:tyoshikawa1106:20190801075239p:plain


クエリ実行

query("SELECT Id, Name FROM Account LIMIT 1")

f:id:tyoshikawa1106:20190801075639p:plain


Apex開発中にデータ取得したり更新したりAPI実行したりといろいろできるはずなのでコマンドラインに慣れている人は作業がしやすくなると思います。

関連

SFDC:VSCodeとSFDXコマンドを使ってSalesforce組織のブラウザ起動を試してみました

Salesforce Platformでの開発はVSCodeとSalesforce Extensionsを使って行えます。VSCodeで開発中にSalesforce組織にアクセスしたなと思ったら下記のコマンドでブラウザを起動してアクセスできます。

> SFDX: Open Default Org

Macの場合はcmd + Pでコマンドメニューを表示できます。
f:id:tyoshikawa1106:20190801073511p:plain


SFDX: Open Default Orgを選択するとブラウザが立ち上がります。VSCode側でSalesforceと接続しているのでログインはスキップできます。大丈夫と思いますが複数組織で作業しているときに別組織にログインされていないかはアクセス後に確認しておいたほうが良いかもしれません。
f:id:tyoshikawa1106:20190801073622p:plain

SFDC:最新のデータローダ利用時に注意すること

CSVデータをSalesforceに取り込める便利ツールのデータローダですが、バージョン45.0から仕様が少し変わってOpenJDKバージョン11のインストールが必要になりました。


このOpenJDKバージョン11をWindows環境で利用する場合、Zuleのサイトからmsiファイルをダウンロードしてインストールできます。ですがインストーラを利用するには64bitの環境が必要になる仕様となっていて32bit用のインストーラは用意されていないようでした。
f:id:tyoshikawa1106:20190730073723p:plain


最近ではあまり無いケースなのかもしれませんが、もし32bitのPCでデータローダを利用する必要がある場合、OpenJDKバージョン11のインストールができないため、最新バージョンでは環境構築がうまく行かないという注意点があります。


そうした場合はGithubで過去のバージョンのデータローダが公開されていますので、そちらからバージョン44.0をインストールするのが良さそうです。

f:id:tyoshikawa1106:20190730074546p:plain

Release DataLoader V44.0.0 · forcedotcom/dataloader · GitHub

Windowsの場合はApexDataLoader.exeリンク、Macの場合はApexDataLoader.dmgリンクをクリックするとインストーラがダウンロードできます。Source codeの方はデータローダ自体のコードになりますので、インストーラによる環境構築が目的の場合は特に気にしなくて良さそうです。


このGithubのリポジトリはforcedotcomが管理しているリポジトリですがSalesforce社の管理するリポジトリのはずですので過去バージョンのダウンロードするのはここからやるのが良いと思います。
f:id:tyoshikawa1106:20190730074946p:plain


基本的にこうしたツールは最新バージョンを利用するのが好ましいですが、実行PCによっては動かないというケースがあることは環境構築や設計時には意識しておくとギリギリになってトラブル発生ということを防止できると思います。