Workflow_工作流发送Document和Form链接的实现(案例)

2014-06-01
BaoXinjian

一、摘要

Oracle
Workflow可以发送Form、Document、URL链接,经常遇到,下文介绍Form和Document如何发送

Attribue Type

  • Form

  • Document

  • URL

二、案例 - 发送Document Link链接

需求:发送Document文件

Step1. 建立一个Message,包含两个Attribute: Document和Form

Step2. 在BXJ_DOCUMENT调用两个Function

Step2.1. Get_Document用以将创建Form链接


 1 PROCEDURE GET_DOCUMENT(itemtype IN VARCHAR2,
2
3 itemkey IN VARCHAR2,
4
5 actid IN NUMBER,
6
7 funcmode IN VARCHAR2,
8
9 resultout OUT NOCOPY VARCHAR2) IS
10
11 BEGIN
12
13 设置Document类型Attribute,逐条反应PO Line
14
15 wf_engine.setitemattrtext(itemtype => itemtype,
16
17 itemkey => itemkey,
18
19 aname => ‘DOCUMENT_DETAILS‘,
20
21 avalue => ‘PLSQLCLOB:test_pkg.GET_DOCUMENT_DETAILS/‘ ||itemtype || ‘:‘ ||itemkey);
22
23 END;

Step2.2. Get_Document用以将创建Form链接


 1 PROCEDURE GET_DOCUMENT_DETAILS(document_id IN VARCHAR2,
2
3 display_type IN VARCHAR2,
4
5 document IN OUT CLOB,
6
7 document_type IN OUT VARCHAR2) IS
8
9 l_item_type wf_items.item_type%TYPE;
10
11 l_item_key wf_items.item_key%TYPE;
12
13 l_document VARCHAR2(32000) := ‘‘;
14
15 l_clob_document CLOB;
16
17 CURSOR cur_po_lines IS
18
19 SELECT line_num,
20
21 purchase_basis,
22
23 item_description,
24
25 unit_meas_lookup_code,
26
27 unit_price
28
29 FROM po_lines_all
30
31 WHERE po_header_id = 37566;
32
33 BEGIN
34
35 --1. 初始化
36
37 l_item_type := substr(document_id, 1, instr(document_id, ‘:‘) - 1);
38
39 l_item_key := substr(document_id,instr(document_id, ‘:‘) + 1,length(document_id) - 2);
40
41 --2. 写PO line资料
42
43 l_document := ‘<table border=1>‘;
44
45 FOR r_po_lines IN cur_po_lines LOOP
46
47 l_document := l_document||‘<tr>‘;
48
49 l_document := l_document||‘<td>‘||r_po_lines.line_num||‘</td>‘;
50
51 l_document := l_document||‘<td>‘||r_po_lines.purchase_basis||‘</td>‘;
52
53 l_document := l_document||‘<td>‘||r_po_lines.item_description||‘</td>‘;
54
55 l_document := l_document||‘<td>‘||r_po_lines.unit_meas_lookup_code||‘</td>‘;
56
57 l_document := l_document||‘<td>‘||r_po_lines.unit_price||‘</td>‘;
58
59 l_document := l_document||‘</tr>‘;
60
61 END LOOP;
62
63 l_document := l_document||‘</table>‘;
64
65 --3. 通过dbms_lob讲字符串写到workflow中
66
67 dbms_lob.createtemporary(lob_loc => l_clob_document,
68
69 cache => TRUE,
70
71 dur => dbms_lob.session);
72
73 dbms_lob.OPEN(lob_loc => l_clob_document,
74
75 open_mode => dbms_lob.lob_readwrite);
76
77 wf_notification.writetoclob(l_clob_document, l_document); --追加,可不断写
78
79 dbms_lob.append(document, l_clob_document);
80
81 IF (dbms_lob.ISOPEN(l_clob_document) = 1) THEN
82
83 dbms_lob.CLOSE(l_clob_document);
84
85 dbms_lob.freetemporary(l_clob_document);
86
87 END IF;
88
89 END;

Test1.
在BXJ_DOCUMENT调用两个Function

三、案例 - 发送Form Link链接

需求:发送Document文件

1.建立测试用的Package

2. 测试

(1).
打开Form连接

(2). 打开连接后自动查询PO

Step1.建立一个Message,包含两个Attribute: Document和Form

Step2.建立测试用的Package


 1   PROCEDURE GET_DOCUMENT(itemtype  IN VARCHAR2 ,
2
3 itemkey IN VARCHAR2 ,
4
5 actid IN NUMBER ,
6
7 funcmode IN VARCHAR2 ,
8
9 resultout OUT NOCOPY VARCHAR2) IS

13 l_open_form varchar2(200 );
14
15 l_document_id varchar2(25 );
16
17 BEGIN
18
21 SELECT po_header_id
22
23 INTO l_document_id
24
25 FROM po_headers_all
26
27 WHERE segment1 = ‘GP0008720MNC‘ ;
28
33 l_open_form := ‘PO_POXPOEPO:PO_HEADER_ID="‘ || l_document_id || ‘"‘ ||
34
35 ‘ ACCESS_LEVEL_CODE="MODIFY"‘ ||
36
37 ‘ POXPOEPO_CALLING_FORM="POXSTNOT"‘ ;
38
39
40
41 DBMS_OUTPUT.PUT_LINE( ‘l_open_form-->‘ || l_open_form);
42
45 wf_engine.setitemattrtext(itemtype => itemtype,
46
47 itemkey => itemkey,
48
49 aname => ‘OPEN_FORM_COMMAND‘,
50
51 avalue => l_open_form);
52
53
54
55 resultout := wf_engine.eng_completed || ‘:‘ || ‘Y‘ ;
56
59 return;
60
61 END;

Test1. 测试

Test1.1. 打开Form连接

Test1.2. 打开连接后自动查询PO

Thanks and Regards

时间: 2024-07-31 20:20:26

Workflow_工作流发送Document和Form链接的实现(案例)的相关文章

Workflow_工作流的基本概念(概念)

1. Workflow Builder的默认访问级别是100,以下是Oracle对访问级别的一个大致分类:     0-9 Oracle Workflow       10-19 Oracle Application Object Library      20-99 Oracle Application Development      100-999 Customer Organization      1000 Public 2. Oracle 工作流对象通过不同的选项和访问级别来实现对象

Workflow_工作流的基本元素(概念)

2014-05-31 BaoXinjian In Capgemini 1. Workflow 的组成部分: Lookup/Attribute/Message/Notification/Function/Process Attribute Notification Function Message Lookup Type Process 2. 程式 WF_ENGINE:用来启动和运行工作流流程,获取.写入或创建项目类型Attribute.功能活动Attribute的值,管理活动的状态      W

【EBS WORKFLOW】工作流使用document类型的消息属性

工作流使用document类型的消息属性 工作流的消息内容,最简单的是TEXT文本,或者静态的HTML文本,但能够满足的情况很有限. 很多时候工作流要显示的是一个列表,不确定有多少行,所以不能提前设置,也不可能枚举所有变量. 这时候需要使用动态的消息内容,也就是本文讲述的document类型的消息属性. 开发步骤 定义一个用于动态获取消息内容的存储过程 Oracle Workflow Developer’s Guide 6-12 PROCEDURE get_request_msg(documen

sharepoint link to document 无法创建链接

使用link to document 创建链接时,一直无法完成,提示error 问题在该站点"link to a Document"中自定义的Column错误,应该添加url,而不是link

SSE:服务器发送事件,使用长链接进行通讯

概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据.比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览器按时向服务器查询(polling)更有效率. 服务器发送事件(Server-Sent Events,简称SSE)就是为了解决这个问题,而提出的一种新API,部署在EventSource对象上.目前,除了IE,其他主流浏览器都支持. 简单说,所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推

Workflow_标准BusinessEvent用以监控供应商的修改(案例)

2014-06-01 BaoXinjian 一.摘要 Workflow中有一块比较重要内容就是bussiness event, Oracle 业务时间系统,就是一个消息产生和消费的过程,Oracle打算使用它作为系统集成,源系统产生数据,分装为业务事件,送给目标系统 比如,客户在系统架构时,EBS对supplier的任何修改,都需要抛转至另外一个外接的supplider管理系统,可要要求是即时的,即修改后就发送,而不是异步处理,如果是异步通过db link会更好 实现该需求有很多种技术 如dat

javascript 实现动态创建Form发送数据

1 javascript 实现动态创建Form发送数据 2 数据传送get 或者post 1 GLOBAL.namespace("DySend"); 2 3 /** 4 * post方式提交数据 为正常提交方式 动态创建form表单进行提交 5 * 6 * @param {} 7 * path action URL路径 8 * @param {} 9 * params 一个对象 10 * @param {} 11 * methodType 12 */ 13 GLOBAL.DySend.

android 发送UDP广播,搜寻服务器建立socket链接

应用场景:客户端(手机,pc)需要搜寻所在局域网内的服务器并获得服务器地址. 方法简介:客户端发送UDP广播,服务收到广播后得到客户端ip地址,然后向客户端发送一次socket链接,客户端收到socket链接,获得服务器地址. 相关知识: UPD.TCP.TCP是面向链接的,可靠的通信方式.UDP是面向非链接的通讯方式.TCP的建立比较麻烦,要经过"三次握手".而UDP的建立比较简单,发送方只管把内容发送出去,不管接收方是否收到.UDP的传输分为:单播,多播,广播.其中,多播和广播是通

从原型链看DOM--Document类型

JavaScript通过Document类型表示文档,原型链的继承关系为:document.__proto__->HTMLDocument.prototype->Document.prototype->Node.prototype->EventTarget.prototype Document节点具有下列特征:以下属性均为Node.prototype上的 nodeType值为9 nodeName值为"#document" nodeValue值为null pare