function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
nabemarunabemaru 

選択リスト連動関係の取得

掲題の件ですが、VisualForce上で選択リスト項目を<APEX:outputField>として配置する事で、

連動関係設定を反映した動作をすることは、summer'10だったか忘れましたが、

それ以降のバージョンだと問題ない事を確認しております。

 

ただし、今回質問したい内容は、

VFページ内のJavasCript(connection.js等を利用して)から、

その連動関係の定義をdescribeを使って取得する事ができるか?

という点となります。

 

現在、これが、できずに困っています。

 

WebAPIによると、

 DescribeSObjectResult

を取得し、PicklistEntryを取得する事で、

validForという属性を参照する事で、対応できそうだというとこまで当たりを付けました。

 

ただし、そのvalidForは、byte[]型のため、Javaだといけそうですが、

JavaScriptでvalidForを取り扱っている参考記事にたどり着けていません。

 

 

APEX CODE Reference

では、describeを使ってPicklistEntryを取得する事はできそうですが、

連動関係の定義を表す属性(たとえば、validFor相当)が見当たりません。

 

 

唯一いけそうなのは、

MetaDataAPI

のMetaData-Field(picklist)のcontrollingFieldValuesだろうと当たりを付けておりますが、

いかんせん、MetaDataAPIは、Javaでのアクセスを前提としたサンプルコードばかりで

そもそもJavaScriptでアクセスできるものなのか?から分かっていません。

 

 

つきましては、以下の大きく2点について、どなたかご存知でしたら、

よろしくご教示ください。


・VF上のJavaScriptにて、連動関係の定義を取得する方法はあるか?

(AjaxToolkit, APEXでの取得等実現できるのであれば、なんでも構いません。)

もしかすると結論としてVF上のJavaScriptにて、定義体であるwsdlを読み込んで

 分析する必要ということになりそうでしょうか?

 

・VF上のJavaScriptにて、MetaDataAPIにアクセスする事はできるのか?

 


Best Answer chosen by Admin (Salesforce Developers) 
erueru

以前JavaScriptで同じように連動項目を取得しようとしましたがかなり複雑な処理を行わないと取れなかった記憶があります。

ソースの提供はできないのですが、特に問題ないのでしたらinputFieldでの実装をお勧めします。

 

All Answers

erueru

以前JavaScriptで同じように連動項目を取得しようとしましたがかなり複雑な処理を行わないと取れなかった記憶があります。

ソースの提供はできないのですが、特に問題ないのでしたらinputFieldでの実装をお勧めします。

 

This was selected as the best answer
nabemarunabemaru

数ヶ月ご連絡せず申し訳ありません。

ご回答有り難うございます。

やはり、難しいですよね・・・。

 

私もJavaScriptのソースを探してきて自前で作ってみましたが、

これは作るべきではないと感じました。

 

また、inputFieldで連動関係を作ったのですが、

Formの中では10個までしか連動関係は配置できないようでした。

いろいろと制約があるもののなんとか、仕様にて吸収しようと思います。