自己编写了Oracle EBS程序自动移植脚本

本文介绍了如何使用JAVA代码配合LINUX SHELL脚本,实现Oracle EBS Forms和Package的自动编译移植,避免在用户操作时影响,确保系统稳定。通过JAVA代码检测编译成功并创建并发程序,设置每日自动运行。
摘要由CSDN通过智能技术生成

前言

Oracle EBS的二次开发主要针对Forms开发和Package开发(报表、公共包、逻辑包等),因此移植程序也主要针对Forms(.fmb)和Package(.pck)。但是我们知道,在移植Forms的时候,如果有用户在界面上,那么该用户就会被强制剔除(包括同时打开多个界面的情况),这样会造成用户可能在处理单据,或者录入数据,造成数据未保存,或者数据状态处于不一致状态;Package的移植虽然不会把用户剔除,但是如果Froms引用了该Package,Forms也会报错,无法继续操作。

因此作为技术开发员移植程序一般需要等到晚上的时候才能移植。

Oracle EBS的请求除了可以调用PLSQL包代码,还可以调用JAVA代码。我们可以通过JAVA代码遍历某个目录,调用LINUX SHELL脚本的方式来实现程序定时每日自动编译程序。

步骤

1.新建JAVA代码

JAVA代码的作用是遍历某个目录,处理.fmb,.pck扩展名的文件,然后调用对应的SHELL脚本进行编译。

package oracle.apps.fnd.cp.request.cux;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;

import oracle.apps.fnd.cp.request.*;

public class CuxCompile implements JavaConcurrentProgram {
   

    public void runProgram(CpContext ctx) {
        String path = "/u01/prod/apps/apps_st/appl/cux/12.0.0/forms/programs/DAYCOMPILE";
        Boolean sucFlag;

        // get reference to Out and Log files
        OutFile out = ctx.getOutFile();
        LogFile log = ctx.getLogFile();

        out.writeln("文件路径:" + path);
        out.writeln("!-----------------------------------------------------!");

        File fileDir = new File(path);
        File[] files = fileDir.listFiles();
        Calendar cd = Calendar.getInstance();

        int fileNum = 0;
        for (File file : files) {
            if (file.isFile() && file.getName().indexOf(".fmb") > 0) {
                int dot = file.getName().lastIndexOf('.');
                String command = "sh " + path + "/compile.sh "
                        + file.getName().substring(0, dot);
                fileNum++;
                sucFlag = false;
                try {
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值