我正在使用Oracle ApEx v4.1和动态操作,它基本上调用了一个javascript函数,后者又调用了一个按需进程来保存数据到数据库。
只是一些背景知识,我使用jQuery来扫描每个元素及其值,当用户按下“保存”按钮或“下一步”按钮,然后按钮将这些元素传递给以上按需流程。
我的问题是,看起来有时候这个过程会丢失传入的数据,我不知道为什么,我认为也许在我的动态操作中我执行ape.submit('SUBMIT')以及对按需流程的JavaScript函数调用。
我是否需要延迟其中一个电话,因为目前,我不确定为什么它有时有效,有时则不然。
关于如何布置代码的任何想法,即
apex.submit('SUBMIT');
saveTheData(); <-- calls my ondemand process to save data to database
答案 0 :(得分:2)
首先,让我们回顾一下your previous question。你究竟在这做什么。这似乎完全没必要!
当你提交页面时,有什么理由在jQuery中收集项目值并将它们提交到会话状态?当您使用next / prev / appy按钮并且页面提交时,项目的值处于会话状态,您可以在进程中使用它们。
您正在使用apex.submit提交该页面。这将提交页面,并在会话状态中设置所有项目的值。您执行JavaScript函数,该函数将调用按需进程,为进程提供值。这些值是页面项值,因此您实际上只是在按需流程中设置会话状态。说实话,你似乎有一个真正古怪的设计!
至于为什么它有时会起作用,有时它不会:apex.submit
将提交页面。就像,马上。如果您需要在处理页面之前执行代码,请在提交之前执行。请注意,如果要切换它周围的线路,它可能仍然无法工作,具体取决于您调用ondemand进程的方式(异步或同步),以及是否需要成功函数来执行某些操作。当调用是异步时,则可能是在提交完成之前未处理您的成功函数。