问题标签 [business-objects]

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.

0 投票
5 回答
4256 浏览

encryption - 如何查询 CrystalReports CMS 数据库?

是否可以查询 Crystal CMS 数据库并取回有意义的数据?数据似乎已加密。

我正在运行 Business Objects Crystal Report Server 11.5 版

0 投票
3 回答
6405 浏览

c# - 如何跟踪业务对象的更改?

我得到了创建一个业务对象或实体来表示像一个人这样的东西的概念。然后我可以使用 DTO 序列化 Person 并将其发送给客户端。如果客户端更改了对象,它可以在那里有一个 IsDirty 标志,因此当它被发送回服务器时,我知道要更新它。

但是如果我有一个 Order 对象呢?这有主要的标题信息、客户、供应商、所需日期等。然后它有 OrderItems,它是一个 List<OrderItem>,是要订购的项目。我希望能够在我的 UI 上使用这个业务对象。所以我有一些文本框连接到位置、供应商、所需日期等,还有一个网格连接到 OrderItems。由于 OrderItems 是一个列表,我可以轻松地向其中添加和删除记录。但是我如何跟踪这一点,尤其是已删除的项目。我不希望删除的项目在我的网格中可见,如果我使用 foreach,我不应该能够迭代它们,因为它们已被删除。但我仍然需要跟踪删除的事实。如何跟踪更改。我想我需要使用一个工作单元?但随后代码似乎变得相当复杂。那么我想知道为什么不简单地使用 DataTables 并免费获得更改跟踪?但后来我读到了业务对象是如何发展的。

我在简单的 Person 示例中找到了各种示例,而不是像 Orders 这样的标题细节示例。

顺便说一句,为此使用 C# 3.5。

0 投票
18 回答
18792 浏览

c# - 业务对象、验证和异常

我一直在阅读一些关于异常及其使用的问题和答案。似乎是一种强烈的观点,即只应针对异常、未处理的情况提出异常。所以这让我想知道验证如何与业务对象一起工作。

假设我有一个带有 getter/setter 对象属性的业务对象。假设我需要验证该值是否在 10 到 20 之间。这是一个业务规则,因此它属于我的业务对象。所以这对我来说似乎意味着验证代码在我的设置器中。现在我将 UI 数据绑定到数据对象的属性。用户输入5,所以规则需要失败,不允许用户移出文本框。. UI 是数据绑定到属性的,因此将调用 setter、检查规则并失败。如果我从我的业务对象中提出一个异常说规则失败,那么 UI 会接受它。但这似乎与异常的首选用法背道而驰。鉴于它是一个二传手,你真的不会有二传手的“结果”。

那么验证应该如何工作呢?

编辑:我可能在这里使用了一个过于简单的例子。像上面的范围检查这样的事情可以由 UI 轻松处理,但如果验证更复杂,例如业务对象根据输入计算一个数字,如果计算出的数字超出范围,它应该被拒绝。这是更复杂的逻辑,不应该出现在 UI 中。

还考虑基于已输入的字段输入的进一步数据。例如,我必须在订单上输入一个项目以获得某些信息,如现有库存、当前成本等。用户可能需要此信息来决定进一步输入(例如要订购多少个单位),或者可能需要它来订购以进行进一步验证。如果项目无效,用户是否应该能够输入其他字段?重点是什么?

0 投票
4 回答
20123 浏览

business-objects - 谁能给我一份业务对象错误代码列表及其含义?

Business Objects Web 服务返回错误代码,我还没有找到一个很好的资源来列出这些代码以及它们的含义。我目前收到“结果集为空。(错误:WBP 42019)”。关于这些可能在哪里列出的任何想法?我已致电 Business Objects 支持,但技术人员甚至无法告诉我。任何人?

0 投票
6 回答
2336 浏览

.net - 业务对象 DAL 设计

在设计业务对象时,我尝试了几种不同的方法来编写数据访问层。有些人比其他人做得更好,但我一直觉得必须有一个“更好”的方法。

我真的很想看看人们在不同情况下处理 DAL 的不同方式,以及他们对该技术如何运作或运作不佳的看法。

0 投票
1 回答
2597 浏览

tomcat - 通过 Infoview 的 Business Objects XI 3.0 仪表板错误

我正在测试最新的 Business Objects Edge 试用版,但是当我以管理员身份登录 Infoview 时,当我单击以创建或组织仪表板时,我收到以下两条错误消息之一...

提交响应后无法转发

或者

Servlet 引擎异常:null URL:/PerformanceManagement/scripts/tools/err_page.jsp?null

堆栈跟踪:

非常感谢任何帮助。

0 投票
1 回答
660 浏览

.net - System.Drawing.Image 用于业务对象中的图像?

我想将图像存储在业务对象中。在 MSDN 中,我看到 System.Drawing-namespace 提供了许多 GDI+ 功能等。

是否可以将 Image 存储在业务层的 System.Drawing.Image 类中(“仅”是一个类库),从而也包括对 System.Drawing 的引用?我觉得这样做有点糟糕,因为我似乎在业务代码中有特定于 UI 的引用。此外,代码可能会变得不必要地依赖于平台(尽管这只是理论上的问题,因为我们不是为多个平台开发的)。

如果不正确,哪种类型最适合?

感谢您的任何回复!

马蒂亚斯

0 投票
1 回答
1452 浏览

c# - 如何发布业务对象查询服务

我们正在尝试将 BO 查询服务从一个 Universe 复制到另一个 Universe。如果您使用 BO 查询即服务 (QAAS) 工具,您可以执行此操作,但最终基本上是重新创建查询服务。

看起来 BusinessObjects.DSWS.* 库允许您读取和写入查询服务,但这些不会出现在 QAAS 工具中。我认为这些查询进入了与 QAAS 工具 ping 不同的领域。也许有一个用于数据的 Universe,另一个用于 Web 服务查询。监控 HTTP 流量的 QAAS 工具显示,用于运行查询它们包含的数据的 BO Web 服务也用于管理 Web 服务查询。

我能够使用 QuerySpec 中 XML 字符串上的 Replace() 将一个查询服务复制到新 Universe 中的一个新服务中,以更改 UniverseID。我们基本上可以将一个查询服务复制到另一个 Universe 而无需手动重建它,除了一件小事。

QAAS 工具包括一个发布按钮。这做了一些未知但重要的事情。也许它会制作一些 SOAP、WSDL 或配置文件,以便复制的查询服务是公开的。执行此操作时似乎没有任何 HTTP 流量可以窥探。BusinessObjects.DSWS.* 库包括发布功能,但不适用于查询服务。它适用于 Excel 和 PDF 等一般文件。

现在,我们只能使用两种工具。有谁知道如何像 QAAS 工具一样以编程方式发布 BO 查询服务?

0 投票
3 回答
438 浏览

c# - 需要有关将 ORM 和 SQL 与遗留系统结合的建议

我们正在将遗留系统移植到 .NET,既是为了清理架构,也是为了利用许多在遗留系统中不容易实现的新可能性。

注意:在提交之前阅读我的帖子时,我注意到我可能在某些地方描述得太快了,即。掩盖了细节。如果有任何不清楚的地方,请发表评论(不是答案),我会尽可能多地补充

遗留系统使用数据库和 100% 自定义编写的 SQL。这导致了宽表(即许多列),因为需要数据的代码只检索工作所需的内容。

作为移植的一部分,除了自定义 SQL 之外,我们还引入了一个我们可以使用的 ORM 层。我们选择的 ORM 是 DevExpress XPO,其中一个特性也给我们带来了一些问题,即当我们为 Employee 表定义 ORM 类时,我们必须为所有列添加属性,否则它不会为我们检索它们。

这也意味着当我们检索一个 Employee 时,我们会得到所有的列,即使我们只需要一些列。

拥有 ORM 的一个好处是我们可以将一些与属性相关的逻辑放入相同的类中,而不必到处复制它。例如,将名字、中间名和姓氏组合成“显示名称”的简单表达式可以放在那里,作为示例。

但是,如果我们在某处编写 SQL 代码,无论是在类似 DAL 的构造中,还是在任何地方,我们都需要复制这个表达式。这感觉不对,看起来像是错误和维护噩梦的秘诀。

但是,由于我们有两个选择:

  • ORM,获取所有内容,可以编写一次逻辑
  • SQL,获取我们需要的,需要复制逻辑

然后我们想出了一个替代方案。由于 ORM 对象是从字典代码生成的,我们决定也生成一组哑类。这些将具有相同数量的属性,但不会以相同的方式绑定到 ORM。此外,我们为所有对象添加了接口,也生成了,并使 ORM 和 dum 对象都实现了这个接口。

这使我们能够将其中的一些逻辑移出到与接口相关的扩展方法中。由于哑对象携带了足够的信息让我们将它们插入到我们的 SQL 类中,而不是返回 DataTable,我们可以返回一个 List,并提供可用的逻辑,这看起来是可行的。

然而,这导致了另一个问题。如果我想编写一段代码,仅在我需要知道他们是谁(即他们在系统中的标识符)以及他们的姓名(名字、中间名和姓氏)的上下文中显示或处理员工,如果我使用这个愚蠢的对象,编译器无法保证调用我的代码确实提供了所有这些东西。

一种解决方案是让我们让对象知道哪些属性已被赋值,并且尝试读取未赋值的属性会因异常而崩溃。这使我们有机会在运行时发现代码未传递足够信息的合同违约。

这对我们来说也很笨拙。

所以基本上我想要的建议是是否有其他人曾经或正在这种情况下,以及您可以提供的任何提示或建议。

目前,我们不能拆散桌子。由于端口的大小,旧应用程序仍需存在数年,并且 .NET 代码不是 3 年内发布类型的项目,但将在此过程中逐步发布。因此,遗留系统和 .NET 代码都需要使用相同的表。

我们也知道这不是一个理想的解决方案,所以请不要提出“你不应该这样做”这样的建议。我们很清楚这一点:)


我们研究过的一件事是使用“合同”创建一个 XML 文件或类似文件。所以我们可以在这个 XML 文件中加入如下内容:

  • 有一个 Employee 类具有这 50 个属性
  • 此外,对于程序的各个部分,我们有这 7 种变体
  • 此外,我们有这 10 条逻辑,每条都需要属性 X、Y 和 Z(X、Y 和 Z 在这 10 种之间变化)

这可以让我们对这 8 个类(全类 + 7 个较小的变体)进行代码生成,并让生成器检测到变体 #3 的属性 X、Y 和 K 是否存在,然后我可以将代码绑定到逻辑或逻辑需要自动进入此类的接口。这将允许我们拥有许多不同类型的员工类,具有不同程度的属性覆盖,并让生成器自动将此类支持的所有逻辑添加到它。

然后我的代码可以说我需要一个 IEmployeeWithAddressAndPhoneNumbers 类型的员工。

这看起来也很笨重。

0 投票
5 回答
3893 浏览

.net - 自动下载 BusinessObjecs Web Intelligence 报告

我的任务是自动检索几个BusinessObjects Web Intelligence报告并对其进行进一步处理。

我没有其他方法可以访问这些数据(这是我遵循的第一个途径),所以我不得不做一些屏幕抓取。唉,界面似乎是用户专用的。呸!

有没有人这样做过?喜欢分享?

另外,有谁知道自动化网络浏览器的好库?我知道那里有一个可用于测试 Web 应用程序的 python 东西——不过我需要 .NET 中的东西......你最喜欢什么?

PS:我也检查了这个线程(自动从网页获取报告),但我希望有一个 Web Intelligence 特定的解决方案。