167 lines
5.1 KiB
PHP
167 lines
5.1 KiB
PHP
<?php
|
|
|
|
$PARENT_SCRIPTNAME='reposting_ab2.php';
|
|
include_once 'script_auth.php';
|
|
|
|
include_once 'class/PregReplaceCallbackClass.php';
|
|
include_once 'init/initialisation_parameter.php';
|
|
include_once 'headerFile.php';
|
|
include_once 'incl.php';
|
|
|
|
$ora_obj = new ORAConnectionClass('init/ORA_INIT.php');
|
|
$ora_res = $ora_obj->ORA_PConnect();
|
|
if (!$ora_res){
|
|
echo "<BR>Error : " . htmlspecialchars($ora_obj->last_error_msg) . "<br>";
|
|
exit();
|
|
}
|
|
|
|
initAjaxParamTemplate();
|
|
|
|
if ($_REQUEST['action'] == "DoPost") {
|
|
$result = do_post($ora_obj);
|
|
} elseif ($_REQUEST['action'] == "initForm") {
|
|
$result = initForm($ora_obj);
|
|
} elseif ($_REQUEST['action'] == "DoCheck") {
|
|
$result = do_check($ora_obj);
|
|
} else {
|
|
$result = -1;
|
|
}
|
|
|
|
echo $result;
|
|
unset($_SESSION['TEMPLATE_ARRAY_ADDR']);
|
|
if ($ora_obj->conn) {
|
|
$ora_obj->ORA_Close();
|
|
#echo "connection closed.<br>";
|
|
}
|
|
|
|
function initAjaxParamTemplate() {
|
|
$ajaxParamTemplate['PARAM'] = <<< params
|
|
<table width="100%" cellpadding="2" cellspacing="1" border="0" style="layout:auto">
|
|
<tr>
|
|
<td align=left class="orangetitle" nowrap>POSTING DATA TAMBAHAN AB2 TO STAGING</td>
|
|
</tr>
|
|
<tr>
|
|
<td align=left>
|
|
<form name="rep_param" onsubmit="javascript:return false;">
|
|
<table width="65%" cellpadding="2" cellspacing="1" border="0" style="layout:auto" class="font11">
|
|
<tr>
|
|
<td colspan=3>
|
|
Proses Tambahan Load Data dari External ke Staging<BR>
|
|
untuk data - data yang belum diload
|
|
</td>
|
|
</tr>
|
|
<tr><td> </td></tr>
|
|
<tr>
|
|
<td align=left>Tabel AB2 yang akan diproses</td>
|
|
<td>:</td>
|
|
<td align=left>
|
|
<input type="text" name="TABLE_NAME" note="Table AB2" ATTRIB="SM" display="block" dbname="TABLE_NAME" class="font11" onblur='javascript:chgAttr(rep_param.CHECK)';>
|
|
</td>
|
|
<td>
|
|
<button id="CHECK_BTN" name="CHECK" dbname="" display="no" onclick="javascript:doCheck();">
|
|
<img src="images/button_execute.gif" width="12" height="12">
|
|
<span class="font10"> Check Data</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
<tr><td> </td></tr>
|
|
<tr>
|
|
<td>
|
|
<button id="PROCESS_BTN" name="PROCESS" dbname="" display="no" onclick="javascript:doPost();">
|
|
<img src="images/button_execute.gif" width="12" height="12">
|
|
<span class="font10"> Process</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
params;
|
|
|
|
$_SESSION['TEMPLATE_ARRAY_ADDR'] = &$ajaxParamTemplate;
|
|
}
|
|
|
|
|
|
function initForm(&$ora_obj) {
|
|
$templObj = new PregReplaceCallbackClass('');
|
|
$templObj->SetTemplateArray('TEMPLATE_ARRAY_ADDR');
|
|
|
|
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
|
|
$templObj->SetFormatName('PARAM');
|
|
$result = $templObj->PregReplaceCallback();
|
|
return $result;
|
|
}
|
|
|
|
function do_post(&$ora_obj) {
|
|
$field = explode('^', $_REQUEST["param"]);
|
|
$num_field = count($field);
|
|
|
|
for ($i=0;$i<$num_field-1;$i++) {
|
|
$val_sep = '*';
|
|
list($field_name, $field_value) = split("[$val_sep]", $field[$i]);
|
|
$param["$field_name"] = $field_value;
|
|
$_REQUEST["$field_name"] = $field_value;
|
|
}
|
|
|
|
$_REQUEST["USER_ID"] = $_SESSION["KD_USER"];
|
|
$_REQUEST["IPNUM"] = gethostbyname($_SERVER['REMOTE_ADDR']);
|
|
$_REQUEST["PAGENAME"] = 'reposting_ab2.php';
|
|
|
|
$package = 'MAP_'.strtoupper($_REQUEST['TABLE_NAME']).'_STAGING';
|
|
if ($ora_obj->checkProcedure($package, 'MAIN', 'DWH') > 0) {
|
|
//$ora_obj->SetServerOutput(true);
|
|
$ora_obj->set_auto_commit();
|
|
$proc_call = 'DWH.'.$package.'.MAIN';
|
|
|
|
$stmt = "begin {$proc_call}(:retVar); end;";
|
|
$stmt_res = oci_parse($ora_obj->conn,$stmt);
|
|
oci_bind_by_name($stmt_res, ":retVar",$retVal, 4000, SQLT_CHR);
|
|
if (!oci_execute($stmt_res, $ora_obj->execution_mode)) {
|
|
$e = oci_error($stmt_res);
|
|
$retVal = split("\n",$e['message']);
|
|
}
|
|
if (!is_null($stmt_res)):oci_free_statement($stmt_res);endif;
|
|
//$ora_obj->GetDbmsOutput();
|
|
//$ora_obj->SetServerOutput(false);
|
|
} else {
|
|
$retVal = 'NOT_RUN';
|
|
}
|
|
return $retVal;
|
|
}
|
|
|
|
function do_check(&$ora_obj) {
|
|
$paramSQL =
|
|
"SELECT (CASE WHEN i.method = 'I' THEN 'Insert'
|
|
WHEN i.method = 'TI' THEN 'Truncate Insert'
|
|
WHEN i.method = 'IU' THEN 'Insert Update'
|
|
ELSE ''
|
|
END ) method
|
|
FROM external_data_tab i
|
|
WHERE i.tab_name = '{$_REQUEST['TABLE_NAME']}'";
|
|
|
|
$paramArray = $ora_obj->ORA_SelectData($paramSQL,null,null,OCI_FETCHSTATEMENT_BY_ROW);
|
|
if ($ora_obj->nrows>0) {
|
|
$method = $paramArray[0]['METHOD'];
|
|
$result = 'Tabel '.$_REQUEST['TABLE_NAME'].'_EXT <BR> Posting Method: '.$method.'<BR><BR>';
|
|
$paramSQL = 'SELECT MIN(podtpo) min_date, MAX(podtpo) max_date, COUNT(1) cnt_trans FROM '.$_REQUEST['TABLE_NAME'].'_ext';
|
|
$paramArray = $ora_obj->ORA_SelectData($paramSQL,null,null,OCI_FETCHSTATEMENT_BY_ROW);
|
|
|
|
if ($ora_obj->nrows>0) {
|
|
$min_date = $paramArray[0]['MIN_DATE'];
|
|
$max_date = $paramArray[0]['MAX_DATE'];
|
|
$cnt_trans = $paramArray[0]['CNT_TRANS'];
|
|
$result .= 'Jumlah Record: '.$cnt_trans.'<BR>';
|
|
$result .= 'Data Transaksi dari tanggal: '.$min_date.' s/d '.$max_date;
|
|
} else {
|
|
$result = 'Tidak Ada Data';
|
|
}
|
|
} else {
|
|
$result = 'Tabel tidak terdaftar';
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
|
|
?>
|