commit_form:将form上的数据写入数据库,并且会在database提交,即 直接查询表是能够查到结果,在form左下角会得到“FRM-40400:Transaction complete:4 records applied an saved”

post:将form上的数据写入数据库,但是并不在database提交,即 直接查询表是查不到该记录的,在form左下角会得到"FRM-40404:Database apply complete: 4 records applied"

最近遇到一个form需求,需要在form操作过程中,把操作的最后一次记录插入到历史记录表(先插入临时表,最后把满足要求的记录插入历史记录表),

例如:在输入trx quantity时,之前可能已经输入过1--->0.001,2--->0.002,3--->0.003,4--->0.005,

但是最后改成如上图的数据,需求是要求最后把屏幕上的数据记入操作记录表(先插入临时表,最后把满足要求的记录插入操作记录表),其他数据不能插入,又由于此form每次在进入此block时 "trx oper quantity"数据是空白的(此需求说明不能使用常规的明细块逻辑,因为明细块逻辑是每次进入记录时都能从数据库中查询出值),但是"Opr id"的值来源于另一个表,即:第一次进入此block(:system.record_status='NEW')会要求为每个operation id录入新的trx quantity,然后按"BACK"按钮返回时将TRX quantity汇总值返回,以后进入时(:system.record_status<>'NEW')显示当前session已经录入的值

Details "WHEN-BUTTON-PRESS"逻辑代码如下:

IF :system.record_status ='NEW'  then  ---第一次进入到"transfer out details"时 才把数据插入临时表
   DELETE FROM XXWIP_MUCL_TRANSFER_DETAILS WHERE 1=1;----先将临时表中有的数据删除

INSERT INTO XXWIP_MUCL_TRANSFER_DETAILS ---
    (transaction_date,
     organization_id,
     inventory_item_id,

operation_id,
     trx_oper_quantity
     )
  VALUES
    (:transfer_header.transaction_date,
     :transfer_lines_f.organization_id,
     :transfer_lines_f.inventory_item_id,

  a.OPERATION_CODE,----来自于其他table的值
     0 ---

);
   end loop;
END IF;

BACK “WHEN-BUTTON-PRESSED” 代码如下:

declare

ln_operation_quantity_r number;

begin

ln_operation_quantity_r :=0;

first_record;

loop

ln_operation_quantity_r := ln_operation_quantity_r+ nvl(:TRANSFER_DETAILS.TRX_OPER_QUANTITY,0);

EXIT WHEN :system.last_record = 'TRUE';

next_record;

end loop;

post; ----按back按钮时提交数据至临时表,将form上的数据写入数据库,但是并不在database提交,即 直接查询表是查不到该记录的,在form左下角会得到"FRM-40404:Database apply complete: 4 records applied"

---:system.message_level :=25;

---commit_form; ---将form上的数据写入数据库,并且会在database提交,即 直接查询表是能够查到结果,在form左下角会得到“FRM-40400:Transaction complete:4 records applied an saved”

---:system.message_level :=0;

if ln_operation_quantity_r > :TRANSFER_LINES_F.AVAILABLE then

  fnd_message.set_string('Available quantity is not engouh for transaction');

  fnd_message.show;  fnd_message.error;

  RAISE form_trigger_failure; end if;

if ln_operation_quantity_r > 0 then

copy(ln_operation_quantity_r,'TRANSFER_LINES_F.TRANSFER_OUT');

copy('Y','TRANSFER_LINES_F.CHECK_BOX');

--- ln_operation_quantity_r := null;

end if;

go_block('TRANSFER_LINES_F');

hide_window('TRANSFER_DETAILS');

end;

Description

Writes data in the form to the database, but does not perform a database commit. Oracle Forms first validates the form. If there are changes to post to the database, for each block in the form Oracle Forms writes deletes, inserts, and updates to the database.

Any data that you post to the database is committed to the database by the next COMMIT_FORM that executes during the current Runform session. Alternatively, this data can be rolled back by the next CLEAR_FORM.

Syntax

PROCEDURE POST;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none

Usage Notes

If this form was called via OPEN_FORM with the NO_SESSION parameter specified, then the POST will validate and write the data both in this form and in the calling form.

POST Examples

/*** Built-in: POST and EXIT_FORM

** Example: Leave the called form, without rolling back the

** posted changes so they may be posted and

** committed by the calling form as part of the

** same transaction.

*/

BEGIN

Post;

/*

** Form_Status should be 'QUERY' if all records were

** successfully posted.

*/

IF :System.Form_Status <> 'QUERY' THEN

Message('An error prevented the system from posting changes');

RAISE Form_Trigger_Failure;

END IF;

/*

** By default, Exit_Form asks to commit and performs a

** rollback to savepoint. We've already posted, so we do

** not need to commit, and we don't want the posted changes

** to be rolled back.

*/

Exit_Form(NO_COMMIT, NO_ROLLBACK);

END;

[Form Builder]POST 与 commit_form 的区别的更多相关文章

  1. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  2. 使用Form Builder创建Form具体步骤

    使用Oracle Form Builder创建Form具体步骤 (Data Source为Table) 说明:当Block使用的Data Source为Table时,Form会自动Insert,Upd ...

  3. [Form Builder]Oracle Form系统变量中文版总结大全

    转:http://yedward.net/?id=57 Form中的系统变量,它存在于一个Form的整个运行时期的会话之中,变量包含了有关Form相关属性的字节信息.有些变量标明了当前状态,还有些变量 ...

  4. [Form Builder]NAME_IN()与COPY()

    NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递... IF :VAR1 IS NULL ...  direct referenceIF NAME_IN ( :VAR1 ) IS N ...

  5. [Form builder]:about SYSTEM.MESSAGE_LEVEL

    If you want to suppress error messages then you have to set a system variable :system.message_level. ...

  6. 【转】HTTP请求中的form data和request payload的区别

    jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的,比如用$.ajax方法发送请求时(data参数是一个JSON.stringify()处理后的字符串, ...

  7. WordPress Plugin Contact Form Builder [CSRF → LFI]

    # Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...

  8. [转]HTTP请求中的form data和request payload的区别

    本文转自:http://www.cnblogs.com/btgyoyo/p/6141480.html jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的 ...

  9. Oracle Form Builder

    Oracle Form Builder 是Oracle的一个开发工具,可以针对Oracle公司的E-Business Suit的ERP系统开发的.对应的还有reports builder. Oracl ...

随机推荐

  1. CSS选择器一览

    CSS选择器一览 CSS3 选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. "CSS" 列指示该属性是在哪个 CSS 版本中定义的.(CSS1.CSS2 还 ...

  2. STL 优先队列

    STL 栈,队列,优先队列用法 分类: Learning C++2013-11-15 00:52 843人阅读 评论(2) 收藏 举报 c++栈队列优先队列STL STL 中栈的使用方法(stack) ...

  3. Apache虚拟主机(vhost)配置教程

    使用apache来配置虚拟主机,在单一系统上运行多个网站. 现在很多linux主机使用apache作为web服务器的,大部分是基于这个原理来配置虚拟主机的. 下面就windows下以apache 2. ...

  4. iPhone丢失后通过iccid找回流程

    切记,丢失IPHONE第一时间要去补卡,免得小偷刷机用你的卡激活,这样你查到的号码只会是你自己的号码找iphone有2个方法:ICCID和维修换机.两者之间没任何直接联系,请不要混淆!下面是总体流程图 ...

  5. SVN Working Copy xxx locked 并 cleanup失败之解

    从cmd 进入到 workspace文件夹 执行 上边的命令 --------------------------------------------------------------------- ...

  6. M-矩阵

    实方阵 $A$ 称为 $M$-矩阵, 是指 $A=cI-B$, $B\geq 0$, $c\geq \rho(B)$. 这里, $M$ 据说是暗指 Minkowski.

  7. [转]ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)

    前一篇中我们已经了解了Action Filter 与 内置的Filter实现,现在我们就来写一个实例.就写一个防盗链的Filter吧. 首先继承自FilterAttribute类同时实现IAction ...

  8. [转]NHibernate之旅(11):探索多对多关系及其关联查询

    本节内容 多对多关系引入 多对多映射关系 多对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 多对多关系引入 让我们再次回顾在第二篇中建立的数据模型 ...

  9. ZOJ3471--Most Powerful(状压DP)

    有n(n<10)个小球,每两个碰撞有其中一个会消失,并产生一定能量.求产生最大能量. 有了正确思路题目比较简单,我的思路果然是歪的... 我的思路是dp[i][j]表示i这个状态剩下第j个小球, ...

  10. SQLite 在Windows Server 2008 R2 部署问题FAQ汇总[轉]

    轉自:http://www.steveluo.name/sqlite-windows-server-2008-r2-deploy-faq/ 今天花了一天的时间研究了一下SQLite,以取代一些轻量级项 ...