Apexでは編集不可項目には代入ができないようになっていて、フローでもそれは同じです。
Apexで編集不可を含めて全ての項目をSOQLで取得してINSERTを行ったとしても、IDを空にしておけばエラーにはなりません。
フローではIDを空にしなくても、レコードの作成要素ではIDが無視されます。
選択的に省くというよりも、省かなくてもDMLの際のロジックで上書きされるという感じです。
決定要素で条件と違う場合でかつ、デフォルトの結果がなければ、フローはそこで止まるみたいにことが回答されています。
If the default outcome doesn't point to anything and none of the other choices are true the flow should stop.
https://www.reddit.com/r/salesforce/comments/jx9fmn/how_flow_default_outcome_works/
- UnofficialSFのまとめ
- Flow error using External Services
- 製品版に「管理者が他のユーザーとしてフローをデバッグできるようにする」チェックボックスがありません
Did you resolve this? I'm having the same issue. It's there in the sandbox and working but in Production it's not an option. Thanks
I don't know if your flow is an screen flow or any other kind. However, I was facing the same issue and I found out that in prod environment it's not possible according to this article (specifically when it mentions "Debugging a flow as another user is available only for screen flows and autolaunched flows in nonproduction orgs."):
So I had to "debug" my screen flow in prod environment (to reproduce the same issue that I was facing in sandbox environments) using a non-admin test user and changing the layout and adding the necessary elements to invoke it.
https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A98wASAR
Please check this article.
Flow - Create a flow that updates the discount email sent tickbox automatically when the date the email was sent field is filled in.
https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000QKHDKSA5
そうですね、なぜ最初からそのように構築することにしたのかはわかりませんが、フローを終了させることが、このフローに関するほとんどの問題の解決の鍵です。
This means that somewhere else in your flow, you are referencing this element. Somewhere you are referencing it. When you remove that reference you'll be able to delete it.
下記の設定で実装可能かと思います。
- カスタムオブジェクトAのカスタム項目としてチェックボックス項目を作成
- フロー①でカスタムオブジェクトAのレコードを削除する前に、上記のチェックボックス項目をTRUEに更新
- フロー②の開始要素のエントリ条件で上記のチェックボックス項目がFALSEの場合のみ起動するように設定
共有していただいた例から、親として保持するものを選択する必要があることがわかりました。メール オブジェクトでフローを実行することはやめて、代わりに、他のフローを介してケース オブジェクトのスレッド識別子を更新した後、ケース オブジェクト (作成済み) でフローを実行しています。現在、このフローは 0 分後に実行する必要があります。各決定結果の後、同じスレッド識別子を持つケースを取得し、子として更新しています。フローは、問題となっている他の親に対してケースが作成されたかどうかを調べ (レコードを取得)、作成された場合は停止します。そうでない場合は、画像の各結果からわかるように、さらに先に進みます。
マスター({!$Record.Account.MasterRecord} )でなくて取引先Idを選んでみてください。
Experience Builder
Which Experience Builder page types support the Flow component?
All Experience Builder pages
- My Pages: The standard pages that you create. (The object pages that you create appear under Objects.)
- Template Pages: The default pages that come with the site template.
- Objects: The pages of the objects in your site, which include the object’s record detail, list, and related list pages.
- Generic Record Pages: These generic pages are used to display record information for a Salesforce object when custom object pages don’t exist.
- Login Pages: The default login pages that come with the site template.
サブフロー
I was able to resolve my issue. I ended up rebuilding my subflow as an Autolaunched Flow since that is something that cannot be changed after a subflow is created. It was an obvious mistake by me.
問題を解決できました。サブフローの作成後に変更できないものであるため、サブフローを自動起動フローとして再構築することになりました。それは私の明らかな間違いでした。
Sandboxで消せない?
私たちは Salesforce に問題を提起しましたが、彼らは「サンドボックスを更新する」以外の解決策を提示してくれませんでした。まるでそれが大したことではないかのように。
壊してしまったのに、修理する準備ができていません。対応にがっかりしました。
デバッグ
- 注文商品レコードが作成されたことをトリガーに起動するレコードトリガーフローのデバックでレコードを選択できない
- The "SendWspARG" element in your flow has validation errors
数式
ISCHANGED({!$Record.Supplier_id__c})
- フローでの数式
- Help on Opportunity Push Counter Flow Formula
- addmonths({!$Record.Date1__c},-1)を使って決定要素で起動させる
- 数式を使った時にGMTになるのをローカルタイムに変更したい
- getting the same HL_ENCODED instead of just the hyperlink text.
- 選択肢の選択?Choice selections
- 私のフローの選択リスト レコード セットが 200 レコードしか取得しないのはなぜですか
As you may know, Salesforce limits the Record Choice Set and Picklist Choice Set to 200 items. For complex use-cases involving a long list of records, use the Collection Choice Set.
https://crmbrew.com/salesforce-flow-choice-lookup-component/
Nullの時の判定
Account_Field__c > IsNull > {!$GlobalConstant.False}
作成例
- 納入商品の作成
- 商談の更新で関連する取引先の取引先責任者を更新する
- フローで 月曜日 18:00〜 火曜日 5:00 に作成されたレコードを対象外にする
- トラブル履歴の作成から90日が経過した行動レコードに紐づく取引先のチェックボックス項目をFALSEにするフロー
- 電子メールメッセージの送信時に連絡先レコードフィールドを更新するにはどうすればよいですか (Lightning)?
- 商談に紐づくカスタムオブジェクトの項目値の合計を商談に入れたい
- レコードトリガーフローの数式にて前月のレコードを参照したい
- キャンセル待ちの処理
できない例
フローを使って承認、却下する機能はアイデアにはあがっているようです。
Approve or Reject records through Process builder or Flow
https://ideas.salesforce.com/s/idea/a0B8W00000GdcOtUAJ/approve-or-reject-records-through-process-builder-or-flow
以下でもApexを使っていますね。
https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HESplSAH
- How to pass List View name to a screen flow?
- フロー障害パス設定時のメール通知についてご教示いただきたいです。障害パスでメール送信アクションを追加していますが、その障害パスを通るのと同じタイミングでフローのシステムエラーメール(FlowApplication)も送信されてしまいます。このメール通知をアクションで設定した1通のみにしたい
障害パスのシステムエラーメールを停止することは難しいかと思います。
どうしてもシステムエラーメールを送信したくない場合は、Apexアクションを使用してみてください。
その他
- %を含むフィールドを含むフロー内の数式。
- Flow to change user profile and role upon deactivation
- 電話番号の設定?
- 選択リストのフィールドが7日後に変更されない場合にユーザーに通知するフローを作成するにはどうすればよいですか?
- フローのレコード取得時に複数選択リストが条件に使えない
- フローは 1 つのレコードでは機能するが、一括では機能しない Apex
- HTTP コールアウト ベータ版
- フローの最善策について
- フローから新規ユーザ作成した際の初回ログインメールの作成
移行ツールの制限
lightning:availableForFlowScreens を使ってオブジェクトにリダイレクトさせる?
When a flow is run from Flow Builder or a direct flow URL (https://yourDomain.my.salesforce.com/flow/MyFlowName), force and lightning events aren’t handled.
- Considerations for Configuring Components for Flows
- e.force:editRecord in Flow - e.force:navigateToSObject
I don't think redirects work with this lightning:availableForFlowScreens option.
Consider if you can use the following Or I think there is no choice but to implement everything with custom components.
the Run an Autolaunched Flow from a Custom Button unit
I found it....it was my mistake and I kept missing it everytime I was checking the individual steps. I had created a Detail Page Link and not a Detail Page Button, that's why it wasn't showing. So sorry but maybe someone else will run into the same issue at some point and can learn from my mistake :)
私はそれを見つけました....それは私の間違いであり、個々のステップをチェックするたびに見逃していました.詳細ページ ボタンではなく詳細ページ リンクを作成したため、表示されませんでした。申し訳ありませんが、他の誰かがいつか同じ問題に遭遇し、私の過ちから学ぶことができるかもしれません:)
非同期実行パスでRecord_Priorの値を参照する方法
英語ですが同じ質問があります。
対応しないので、以前の値は別途別のフィールドとして持っておくようなことが回答されています。
As of the time of this answer, you cannot use PRIORVALUE or $Record__Prior in an Asynchronous Path and see the values before the path executes. This is being considered for Run Asynchronously, but not for Scheduled Paths.
If you need to check what the prior value was, you need to make separate arrangements for this, such as saving the previous value in a different field or record. This question has an answer that explains it:
Obtaining Prior Record Values Using Asynchronous Flows
https://salesforce.stackexchange.com/questions/372536/obtaining-prior-record-values-using-asynchronous-flows
スケジュール済みパス
フローを使って複数の招待者を登録する
EventRelationオブジェクトを使うようなことが回答されています。
https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A8pmhSAB
Apexを使う
Apexの戻り値の変数設定はどうなっていますか?
例えばテキスト型のコレクション変数として返す場合にはList>のように2重にList型として定義しないと機能しません。不思議です。
global class MultiSelectFlowValues {
@InvocableMethod
public static List<list<string>> CheckValues(List<string> values) {
if(!(values.isEmpty())){
ist<list<string>> finalLst = new list<list<string>>();
for (String tStr : values) {
List<String> lstnew = tStr.split(';');
l
finalLst.add(lstnew);
}
return finalLst;
}
else return null;
}
}
- apex側の変数がID型のためなのか、nullを送ると、 @InvocableVariable の変数に代入するタイミングで以下Exceptionが発生してしまっております。StringException: Invalid id ](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007Yw2UD)
ダミーのIdを使えるならば、もう一つBoolean型の変数を作って、この変数がtrueの時は実際にはダミーのIdを使わずに新規作成した取引先のIdを使うように処理できると思います。
メール関係
外部認証
Yes, I was trying to create an HTTP callout. The solution I found is to run it in an asynchronous path.
FYI, in that case, you need to specify the input condition as a formula and also check "Only if the record is updated to meet the condition requirements". It's a little difficult to solve.
はい、HTTPコールアウトを作成しようとしていました。私が見つけた解決策は、非同期パスで実行することです。
参考までに、その際には、入力条件を数式として指定し、「条件要件を満たすためにレコードが更新された場合のみ」にもチェックを入れる必要があります。解決するのは少し難しいです。