来自同一文档的提交按钮在开发服务器上正确呈现,但在生产服务器上没有

时间:2014-10-22 14:02:15

标签: xpages

我在测试环境中按照设计呈现的按钮。将同一文档复制到与开发服务器具有相同配置的生产服务器时,不会显示它。

要求amdin重启http任务,压缩数据库但没有任何效果。测试和生产服务器文档具有相同的配置。

要检查什么。

此屏幕截图来自生产数据库: enter image description here

此屏幕截图与同一服务器上的文档相同,但在Pilot文件夹中:

enter image description here

提交按钮来源:

<xp:button
            value="Lab Man Approval"
            id="button4">
            <xp:this.rendered><![CDATA[#{javascript:document1.isEditable() & (sessionScope.get("flag")==0) & (document1.getItemValueDate("SECTION1DATECOMPLETED")!=null) & (document1.getItemValueString("DOC_STAGE_TX") == "Stage 2") & (@IsMember(@Name("[ABBREVIATE]",document1.getItemValueString("LABManager_NM")),@Name("[ABBREVIATE]",@UserName())))}]]></xp:this.rendered>
            <xp:eventHandler
                event="onclick"
                submit="true"
                refreshMode="complete"
                immediate="false"
                save="true">
                <xp:this.action>
                    <xp:executeScript>
                        <xp:this.script><![CDATA[#{javascript:var comboBox2:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("comboBox2");
var a=comboBox2.getValue();
var f=sessionScope.get("flag");
if (f == 0){
    sessionScope.put("flag",1);
    }
var f=sessionScope.get("flag");
//sessionScope.put("ITDialog","flag value " + @Text(f));
//var d=getComponent('dialog1');
//d.show();
if (f == 1){
    if ( a=="Accepted"){
    var d=getComponent('dialog2');
    d.show();
    }
    }
if (f == 1){
    if ( a=="More information needed"){
    var d=getComponent('dialog2');
    d.show();
    }
    }
if (f == 1){
    if ( a=="Cancelled"){
    var d=getComponent('dialog2');
    d.show();
    }
    }}]]></xp:this.script>
                    </xp:executeScript>
                </xp:this.action>
            </xp:eventHandler>
        </xp:button>

1 个答案:

答案 0 :(得分:0)

你对你的渲染条件非常满意,你可能想要&#34;外包&#34;那是一个函数调用。使用类似的东西并使用计算字段来查看结果:

   function renderApprovalButton(doc) {
        var labManager = @Name("[ABBREVIATE]",doc.getItemValueString("LABManager_NM"));
        var curUser = @Name("[ABBREVIATE]",@UserName());
        /* Take this out when done */
        print(doc.isEditable());
        print(sessionScope.get("flag")==0);
        print(doc.getItemValueDate("SECTION1DATECOMPLETED")!=null);
        print(sessionScope.get("flag")==0);
        print(doc.getItemValueString("DOC_STAGE_TX") == "Stage 2");
        print(labManager);
        print(curUser);
        print(labManager==curUser);
        /* End of debug to be taken out */

        var result = doc.isEditable()
                      && sessionScope.get("flag")==0
                      && doc.getItemValueDate("SECTION1DATECOMPLETED")!=null
                      && sessionScope.get("flag")==0
                      && labManager == curUser; 
        return result;
   }

这应该可以解决出现问题的方法