freedom-man.com

ブログは俺のセーブポイント

SalesforceのワークフロールールをApexトリガに変換するヤーツ作った

Apexをローカル環境で動かすのめっちゃムズイし現実逃避したくなったので
SalesforceのワークフロールールをApexトリガに変換するヤーツを作りました。

できること

  • ワークフローのメタデータのXMLからApexトリガのコードを自動生成します
  • 今のところワークフロー+項目自動更新しか対応していません
  • 数式は70%くらい対応してますが、対応してないものに関してはボチボチやっていきます
  • ゆくゆくはプロセスビルダーとかもApex化しようと思ってます
  • あんまりテストしていないので不具合あればissue切ってもらうかPRくだしあ

使い方

からの

って感じで叩くと標準出力にトリガーのコードが出力されます。トリガー名は{オブジェクト名のCamelCase} + Triggerになります。

例えばこんな感じなワークフローメタデータを食わせると

こういうApexトリガが出力されます(インデントの調整が甘いです)

仕組み

  • えーと、XMLパースしてApexコード出すだけw
  • 数式だけはきちっとAST作ってツリー辿ってApexコード化する必要があった
  • CLI化はoclif使ったよ
    • ジェネレータで一通り作ってくれるしCLIに必要なあれこれも揃っているのでとても便利

補足

  • メールアラート対応しないの?
    • 変数バインドとか面倒だしそもそもワークフロールールでメール自動送信とか危ない橋だと思っているので私自身は対応しない予定ですが、PRが来れば取り込むかなーという感じ
  • タイムトリガ対応しないの?
    • バッチクラスとか必要で面倒だし、そもそもタイムトリガはアンチパターンだと思ってるので対応しない
  • 数式のビルドはSalesforceにまかせて通っている前提で書いているので、apexのローカル実行基盤よりも数百倍楽だった

[Salesforce] Apexのローカル実行環境を作ろうとしている話

ふと思い立ち、SalesforceのApex言語のローカル実行環境を作っています。

tzmfreedom/apex_parser2

まだまだリリースにはほど遠いのですが、単純なコードであればある程度は動く状態になってきているので、モチベーション維持のためにここらで紹介記事を書きたいと思います。

Continue reading

Rodaコードリーディング

Rodaのコードリーディングをしました。バージョンは3.8.0です。

Continue reading

Hanamiコードリーディング【hanami new】

Hanamiのコードリーディングをしました。バージョンは1.2.0です。今回は hanami new のアプリケーションの初期化コマンドのコードを追ってみます

Continue reading

TruffleRubyを動かしてみる

GraalVM上で動く超絶速いTruffleRubyを動かしてみました。

Continue reading

« Older posts

© 2018 freedom-man.com

Theme by Anders NorenUp ↑