标签: oracleforms

从Oracle Forms 6i迁移到Web的最佳解决方案?

我在Oracle商店工作.有一个工具集由大约1000个Oracle Forms(使用6i的早期90版软件中的Forms构建器)和后端的Oracle 10g组成.它每月为大约500名独特的人提供服务,在工作日的任何时间都有200个并发连接.

显然,这是需要解决的问题,以摆脱Forms运行时并转移到基于Web的解决方案.需要从Windows,Linux,各种UNIX,VMS和Solaris访问这些工具.

有哪些选择可以迁移到?它不仅需要对迁移是可行的,而且需要由支持该工具集的大约8名工程师完成开发(其中许多人宁愿保持这种工具集并且不对其进行现代化).

Oracle提供了一些解决方案,可以将Oracle Forms转换为糟糕的Java Applet(这是一个非常糟糕的临时解决方案).

我选择的解决方案一直在迁移到Ruby on Rails(我是Rails的大力支持者),但这将涉及到其他开发人员的学习曲线(我们会用任何解决方案).此外,另一个困难是将一些非常复杂的表单转换为HTML表单.

有没有人解决过这样的解决方案?是否有任何Oracle以外的人提供的软件包?

任何特定的Java Web框架?

GWT,jQuery UI,ExtJS或任何其他JavaScript UI框架是否能提供所需的丰富用户体验?

.NET是一个考虑但是最后的手段(主要是因为许可证成本,除了我们为Oracle许可证支付的费用之外,预算中没有空间).

java migration oracle oracleforms

12
推荐指数
1
解决办法
3万
查看次数

评估Oracle Forms中的PL/SQL布尔变量

假设我BOOLEAN在Oracle表单中的PL/SQL块中有一个变量:

DECLARE
  is_viewable BOOLEAN;
BEGIN
  is_viewable := ...;

  IF NOT is_viewable THEN
    raise_my_error(); // pseudo-code
  END IF;
END;
Run Code Online (Sandbox Code Playgroud)

在使用调试器多次单步执行此代码后,我确定raise_my_error() 永远不会被调用.澄清:

  • raise_my_error()如果没有被调用is_viewable = TRUE
  • raise_my_error()如果没有被调用is_viewable = FALSE

初步测试表明,此行为仅限于在Oracle Forms中运行的PL/SQL代码,而不是直接在数据库中运行的PL/SQL代码(尽管我可能错了).

我可以通过明确地比较is_viewable来解决这个问题FALSE:

IF is_viewable = FALSE THEN
  raise_my_error();
END IF;
Run Code Online (Sandbox Code Playgroud)

我仍然很好奇为什么NOT is_viewable永远不会评估TRUE.

更新:我的调试器似乎没有显示正确的值,并且此问题不再有效.抱歉这个混乱.

oracle plsql boolean oracleforms

12
推荐指数
3
解决办法
9万
查看次数

如何选择AWT-EventQueue线程,当有多个线程时

我使用DLL注入和一些jni技巧成功地在运行的Oracle Forms应用程序中注入了我自己的Java代码.(Windows 7,32位,Oracle Forms 11,JRE Java 8)

我能够遍历组件树,并在一些基本的Java对象(例如来自类的对象)中查询和设置值 oracle.forms.ui.VTextField

当我试图模拟用户点击时,我陷入了困境 oracle.apps.fnd.ui.Button

我尝试了两件事:

  1. 调用类的simulatePush方法AbstractButton
  2. 调用类的activate方法PushButton

(这两个类在类层次结构中Button)

结果相同:1.首先,它工作正常:当按钮是"搜索"按钮时,搜索完成并显示结果.然后,它立刻打破了应用程序,弹出一个说法FRM-92100 Your connection to the Server was interrupted.

从那里,应用程序挂起.

更新: 似乎导致与服务器断开连接的错误是:

java.lang.SecurityException:此KeyboardFocusManager未安装在当前线程的上下文中java.awt.KeyboardFocusManager.checkCurrentKFMSecurity(未知源)位于java.awt.KeyboardFocusManager.processSynchronousLightweightTransfer上的java.awt.KeyboardFocusManager.getGlobalFocusOwner(未知源)中(未知来源)来自)java.awt.Component.requestFocusHelper的java.awt.Component.requestFocusHelper(未知来源)的sun.awt.windows.WComponentPeer.processSynchronousLightweightTransfer(本地方法)at sun.awt.windows.WComponentPeer.requestFocus(未知来源) oracle.forms.hand处理器上oracle.forms.handler.UICommon.updateFocus(未知来源)位于oracle.forms.hand处理器上的java.awt.Component.requestFocus(未知源)处的(未知源)位于oracle.forms.hand.handler.Ja上的oracle.forms.hand.hand上的oracle.forms.hand.hand上的oracle.forms.hand.hand.Ter上的oracle.forms.hand.hand.Th上的oracle.forms.handler.Ja上的未知来源(未知来源).UICommon.setFVP(未知来源)rce)at oracle.forms.engine.Uuomom.onUpdate(Unknown Source)at oracle.forms.engine.Runform.onUpdateHandler(Unknown Source)at oracle.forms.engine.Runform.processMessage(Unknown Source)at oracle.forms.engine oracle.forms.engine.Runform.onMessage(未知来源)位于oracle.forms.engine.Runform.processEventEnd(未知来源)的oracle.forms.engine.Runform.onMessage(未知来源)的.runform.processSet(未知来源) at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Unknown Source)at oracle.ewt.lwAWT.LWComponent.processEvent(Unknown Source)at oracle.ewt.button.PushButton.activate(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native方法)at sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源),位于CustomAWT.run上的java.lang.reflect.Method.invoke(未知来源)(CustomAWT.java) :34)在java.awt.EventQueue.dispatchEventImpl(未知Sou)的java.awt.event.InvocationEvent.dispatch(未知来源)rce)java.awt.EventQueue.access $ 400(未知来源)java.awt.EventQueue $ 2.run(未知来源)java.awt.EventQueue $ 2.run(未知来源)java.security.AccessController.doPrivileged(原始方法)java.security.AccessControlContext $ 1.doIntersectionPrivilege(未知来源)java.awt.EventDispatchEvent(未知来源)java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源)java.awt.EventDispatchThread.pumpEventsForFilter(未知) java.awt.EventDispatchThread.run上的java.awt.EventDispatchThread.pumpEvents(未知来源)java.awt.EventDispatchThread.run(未知来源)java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源)

我的代码在这里:CustomAWT.run(CustomAWT.java:34)并且被调用invokeLater.问题可能是:在调用oracle.ewt.button.PushButton.activate方法时,我不在正确的EDT中.

使用Java控制台中的"列出线程",我得到了:

Dump thread list …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface oracleforms event-dispatch-thread

10
推荐指数
1
解决办法
1169
查看次数

使用JInitator的Internet Explorer 8中的Oracle Forms/Applications

有没有人能够让运行JInitator的Oracle Forms在Internet Explorer 8中借用呢?我已经尝试删除所有加载项,各种版本的Java,使用通配符将域添加到受信任的站点,并使用兼容模式无济于事.我希望让我们的甲骨文家伙能够实现Internet Explorer 6的习惯.这与Oracle电子商务有关.

java oracle internet-explorer web-applications oracleforms

9
推荐指数
1
解决办法
10万
查看次数

Oracle Forms应用程序的自动化测试工具?

我正在寻找工具集建议来自动测试Oracle Forms应用程序,测试(理想情况下)是由Cucumber驱动的.

我认为这在基于Oracle Forms的应用程序中是正常/不可避免的,但无论如何我都会拼出来; 从最终用户的角度来看,应用程序的工作方式是:

  • 用户通过浏览器连接,打开应用程序页面并登录
  • 当用户登录时,将下载一个applet,并在单独的窗口中启动Oracle Forms应用程序.然后,用户通过Oracle Forms界面与应用程序交互,使浏览器窗口保持打开状态(用户无法在Oracle Forms应用程序运行时关闭浏览器,否则会话将丢失)

理想情况下,有一个工具集可以记录用户与Oracle Forms应用程序的交互,我们可以在我们的Cucumber场景中插入步骤,例如 ...When I type 'Bob Smith' into the 'Username' field And I hit the 'Submit' button...,然后让库代码安装在幕后以驱动Oracle Forms用户界面这个级别.

我们还需要能够检查各种按钮/字段/在适当的时间显示的内容,以及其他正常的功能测试内容......

关于可能让我们构建这个幕后库代码的工具的任何建议?

automation oracleforms cucumber

7
推荐指数
1
解决办法
6495
查看次数

Oracle Form中的旧值和新值

我正在使用Oracle Forms.我有一个名为的字段SOLD_TO_CUST_PARTY_NAME.如果我检测到字段值的变化,我必须执行一个过程.我尝试使用when_validate,但即使您只是单击该字段并移动到另一个字段也会执行(无论您是否更改值,都会发生验证).无论如何我只能在字段被修改时检查:old和/ :new或类似的东西来执行一个进程?

编辑: 不能使用个性化.它必须完成pl/sql.

sql oracle plsql oracleforms

6
推荐指数
1
解决办法
2万
查看次数

PL/SQL Oracle 11g记录组

从6i升级到Oracle 11g融合中间件.如何将记录组从表单传递到报表?我们使用的是DATA_PARAMETER,但据我所知,这不再是一种选择.

oracle plsql oracleforms oraclereports

6
推荐指数
1
解决办法
733
查看次数

将Oracle Forms转换为Apex - 是否值得考虑Apex Forms迁移工具?

朋友们,

我正在考虑将Oracle Forms(10g)应用程序迁移到APEX(3.2.1),并查看可以让我进入可以在APEX中获得Oracle表单"第一次切割"的阶段的选项.

通过阅读本指南以及本附录并掌握了几个示例表单(最终在修改xml文件以创建应用程序之后),我们必须掌握Forms迁移工具.转换的结果令人失望.通过在Apex中从头开始开发页面,我可以更快地获得更好的结果.

我很欣赏Apex Forms迁移工具处于初期阶段,我正在使用第一个版本,但除了一些伪项目管理功能之外,我很难看到使用它的任何好处.

我错过了什么吗?有没有人能够使用这个工具来达到可接受的结果?

提前致谢.

oracleforms oracle10g oracle-apex

5
推荐指数
1
解决办法
3088
查看次数

查找目录中的文件列表的问题

我想检索包含oracle表单和菜单的特定文件夹中的所有文件列表以及报告和一些txt文件...

您是否知道如何以ORACLE形式检索这些数据,并自动将它们插入到我的数据块中?

我使用oracle form 6.0.

oracle oracleforms

5
推荐指数
2
解决办法
9583
查看次数

oracle 表单不显示所有字段

我有2个表:具有主键product_id的product和具有引用product表的product_id的product_id的Review;我为他们创建了表单主详细信息,但是在执行时我到达页面底部:

FRM-40505: ORACLE 错误:无法执行查询

当按 ctrl+shift+e 时我得到:

SELECT ROWID, REVIEW_ID, LIKE, DISLIKE, FIRST_NAME, LAST_NAME, PRODUCT_ID 
  FROM U1.REVIEW WHERE (PRODUCT_ID=:1)

ORA-00936: missing expression
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题?怎么了?先感谢您

oracle oracleforms oracle11g

5
推荐指数
1
解决办法
1847
查看次数