Transfer the CLOB variable to third party system using https protocol and java concurrent program.

package xxpo.ebs;

import java.io.IOException;
import oracle.apps.fnd.cp.request.CpContext;
import oracle.apps.fnd.cp.request.JavaConcurrentProgram;
import oracle.apps.fnd.cp.request.LogFile;
import oracle.apps.fnd.cp.request.ReqCompletion;
import oracle.apps.fnd.util.NameValueType;
import oracle.apps.fnd.util.ParameterList;
import org.json.JSONException;

public class XXONT_OutboundInterfaceServlet_ABC implements JavaConcurrentProgram {
private static final String CLASS_NAME = “XXONT_OutboundInterfaceServlet_ABC”;

public void runProgram(CpContext paramCpContext) {

ReqCompletion localReqCompletion = paramCpContext.getReqCompletion();
ParameterList localParameterList = paramCpContext.getParameterList();
LogFile localLogFile = paramCpContext.getLogFile();
String record_id = “”;
boolean bool = false;
localLogFile.writeln(“XXONT_OutboundInterfaceServlet_ABC : runProgram() executing: “, 0);

while (localParameterList.hasMoreElements()) {
NameValueType localNameValueType =
localParameterList.nextParameter();
record_id = localNameValueType.getValue();
localLogFile.writeln(“Param servletUrl: XXONT_OutboundInterfaceServlet_ABC : runProgram() : ” +
record_id, 0);

XXpoSoPoOutbound_EBS printUtil = new XXpoSoPoOutbound_EBS();

try {
bool = printUtil.getDataTable(record_id, localLogFile);
if (bool) {
localReqCompletion.setCompletion(0,
“Request Completed Normal”);
localLogFile.writeln(“Execution Completed for : XXONT_OutboundInterfaceServlet_ABC : runProgram()”,
0);
} else {
localReqCompletion.setCompletion(1,
“Request Completed Error”);
localLogFile.writeln(“Execution Failed for : XXONT_OutboundInterfaceServlet_ABC : runProgram()”,
0);
}

} catch (Exception exception) {
localLogFile.writeln(“Exception for :XXONT_OutboundInterfaceServlet_ABC : runProgram() : ” +
exception.getMessage(), 0);
}
}
}
}

 

package xxpo.ABC;

import java.io.BufferedReader;
import java.io.IOException;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.HashMap;
import org.json.JSONException;
import org.json.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.RequestBody;
import okhttp3.Request.Builder;
import okhttp3.MediaType;
import oracle.apps.fnd.cp.request.LogFile;
import oracle.apps.ibe.util.IBEUtil;
import xxibe.epm.util.lookups.XXibeEPMLookupObject;
import xxibe.epm.util.lookups.XXibeEPMLookups;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.apps.fnd.cp.request.CpContext;
import oracle.apps.jtf.aom.transaction.TransactionScope;

public class XXONTSoOutbound_ABC {

final static public String CLASS_NAME = “XXONTSoOutbound_ABC”;

public boolean getDataTable(String record_id, LogFile paramLogFile) {

Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs5 = null;
String URL = “”;
String PAYLOAD_JSON = “”;
String client_id = “”;
String client_secret = “”;
boolean b = false;

String query =
“Select URL,PAYLOAD_JSON,client_id,client_secret from apps.xxbom_mic_iface_extract WHERE record_id =:1 “;

try {

conn = TransactionScope.getConnection();
pStmt = conn.prepareStatement(query);
pStmt.setString(1, record_id);
rs5 = pStmt.executeQuery();

if (rs5.next()) {
URL = rs5.getString(“URL”);
PAYLOAD_JSON = rs5.getString(“PAYLOAD_JSON”);
client_id = rs5.getString(“client_id”);
client_secret = rs5.getString(“client_secret”);
}

paramLogFile.writeln(“Calling getApiData: XXONTSoOutbound_ABC : “, 0);
b = getApiData(record_id, URL, PAYLOAD_JSON, client_id, client_secret,paramLogFile);
paramLogFile.writeln(“Response from getApiDatat: XXONTSoOutbound_ABC : “+b, 0);

} catch (Exception e) {
paramLogFile.writeln(“Exception – XXONTSoOutbound_ABC : getDataTable() : ” + e.getMessage(), 0);
} finally {
try {

if (rs5 != null)
rs5.close();

} catch (Exception e) {
paramLogFile.writeln(“Exception while closing rs5- XXONTSoOutbound_ABC : getDataTable() : ” + e.getMessage(), 0);
}
try {

if (pStmt != null)
pStmt.close();

} catch (Exception e) {
paramLogFile.writeln(“Exception while closing pStmt- XXONTSoOutbound_ABC : getDataTable() : ” + e.getMessage(), 0);
}
try {

if (conn != null)
TransactionScope.releaseConnection(conn);

} catch (Exception e) {
paramLogFile.writeln(“Exception while closing conn- XXONTSoOutbound_ABC : getDataTable() : ” + e.getMessage(), 0);
}
}
return b;
}

public boolean getApiData(String record_id, String URL, String PAYLOAD_JSON,
String client_id, String client_secret,LogFile paramLogFile) {

final MediaType JSON = MediaType.parse(“application/json; charset=utf-8″);
boolean res = false;
try {
OkHttpClient httpClient = new OkHttpClient();
JSONObject obj = new JSONObject();
JSONObject data = new JSONObject();
Response ibpResponse = null;
String err_msg =”Null response”;

paramLogFile.writeln(“Calling URL for :XXONTSoOutbound_ABC : getApiData : ” + URL, 0);
paramLogFile.writeln(“Calling PAYLOAD_JSON for :XXONTSoOutbound_ABC : getApiData : ” + PAYLOAD_JSON, 0);

RequestBody body = RequestBody.create(JSON, PAYLOAD_JSON);
Builder callIBBuilder = new Request.Builder().url(URL);
callIBBuilder.addHeader(“client_id”,client_id);
callIBBuilder.addHeader(“client_secret”,client_secret);
paramLogFile.writeln(“getApiData: URL : ” + URL, 0);
paramLogFile.writeln(“getApiData: Client_id : ” + client_id, 0);
paramLogFile.writeln(“getApiData: Client_secret : ” + client_secret, 0);
Request callIBPRequest = callIBBuilder.post(body).build();
ibpResponse = httpClient.newCall(callIBPRequest).execute();
paramLogFile.writeln(“Connection Response : ” + ibpResponse.isSuccessful(), 0);

if(ibpResponse !=null){
err_msg = ibpResponse.toString();
}

if (ibpResponse.isSuccessful()) {

paramLogFile.writeln(“ibpResponse for XXONTSoOutbound_ABC :Success”, 0);
res=true;
String responseBody = ibpResponse.body().string();
updateTable(responseBody,record_id,paramLogFile);
}
else
{

paramLogFile.writeln(“ibpResponse for XXONTSoOutbound_ABC :Failure”, 0);
String responseBody = ibpResponse.body().string();
updateTable(responseBody,record_id,paramLogFile);
}

} catch (JSONException jse) {
if (IBEUtil.logEnabled()) {
IBEUtil.log(“JSONException while getApiData…. for ” +
CLASS_NAME, jse.getMessage());
}
} catch (IOException ioe) {
if (IBEUtil.logEnabled()) {
IBEUtil.log(“IOException while getApiData…. for ” +
CLASS_NAME, ioe.getMessage());
}
} catch (Exception e) {
if (IBEUtil.logEnabled()) {
IBEUtil.log(“Exception while getApiData…. for ” +
CLASS_NAME, e.getMessage());
}
}
return res;
}

public void updateTable(String response, String record_id,LogFile paramLogFile) {

Connection conn = null;
PreparedStatement pStmt = null;

String query =
“UPDATE apps.xxpo_po_so_outbound_asco_stg SET response_json =:1, last_updated_by = apps.fnd_global.user_id, last_update_date = SYSDATE WHERE record_id =:2 “;

try {

conn = TransactionScope.getConnection();
pStmt = conn.prepareStatement(query);
pStmt.setString(1, response);
pStmt.setString(2, record_id);
int r = pStmt.executeUpdate();
} catch (Exception e) {

paramLogFile.writeln(“Exception while updating table – XXONTSoOutbound_ABC : updateTable() : ” + e.getMessage(), 0);

if (IBEUtil.logEnabled()) {
IBEUtil.log(“Exception while updating table – updateTable() ” +
CLASS_NAME, e.getMessage());
}
} finally {
try {

if (pStmt != null)
pStmt.close();

} catch (Exception e) {
if (IBEUtil.logEnabled()) {
IBEUtil.log(“Exception while closing pStmt…. for ” +
CLASS_NAME, e.getMessage());
}
}
try {

if (conn != null) {
TransactionScope.releaseConnection(conn);
}

} catch (Exception e) {
if (IBEUtil.logEnabled()) {
IBEUtil.log(“Exception while closing conn…. for ” +
CLASS_NAME, e.getMessage());
}
}
}

}

}

Recent Posts

Start typing and press Enter to search