Oracle CRM On DemandでWebアプレットを作成する前に、文字エンティティの参照としてエスケープされる可能性がある文字がフィールドに含まれている場合は、%%%User Id%%%などのパラメータフィールド変数の使用方法を注意深く考慮してください。
パラメータフィールド変数をHTMLに挿入する際には、&などのフィールド名の文字が対応する文字エンティティの参照(この場合は&)にエスケープされ、ブラウザでエンティティの参照が展開されて参照されている文字が表示されます。たとえば、A&B Manufacturingという企業名でホームページのHTML Webアプレットを作成するとします。[ユーザーおよびシステムフィールド]ドロップダウンリストから[企業名]を選択して、%%%Company name%%%という変数を挿入できます。この変数の値は実行時にA&B Manufacturingになり、ブラウザにはA&B Manufacturingと表示されます。ただし、JavaScriptコードでは文字エンティティの参照が展開されないため、参照可能なコンテキストに変数を置き、文書のDOMから取得して必要に応じてエンコードします。これらの相違をWebアプレットHTMLコードの次の例に示します。
<span id=”companyname” style=”display:none” data-value=”%%%Company name%%%”></span>
<script type=”text/javascript”>
var var1 = ”%%%Company name%%%”;
var var2 = document.getElementById(“companyname”).getAttribute(“data-value”);
</script>
var1の値は“A&B Manufacturing”に、var2の値は“A&B Manufacturing”になります。var1とvar2の値が異なるのは、HTMLタグおよびデータのエンティティの参照がブラウザでは展開されますが、<script>エレメント内では展開されないためです。
[ユーザーおよびシステムフィールド]ドロップダウンリストからオプションを選択して、カーソルの現在の位置にある[URL]フィールドにパラメータフィールドを追加します。
たとえば、ドロップダウンリストから[ユーザーID]を選択すると、%%%User id%%%が挿入されます。実行時に、このパラメータは、サインインしているユーザーのユーザーIDで置き替えられます。
もう1つの例として、リストから[ホスト名]を選択した場合、カーソルの位置に%%%Hostname%%%が挿入されます。実行時、このパラメータは、Oracle CRM On Demandが動作しているサーバーのホスト名と置き替えられます。環境の移行時にOracle CRM On Demandホスト名を手動で変更する必要がなくなるため、Oracle CRM On DemandへのURLを含む設定では便利です。
詳細は、「ユーザーおよびシステムフィールド」を参照してください。
|