Oracle EBS Alert实例详解.doc_第1页
Oracle EBS Alert实例详解.doc_第2页
Oracle EBS Alert实例详解.doc_第3页
Oracle EBS Alert实例详解.doc_第4页
Oracle EBS Alert实例详解.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Doc Ref: 信息技术最佳实践二月 19, 2009信息技术最佳实践ORACLE核心应用技术E-Business SuiteAlert预警Author:黄建华Jianhua.HuangCreation Date:November 12, 2006Last Updated:二月 19, 2009Document Ref: Version:DRAFT 1AApprovals: Copy Number_Document ControlChange Record3DateAuthorVersionChange Reference12-Nov-06Jianhua.HuangDraft 1aNo Previous DocumentReviewersNamePositionDistributionCopy No.NameLocation1Library MasterProject Library2Project Manager34Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsDocument Controlii1.Oracle Alert基础.21.1.总体说明21.2.必要配置21.3.可选配置31.4.一个简单例子:事件型无Response Alert42.其他特性和功能实例92.1.第2个例子:93.常用代码块103.1.检查Mail状态104.Open and Closed Issues for this Deliverable11Open Issues11Closed Issues11Open and Closed Issues for this Deliverable 11Alert预警File Ref: A7b4278ddc28fdbdc788c560724f3f86.pdf (v. DRAFT 1A )Company Confidential - For internal use only1. Oracle Alert基础.职责:Alert Manager用户: SYSADMIN1.1. 总体说明Oracle Alert可以用来监控任何感兴趣的数据库异常情况,配合预定的动作使之看起来有些“智能”,简化管理人员的日常管理工作,并可在异常情况发生后第一时间获得Mail通知,甚至有客户设想给Alert开发短信接口。从获得警报的方法分,Alert有两种:基于数据库触发器的事件型Alert,基于计划请求的周期型Alert。从是否有用户干预看,Alert有两种:无Response Alert,无须用户Reply Mail,系统直接执行预定动作;有Response Alert,首先发送警报给设定的用户,再根据其Reply的内容决定执行哪些预定动作。总的来说,Oracle Alert是通过数据库触发器、计划运行的并发程序监控数据的变化,在预定的异常操作或者异常情况发生时,执行预定的动作发送Mail给特定的人、执行并发程序、执行SQL脚本或者OS脚本,甚至可以根据收件人的回应再执行上述动作。从目前使用看,应用最多的其实只有无Response Alert,并且仅仅用来发送Mail警报给管理员而已。理由很简单,一是“智能”操作ERP数据库还是存在风险,不如人工干预来得安心;二是复杂的处理,还不如使用Workflow或者自己开发的定期检查程序。1.2. 必要配置1.2.1. 配置说明Alert中其实是配置Mail客户端,至于Mail服务器用什么都问题不大,唯一注意的是有Response Alert需要IMAP4兼容的服务器。那么Alert支持哪些Mail配置呢?1、Metalink 72339.111i之前只能使用Oracle Office、 Oracle Interoffice、Sendmail、VMS Mail,由环境变量$APPLMAIL决定,修改配置文件后,需要adrelink force=y ranlib=y alr ALL;EBS正好有一个Office/Interoffice的License;如果使用有Response Alert,必须使用Office/Interoffice。没测试过2、操作系统是Windows的11i可以使用Outlook,其要配合Microsoft Exchage使用,请参考Set Up ALERT To Use Exchange Server.pdf。没测试过3、Metalink 365228.111i.ATG_PF.H Rollup 4后可以使用Workflow Notification Mailer来发送Mail、处理Response,不再为配置Alert的Mail而烦恼。1.2.2. 安装RUP4或更高的补丁Metalink 365228.1验证:SELECT * FROM ad_bugs b WHERE b.bug_number = 4676589。1.2.3. 配置Workflow Notification Mailer参考深入浅出Oracle EBS之Workflow.doc,发送需要配置SMTP,有Response需要配置IMAP。要保证Test Notification Mailer能够正常。1.2.4. Alert OptionsN: Alert/System/Options这个是给并发请求“Response Processor ”用的,RUP4后,不再需要配置。1.3. 可选配置1.3.1. 安装客户化应用N: Alert/System/Installations一般创建客户化应用,并未执行这一步,其实是不完整的,因为没有写入记录到表fnd_product_installations,这样导致DBA日常维护运行的“Gather Schema Statistics”等请求,无法收集客户化表的统计信息。1.3.2. 创建客户化应用N: Alert/System/Applications这里仅仅注册一个应用名,本文采用客户化应用SCF。完整的客户化应用设置步骤可以参考深入浅出Oracle EBS之全模块设置详例。如果是对标准ERP表进行监控,无需创建客户化应用。1.3.3. 设置Mail ListN: Alert/Distribution ListsMail List用来预设一些邮件账号列表,这样在定义Alert的时候可以直接选用。这里定义的Mail账号如果有多个,请用逗号或者空格分开邮件地址,不能用分号。1.4. 一个简单例子:事件型、无Response、消息Alert1.4.1. 创建客户话表SQL:- Create tablecreate table SCF.CUX_ALERT_DEMO( demo_id NUMBER, demo_contents VARCHAR2(100), demo_date DATE);- Create synonymCREATE SYNONYM CUX_ALERT_DEMO FOR scf.CUX_ALERT_DEMO;- Register tableBEGIN AD_DD.REGISTER_TABLE(SCF,CUX_ALERT_DEMO,T); AD_DD.REGISTER_COLUMN(SCF,CUX_ALERT_DEMO,DEMO_ID,1,NUMBER,38,Y,N); AD_DD.REGISTER_COLUMN(SCF,CUX_ALERT_DEMO,DEMO_CODE,2,VARCHAR2,100,Y,N); AD_DD.REGISTER_COLUMN(SCF,CUX_ALERT_DEMO,DEMO_DATE,3,DATE,9,Y,N); COMMIT;END;1.4.2. 定义AlertN: Alert Manager/Alert/Define定义一个最简单的事件型Alert:参数值SegApplicationSCF Customized SystemNameEvent Alert Demo SimpleTableCUX_ALERT_DEMOAfter InsertYAfter UpdateYSelect StatementSELECT demo_id, demo_contents, to_char(demo_date, YYYY-MM-DD HH24:MI:SS) INTO &demo_id, &demo_contents, &demo_date FROM cux_alert_demo WHERE ROWID = :ROWID注意SQL中into语句的写法。保存后通过“Verify”,验证是否有错误。此外,Last Checked指最后一次触发事件。1.4.3. 定义Alert DetailN: Alert Manager/Alert/Define/Alert DetailInputs和Outputs标签页,自动解析出上述SQL中的输入参数和输出参数。我们先重点关注Installations标签页:需要定义Oracle ID和Operating Unit。Oracle ID固定输入APPS。Operating Unit,虽然为非必输项,但实际必须指定一个OU。1.4.4. 定义Alert ActionsN: Alert Manager/Alert/Define/ActionsAction Level为Detail的意思是,如果前面的SQL返回n条记录,那么将发n封mail。可以通过选择List快速输入预定义的Mail地址,在Text部分输入:demo_id:&demo_iddemo_contents:&demo_contentsdemo_date:&demo_date1.4.5. 定义Action SetsN: Alert Manager/Alert/Define/Action Sets1.4.6. 检查事件型Alert的触发器SQL:SELECT t.owner, t.trigger_name, t.trigger_type, t.triggering_event FROM all_triggers t WHERE t.table_owner = SCF AND t.table_name = CUX_ALERT_DEMO;有2个触发器:ALR_CUX_ALERT_DEMO_UAR、ALR_CUX_ALERT_DEMO_IAR以ALR_CUX_ALERT_DEMO_IAR为例,内容如下:create or replace trigger ALR_CUX_ALERT_DEMO_IAR after insert on APPS.CUX_ALERT_DEMO for each row DECLARE mailid VARCHAR2(255) := NULL; reqid NUMBER; retval BOOLEAN; orgid VARCHAR2(255);BEGIN SELECT rtrim(substr(userenv(CLIENT_INFO), 1, 10) INTO orgid FROM dual; IF (USER | orgid NOT IN (APPS102) THEN RETURN; END IF; IF fnd_profile.VALUE(RESP_ID) IS NOT NULL THEN fnd_profile.get(EMAIL_ADDRESS, mailid); IF mailid IS NULL THEN IF alr_profile.VALUE(DEFAULT_USER_MAIL_ACCOUNT) != O THEN fnd_profile.get(USERNAME, mailid); ELSE fnd_profile.get(SIGNONAUDIT:LOGIN_NAME, mailid); END IF; IF mailid IS NULL THEN mailid := MAILID; END IF; END IF; retval := fnd_request.set_mode(db_trigger = TRUE); retval := fnd_request.set_options(implicit = ERROR); reqid := fnd_request.submit_request(ALR, ALECTC, CUX_ALERT_DEMO, NULL, FALSE, USER, CUX_ALERT_DEMO, rowidtochar(:NEW.ROWID), I, mailid, orgid); IF reqid = 0 THEN raise_application_error(-20160, fnd_message.get); END IF; END IF;END;实际上就是判断是否符合我们在“Alert Detail”中定义的Installation,然后提交Check Event Alert请求。1.4.7. 测试下在界面维护表CUX_ALERT_DEMO即可触发Alert。这里我们直接在PL/SQL中测试,不过需要先初始化:BEGIN -Initialize apps.fnd_global.apps_initialize(user_id = 1110, resp_id = 50237, resp_appl_id = 20003); - Insert demo data INSERT INTO cux_alert_demo VALUES (1, Just Test, SYSDATE); COMMIT;END;1、 在System Administrator职责检查请求,如果正常完成,说明写入wf_notification_out了2、 检查wf_notification_out数据,如果state从0变为2说明邮件发送了SELECT * FROM wf_notification_out WHERE corrid = APPS:ALR;3、 可通过Mail收到Alert2. 其他特性和功能实例上面的例子虽然极其简单,但演示了整个过程,至少可以初学者迈出第一步;接下来我们看看一些其他重要的功能,至于基本操作,就不再详细说明了。2.1. 第2个例子:准备N: 3. 常用代码块3.1. 检查Mail状态代码实例SQL:SELECT * FROM wf_notification_out WHERE corrid = APPS:ALR ORDER BY enq_time DESC;4. Open and Closed Issues for this DeliverableAdd open issues t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论