20150506 Created By BaoXinjian

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAIAAAAf7rriAAABHklEQVQ4jc3Tv0sCcRjH8Wc4/wL9H4T0P3CpXYQcHQpuFIQayjvXQrnulhosHDpQsBZB8Q9wuWu1QVBcbMtNyaAm3y0e/fC4Lmvo4bO++D6fB74CLJdPm0X+MRaRn2HuowziDFNMVBFhajDvsHB4GYXBMQZxRikeVBHh0WDeDo+jKzz5gJ8dXjfAU4NZm4UbEse+4uC1qVYplSgU2Ntf4aHXeXrGLBjX65TLaEXyeTIZdrYjCskEIpLdRdMwTWybOxc/3GpxfsHpCUfH5HKk0xGF5JaHi1gm9jWuP3Ycbm+o1bAsDg9Q1U9YC8b9Pt0uzSZXl/LdrOHxmF6PTodGg0oFXY8oJLzOuveyf+f1vB8si17EDFj7zz5GyPwKvwECQrZ4yvBSdAAAAABJRU5ErkJggg==" alt="" />一、摘要


在将程序发布成SOA Integration接口时,需要在书写程序时,在描述中需通过规定的语法书写SOA接口,并发发布为WSDL

每种不同类型的程序,其对应语法稍不用

1. 语法可以参考Metalink:

Oracle E-Business Suite Integrated SOA Gateway Developer's Guide

Integration Repository Annotation Standards

2. 对应的程序类型

(1). Java Annotations

(2). PL/SQL Annotations

(3). Concurrent Program Annotations

(4). XML Gateway Annotations

(5). Business Event Annotations

(6). Business Entity Annotations

(7). Composite Service - BPEL Annotations

(8). Glossary of Annotations

3. 介绍常用的三种Java、PLSQL、Concurrent Program

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAIAAAAf7rriAAABHklEQVQ4jc3Tv0sCcRjH8Wc4/wL9H4T0P3CpXYQcHQpuFIQayjvXQrnulhosHDpQsBZB8Q9wuWu1QVBcbMtNyaAm3y0e/fC4Lmvo4bO++D6fB74CLJdPm0X+MRaRn2HuowziDFNMVBFhajDvsHB4GYXBMQZxRikeVBHh0WDeDo+jKzz5gJ8dXjfAU4NZm4UbEse+4uC1qVYplSgU2Ntf4aHXeXrGLBjX65TLaEXyeTIZdrYjCskEIpLdRdMwTWybOxc/3GpxfsHpCUfH5HKk0xGF5JaHi1gm9jWuP3Ycbm+o1bAsDg9Q1U9YC8b9Pt0uzSZXl/LdrOHxmF6PTodGg0oFXY8oJLzOuveyf+f1vB8si17EDFj7zz5GyPwKvwECQrZ4yvBSdAAAAABJRU5ErkJggg==" alt="" />二、PL/SQL Annotations标记


可以使用pls或pkh文件作为注释对象

注释PL/SQL packages时,只需要注释Package Header即可,无需处理Package Body

1. Package层面必须填写内容Required Class-level Annotations

must begin with description sentence(s)
rep:scope
rep:product
rep:displayname
rep:category
--Use BUSINESS_ENTITY at the class level only if all underlying methods have the same business entity.
--In those cases, you do not need to repeat the annotation at the method level.
rep:businessevent (if an event is raised)

2. Package层面可选填写内容Optional Class-level Annotations

link
see
rep:lifecycle
rep:compatibility
rep:ihelp
rep:metalink
rep:doccd

3. Procedure层面必须填写内容Required Method-level Annotations

must begin with description sentence(s)
param
--Use only when applicable and when other tags such as @see and @rep:metalink do not provide parameter explanations.
return (if applicable)
rep:displayname
rep:paraminfo
rep:businessevent (if an event is raised)

4. Procedure层面可以填写内容Optional Method-level Annotations

link
see
rep:scope
rep:lifecycle
rep:compatibility
rep:category
--Use BUSINESS_ENTITY at the method level only when a class methods have heterogeneous business entities.
rep:ihelp
rep:metalink
rep:doccd
rep:appscontext
rep:primaryinstance

5. 实践案例

create or replace package WF_ENGINE as
/*#
* This is the public interface for the Workflow engine. It allows
* execution of various WF engine functions.
* @rep:scope public
* @rep:product WF
* @rep:displayname Workflow Engine
* @rep:lifecycle active
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY WF_WORKFLOW_ENGINE
*/
g_nid number; -- current notification id
g_text varchar2(2000); -- text information
/*#
* Adds Item Attribute
* @param itemtype item type
* @param itemkey item key
* @param aname attribute name
* @param text_value add text value to it if provided.
* @param number_value add number value to it if provided.
* @param date_value add date value to it if provided.
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Add Item Attribute
*/
procedure AddItemAttr(itemtype in varchar2,
itemkey in varchar2,
aname in varchar2,
text_value in varchar2 default null,
number_value in number default null,
date_value in date default null);
END WF_ENGINE;
/ commit;
exit;

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAIAAAAf7rriAAABHklEQVQ4jc3Tv0sCcRjH8Wc4/wL9H4T0P3CpXYQcHQpuFIQayjvXQrnulhosHDpQsBZB8Q9wuWu1QVBcbMtNyaAm3y0e/fC4Lmvo4bO++D6fB74CLJdPm0X+MRaRn2HuowziDFNMVBFhajDvsHB4GYXBMQZxRikeVBHh0WDeDo+jKzz5gJ8dXjfAU4NZm4UbEse+4uC1qVYplSgU2Ntf4aHXeXrGLBjX65TLaEXyeTIZdrYjCskEIpLdRdMwTWybOxc/3GpxfsHpCUfH5HKk0xGF5JaHi1gm9jWuP3Ycbm+o1bAsDg9Q1U9YC8b9Pt0uzSZXl/LdrOHxmF6PTodGg0oFXY8oJLzOuveyf+f1vB8si17EDFj7zz5GyPwKvwECQrZ4yvBSdAAAAABJRU5ErkJggg==" alt="" />三、Concurrent Program Annotations标记


需要将并发程序通过FND_LOAD下载为并解析为ldt文件,再进行注释写法

1. 并发程序级别必须填写内容Required Class-level Annotations

must begin with description sentence(s)
--The annotation takes precedence over the concurrent program own definition in the LDT. One or the other must exist; otherwise, interface generation will fail.
rep:scope
rep:product
rep:displayname
--The annotation takes precedence over the concurrent program own definition in the LDT. One or the other must exist; otherwise, interface generation will fail.
rep:category
rep:businessevent (if an event is raised)

2. 并发程序级别可选填写内容Optional Class-level Annotations

link
see
rep:lifecycle
rep:compatibility
rep:ihelp
rep:metalink
rep:doccd
rep:usestable
rep:usesmap

3. 没有程序级别的注释concurrent programs

4. 实践案例

/**
* Executes the Open Interface for Accounts Payable Invoices. It uses the
* following tables: AP_INVOICES_INTERFACE, AP_INVOICE_LINES_INTERFACE.
* @rep:scope public
* @rep:product AP
* @rep:lifecycle active
* @rep:category OPEN_INTERFACES AP_INVOICES_INTERFACE 1
* @rep:usestable AP_INVOICES_INTERFACE 2 IN
* @rep:usestable AP_INVOICE_LINES_INTERFACE 3 IN
* @rep:category BUSINESS_ENTITY AP_INVOICE
*/

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAIAAAAf7rriAAABHklEQVQ4jc3Tv0sCcRjH8Wc4/wL9H4T0P3CpXYQcHQpuFIQayjvXQrnulhosHDpQsBZB8Q9wuWu1QVBcbMtNyaAm3y0e/fC4Lmvo4bO++D6fB74CLJdPm0X+MRaRn2HuowziDFNMVBFhajDvsHB4GYXBMQZxRikeVBHh0WDeDo+jKzz5gJ8dXjfAU4NZm4UbEse+4uC1qVYplSgU2Ntf4aHXeXrGLBjX65TLaEXyeTIZdrYjCskEIpLdRdMwTWybOxc/3GpxfsHpCUfH5HKk0xGF5JaHi1gm9jWuP3Ycbm+o1bAsDg9Q1U9YC8b9Pt0uzSZXl/LdrOHxmF6PTodGg0oFXY8oJLzOuveyf+f1vB8si17EDFj7zz5GyPwKvwECQrZ4yvBSdAAAAABJRU5ErkJggg==" alt="" />四、Java Annotations标记


1. Class级别必须填写的内容注释:Required Class-level Annotations

must begin with description sentence(s)
rep:scope
rep:product
rep:implementation (only required for Java business service objects; not required for plain Java or SDOs)
rep:displayname
rep:service
rep:servicedoc

2. Class级别可选填写的内容注释:Optional Class-level Annotations

link
see
rep:lifecycle
rep:category
--Use BUSINESS_ENTITY at the class level only if all underlying methods have the same business entity. In those cases, you do not need to repeat the annotation at the method level.
rep:compatibility
rep:standard
rep:ihelp
rep:metalink
rep:doccd
rep:synchronicity

3. 程序级别必须填写的内容注释:Required Method-level Annotations

must begin with description sentence(s)
param
--Use only when applicable and when other tags such as @see and @rep:metalink do not provide parameter explanations.
return (if applicable)
rep:paraminfo
rep:displayname
rep:businessevent (if an event is raised)

4. 程序级别可选的填写的内容注释:Optional Method-level Annotations

link
see
rep:scope
rep:lifecycle
rep:compatibility
rep:category
--Use BUSINESS_ENTITY at the method level only when a class methods have heterogeneous business entities.
rep:ihelp
rep:metalink
rep:doccd
rep:appscontext
rep:synchronicity
rep:primaryinstance

5. 时间案例

/*===========================================================================+
| Copyright (c) 2004 Oracle Corporation, Redwood Shores, CA, USA |
| All rights reserved. |
+===========================================================================+
| HISTORY |
+===========================================================================*/
package oracle.apps.po.tutorial; import oracle.jbo.domain.Number; import oracle.svc.data.DataObjectImpl;
import oracle.svc.data.DataList; /**
* The Purchase Order Data Object holds the purchase order data including
* nested data objects such as lines and shipments.
*
* @see oracle.apps.fnd.framework.toolbox.tutorial.PurchaseOrderLineSDO
*
* @rep:scope public
* @rep:displayname Purchase Order Data Object
* @rep:product PO
* @rep:category BUSINESS_ENTITY PO_PURCHASE_ORDER
* @rep:servicedoc
*/
public class PurchaseOrderSDO extends DataObjectImpl
{
public PurchaseOrderSDO ()
{
super();
} /**
* Returns the purchase order header id.
*
* @return purchase order header id.
*/
public Number getHeaderId()
{
return (Number)getAttribute("HeaderId");
} /**
* Sets the purchase order header id.
*
* @param value purchase order header id.
* @rep:paraminfo {@rep:precision 5} {@rep:required}
*/
public void setHeaderId(Number value)
{
setAttribute("HeaderId", value);
} /**
* Returns the purchase order name.
*
* @return purchase order name.
* @rep:paraminfo {rep:precision 80}
*/
public String getName()
{
return (String)getAttribute("Name");
} /**
* Sets the purchase order header name.
*
* @param value purchase order header name.
* @rep:paraminfo {@rep:precision 80}
*/
public void setName(String value)
{
setAttribute("Name", value);
} /**
* Returns the purchase order description.
*
* @return purchase order description.
* @rep:paraminfo {rep:precision 120}
*/
public String getDescription()
{
return (String)getAttribute("Description");
} /**
* Sets the purchase order header description.
*
* @param value purchase order header description.
* @rep:paraminfo {@rep:precision 80}
*/
public void setDescription(String value)
{
setAttribute("Description", value);
} /**
* @return the purchase order lines DataList.
* @rep:paraminfo {@rep:innertype oracle.apps.fnd.framework.toolbox.tutorial.PurchaseOrderLineSDO}
*/
public DataList getLines()
{
return (DataList)getAttribute("Lines");
} /**
* @param list the putrchase order lines DataList.
* @rep:paraminfo {@rep:innertype oracle.apps.fnd.framework.toolbox.tutorial.PurchaseOrderLineSDO}
*/
public void setLines(DataList list)
{
setAttribute("Lines", list);
} }

Thanks and Regards

参考:http://docs.oracle.com/cd/E18727_01/doc.121/e12065/T511473T545912.htm#5466320

aaarticlea/png;base64,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" alt="" />

IREP_SOA Integration程序注释语法Annotations(概念)的更多相关文章

  1. python3新特性函数注释Function Annotations用法分析

    本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Functi ...

  2. 微信小程序 Mustache语法详解

    最近微信小程序非常火,对于前端开发的程序员是个利好的消息,这里主要记录下微信小程序  Mustache语法. 小程序开发的wxml里,用到了Mustache语法.所以,非常有必要把Mustache研究 ...

  3. Doxygen 注释语法规范

    背景 这一块的内容更多的是作为了解,但是可以以这样的规范作为自己的编程注释习惯,提高自己的软实力. Doxygen注释语法 注释格式 块注释建议统一使用 /** -- ***/ 行注释建议统一使用 / ...

  4. pycharm基本使用python的注释语法

    pychram基本使用 1.主题选择 file settings Editor color Scheme 2.pycharm切换解释器 file settings Project Python Int ...

  5. pycharm的基本使用 、 Python的注释语法,变量,常量,垃圾回收机制,数据类型

    1.文件路径要注意 我把文件放在了D盘,如下图:你们可以根据自身情况设置 2.python环境要选择本地下载好的 如下图: 点击本机存在的环境,如果提示NO interpr,就点击第二步 如果还是没有 ...

  6. 使用Visual Assistant X创建C程序注释模板

    本文将讲解C程序注释模板的使用背景.创建方法,并在结束时进行总结. 1.使用背景 在项目开发过程中,为方便组内其他成员能够快速学习自己编写的代码,需要对自己写的函数添加注释.在正规的软件开发流程中,一 ...

  7. Less注释语法

    Less注释语法 适当的注释是保证代码可读性的必要手段,Less支持两种类型的注释:多行注释和单行注释. 1)形如 /* */ 的多行注释.如: /* Hello, I'm a CSS-style c ...

  8. Playground中格式注释语法

    类似于Ruby的ruby document,Xcode的Playground自身也提供一些嵌入文档中的格式注释的语法. 我们先定义一个简单的类: class A{ } 按住opt点击class A,你 ...

  9. IREP_SOA Integration SOAP概述(概念)

    20150827 Created By BaoXinjian

随机推荐

  1. Linux安全攻防笔记

    一.上传木马的过程 1.默认端口22弱口令暴力破解: 2.21端口或者3306端口弱口令暴力破解: 3.webshell进行shell反弹提权: 4.木马传入服务器的上面并且执行,通过木马的方式来控制 ...

  2. [JSOI2008] 完美的对称

    题目描述 在峰会期间,必须使用许多保镖保卫参加会议的各国代表.代表们除了由他自己的随身保镖保护外,组委会还指派了一些其他的特工和阻击手保护他们.为了使他们的工作卓有成效,使被保卫的人的安全尽可能得到保 ...

  3. 使用substring和split方法从字符串中抽取一组清单

    提取前: '这是一个句子.这是一个句子,包含了一列清单: 樱桃, 橙子, 桔子, 苹果, 香蕉.这是清单内容.'; 提取后: ["樱桃", " 橙子", &qu ...

  4. Unity3d 无网络权限下打开网站

    有人问“更多游戏”没有网络权限怎么实现,其实调用浏览器访问外部链接不需要网络通讯权限,代码如下: Uri moreGame = Uri.parse("http://wapgame.189.c ...

  5. SqlServer中quotename用法与实例

    语法 QUOTENAME ( 'character_string' [ , 'quote_character' ] ) 参数 'character_string' Unicode 字符数据构成的字符串 ...

  6. 【转】ASP.NET中服务器控件Table动态生成表格及其属性介绍

    下文所有内容转自开源中国:http://www.oschina.net/question/565065_86453#tags_nav ================================= ...

  7. yii 获取当前ip 常用的调用变量

    echo Yii::app()->request->hostInfo; //除域名外的URL echo Yii::app()->request->getUrl(); //除域名 ...

  8. Oracle报错,ORA-28001: 口令已经失效

    Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录. Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个 ...

  9. Postman接口测试初探

    Postman接口测试 有两种安装方式: 1)Chrome插件(https://www.getpostman.com/).安装完成后,它会在chrome的应用中,如下图 2)通过下载Native ap ...

  10. javascript模块化编程(AMD规范的加载器)

    关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”. 先贴一个学习地址 ...