Commit e97b700d authored by sjagtap's avatar sjagtap

Sun pharama business component use for multitancancy server

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@187652 ce508802-f39f-4f6c-b175-0d175dae99d5
parent c4d3f6b6
package ibase.webitm.ejb.SOD;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import javax.ejb.Stateless;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@Stateless
public class SodRiskEJB extends ValidatorEJB implements SodRiskEJBLocal,
SodRiskEJBRemote {
public String wfValData(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String editFlag,
String xtraParams) throws RemoteException {
System.out.println("In wfValData");
Document currDom = null;
Document hdrDom = null;
Document allDom = null;
String errString = "";
try {
System.out.println("currFrmXmlStr..." + currFrmXmlStr);
System.out.println("hdrFrmXmlStr..." + hdrFrmXmlStr);
System.out.println("allFrmXmlStr..." + allFrmXmlStr);
if ((currFrmXmlStr != null) && (currFrmXmlStr.trim().length() != 0)) {
currDom = parseString(currFrmXmlStr);
}
if ((hdrFrmXmlStr != null) && (hdrFrmXmlStr.trim().length() != 0)) {
hdrDom = parseString(hdrFrmXmlStr);
}
if ((allFrmXmlStr != null) && (allFrmXmlStr.trim().length() != 0)) {
allDom = parseString(allFrmXmlStr);
}
errString = validate(currDom, hdrDom, allDom, objContext, editFlag,
xtraParams);
} catch (Exception e) {
System.out
.println("Exception : [PurcRCPIc][wfValData(String currFrmXmlStr)] : ==>\n"
+ e.getMessage());
}
return errString;
}
public String validate(Document currDom, Document hdrDom, Document allDom,
String objContext, String editFlag, String xtraParams)
throws RemoteException, ITMException {
System.out.println("In validate Data");
GenericUtility genericUtility = GenericUtility.getInstance();
ArrayList errList = new ArrayList();
ArrayList errFields = new ArrayList();
int count = 0;
String errString = "";
String errorType = "";
String errCode = "";
StringBuffer errStringXml = new StringBuffer(
"<?xml version=\"1.0\"?>\r\n<Root><Errors>");
String childNodeName = "";
String sql = "";
int noOfChilds = 0;
ResultSet rs1 = null;
String loginSiteCode = "";
Connection conn = null;
PreparedStatement pstmt1 = null;
int currentFormNo = 0;
int cnt = 0;
ConnDriver connDriver = null;
Node childNode = null;
try {
System.out.println("************xtraParams*************"
+ xtraParams);
connDriver = new ConnDriver();
//Comment by sanket J on 06/JUL/2018 for multitancy server
//conn = connDriver.getConnectDB("DriverITM");
conn = getConnection();
String userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams,
"loginCode");
loginSiteCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams,
"loginSiteCode");
System.out.println("**************loginCode************" + userId);
if ((objContext != null) && (objContext.trim().length() > 0)) {
currentFormNo = Integer.parseInt(objContext);
}
NodeList parentList = currDom.getElementsByTagName("Detail"
+ currentFormNo);
NodeList childList = null;
System.out.println("hdrDom..." + hdrDom);
switch (currentFormNo) {
case 1:
childList = parentList.item(0).getChildNodes();
noOfChilds = childList.getLength();
for (int ctr = 0; ctr < noOfChilds; ctr++) {
childNode = childList.item(ctr);
if (childNode.getNodeType() != 1) {
continue;
}
childNodeName = childNode.getNodeName();
System.out.println("Editflag =" + editFlag);
System.out.println("parentList = " + parentList);
System.out.println("childList = " + childList);
System.out.println("childNodeName: " + childNodeName);
if ("risk_id".equalsIgnoreCase(childNodeName)) {
if (childNode.getFirstChild() == null) {
System.out.println("VTBLKRSKID");
errList.add("VTBLKRSKID");
errFields.add(childNodeName.toLowerCase());
break;
} else {
String risk_id = checkNull(genericUtility
.getColumnValue("risk_id", currDom));
System.out.println("editFlag in risk_id:"
+ editFlag);
if (editFlag.equalsIgnoreCase("A")) {
String sql1 = "SELECT COUNT(*) AS COUNT FROM SOD_RISK WHERE risk_id = ?";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, risk_id);
rs1 = pstmt1.executeQuery();
if (rs1.next()) {
count = rs1.getInt("COUNT");
}
System.out.println("Count: " + count);
if (count > 0) {
errList.add("VTINVRSKID");
errFields.add(childNodeName.toLowerCase());
break;
}
System.out.println("risk_id.length(): "
+ risk_id.length());
if (risk_id.length() > 6) {
errList.add("VTINVRSKLT");
errFields.add(childNodeName.toLowerCase());
break;
}
}
}
}
if ("risk_lvl".equalsIgnoreCase(childNodeName)) {
if (childNode.getFirstChild() == null) {
System.out.println("VTBLKRSKLV");
errList.add("VTBLKRSKLV");
errFields.add(childNodeName.toLowerCase());
break;
} else {
String risk_lvl = checkNull(genericUtility
.getColumnValue("risk_lvl", currDom));
String sql1 = "SELECT COUNT(*) AS COUNT FROM GENCODES WHERE FLD_NAME = 'SOD_RISK_LVL' AND MOD_NAME='W_SOD_RISK' AND FLD_VALUE = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1, risk_lvl.trim());
rs1 = pstmt1.executeQuery();
if (rs1.next()) {
count = rs1.getInt("COUNT");
}
System.out.println("Count: " + count);
if (count <= 0) {
errList.add("VTINVRSKLV");
errFields.add(childNodeName.toLowerCase());
break;
}
}
}
}
}
int errListSize = errList.size();
cnt = 0;
String errFldName = null;
if ((errList != null) && (errListSize > 0)) {
for (cnt = 0; cnt < errListSize; cnt++) {
errCode = (String) errList.get(cnt);
errFldName = (String) errFields.get(cnt);
errString = getErrorString(errFldName, errCode, userId);
errorType = errorType(conn, errCode);
if (errString.length() > 0) {
String bifurErrString = errString.substring(
errString.indexOf("<Errors>") + 8,
errString.indexOf("<trace>"));
bifurErrString = bifurErrString
+ errString.substring(
errString.indexOf("</trace>") + 8,
errString.indexOf("</Errors>"));
errStringXml.append(bifurErrString);
System.out.println("errStringXml .........."
+ errStringXml);
errString = "";
}
if (errorType.equalsIgnoreCase("E")) {
break;
}
}
errList.clear();
errList = null;
errFields.clear();
errFields = null;
errStringXml.append("</Errors></Root>\r\n");
} else {
errStringXml = new StringBuffer("");
}
errString = errStringXml.toString();
} catch (Exception e) {
System.out.println("Exception in StockTransferGrlIC == >");
e.printStackTrace();
throw new ITMException(e);
} finally {
try {
if (rs1 != null) {
rs1.close();
rs1 = null;
}
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
if ((conn != null) && (!conn.isClosed()))
conn.close();
} catch (Exception e) {
System.out.println("Exception :InvBankDtlsIC:wfValData :==>\n"
+ e.getMessage());
throw new ITMException(e);
}
}
return errString;
}
private String errorType(Connection conn, String errorCode) {
String msgType = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = " SELECT MSG_TYPE FROM MESSAGES WHERE MSG_NO = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, errorCode);
rs = pstmt.executeQuery();
while (rs.next())
msgType = rs.getString("MSG_TYPE");
} catch (Exception ex) {
ex.printStackTrace();
try {
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (Exception e) {
e.printStackTrace();
}
} finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return msgType;
}
public void callPstRs(PreparedStatement pstmt, ResultSet rs) {
try {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
private String checkNull(String inputVal) {
if (inputVal == null) {
inputVal = "";
}
return inputVal;
}
}
\ No newline at end of file
package ibase.webitm.ejb.SOD;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import ibase.webitm.ejb.ValidatorLocal;
@Local
public interface SodRiskEJBLocal extends ValidatorLocal {
public String wfValData(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String editFlag,
String xtraParams) throws RemoteException ;
}
package ibase.webitm.ejb.SOD;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import ibase.webitm.ejb.ValidatorRemote;
@Remote
public interface SodRiskEJBRemote extends ValidatorRemote{
public String wfValData(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String editFlag,
String xtraParams) throws RemoteException ;
}
This diff is collapsed.
package ibase.webitm.ejb.SOD;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
@Local
public interface SodRuleEJBLocal extends ValidatorLocal {
public String wfValData(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String editFlag,
String xtraParams) throws RemoteException;
public String itemChanged(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String currentColumn,
String editFlag, String xtraParams) throws RemoteException,
ITMException;
}
package ibase.webitm.ejb.SOD;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
@Remote
public interface SodRuleEJBRemote extends ValidatorRemote{
public String wfValData(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String editFlag,
String xtraParams) throws RemoteException ;
public String itemChanged(String currFrmXmlStr, String hdrFrmXmlStr,
String allFrmXmlStr, String objContext, String currentColumn,
String editFlag, String xtraParams) throws RemoteException,
ITMException;
}
-- dummy itm2menu entires sql
INSERT
INTO ITM2MENU
(
APPLICATION,
LEVEL_1,
LEVEL_2,
LEVEL_3,
LEVEL_4,
LEVEL_5,
WIN_NAME,
DESCR,
COMMENTS,
MENU_PATH,
ICON_PATH,
CLOSE_ICON,
OPEN_ICON,
OBJ_TYPE,
CHG_DATE,
CHG_TERM,
CHG_USER,
MOB_DEPLOY,
DEFAULT_STATE,
DEF_ACTION
)
VALUES
(
'SYS',
8,12,0,0,0,
'w_d_sod_profile_wise_conflict_report',
'Profile Wise Sod Conflict Report',
NULL,
'SYS.8.12.0.0.0',
NULL,
NULL,
NULL,
'R',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
);
/
commit;
/
INSERT
INTO ITM2MENU
(
APPLICATION,
LEVEL_1,
LEVEL_2,
LEVEL_3,
LEVEL_4,
LEVEL_5,
WIN_NAME,
DESCR,
COMMENTS,
MENU_PATH,
ICON_PATH,
CLOSE_ICON,
OPEN_ICON,
OBJ_TYPE,
CHG_DATE,
CHG_TERM,
CHG_USER,
MOB_DEPLOY,
DEFAULT_STATE,
DEF_ACTION
)
VALUES
(
'SYS',
8,10,0,0,0,
'w_d_sod_report',
'SOD report',
NULL,
'SYS.8.10.0.0.0',
NULL,
NULL,
NULL,
'R',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
);
/
commit;
/
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
-------------Added on 19/01/16----------
-------------Added by Azhar-------------
Update pophelp set sql_str = 'SELECT substr(win_name,3,100) as OBJ_NAME,DESCR FROM ITM2MENU WHERE APPLICATION = ''?'' and win_name is not null and win_name not in (''-'')' where field_name = 'OBJ_NAME' and mod_name = 'W_SOD_RULE';
Update pophelp set sql_str = 'SELECT substr(win_name,3,100) as OBJ_NAME,DESCR FROM ITM2MENU where win_name is not null and win_name not in (''-'')' where field_name = 'OBJ_NAME_CONFLICT' and mod_name = 'W_SOD_RULE';
Update pophelp set sql_input = null where field_name = 'OBJ_NAME_CONFLICT' and mod_name = 'W_SOD_RULE';
--Added by Tajuddin as per discussion with Rahul Sir
ALTER TABLE SOD_RULE_DTL MODIFY DESCR VARCHAR2(100);
commit;
----------------------------------------------------------------
alter table sod_risk add (quality_Risk char(1), business_risk char(1));
commit;
------added by saurabh on 06/06/16----------------------------
delete from pophelp where field_name like 'OBJ_NAME%' and mod_name='W_SOD_RULE';
commit;
----------------------------------
insert into pophelp (FIELD_NAME,MOD_NAME,SQL_STR,DW_OBJECT,MSG_TITLE,WIDTH,HEIGHT,CHG_DATE,CHG_USER,CHG_TERM,DIST_OPT,FILTER_STRING,SQL_INPUT,DEFAULT_COL,POP_ALIGN,QUERY_MODE,PAGE_CONTEXT,POPHELP_COLS,POPHELP_SOURCE,MULTI_OPT,HELP_OPTION,POPUP_XSL_NAME,AUTO_FILL_LEN)
values ('OBJ_NAME','W_SOD_RULE','SELECT substr(win_name,3,100) || '' ~ '' || MENU_PATH as NEW_Menu , substr(win_name,3,100) as OBJ_NAME, DESCR FROM ITM2MENU WHERE APPLICATION = ''?'' and win_name is not null and win_name not in (''-'')',null,'Object Name',0,0,sysdate,'NPRC ','NPRC ','1',null,':1.application',0,null,null,null,null,null,null,'1',null,null);
commit;
insert into pophelp (FIELD_NAME,MOD_NAME,SQL_STR,DW_OBJECT,MSG_TITLE,WIDTH,HEIGHT,CHG_DATE,CHG_USER,CHG_TERM,DIST_OPT,FILTER_STRING,SQL_INPUT,DEFAULT_COL,POP_ALIGN,QUERY_MODE,PAGE_CONTEXT,POPHELP_COLS,POPHELP_SOURCE,MULTI_OPT,HELP_OPTION,POPUP_XSL_NAME,AUTO_FILL_LEN)
values ('OBJ_NAME_CONFLICT','W_SOD_RULE','SELECT substr(win_name,3,100) || '' ~ '' || MENU_PATH as NEW_Menu , substr(win_name,3,100) as OBJ_NAME, DESCR FROM ITM2MENU WHERE win_name is not null and win_name not in (''-'')',null,'Object Name',0,0,sysdate,'NPRC ','NPRC ','1',null,null,0,null,null,null,null,null,null,'1',null,null);
commit;
----------------------------------
insert into obj_itemchange (OBJ_NAME,FORM_NO,FIELD_NAME,MANDATORY) values ('sod_rule','2 ','obj_name',null);
insert into obj_itemchange (obj_name,form_no,field_name,mandatory) values ('sod_rule','2 ','obj_name_conflict',null);
commit;
-----------------------------
\ No newline at end of file
create or replace
function ddf_get_profile_id(usercode users.code%type,usersitecode user_site.site_code%type)
return varchar2 is
vuser_profile_id varchar2(20);
begin
select user_site.profile_id into vuser_profile_id
from USER_SITE,
USERS
where users.code = usercode
AND user_site.site_code = usersitecode
AND users.code =user_site.user_id;
if vuser_profile_id is not null then
select user_site.profile_id into vuser_profile_id from user_site,users
where users.code = usercode
AND user_site.site_code = usersitecode
AND users.code =user_site.user_id;
else
select users.profile_id into vuser_profile_id from users
where users.code = usercode;
end if;
return vuser_profile_id;
exception
when no_data_found
then
select users.profile_id into vuser_profile_id from users
where users.code = usercode
AND users.usr_lev in (0,1);
return vuser_profile_id;
when others then
vuser_profile_id := 'NOMARF';
return vuser_profile_id;
end;
\ No newline at end of file
create or replace
function ddf_get_sod_comparestrings(string1 user_rights.rights%type,
string2 sod_rule_dtl.right_char_conflict%type) return varchar2 is
i number := 0;
l_count number := 0;
str1 varchar2(20);
str2 varchar2(20);
str3 varchar2(20);
pstr varchar2(20);
begin
str1 := ddf_get_sod_sort_string(replace(string1,',',''));
str2 := ddf_get_sod_sort_string(replace(string2,',',''));
if substr(str1,1,1) = '*' then
pstr := 'conflict';
else
--while (i < length(str1))
for i in 1..length(str1)
loop
--i := i+1;
dbms_output.put_line('i:'||i);
l_count := instr(str2,substr(str1,i,1),1);
dbms_output.put_line('l_count:'||l_count);
if l_count > 0
then pstr := 'conflict';
else pstr := null;
end if;
exit when l_count > 0;
end loop;
end if;
return pstr;
end ;
/
commit;
/
\ No newline at end of file
create or replace
function ddf_get_sod_sort_string(p_string in varchar2) return varchar deterministic
as
rv varchar2(4000);
ch varchar2(1);
type vcArray is table of varchar(4000) index by varchar2(1);
sorted vcArray;
key varchar2(1);
begin
for i in 1 .. length(p_string)
loop
ch := substr(p_string, i, 1);
if (sorted.exists(ch))
then
sorted(ch) := sorted(ch) || ch;
else
sorted(ch) := ch;
end if;
end loop;
rv := '';
key := sorted.FIRST;
WHILE key IS NOT NULL LOOP
rv := rv || sorted(key);
key := sorted.NEXT(key);
END LOOP;
return rv;
end;
/
commit;
/
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment