Apex ,Aura コーディングサンプル

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)

+ [Apexでのエラー](https://qiita.com/Keiji_otsubo/items/60c2ca0ac26cb4b9935e)
+ [AuraからLWRに移行する](https://qiita.com/Keiji_otsubo/items/ea92168c88e8dad98f92)
+ [Force.com SOQLベストプラクティス – WHERE句条件のNULL値や数式項目について](https://developer.salesforce.com/jpblogs/2013/09/force-com-soqlbestpractice/)
+ [日付形式と日付リテラル](https://developer.salesforce.com/docs/atlas.ja-jp.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm)
+ [調べものをする時に便利なSOQLを集めてみる](https://qiita.com/Keiji_otsubo/items/242fad9ecfcb212ad40e)
+ [匿名Windowで実行してデバックログでフィールドの内容を確認する](https://qiita.com/Keiji_otsubo/items/85cbe0b35fc532de8f45)
+ [カスタムボタン (リストボタン) で Apex クラスを呼び出す方法【消されている】](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JdpZt)
+ [SOQL関係のまとめ](https://qiita.com/Keiji_otsubo/items/c4fbeba75ca2b0623996)
+ [Salesforceのメールサービスを実装する方法](https://yhayashi30.org/blog/2019/04/02/mailservice/)
+ [コード カバレッジをテストする方法 (役立つヒントとテクニック)](https://qiita.com/Keiji_otsubo/items/d079bb7b3158ab6601d4)
+ [地図にプロットするカスタムコンポーネントをつくる](https://qiita.com/Keiji_otsubo/items/c8d8a4cbab0992d10faf)
+ [Apex Language Server Apex 言語サーバ](https://qiita.com/Keiji_otsubo/items/c5c62b10b34dfe02157c)
+ [LWC コンポーネントのオプション](https://qiita.com/Keiji_otsubo/items/33ad74aadc7db0dfe4c6)
+ [Apex Class パブリック、プライベート、グローバルの使い分け](https://qiita.com/Keiji_otsubo/items/a7713188dad77818cadf)
+ [Trying to retrieve Compact layout fields in Apex class but unable, is there any way to do this ?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007RcVdR)

:::note
メタデータを呼び出す必要がある
:::

+ [Test Classのまとめ](https://qiita.com/Keiji_otsubo/items/5f0610bfc6adf59f2447)
+ [Aura コンポーネントを Lightning Web コンポーネントに移行する](https://qiita.com/Keiji_otsubo/items/34a2b52cde41f9ffdc19)
+ [@wireデコレータ](https://qiita.com/Keiji_otsubo/items/b14dbe51256a310ef601)



# 具体的な設定など

+ [ゲストユーザをアンケートで認証なしで実行する方法](https://qiita.com/Keiji_otsubo/items/bd2d273f88bdea57d02f)
+ [商談チームに追加時にメンバー全員にChatter通知したい](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000E8yBz)
+ [Quick-Actions-Everywhere](https://github.com/jmdohn/Quick-Actions-Everywhere)
+ [ダッシュボードを画像に変換する際のダッシュボードURLとApexコード](https://salesforce.stackexchange.com/questions/169714/dashboard-url-and-apex-code-on-converting-dashboard-into-an-image)
+ [どの価格表が使用されていないかを知る方法は？](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Fxmfb)
+ [多対多の参照関係のオブジェクトの抽出](https://qiita.com/Keiji_otsubo/items/833bf731b3ae2d10e200)
+ [Apexバッチで集計関数が使えない](https://qiita.com/Keiji_otsubo/items/dfae864c314d623fe576)
+ [ユーザにカスタムオブジェクトの編集を任せる？ tooling API の活用](https://qiita.com/Keiji_otsubo/items/43c7b2319c42d3b23f0f)
+ [lightning:navigationを使った画面遷移](https://qiita.com/Keiji_otsubo/items/9bf2423c1a3b9015934b)
+ [ユーティリティバーからタブのファイルを開く方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JdxB0SAJ)
+ [保存時のトーストでNameでなくてIdが表示される](https://qiita.com/Keiji_otsubo/items/5a7e021ef49dec5fc89b)
+ [Apexで日時型の計算をする](https://qiita.com/Keiji_otsubo/items/f49f2efaa3e46ae636ca)
+ [テストクラスのテストデータで、レポートを作成したい](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JfhpKSAR)
+ [Auraコンポーネントを使って標準画面を上書きする？](https://qiita.com/Keiji_otsubo/items/f40127466421a93da04f)
+ [親子の参照関係の画面のリフレッシュ](https://qiita.com/Keiji_otsubo/items/b9084f9d171bcd6d3bda)
+ [Auraコンポーネントのボタンからクイックアクションを起動する](https://qiita.com/Keiji_otsubo/items/4ab8d734532ac5faa3c5)
+ [Apexのコードから静的リソースのURLを生成する方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007XISwY)
+ [実行ユーザーの権限通りにレコードが返されるかのテスト作成方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ZBBEo)
+ [商談に紐づくカスタムオブジェクトのメモを商談のメモに複数転記する](https://qiita.com/Keiji_otsubo/items/890c6c09842e8d6e8e6b)
+ [すべての商談メモと添付ファイルをアカウントに統合するにはどうすればよいですか?](https://qiita.com/Keiji_otsubo/items/037311b5ec7db0b62528)
+ [Salesforceの一括添付ファイルダウンロード機能にて扱える情報の上限について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ept8s)
+ [APEXで例外が発生した時にExceptionブロック内でエラーログのようなオブジェクトを作成してスタックトレース情報を登録したいのですが、例外が飛ぶと全てロールバックしてしまうので実現が出来ません。指定の範囲だけ別でトランザクションを貼ってコミットするようなことは出来ますでしょうか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000J7GLQ)
+ [addError を使用せずに、挿入トリガーの前にレコードの挿入を黙って防止する方法はありますか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KDr4d)



# コーディングサンプル

+ [Notes と Notes & Attachments にApexトリガーでレコードを作成する](https://qiita.com/Keiji_otsubo/items/3c1b8f76a20bf969a06b)
+ [ApexからChatterに投稿する](https://qiita.com/Keiji_otsubo/items/685fe1495627a08863cd)
+ [【Apex バッチ】商談の役割にプライマリーをつける](https://qiita.com/Keiji_otsubo/items/6fbb3a2aa93099d90c64)
+ [【Apex バッチ】Sandoboxのテストデータを消す](https://qiita.com/Keiji_otsubo/items/7efdc9535f30f00ce1a5)
+ [【Aura】Lightningページテンプレートコンポーネント作成でリストビューがつぶれる&コンポーネントが崩れる](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FVPrZSAX)
+ [guest userで投稿した添付ファイル画像が表示されない](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FSLjT)
+ [更新/追加されたレコードを含めないで親子関係のレコードを処理する](https://qiita.com/Keiji_otsubo/items/bfd23451735d90672d1c)

+ [lightning:navigationを使った画面遷移](https://qiita.com/Keiji_otsubo/items/9bf2423c1a3b9015934b)
+ [気になっている記事【開発編】](https://qiita.com/Keiji_otsubo/items/f575fbd4a8c93abbb597)
+ [lightning:mapを使ってみる](https://qiita.com/Keiji_otsubo/items/847a6603a82589f27530)
+ [イベントモニタリングのログデータを出力する](https://qiita.com/TaaaZyyy/items/e0270ca2976a7110b0a1) @TaaaZyyyさま　ありがとうございます。
+ [SOQLでレコードタイプIDを取得する際に、ユーザがアクセス権があるものだけ取得する方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FWrQlSAL)
+ [リッチテキストフィールドからURLを抜き出す](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FUGv8SAH)
+ [iframe allowfullscreen not working for innerHTML](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FUI0C)
+ [フロー内のグループメンバーからメールアドレスを取得する方法:Apexで書いた場合](https://qiita.com/Keiji_otsubo/items/b1775a217f1e73bf05ce)
+ [ログイン履歴を取得する](https://qiita.com/Keiji_otsubo/items/ffd3eff30220428b94a5)
+ [Apex RestRequest クラスを使ったテストコード](https://qiita.com/Keiji_otsubo/items/0ab1200ae518b8e4168f)
+ [メモがある取引先責任者を抽出する](https://qiita.com/Keiji_otsubo/items/36860e791166cdd00cc0)
+ [Json文字列の変換](https://qiita.com/Keiji_otsubo/items/58cbc5e67b9a228ceea2)
+ [Json形式のファイルをApexで処理する](https://qiita.com/Keiji_otsubo/items/ff812b6950a1f14d7d06)
+ [HttpCalloutMock インターフェースの実装による HTTP コールアウトのテスト](https://qiita.com/Keiji_otsubo/items/f464e090828b7b19de35)
+ [Data Tableを使った疑似的なツリー構造](https://qiita.com/Keiji_otsubo/items/0d75a9173f2d0d698ad3)
+ [フローを使ってレコードの複製をつくる](https://qiita.com/Keiji_otsubo/items/5f90bcc23eb2a8d0c3d3)
+ [How to get the group members user details (Like user id, username) from Data loader?](https://qiita.com/Keiji_otsubo/items/2f501f1a0e8a925ef1dd)
+ [モーダル画面を使った掲示板](https://qiita.com/Keiji_otsubo/items/d2d27726154aa2e4f28b)

+ [添付ファイルとしてレポートを送信する【作業中】](https://qiita.com/Keiji_otsubo/items/d2e1082bcd1a040be722)
+ [未実装: 関連リスト「ファイル」を使用したレポートの作成](https://qiita.com/Keiji_otsubo/items/94c9a4356339237af99c)
+ [force:showToast イベントを使う](https://qiita.com/Keiji_otsubo/items/3fa7ab976ae586e806c6)
+ [Change size lightning-input type Checkbox.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KZNas)
+ [項目として運用しているメモフィールドを拡張メモとしてセットする](https://qiita.com/Keiji_otsubo/items/7c4448f2d3e6a5fcb991)
+ [Create a Custom Component in Salesforce that allows users to input data for an Account and its related Contact records.](https://qiita.com/Keiji_otsubo/items/3c05b24166eb6d39c7dc)


# 私が書いてない参考にしたいコーディングサンプル

+ [Custom Data Table With Inline Editing In Salesforce Lightning Component – Sample](https://sfdcmonkey.com/2017/12/08/lightning-data-table-inline-editing/)
+ [Generate PDF from Salesforce Lightning Web Component](http://santanuboral.blogspot.com/2020/10/lwc-generate-pdf.html)
+ [Pure CSS Salesforce-like progressbar Control](https://www.codeproject.com/Tips/1194241/Pure-CSS-Salesforce-like-progressbar-Control)
+ [lightning-record-form を使ってみた](https://qiita.com/hrk623/items/93e1777d1d78ee23a0f1)
+ [Share Salesforce Files with Community User](https://www.mhamzas.com/blog/2019/04/30/share-salesforce-files-with-community-user/)
+ [chatter-blacklist](https://github.com/meighan/chatter-blacklist)
+ [Webサービスコールアウトを使用したバッチApex](https://www.biswajeetsamal.com/blog/batch-apex-with-webservice-callout/#:~:text=AllowsCallouts%20interface%20in%20the%20class,webservice%20callout%20in%20batch%20apex.&text=Note%3A%20Total%20number%20of%20callouts,keep%20batch%20size%20as%20100.)
+ [Salesforce APIs for Postman](https://github.com/forcedotcom/postman-salesforce-apis)
+ [PSKnowledgeHierarchyViewer](https://github.com/thedges/PSKnowledgeHierarchyViewer)
+ [CASESAFEID（）apexと同等](https://salesforce.stackexchange.com/questions/25575/casesafeid-apex-equivalent)
+ [JSONからCSVへの変換–ApexおよびJavaのユーティリティクラス](https://sfdcfacts.com/apex/json-to-csv-convert-utility-class-for-apex-and-java/)
+ [Color Columns of Lightning Data Table – Aura Component](https://sfdcfacts.com/lightning/color-columns-of-data-table-aura-component-2/)
+ [lightning:input type="file" not working](https://salesforce.stackexchange.com/questions/274371/lightninginput-type-file-not-working)
+ [カスタムLightningコンポーネントでのパスの使用](https://developer.salesforce.com/blogs/2018/06/using-path-in-your-custom-lightning-component)
+ [Raspberry Piを使用して、あらゆるモニター/ TVをSalesforceデータのスタンドアロンのリアルタイムダッシュボードに変える](https://github.com/Minerva18/tv-dashforce)
+ [Contact登録時にAccountがなければ、自動作成する](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Gh6vMSAR)
+ [スケジュールされているJobの詳細を取得する](https://qiita.com/Keiji_otsubo/items/aad9f8edd345990baf60)
+ [Convert Es5 to ES6 javascript.](https://qiita.com/Keiji_otsubo/items/d557ed0224e0801e8574)
+ [ケースの複製のまとめ](https://qiita.com/Keiji_otsubo/items/eb05f8c260adfb7fc201)
+ [auraコンポーネントによる編集ボタン上書きについて](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007cmUg1)

:::note
lightning:recordFormですが、oncancel属性があるので、ここに設定できると思います。

https://developer.salesforce.com/docs/component-library/bundle/lightning:recordForm/specification

＞項目の後ろに背景が無い
背景をつけるということですか？

class属性で指定できないですかね。

class = "slds-theme_default" とか...
:::




# 未解決

+ [Milestone Utils 57% code coverage](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000FWuGV)
+ [Auraでリストビューのボタンを作る？？](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000OtNjZ)
+ [lightning-input-address : Sandbox で表示検証したところ、エクスペリエンスビルダーや Google Chrome のシークレットモードではCSP 違反により、住所検索欄が表示されなくなりました。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmCNNSA2)

# 資料

+ [Salesforce Lightning Design System](https://github.com/salesforce-ux/design-system)


+ [Insert failed. First exception on row 0; first error: MIXED_DML_OPERATION, 非設定オブジェクトを更新した後の設定オブジェクト上の DML 操作 (またはその逆) は、許可されていません: Account、元のオブジェクト: User: []](https://qiita.com/Keiji_otsubo/items/6b7cebeef4c5a5d23745)
+ [Too Many SOQL Queries: 101を回避する](https://qiita.com/Keiji_otsubo/items/51bf6492fa7395469e66)






# lightning-datatable

+ [パーセント型の項目について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007N9vNF)
%型のフィールドを使う時は100で割らないといけなさそう。

+ [Lightning データテーブルのインライン編集時にスクロールバーが表示されない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HDdM1)

# lightning-input-address

+ [コミュニティサイトで住所入力補助のために、lightning-input-address を利用したことありますか？](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmCNN)

:::note
公式ドキュメンテーションを調べてみたら重要な事を見つかりました。

https://developer.salesforce.com/docs/component-library/bundle/lightning-input-address/documentation

「エクスペリエンスビルダーサイト、ライトニングアウト、VisualForceのライトニングコンポーネント、スタンドアロンアプリケーションにて show-address-lookup はサポート対象外です。利用できる可能性があるが、これらのターゲットはオプティマイズされていない上に完全にサポートされていません」
:::


# アノテーション

+ [On a method can i use two annotations like @RestResource @InvocableMethod](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007X7pJe)

:::note
Please check this article.
Is it possible to have multiple POST calls in the same Apex REST class?

https://salesforce.stackexchange.com/questions/358382/is-it-possible-to-have-multiple-post-calls-in-the-same-apex-rest-class

Looks like this is still an idea:

Allow multiple @invocable methods in a single class
https://ideas.salesforce.com/s/idea/a0B8W00000GdeuIUAR/allow-multiple-invocable-methods-in-a-single-class
:::

# できないこと

+ [ApexでUpdateされたレコードの情報をレコードページに反映](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007YwezG)
+ [Lightning Experienceでの項目自動入力機能について](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KCzPM)

:::note
2つ目の日時項目にも一つ目と同じ値が入力されるのが、レコードの保存ボタンを押した後でよければ、レコードトリガーフローやApex トリガーを使った自動化処理で実現できます。 


画面上で一つ目の日時項目を入力したら、2つ目の日時項目にもすぐに入力されるような機能が必要な場合はカスタムコンポーネントを作成しないと標準機能では難しいと思います。 
:::


# UIの検討

+ [aura：lightning:recordEditForm使用時の保存、キャンセルボタンの表示場所について](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007eqd9T)

自作の画面でも標準機能と同様の場所に保存、キャンセルボタンを配置したいのですが使用すべきコンポーネントが分かりません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/de33f3bc-4a48-3706-56e9-66e6fb1361af.png)

:::note
よくよく考えたらモーダル画面のフッタにボタンを配置すれば、同じような動作が可能だと思います。モーダルの中でlightning:recordEditFormを使います。

私が作った以下の画面はモーダルの中でDataTableを使っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/fdbc8f2b-2c52-3378-e670-7dd45102031b.png)
:::