【问题标题】:Siebel eScript varargs function always throws an exceptionSiebel eScript varargs 函数总是抛出异常
【发布时间】:2010-07-29 01:08:40
【问题描述】:

根据 Siebel 文档,eScript 支持可变参数。 以下示例取自 Siebel 文档:

function SumAll()
{
  var total = 0;
  for (var ssk = 0; ssk < SumAll.arguments.length; ssk++)
  {
    total += SumAll.arguments[ssk];
  }
  return total;
}

但是,如果我像 SumAll(1,2,3) 这样调用此方法,则会收到以下异常:

TypeError:无法将“未定义”转换为对象。 Service.SumAll 第 xxx 行

其中 xxx 是 for 语句的行号。

任何想法,为什么? 谢谢!

【问题讨论】:

    标签: variadic-functions siebel escript


    【解决方案1】:

    不要输入“SumAll.arguments”,而是尝试像这样只使用“arguments”:

    function SumAll()
    {
      var total = 0;
      for (var ssk = 0; ssk < arguments.length; ssk++)
      {
        total += arguments[ssk];
      }
      return total;
    }
    

    【讨论】:

    • 谢谢,这行得通。但是,保存此代码时,我在 Siebel Tools 中收到语义警告“未定义的标识符参数...”。所以我有两个不愉快的选择:忽略语义警告并在我保存时接受一个讨厌的弹出窗口;或禁用所有语义警告,包括有用的警告(BusCop 字段不存在等)。还是有其他选择,例如取消某些警告?
    • 有趣。这显然是一个产品缺陷,缺陷是:1) Siebel Tools 和 Book Shelf 文档有误,或者 2) 脚本引擎没有按预期运行。我想说您的下一步是通过您的 Oracle TAM 记录服务请求,以了解并修复此产品缺陷,然后尽您所能使其在功能上正常工作——可能以一种不会很快中断的方式因为缺陷是固定的(无论缺陷实际上是什么)。遇到产品缺陷是一个很好的指标,表明您正在充分利用可用的功能;)
    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多