Receiving Transaction Processor Conundrum
what would we do if we are faced with a situation to execute a receiving transaction in oracle ebusiness suite from a BPEL process in Oracle Fusion Middleware?
There are no public APIs provided as of this moment to execute the transactions. The only option is to use the receiving transaction processor. We would not want to invoke a concurrent program from a BPEL process and write wait & watch logic to check the outcome of the concurrent program. Could there be a better way? Let us dig deeper into how Oracle internally handles the receiving transactions.
Within the ebusiness suite system, there are 3 modes with which receiving can be done: Online, Immediate, Batch.
Immediate mode calls the receiving transaction processor as a concurrent request while the batch mode simply inserts the transactions into the receiving interface which could then be processed by a scheduled run of the receiving transaction processor.
What is of interest to us is this online mode. The online mode invokes the receiving transaction processor as a synchronous call bypassing the concurrent request submission. It is this mode that we can use to our advantage in a BPEL process to pull off our heist.
Synchronous calls can be done using fnd_transaction.synchronous API in the ebusiness suite system. The synchronous call to receiving transaction processor would be like this:
l_retvalue := fnd_transaction.synchronous( 300, -- timeout in seconds        
l_outcome, -- out variable indicating Success/Warning/Error        
l_message, -- out variable with a descriptive message        
'PO',        
'RCVTPO',        
'ONLINE',        
l_group_id, -- group_id in rcv_transactions_interface        
l_organization_id, -- inventory organization_id,        
NULL, NULL, NULL, NULL, NULL,        
NULL, NULL, NULL, NULL, NULL, NULL,        
NULL, NULL, NULL, NULL, NULL, NULL);
Please note that Oracle internally makes this call for Online receiving transactions using POR_RCV_ORD_SV.Call_Txn_Processor routine.
There are a couple of things that we need to do before we make this synchronous call:
- Set the apps context
- Insert rows into receiving interface tables
- Specify processing_mode_code in rcv_transactions_interface as 'ONLINE'
To debug this routine, set the 'CONC_DEBUG' profile to 'TC' and watch for errors in the fnd_concurrent_debug_info table.
All of this could be wrapped up into a nice custom utility and we would be good to go!
Enjoy the serving!
Receiving Transaction Processor Conundrum的更多相关文章
- How to SetUp The Receiving Transaction Manager
		In this Document Goal Solution References APPLIES TO: Oracle Inventory Management - Version: 1 ... 
- How Many Processes Should Be Set For The Receiving Transaction Manager (RTM)
		In this Document Goal Solution References APPLIES TO: Oracle Inventory Management - Version 10 ... 
- Oracle Purchasing QUESTIONS AND ANSWERS
		Topic Summary Topic: CORRECTIONS: Corrections Topic: DELIVER: Receiving Delivery Topic: DROPSHIP: Dr ... 
- Oracle Order Management DropShip Flow for R12
		Oracle Order Management DropShip Flow for R12 Email ThisBlogThis!Share to TwitterShare to FacebookSh ... 
- RTP 记录 log 该机制
		我们 RCV 在这里,经常跑concurrent request RTP: Receiving Transaction Processor, 它主要是用来处理 RCV_TRANSACTIONS_INT ... 
- FORM级别和数据库级别的Trace
		 metalink上的文章较全的,中文的可参考我的博客EBS开发技术之trace http://blog.csdn.net/cai_xingyun/article/details/17250971 ... 
- 详解EBS接口开发之库事务处理带提前发运通知(ASN)采购接收入库-补充
		 A) Via ROI Create a ASN [ship,ship] for a quantity =3 on STANDARD PURCHASE ORDER Create via R ... 
- 详解EBS接口开发之库存事务处理采购接收--补充
		除了可以用  详解EBS接口开发之库存事务处理采购接收的方法还可以用一下方法,不同之处在于带有批次和序列控制的时候实现方式不同 The script will load records into ... 
- 所有标准API
		序号 系统版本 模块 应用场景 类型 API/接口 参数规格 样例代码 备注 登记者 登记时间 关键字 1 12.1.3 AP 付款核销 API ap_pay_invoice_pkg.ap_pay_i ... 
随机推荐
- 用T4模版生成对应数据库表的实体类
			<#@ template debug="false" hostspecific="false" language="C#" #> ... 
- Javamail使用代码整理
			package com.hengrun.mail; import java.io.*; import java.security.Security; import java.text.SimpleDa ... 
- 转转转-精通js正则表达式
			原文地址:http://www.cnblogs.com/aaronjs/archive/2012/06/30/2570970.html 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字 ... 
- CentOS开机自启动
			CentOS 配置的开机自启动. vim /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other ... 
- 深入浅出HTTPS工作原理(转载)
			转载自: https://blog.csdn.net/wangtaomtk/article/details/80917081 深入浅出HTTPS工作原理 HTTP协议由于是明文传送,所以存在三大风险: ... 
- 利用U盘安装Redhat-server-Linux-7.1
			利用U盘安装Redhat-server-Linux-7.1 [原]红帽 Red Hat Linux相关产品iso镜像下载[百度云] 
- Rhythmk 学习 Hibernate 04 - Hibernate  辅助工具 之  JBoos Tool
			1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/de ... 
- 【Arduino】、Arduino+ESP8266上传至oneNet云
			一.硬件简介 1. Arudino 是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器和相应的开发软件,包含硬件(各种型号的Arduino板)和软件(Arduino IDE). 2. ES ... 
- linux 同步IO: sync、fsync与fdatasync
			[linux 同步IO: sync.fsync与fdatasync] 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据 ... 
- springmvc 请求无法到达controller,出现404
			今天在配置SpringMVC时,访问项目一直出现404,无法访问. 报错: The origin server did not find a current representation for th ... 
