【Salesforce】Type is not visible: {!NameSpace.ClassName}

【Salesforce】Type is not visible: {!NameSpace.ClassName}

Sandboxにて、Visualforceで作成された画面のちょっとした修正を行いました。

コントローラクラスの修正も行い、テストを実行して確認しました。

大きな修正ではないため、特にエラーは出ませんでした。

動作の確認も行い、大丈夫そうだったので本番環境へリリースするための変更セットを作成しました。

簡単な仕事だった、なんて考えながらクイックリリースのための検証を行ったところ、検証のテストに失敗しました。

多くのクラスでこんなエラーが吐かれていました。

Dependent class is invalid and needs recompilation: Class {!ClassName} : Type is not visible: TxnSecurity.PolicyCondition 
Stack Trace: null

再コンパイルする必要がある、とのメッセージですね。

Lightning環境なので、「設定」=>「カスタムコード」=>「Apexクラス」と進み、Apexクラスの一覧を表示します。

「すべてのクラスをコンパイル」をクリックし、無事に解決、、、しませんでした。

今度は一部のクラスでコンパイルエラーが発生していました。

Type is not visible: TxnSecurity.PolicyCondition

リリースの検証テストで出たエラーの後半部分ですね。

コンパイルエラーが発生していたクラスは、TxnSecurity.PolicyConditionというクラスを継承していました。

この「TxnSecurity.PolicyCondition」というクラス、普通にリファレンスに載っているクラスです。

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_interface_TxnSecurity_PolicyCondition.htm

それなのに、何故使えないのでしょうか。

あれこれ調べても分からなかったのですが、上のリファレンスをよく読むと書いてありました。

引用します。

使用可能なエディション: Salesforce Classic および Lightning Experience
使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition
Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションを購入する必要があります。

使用するためには、アドオンサブスクリプションというものを購入しなければならないようです。

組織のライセンスを確認すると、無効化されていました。
ライセンス

エラーが出る原因は分かったのですが、該当するクラスを勝手に消すわけにはいきません。

なので、今回のリリースの検証で行うテストは「指定されたテストを実行」にて行いました。

修正があったクラスに関連するもののみをテストし、リリースしました。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です