Export from HANA XS Repository - Complete DU2 with all services and metadata
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
var slLib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||
var datetimelib = $.import("uniorg.libs", "datetime");
|
||||
|
||||
var outMessages = [];
|
||||
var output = {};
|
||||
var outMsg = {};
|
||||
var outStatus = "success";
|
||||
var myDebug = {};
|
||||
var SESSIONID = "";
|
||||
var NODEID = "";
|
||||
var slLoggedIn = false;
|
||||
var UserName = slDest.uniorg_eon_nice_v1_UserName;
|
||||
var UserPass = slDest.uniorg_eon_nice_v1_UserPass;
|
||||
var UserComp = slDest.uniorg_eon_nice_v1_UserComp;
|
||||
var ContractUDOID = "EON_CONTR";
|
||||
|
||||
var service_version = '1.0';
|
||||
|
||||
var debugLevel = 0;
|
||||
switch ($.request.parameters.get("debug")) {
|
||||
case "true":
|
||||
case "yes":
|
||||
case "1":
|
||||
debugLevel = 1;
|
||||
break;
|
||||
case "full":
|
||||
case "2":
|
||||
debugLevel = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (debugLevel > 1) {
|
||||
myDebug.requestParams = $.request.parameters;
|
||||
}
|
||||
|
||||
function setOutputMessage() {
|
||||
output.status = outStatus;
|
||||
if (debugLevel > 0) {
|
||||
output.debugInfos = myDebug;
|
||||
}
|
||||
output.messages = outMessages;
|
||||
$.response.contentType = "application/json";
|
||||
$.response.setBody(JSON.stringify(output));
|
||||
$.response.status = $.net.http.OK;
|
||||
}
|
||||
|
||||
function exceptionHandler(ex) {
|
||||
if (outMsg.method) {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
outMsg = {};
|
||||
outMsg.method = "exceptionHandler";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = ex.toString();
|
||||
if (debugLevel > 0) {
|
||||
outMsg.exceptionInfo = {};
|
||||
outMsg.exceptionInfo.name = ex.name;
|
||||
outMsg.exceptionInfo.message = ex.message;
|
||||
outMsg.exceptionInfo.fileName = ex.fileName;
|
||||
outMsg.exceptionInfo.lineNumber = ex.lineNumber;
|
||||
outMsg.exceptionInfo.columnNumber = ex.columnNumber;
|
||||
outMsg.exceptionInfo.stack = ex.stack;
|
||||
//outMsg.exceptionInfo.source = ex.toSource();
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
output.status = outStatus;
|
||||
if (debugLevel > 0) {
|
||||
output.debugInfos = myDebug;
|
||||
}
|
||||
output.messages = outMessages;
|
||||
|
||||
var errbody = JSON.stringify(output);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
|
||||
try {
|
||||
if (slLoggedIn) {
|
||||
slLib.SLLogout(SESSIONID, NODEID);
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function slLogin() {
|
||||
var loginResult = false;
|
||||
var loginInfo = {};
|
||||
loginInfo.UserName = UserName;
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
// SL LOGIN
|
||||
var response = slLib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
for (var j in response.cookies) {
|
||||
if (response.cookies[j].name == "B1SESSION") {
|
||||
SESSIONID = response.cookies[j].value;
|
||||
//output.SessionID = SESSIONID;
|
||||
} else if (response.cookies[j].name == "ROUTEID") {
|
||||
NODEID = response.cookies[j].value;
|
||||
//output.NodeID = NODEID;
|
||||
}
|
||||
}
|
||||
|
||||
var loginResponse;
|
||||
try {
|
||||
loginResponse = JSON.parse(response.body.asString());
|
||||
} catch (e) {
|
||||
loginResponse = response.body.asString();
|
||||
}
|
||||
|
||||
if (debugLevel > 1) {
|
||||
myDebug.loginInfo = loginInfo;
|
||||
}
|
||||
myDebug.loginResponse = loginResponse;
|
||||
if (response.status === 200) {
|
||||
loginResult = true;
|
||||
} else {
|
||||
outMsg = {};
|
||||
outMsg.method = "login";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = loginResponse;
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
}
|
||||
return loginResult;
|
||||
}
|
||||
|
||||
function getViewData() {
|
||||
var rsMsg = {};
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
'SELECT "DocEntry", "ObjType", "DocNum", U_EON_CONTRACT, U_EON_PERIOD_FROM, U_EON_PERIOD_TO, "DocDate", "DocTotal" from A19753_EON_P01.V_UO_LOST_CONTRACT_HISTORY_RECORDS';
|
||||
pstmt = conn.prepareStatement(query);
|
||||
var rs = pstmt.executeQuery();
|
||||
var rsmd = rs.getMetaData();
|
||||
var colCount = rsmd.getColumnCount();
|
||||
var rc = 0;
|
||||
var rows = [];
|
||||
while (rs.next()) {
|
||||
var row = {};
|
||||
rc++;
|
||||
for (var c = 1; c <= colCount; c++) {
|
||||
var colName = rsmd.getColumnName(c);
|
||||
var colType = rsmd.getColumnTypeName(c);
|
||||
switch (colType) {
|
||||
case 'TINYINT':
|
||||
case 'SMALLINT':
|
||||
case 'INT':
|
||||
case 'INTEGER':
|
||||
case 'BIGINT':
|
||||
row[colName] = rs.getInteger(c);
|
||||
break;
|
||||
case 'DECIMAL':
|
||||
row[colName] = rs.getDecimal(c);
|
||||
break;
|
||||
case 'REAL':
|
||||
case 'DOUBLE':
|
||||
case 'FLOAT':
|
||||
row[colName] = rs.getDouble(c);
|
||||
break;
|
||||
case 'NVARCHAR':
|
||||
case 'NCHAR':
|
||||
case 'SHORTTEXT':
|
||||
row[colName] = rs.getNString(c);
|
||||
break;
|
||||
case 'VARCHAR':
|
||||
case 'CHAR':
|
||||
row[colName] = rs.getString(c);
|
||||
break;
|
||||
case 'BINARY':
|
||||
case 'VARBINARY':
|
||||
row[colName] = rs.getBString(c);
|
||||
break;
|
||||
case 'DATE':
|
||||
row[colName] = rs.getDate(c);
|
||||
break;
|
||||
case 'TIME':
|
||||
row[colName] = rs.getTime(c);
|
||||
break;
|
||||
case 'TIMESTAMP':
|
||||
row[colName] = rs.getTimestamp(c);
|
||||
break;
|
||||
case 'CLOB':
|
||||
row[colName] = rs.getClob(c);
|
||||
break;
|
||||
case 'NCLOB':
|
||||
case 'TEXT':
|
||||
row[colName] = rs.getNClob(c);
|
||||
break;
|
||||
case 'BLOB':
|
||||
row[colName] = rs.getBlob(c);
|
||||
break;
|
||||
case 'SECONDDATE':
|
||||
row[colName] = rs.getSeconddate(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
rows.push(row);
|
||||
}
|
||||
rsMsg.rowCount = rc;
|
||||
rsMsg.rows = rows;
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
return rsMsg;
|
||||
}
|
||||
|
||||
function repairContractHistory() {
|
||||
var docData = getViewData();
|
||||
myDebug.docData = docData;
|
||||
var startTS = new Date();
|
||||
if (docData.rowCount === 0) {
|
||||
outMsg = {};
|
||||
outMsg.method = "updateContract";
|
||||
outMsg.result = "nothing to do";
|
||||
outMessages.push(outMsg);
|
||||
} else {
|
||||
slLogin();
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "updateContract";
|
||||
outMsg.results = [];
|
||||
|
||||
docData.rows.forEach(function(row) {
|
||||
var result = {};
|
||||
var slContractObj = {
|
||||
EON_CONTRACT_BILLCollection: [
|
||||
{
|
||||
U_PERIOD_FROM: datetimelib.convertToISODate(row.U_EON_PERIOD_FROM),
|
||||
U_PERIOD_TO: datetimelib.convertToISODate(row.U_EON_PERIOD_TO),
|
||||
U_DOCDATE: datetimelib.convertToISODate(row.DocDate),
|
||||
U_DOCTOTAL: row.DocTotal,
|
||||
U_OBJTYPE: row.ObjType,
|
||||
U_DOCENTRY: row.DocEntry,
|
||||
U_DOCNUM: row.DocNum
|
||||
}
|
||||
]
|
||||
};
|
||||
result.slContractObj = slContractObj;
|
||||
var responseContract = slLib.patchDynamicEntity('EON_CONTR', row.U_EON_CONTRACT, JSON.stringify(slContractObj), SESSIONID, NODEID,
|
||||
false);
|
||||
if (responseContract.status >= 200 && responseContract.status < 300) {
|
||||
result.status = 'success';
|
||||
} else {
|
||||
result.success = 'failure';
|
||||
outStatus = 'error';
|
||||
if (responseContract.body) {
|
||||
try {
|
||||
result.slResponse = JSON.parse(responseContract.body.asString());
|
||||
} catch (e) {
|
||||
result.slResponse = responseContract.body.asString();
|
||||
}
|
||||
} else {
|
||||
result.slResponse = responseContract;
|
||||
}
|
||||
}
|
||||
|
||||
outMsg.results.push(result);
|
||||
});
|
||||
output.durationMilliseconds = new Date() - startTS;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
try {
|
||||
if (slLoggedIn) {
|
||||
slLib.SLLogout(SESSIONID, NODEID);
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
||||
//testmain();
|
||||
|
||||
// begin org
|
||||
try {
|
||||
repairContractHistory();
|
||||
} catch (e) {
|
||||
exceptionHandler(e);
|
||||
}
|
||||
setOutputMessage();
|
||||
//ende org
|
||||
Reference in New Issue
Block a user