无法运行查询,因为字段'<! - ? - >'的条件包含无效的算术表达式

时间:2016-07-24 03:52:49

标签: siebel bi-publisher

无法运行查询,因为字段''的条件包含无效的算术表达式

您好,

当我尝试在服务器脚本中传递一个值并且它不断出现这个错误“不支持运算符sbl-dat-00479”时,我遇到了一些问题。当我试图删除我的一个值PRS帐户号并且它成功出来。我的PRS账号No = P-35971。下面是我的服务器脚本。

function Print()
{
try
{
    TheApplication().TraceOn("C:\\spool\\PRS SOA.txt", "Allocation", "All");

    var Account = "";
    var Year = "";
    var Period = "";
    var LPeriod = "";
    var ContactID = "";
    var Bookmark = "";

    var ReportId = "";
    var ReportName = "Customer Portal PRS Statement of Account";


    //Active Field
    this.BusComp().ActivateField("PRSAccountNo");
    this.BusComp().ActivateField("Year2");
    this.BusComp().ActivateField("Period2");
    this.BusComp().ActivateField("LPeriod");
    this.BusComp().ActivateField("CONTACT_ID");

    //Get Account Row Id
    Account = this.BusComp().GetFieldValue("PRSAccountNo");
    Year = this.BusComp().GetFieldValue("Year2");
    Period = this.BusComp().GetFieldValue("Period2");
    LPeriod = this.BusComp().GetFieldValue("LPeriod");
    ContactID = this.BusComp().GetFieldValue("CONTACT_ID");

    //Construct Bookmark Query
    Bookmark = "'cwa CustPortal PRS SOA Account'.Search = \"([PRS Account No] = '"+ Account +"') AND ([Year] = '"+ Year +"') AND ([Period] = '"+ LPeriod +"') AND ([CONTACT_ID] = '"+ ContactID +"')\"";  

    TheApplication().Trace("Bookmark: " + Bookmark);

    //Retrieve Report Row Id
    var boReport = TheApplication().GetBusObject("cwa CustPortal Report Administration");
    var bcReport = boReport.GetBusComp("Report Standard Templates");

    with(bcReport)
    {
        ActivateField("Report Name");
        SetViewMode(AllView);
        ClearToQuery();
        SetSearchSpec("Report Name", ReportName); 
        ExecuteQuery(ForwardOnly);

        if(FirstRecord())
        {
            ReportId = GetFieldValue("Id");
        }
    }

    //Generate BIP Report
    var GenReport = TheApplication().GetService("Workflow Process Manager");
    var GenInput = TheApplication().NewPropertySet();
    var GenOutput = TheApplication().NewPropertySet();

    GenInput.SetProperty("ProcessName", "cwa CustPortal Generate BIP Report Workflow");
    GenInput.SetProperty("Report Id", ReportId);
    GenInput.SetProperty("Bookmark", Bookmark);
    GenReport.InvokeMethod("RunProcess", GenInput, GenOutput);

    var ErrMsg = GenOutput.GetProperty("Error Message");

    if(ErrMsg == "")
    {
        //BIP Report successful generated, redirect to view report page
        TheApplication().GotoView("cwa CustPortal PRS SOA Report View");
    }
    else
    {
        Popup(ErrMsg);
        return(CancelOperation);
    }

    TheApplication().TraceOff();
}
catch(e)
{
    Popup(e);
}
finally
{

}
}

1 个答案:

答案 0 :(得分:0)

代码看起来不错,可能是数据问题或计算字段逻辑错误。

我认为“Year2”,“Period2”是计算字段&amp;可能会返回特殊字符(“/”)导致searchspec错误地呈现。