8.5.3 UP1 を使用。「hide/whens」またはより正確にはxpages「show/ifs」に使用しているSSJSスクリプトライブラリに問題があります。いずれにせよ、グローバル変数は、スクリプト ライブラリを最後に保存したときの値を取得しているようです。ドキュメントの現在の値に基づいて計算していないようです。これは既知のことですか (明らかに私には知られていません)。この問題を示すサンプル ページとスクリプト ライブラリを次に示します。
XPage の例:
<xp:this.resources>
<xp:script src="/ssjsVisTest.jss" clientSide="false"></xp:script>
</xp:this.resources>
<xp:inputText id="inputText1" value="#{document1.StatusTX}"></xp:inputText>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="Save" id="SaveBtn">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label id="label1" value="Status is Draft"
rendered="#{javascript:statusVisibleDraft()}">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label id="label2" value="Status is Pending"
rendered="#{javascript:statusVisiblePending()}">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
</xp:view>
サンプル SSJS スクリプト ライブラリ:
var status = document1.getItemValueString('StatusTX');
function statusVisibleDraft() {
x = (status == "Draft") ? 1 : 0;
if(x > 0) {
return true;
} else {
return false;
}
}
function statusVisiblePending() {
x = (status == "Pending") ? 1 : 0;
if(x > 0) {
return true;
} else {
return false;
}
}
何か案は?ありがとう