OA调用EBS示例

/**
*销售订单调用EBS接口

  • time : 2020/11/12
  • author : lyzhou

*/
public class OrderImportEbsAction extends BaseBean implements Action {
@Override
public String execute(RequestInfo requestInfo) {

    BaseBean bb = new BaseBean();
    String requestid = requestInfo.getRequestid();
    this.writeLog("OrderImportEbsAction...START " + requestid);
    String mianTable = requestInfo.getRequestManager().getBillTableName();
    this.writeLog("mianTable " + mianTable);

    RecordSet rs = new RecordSet();
    RecordSet rs_l = new RecordSet();
    String sqlstr = "select * from " + mianTable + " where requestid=" + requestid;//主表
    this.writeLog("sqlstr " + sqlstr);
    rs.execute(sqlstr);
    rs.next();

    String mainid = Util.null2String(rs.getString("id"));
    String detailTable = mianTable + "_dt1";//明细表
    String sqlzb = "select * from " + detailTable + " where mainid=" + mainid;//明细表
    this.writeLog("sqlzb " + sqlzb);
    rs_l.execute(sqlzb);

    String P_SERVER_CODE = "ORDER_IMPORT";//服务编码(根据EBS提供的编码进行填充)
    String VALUE1 =  Util.null2String(rs.getString("xsdw"));//销售公司
    String VALUE2 =  Util.null2String(rs.getString("jxs"));//客户编号
    String VALUE3 =  Util.null2String(rs.getString("Name"));//OA的订单ID
    String VALUE4 =  Util.null2String(rs.getString("ebs_ddlx"));//订单类型
    String VALUE5 =  Util.null2String(rs.getString("xjqd"));//下级渠道
    String VALUE6 =  Util.null2String(rs.getString("zzkh"));//最终客户
    String VALUE7 =  Util.null2String(rs.getString("id"));//关联单据
    String VALUE8 =  Util.null2String(rs.getString("fhgs"));//仓库
    String VALUE9 =  "CNY";//币种
    String VALUE10 =  Util.null2String(rs.getString("id"));//发运单号
    String VALUE11 =  Util.null2String(rs.getString("jxs"));//经销商
    String VALUE12 =  "";//一级行业
    String VALUE13 =  "";//二级行业
    String VALUE14 =  Util.null2String(rs.getString("ddlx"));//CRM订单类型
    String VALUE15 =  "";;//CRM付款条件
    String VALUE16 =  Util.null2String(rs.getString("xsdw"));//销售单位
    String VALUE17 = "OA";//来源系统
    String VALUE18 =  Util.null2String(rs.getString("xsdw"));//来源头ID

    //拼接输入xml参数
    String param = "\"InputParameters\": {";
    param += "\"P_SERVER_CODE\":\""+P_SERVER_CODE+"\",";
    param += "\"P_REQUEST_DATA\":{";
    param += "\"P_REQUEST_DATA_ITEM\": [";
    param += "{";
    param += "\"VALUE1\":\""+VALUE1+"\",";
    param += "\"VALUE2\":\""+VALUE2+"\",";
    param += "\"VALUE3\":\""+VALUE3+"\",";
    param += "\"VALUE4\":\""+VALUE4+"\",";
    param += "\"VALUE5\":\""+VALUE5+"\",";
    param += "\"VALUE6\":\""+VALUE6+"\",";
    param += "\"VALUE7\":\""+VALUE7+"\",";
    param += "\"VALUE8\":\""+VALUE8+"\",";
    param += "\"VALUE9\":\""+VALUE9+"\",";
    param += "\"VALUE10\":\""+VALUE10+"\",";
    param += "\"VALUE11\":\""+VALUE11+"\",";
    param += "\"VALUE12\":\""+VALUE12+"\",";
    param += "\"VALUE13\":\""+VALUE13+"\",";
    param += "\"VALUE14\":\""+VALUE14+"\",";
    param += "\"VALUE15\":\""+VALUE15+"\",";
    param += "\"VALUE16\":\""+VALUE16+"\",";
    param += "\"VALUE17\":\""+VALUE17+"\",";
    param += "\"VALUE18\":\""+VALUE18+"\",";
    param += "\"LINE_DATA\": {";//明细行数据,用数组的形式存储
    param += "\"LINE_DATA_ITEM\":[";

    while(rs_l.next()) {
        String LINE_VALUE1 = Util.null2String(rs_l.getString("posku"));//订购项目
        String LINE_VALUE2 = Util.null2String(rs_l.getString("pn"));//标记
        String LINE_VALUE3 = Util.null2String(rs_l.getString("sl"));//数量
        String LINE_VALUE4 = Util.null2String(rs_l.getString("cjj"));//销售单价
        String LINE_VALUE5 = Util.null2String(rs_l.getString("forc"));//SKU For C
        String LINE_VALUE6 = Util.null2String(rs_l.getString("forc"));//年限
        String LINE_VALUE7 = "OP-00278544";//CRM销售订单行号编码
        String LINE_VALUE8 = "12";//摊销期
        String LINE_VALUE9 = "0QL9D0000004Xu8";//行组
        String LINE_VALUE10 = "";//bundle组
        String LINE_VALUE11 = Util.null2String(rs_l.getString("forc"));//C SKU开票名称
        String LINE_VALUE12 = Util.null2String(rs_l.getString("forpc"));//PO SKU开票名称
        String LINE_VALUE13 = Util.null2String(rs.getString("pzrq"));//要求发货时间
        String LINE_VALUE14 = "A类:公司成熟硬件产品线";//人力考核比例分类
        String LINE_VALUE15 = "防火墙产品线";//产品线2017
        String LINE_VALUE16 = "E系列";//子产品线
        String LINE_VALUE17 = "1001";//来源行ID
        String DETAIL_LINE_DATA = "";//明细记录

        param += "{";
        param += "\"LINE_VALUE1\":\""+LINE_VALUE1+"\",";
        param += "\"LINE_VALUE2\":\""+LINE_VALUE2+"\",";
        param += "\"LINE_VALUE3\":\""+LINE_VALUE3+"\",";
        param += "\"LINE_VALUE4\":\""+LINE_VALUE4+"\",";
        param += "\"LINE_VALUE5\":\""+LINE_VALUE5+"\",";
        param += "\"LINE_VALUE6\":\""+LINE_VALUE6+"\",";
        param += "\"LINE_VALUE7\":\""+LINE_VALUE7+"\",";
        param += "\"LINE_VALUE8\":\""+LINE_VALUE8+"\",";
        param += "\"LINE_VALUE9\":\""+LINE_VALUE9+"\",";
        param += "\"LINE_VALUE10\":\""+LINE_VALUE10+"\",";
        param += "\"LINE_VALUE11\":\""+LINE_VALUE11+"\",";
        param += "\"LINE_VALUE12\":\""+LINE_VALUE12+"\",";
        param += "\"LINE_VALUE13\":\""+LINE_VALUE13+"\",";
        param += "\"LINE_VALUE14\":\""+LINE_VALUE14+"\",";
        param += "\"LINE_VALUE15\":\""+LINE_VALUE15+"\",";
        param += "\"LINE_VALUE16\":\""+LINE_VALUE16+"\",";
        param += "\"LINE_VALUE17\":\""+LINE_VALUE17+"\",";
        param += "\"DETAIL_LINE_DATA\":\""+DETAIL_LINE_DATA+"\"";

        param += "},";
    }

    param=param.substring(0,param.length()-1);
    param += "]";
    param += "}";
    param += "}";
    param += "]";
    param += "}";
    param += "}";
    this.writeLog("param " + param);
    //
    //weaver.interfaces.zp.util.ToEBSUtil
    //这是封装的调用EBS接口的util类
    //
    String result = ToEBSUtil.toEBS(param);
    JSONObject json = JSONObject.fromObject(result);//util类的返回结果
    String PROCESS_STATUS = json.getString("PROCESS_STATUS");
    String PROCESS_MESSAGE = json.getString("PROCESS_MESSAGE");
    this.writeLog("PROCESS_STATUS " + PROCESS_STATUS);
    this.writeLog("PROCESS_MESSAGE " + PROCESS_MESSAGE);
    if (PROCESS_STATUS.equals("E")) {
        requestInfo.getRequestManager().setMessagecontent("调用EBS接口失败: "+PROCESS_MESSAGE);
        return Action.FAILURE_AND_CONTINUE;
    }

    this.writeLog("OrderImportEbsAction... END");
    return Action.SUCCESS;


}

}

封装的调用EBS接口的类:

public class ToEBSUtil {
static BaseBean bs = new BaseBean();
static String userName;
static String passWord;
static String ebsUrl;

public ToEBSUtil() {
}

public static String toEBS(String var0) {
    bs.writeLog("in_______toEBS___________");
    bs.writeLog(userName);
    bs.writeLog(passWord);
    bs.writeLog(ebsUrl);
    bs.writeLog("toEBS_______inputParam__" + var0);
    Parameter var1 = new Parameter();
    var1.setUserName(userName);
    var1.setPassword(passWord);
    String var2 = getDATA(var0);
    bs.writeLog(var2);
    bs.writeLog("---------------");
    String var3 = doRequest(var1, ebsUrl, var2);
    bs.writeLog(var3);
    JSONObject var4 = JSONObject.fromObject(var3);
    String var5 = var4.getString("OutputParameters");
    JSONObject var6 = JSONObject.fromObject(var5);
    String var7 = var6.getString("X_RESPONSE_DATA");
    JSONObject var8 = JSONObject.fromObject(var7);
    String var9 = var8.getString("X_RESPONSE_DATA_ITEM");
    JSONArray var10 = JSONArray.fromObject(var9);
    JSONObject var11 = new JSONObject();
    if (var10.size() > 0 && var10 != null) {
        JSONObject var12 = JSONObject.fromObject(var10.get(0));
        String var13 = var12.getString("PROCESS_STATUS");
        String var14 = var12.getString("PROCESS_MESSAGE");
        bs.writeLog(var13);
        bs.writeLog(var14);
        var11.put("PROCESS_STATUS", var13);
        var11.put("PROCESS_MESSAGE", var14);
    } else {
        var11.put("PROCESS_STATUS", "E");
        var11.put("PROCESS_MESSAGE", "EBS返回数据错误!");
    }

    return var11.toString();
}

private static String doRequest(Parameter var0, String var1, String var2) {
    String var3 = "";
    URL var4 = null;

    try {
        var4 = new URL(var1);
    } catch (MalformedURLException var15) {
    }

    try {
        HttpURLConnection var5 = (HttpURLConnection)var4.openConnection();
        var5.setReadTimeout(5000);
        var5.setConnectTimeout(5000);
        String var6 = var0.getUserName() + ":" + var0.getPassword();
       String var7 = Base64.encodeToString(var6.getBytes(), 0).trim();
        var5.setRequestProperty("Authorization", "Basic " + var7);
        var5.setRequestProperty("Connection", "keep-alive");
        var5.setRequestProperty("Content-Type", "application/json");
        var5.setRequestProperty("Content-Length", String.valueOf(var2.getBytes().length));
        var5.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
        var5.setDoOutput(true);
        var5.setDoInput(true);
        var5.setRequestMethod("POST");
        var5.setUseCaches(false);
        OutputStream var8 = var5.getOutputStream();
        var8.write(var2.getBytes());
        var8.flush();
        var8.close();
        int var9 = var5.getResponseCode();
        if (var9 != 200) {
            var5.disconnect();
            var3 = "无法连接:链接失败或者是帐号或密码输入错误!\n登录失败 !.........";
            return var3;
        } else {
            InputStream var10 = var5.getInputStream();
            ByteArrayOutputStream var11 = new ByteArrayOutputStream();
            int var13 = 1;

            int var12;
            for(byte[] var14 = new byte[1024]; (var12 = var10.read(var14)) != -1; ++var13) {
                var11.write(var14, 0, var12);
            }

            var10.close();
            var11.close();
            var3 = new String(var11.toByteArray(), "UTF-8");
            --var13;
            var0.setreocrds(var13);
            return var3;
        }
    } catch (IOException var16) {
        var3 = "无法连接";
        return var3;
    }
}

private static String getDATA(String var0) {
    String var1 = "{";
    var1 = var1 + "\"PARSE_Input\": {";
    var1 = var1 + "\"@xmlns\": \"http://xmlns.oracle.com/apps/cux/soaprovider/plsql/rest/cux_oa_webservice_pkg/\",";
    var1 = var1 + "\"RESTHeader\": {";
    var1 = var1 + "\"@xmlns\": \"http://xmlns.oracle.com/apps/cux/soaprovider/plsql/rest/cux_oa_webservice_pkg/\",";
    var1 = var1 + "\"Responsibility\": \"FND_REP_APP\",";
    var1 = var1 + "\"RespApplication\": \"FND\",";
    var1 = var1 + "\"SecurityGroup\": \"STANDARD\"";
    var1 = var1 + "},";
    var1 = var1 + var0;
    var1 = var1 + "}";
    var1 = var1 + "}";
    return var1;
}

static {
    userName = bs.getPropValue("toebsinfo", "username");
    passWord = bs.getPropValue("toebsinfo", "password");
    ebsUrl = bs.getPropValue("toebsinfo", "ebsurl");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值