问题标签 [escript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
variadic-functions - Siebel eScript varargs 函数总是抛出异常
根据 Siebel 文档,eScript 支持可变参数。以下示例取自 Siebel 文档:
但是,如果我像这样调用此方法,则会SumAll(1,2,3)
收到以下异常:
TypeError:无法将“未定义”转换为对象。Service.SumAll 第 xxx 行
其中 xxx 是 for 语句的行号。
有什么想法,为什么?谢谢!
javascript - 响应式设计 - 如何不加载某些脚本?
终于有一个响应式网站工作(时尚)。我现在要做的是减少在移动设备上加载的脚本,以便它们加载得更快。这些脚本在手机上是多余的,因此它似乎是一个不错的起点。
有没有办法根据设备只加载某些脚本?
该网站是第 3 方电子商务网站,不允许针对不同设备使用不同版本的页面。服务器端语言是进度的电子脚本(我对此一无所知)。
任何帮助将非常感激!!
regex - 如何从字符串中删除新行
我正在研究 Siebel CRM 并在 eScript 中使用正则表达式。代码是
此代码正在替换代码中写入的 Tab 和其他字符,但问题是如果新行出现在字符串的末尾,代码将删除它,但如果两个字符串之间有新行,它不管用。即 '\n' 没有被删除。
第二件事,如果我正在尝试
但是,它没有给我任何记录,如果我以其他方式搜索(没有 where 条件),就会有记录。
请帮忙。
提前致谢。
siebel - 我想通过单击按钮刷新 siebel 中的视图
我正在使用 siebel v 8.0。
单击小程序中的按钮时,我想刷新视图。
单击按钮时,我需要浏览器脚本中的一些代码来刷新视图。
我努力了
但他们都没有工作。但我需要刷新整个视图而不是当前的小程序。请帮忙。.
siebel - 需要一种在 Siebel 中设计浮动窗口的方法
我正在使用 Siebel HTIM 应用程序 v8.0。
我需要一个浮动窗口,这不应该是一个弹出窗口。使用弹出窗口,无法编辑数据主窗口。用户应该能够在主窗口和浮动窗口中编辑数据,而无需关闭浮动窗口。并且主窗口和浮动窗口中的数据不是来自同一个BC。他们只是联系在一起。
我尝试ShowPopup()
了方法,但这给了我一个弹出窗口。如果有人知道如何在 Siebel 应用程序中设计浮动窗口。请帮忙。
javascript - 从业务服务方法返回的输出属性集无法在javascript调用环境中捕获
我们正在尝试在 Siebel Open UI 的自定义演示模型文件中检索数据。我们正在调用具有输入属性集的业务服务方法。我们能够调用 BS 方法,并且在 Siebel 端一切都按预期工作。但是当我们从 Siebel BS 返回到调用环境时,在调用环境中,分配的变量不会被填充。
自定义 js 文件中的代码
如果我们需要更改某些内容或任何其他经过测试的方式来从 Siebel BC 获取数据,请告诉我们。
作为我们定制的一部分,我们需要来自 Siebel BC 的数据才能在此 javascript 文件中使用。
javascript - Siebel eScript 实际上基于什么标准?
根据Siebel 8.0 文档,eScript 符合 ECMAScript Edition 4 标准。但据我所知,没有发布这样的标准。第 4 版长期处于草稿状态,但从未发布。ECMA 的网站将第 4 版声明为“不存在”。我发现了一个问题,其中一些细节说明了问题。此外,在Siebel 8.1/8.2 文档中Oracle 完全删除了对 ECMA 标准的引用,现在我们回避“Siebel eScript 是一种在语法和语义上与 JavaScript 兼容的编程语言”。所以我的问题是:Siebel eScript 实际上基于什么特定标准?关于对语法/功能的支持,任何人都应该期待什么?它应该是试错法还是有一些起点?
免责声明:是的,我知道书架中有“Siebel eScript 语言参考”。我只想知道是否还有其他适用于 eScript 的 ECMAScript 或 Javascript 规范/参考。
oracle - 在 PreWriteRecord 事件处理程序中确定新记录并检查连接字段的值
Account BC,即S_ORG_EXT_X表中有自定义字段“Lock Flag”。该字段在商机 BC 中可用,使用上表的连接。联接规范如下:Opportunity.Account Id = Account.Id。创建新机会时始终填充帐户 ID。要求是对于机会 BC 中新创建的记录,如果“锁定标志”等于“Y”,那么我们不应该允许创建记录,我们应该显示自定义错误消息。
我最初的建议是使用调用数据验证管理器业务服务的运行时事件,在该服务中评估验证规则并显示错误消息。假设我们必须决定是否写入记录,只要 WriteRecord 已经将行提交到数据库,逻辑就应该放在 PreWriteRecord 事件处理程序中。
主要问题是如何确定它是新记录还是更新记录。我们有 WriteRecordNew 和 WriteRecordUpdated 运行时事件,但它们在实际写入记录后被触发,因此它不会阻止用户保存记录。我的下一个方法是使用 eScript:在 BusComp_PreWriteRecord 服务器脚本中编写自定义代码并调用 BC 的方法 IsNewRecordPending 以确定它是否是新记录,然后检查标志并在需要时显示错误消息。
但不幸的是,我面临另一个问题。新创建的机会记录不会填充该连接字段“锁定标志”。请记住,我们正在谈论 BC Opportunity 并且字段放置在 S_ORG_EXT_X 表中。当我们创建新机会时,我们会选择它所属的帐户。所以它是可重现的: OpportunityBC.GetFieldValue("Lock Flag") 为新创建的记录返回 null 并为之前保存的记录返回正确的值。对于新创建的机会,我们必须重新查询 BC 以查看填充的“锁定标志”。我找到了几个文档,包括Oracle 的推荐如果我们想在创建记录后立即显示连接字段值,请使用 PreDefaultValue 属性。我找到的最合适的表达式是 Parent: BCName.FieldName 但事实并非如此,因为活动 BO 是 Opportunity 而 Opportunity BC 是主要的。
如果您阅读到这里并最终提出我的问题,感谢您的耐心等待:
有没有办法在不使用 eScript 和 BC.IsNewRecordPending 方法的情况下处理 PreWrite 事件并确定它是否是新记录?
如何获取新创建记录的连接字段的值,尤其是在 PreWriteRecord 事件处理程序中?
它是 Siebel 8.1
更新:我找到了问题第一部分的答案。现在对我来说似乎很简单,我想知道我最初是怎么做到的。这是解决方案。
- 在 PreWriteRecord 上触发的创建运行时事件。指定对 Data Validation Manager 业务服务的调用。
- 在 DVM 中创建规则集和条件为的规则
NOT(BCHasRows("机会", "机会", "[Id]='"+[Id]+"'", "AllView"))
而已。我们正在搜索具有相同行 ID 的记录。如果是新记录,则数据库中应该没有任何内容(请记住我们在 PreWriteRecord 处理程序中)并且函数返回 FALSE。如果我们正在更新某些行,那么我们得到 TRUE。使用 NOT 反转结果,我们使 DVM 为新记录引发错误。
至于我的问题的第二部分归功于@RanjithR,他建议使用 PickMap 来填充连接字段(见下文)。我已经检查了该方法,并且至少在您有适当的 PickMap 时它可以正常工作。
oracle - 有没有办法用 eScript 找出对象管理器的名称?
基本需要是确定当前运行任务的对象管理器的名称。如果我们还可以获得任务 ID、组件名称(通常)、组件组名称、服务器名称和企业名称,那么额外的好处将是。
实际上这里提供了一个解决方案,但它有严重的局限性。只要它使用纯内存对象且不支持示例查询的 Server Admin buscomps,我们就必须遍历所有记录。这可能会导致具有数百甚至数千个活动任务的生产服务器出现性能问题。有没有其他方法可以获取这些信息?