




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 华华东东师师范范大大学学 学校代码 10269 学 号 63041500015 基基于于 Oracle ERP 系系统统 的的 Concurrent Program 开开发发方方法法 院 院 系 系 软件学院 专专 业业 软件工程 研研 究究 方方 向 向 软件项目管理 指指 导导 教教 师 师 余青松 姓姓 名 名 程序 2006 年 2 月 2 Oracle ERP 二次开发实用技术系列 之一 基 于O r a c l e E R P 系 统 的R e p o r t B u i l d e r 开 发 方 法 之二 基 于O r a c l e E R P 系 统 的F o r m B u i l d e r 开 发 方 法 之三 基 于O r a c l e E R P 系 统 的C o n c u r r e n t P r o g r a m 开 发 方 法 之四 基 于O r a c l e E R P 系 统 的A l e r t 开 发 方 法 之五 基 于O r a c l e E R P 系 统 的X M L P u b l i s h e r 开 发 方 法 3 摘要 摘要内容 摘要内容 Concurrent Program 是 Oracle ERP 二次开发中最普遍的数据处理 方式 说简单一点 就把它看作一个独立的在 ERP 界面中可以输参运行的 Procedure 通过传入一些参数 进行有条件有逻辑的数据的操作 包括转移数据 计算数据等 同时 还介绍 Sql loader Interface 转档 Request Sets 的设置方法等 我在本文中 就把 Concurrent Program 看作是一个数据的整理 数据的操作 重 点放在 Oracle ERP 环境中的设置问题 以及一些需要注意 检查策略 本文写的比较 粗燥 主要表现在举的例子上 都是特别傻瓜的 当然 并不影响方法的讲解 关 键 词 Oracle 二次开发 Concurrent Interface Sql Load 论文类型 技术教程 Page 4 of 33 目录 1 Oracle ERP 二次开发的数据操作实现方式有哪些 2 Concurrent Program 的基本开发步骤及上线方法 3 Sql Loader 的基本开发步骤及上线方法 4 Interface 转档的基本开发步骤及上线方法 5 Request Set 的基本开发步骤及上线方法 6 Concurrent Program 的疑问问题应付方法 Page 5 of 33 第一部份第一部份 OracleOracle ERPERP 二次开发二次开发的数据操作实现方式有哪些 的数据操作实现方式有哪些 ERP 上线 除了通过 FORM 界面来输入数据之外 还有许多种输入数据的方式 比如 ERP 新上线 客户原先的数据怎么办 比如客户的 客户 资料 供应商资料等等 这些 数据少则上千 多则几百万 比如报纸业的客户 发行量很大的话 五百万个客户的资料 就一点都不多 这些数据都让客户去 FORM 界面输入吗 显然很不现实 一般来说 数据的操作方式主要有 SQL Load Concurrent Program 包括 Interface 转入 其中 Interface 转档特指往 Oracle ERP 标准模块转入数据的程式 本文针对 SQL PLSQL 已经过关的 语法问题不是本文谈论的重点 下面一一来谈 Page 6 of 33 第二部份第二部份 ConcurrentConcurrent ProgramProgram 的基本开发步骤的基本开发步骤 1 什么是 Concurrent Program 在 oracle erp 系统中 我们可以做 Form Report 同时我们也可以单独的运行一个 Procedure 程式完成某一种数据操作 你就把它当成一个用户可以在 ERP 界面中运行的 Procedure 2 那么就简单喽 就是一个 Procedure 而已啊 但是也要注意一些问题 这里我分别说明 一下 在 ERP 界面中运行的 Procedure 那么如何让客户知道运行的结果呢 fnd file put line fnd file log V ERROR LOG 这句命令 就是往 Log 档中写入你想传达给用户的信息 或者 Debug 信息 V ERROR LOG 我自己定义的一个变量 一串字符串 你的内容 你可以合理使用 chr 10 来换行 排版 另外 你可以在字符串中加入 sqlcode 和 sqlerrm 将 oracle 的 debug 信息 show 出来 注意哦 V ERROR LOG 不要超过 2000 行 如果有 cursor 的程式 希望每一趟都写 log 而不是将信息串起来 最后再 show 出来 log 太长的话 会出错的 以上是通过 log 来告诉信息 但是 erp 界面上都是显示 complete 那么你可以通过命 令来修改它的状态 V FUNC STATUSBOOLEAN V FUNC STATUS fnd concurrent set completion status WARNING 老大 程式运行错啦 写 procedure 的名称的时候 你需要注意一点 前面两个 procedure 参数是固定的 out 参数 oracle 需要通过这两个参数回传信息 Page 7 of 33 PROCEDURE ERPSI018 errbuf OUT VARCHAR2 retcode OUT VARCHAR2 pi date in varchar2 有的人写 100 个参数 因为调用的时候要传 100 个进来 当然 写 100 个没有关系 也比较清晰 不过呢 太冗余 没作用 我这里都是需要几个写几个 看个人习惯啦 我 也不知道哪个好 在 form 中调用 Concurrent Program 的方法 在本系列的 form 开发方法 中有说明 这里不再啰嗦 但是有一个重要问题 就是你用 Concurrent Program 来调用 Concurrent Program 那么被调用的 Concurrent Program 就必须把 100 个参数用 null 或者空字符 补齐 还有一个重要的问题 就是 EXCEPTION 通过 EXCEPTION 来将异常处理 在 EXCEPTION 部分把异常信息写入 log 中 其实 Concurrent Program 没有什么好讲的 就是写 sql 写逻辑 关键不在方法和语 法 在于逻辑的复杂性 和你对 sql 对性能的影响的把握度 3 通过一个实例来讲解设置方法吧 Define Concurrent Program System Administrator Concurrent Program Executable System Administrator Security Responsibility Program Define Page 8 of 33 Page 9 of 33 Page 10 of 33 Page 11 of 33 最后挂到你需要挂到的模块下面 同 report 一样的 Page 12 of 33 第三部分第三部分 Sql LoadSql Load 的基本开发步骤及上线方法的基本开发步骤及上线方法 Sql Load 是个什么样的过程呢 就是把用户的 Excel 文件中的数据 导入到数据库表格中的导入的过程 往往应用于系统 刚上线 把以前用户的数据导入到新系统中时使用 当然 Sql Load 只是把数据 装入 数据库 并不关心数据的逻辑是否合理 数据是否正确 实际上也能做一些校验 但是 功能有限 因此 应用时数据导入 需要配合 interface 转档的使用 就是说 通过 PLSQL 程式来进行数据的处理 然后将符合条件的数据转入到应用的表格中 这将下面章节 中再谈 这里先用一个简单的实例来演示 Sql Load 的开发过程 1 首先呢 把 excel 的文件后缀名修改成 csv 注意 你可以尝试把 CSV 的文件用 ultraedit 打开 你会发现是通过 来作列的区 隔的 2 就是根据用户 excel 的原数据列 建立一个与之对应的表 命名为 SIM STORE Page 13 of 33 3 然后编写转入程式 用写字本写一个转入程式 然后将文件名修改为 ctl 后缀名结尾 命名为 SIM STORE UPLOAD ctl Page 14 of 33 注意 此程式几乎是固定格式 Option 是参数行 CHARACTERSET 指定字符集 SIM STORE 是 table 名称 FIELDS TERMINATED BY 表示用 进行列区隔 OPTIONALLY ENCLOSED BY 是指用 进行换行区分 当然 这里原数据已经是分 行的了 尤其需要注意时间的写法 和传入原数据的时间格式 4 写好程式代码了 将文件上传到指定的目录下面 Page 15 of 33 Ctl 文件都是传到 bin 目录下 Csv 文件没有这个要求 但是要求此目录有权限进行读取 那么我们的工作就转到 ERP 设置了 1 ERP 設定 設定 連線連線 ERP 進入進入 system administrator 1 1 Define Executable Concurrent Program Executable 注意 Execution Method 选择 Sql loader 2 2 Define program Concurrent Program Define Page 16 of 33 select SIM TOP bin S to char sysdate YYYYMMDD csv from dual Page 17 of 33 2 3 Define Request Group Security Responsibility Request 设置结束 下面就可以 run 这个 sql loader 程式了 下面会让你输入 excel 文件的路径和 名称 当然运行前 你需要把转换为 csv 各式的 excel 文件上传到设定的目录下 这个程 式才会起作用 Page 18 of 33 运行后去数据库中观察 表格中是否出现了数据 Page 19 of 33 第四部份第四部份 InterfaceInterface 转档的基本开发步骤及上线方法转档的基本开发步骤及上线方法 下面通过一个简单的例子来讲解开发步骤 本例紧跟上例 1 首先根据需求 你要做什么 本例中 是将一个初始表 SIM STORE 数据有可能正确 有可能错误 转入一个符 合要求的正式表中 ERP SI STORE INFO 由于可能多次转入 有可能出现 Insert 和 update 的情况 当然 重要的是对初始表数据的检查 并将检查不合格的数据通过 LOG 回馈到 ERP 用户 基于 ERP SI STORE INFO 的 Form 界面如下 2 写 Procedure 程式 Procedure 的具体写法就不谈了 下面是这个 Procedure 头部分 Page 20 of 33 身部分 写 Procedure 注意 前面一定要写上两个 Varchar2 型的 OUT 参数 errbuf 和 retcode 这是 Concurrent 的要求写法 不写绝对会 爆红 例子并不是标准 程式代码请按照公司的 规范编写 这里主要介绍 Interface 转档的一般方法和逻辑 通俗的讲 就是把一些临时表格中的数 据 进行验证之后 放入标准表格的过程 难度的区分就在于验证的逻辑 比如本例中的 逻辑比较简单 又比如做标准的 Customer 资料的转档 就非常复杂 一般新系统上线 将 Page 21 of 33 以前的客户资料导入时 需要这么做 你需要检验的逻辑特别多 当然 不管再简单和复 杂 区别就在于验证 这个设置的过程还是一样的 3 写完之后当然要编译喽 编译之后呢 那就是 ERP 的设定了 1 ERP 設定 設定 連線連線 ERP 進入進入 system administrator 1 1 Define Executable Concurrent Program Executable 注意 Execution Method 一定要选择 PL SQL Stored Procedure Execution File Name 要把 Package 名写在前面 2 2 Define program Concurrent Program Define Page 22 of 33 这一步其实与 Report 的设定非常类是 当然 你就不用设置长宽 打印机之类的东西了 然后点击 Parameters 设置参数 注意 前面 Procedure 程式中两个 OUT 参数不要在这里登 记哦 设置方法与 Report 的设置完全相同 Page 23 of 33 2 3 Define Request Group Security Responsibility Request Page 24 of 33 最后 你要放在哪个模块下运行呢 下面是运行这个 Concurrent 的运行界面 就是这个样子 跟运行 Report 程式完全相 同 Page 25 of 33 Page 26 of 33 第五部份第五部份 RequestRequest SetSet 的基本开发步骤及上线方法的基本开发步骤及上线方法 1 什么是 Request Set 可以这么理解 就是多个 Request 程式 有组织有顺序的运行 这些程式可以包括 report Concurent Program Sql loader 这个有组织有顺序 就是说可以定义先后的次序 还可以定义 什么情况出现后运行什么样的程式 2 还是通过一个例子来讲解基本的过程 接着前面的例子 这里要设置说让 SQl loader 先做 把数据转入临时表 成功之后 然后 再运行 interface 转档 把数据进行验证后存入系统表格 第一个界面应该比较好理解 主要有两个按钮 link Stages 就是设置执行的顺序和条件 Define Stages 就是设置执行的内容 那我们先设置内容 最后再设置顺序 进入 Define Stages Page 27 of 33 我们要运行两个步骤 我们自己名个名字 符合规范就行 选择第一个 点击 Requests 进 入 指定你命名的 具体是指向哪一个程式 Page 28 of 33 第一个指向 erpsi028 这里注意哦 一个步骤可以包含多个程式哦 好了 这里比较简单 就一个 那么去设置参数 设置完参数 回退出来 设置第二个步骤地程式和参数 Page 29 of 33 select SIM TOP bin S to char sysdate YYYYMMDD csv from dual Page 30 of 33 Page 31 of 33 好 通过上面的操作呢 你的程式已经定义好了 有两个步骤地程式 但是没有指定顺序 和条件 那么到最外面的界面 进入 Link Stages 进行顺序设定 比如 这个例子中 先运行第一个 sim store sql load 然后在后面的栏位中 输入成功 之后执行什么 或者 warning 执行什么 error 执行什么 这就是执行的顺序和条件 应该 还是比较好理解 Page 32 of 33 第六部分 第六部分 ConcurrentConcurrent ProgramProgram 的疑问问题应付方法的疑问问题应付方法 1 如何在 Concurrent Program 的代码中来调用 request set 呢 回答 这里贴一段代码 模仿着做就是了 下面这段是在 form 中调用的 当然在 Concurrent Program 中也一样 只需要修改报错方法就是了 declare v success boolean v req id number begin v success fnd submit set request set FS ERPFS06014 if not v success then FND MESSAGE SET NAME FND ERPFS06014 SET REQUEST SET ERROR sqlcode sqlerrm FND MESSAGE SHOW end if v success fnd submit submit program FS ERPFS06002 ERPFS06002 CTRL UPLOAD FILE NAME NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL if not v success then FND MESSAGE SET NAME FND ERPFS06002 ERROR sqlcode sqlerrm FND MESSAGE SHOW end if v success fnd submit submit program FS ERPFS06013 ERPFS06013 CTRL UPLOAD FILE NAME CTRL COBC HEADER ID NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设施农种植管理办法
- 规范生物质管理办法
- 中华寿桃病虫管理办法
- 装修人员平台管理办法
- 《流动资金管理办法》
- 装修预算公司管理办法
- 中山公园摆摊管理办法
- 2025年环形磁体合作协议书
- 老虎潭水库管理办法
- 《医学装备管理办法》
- 《资本论》解读课件
- 【讲座培训】《中小学教育惩戒规则(试行)》解读课件
- 糖尿病酮症酸中毒指南精读
- 建设单位向施工企业施工安全交底
- 2022年二级建造师机电继续教育考试题库及完整答案1套
- T∕ZZB 2783-2022 路面标线涂料用氢化石油树脂
- 《机械知识》(第六版)电子教案(全)完整版课件整套教学课件
- 政府会计制度应用课件
- 道德与法治教学课件《我的家庭贡献与责任》教学课件(21p)
- 五年级上册美术教学计划
- 有色金属贵金属冶金
评论
0/150
提交评论