PHP Notice: Undefined index: ID
PHP Notice: Undefined index: F
PHP Notice: Undefined index: P
<?php
//Parametros para el comando Open Document (Documento, Formato, Parámetros)
$id_documento=$_GET["ID"];
$id_formato=$_GET["F"];
$id_parametros=$_GET["P"];
if ($id_formato <> 'P')
{
if ($id_formato <> 'E')
{$id_formato = 'H';}
}
$id_parametros = str_replace("!","&",$id_parametros);
//Se define el URL del comando Open Document para abrir un dashboard o reporte concatenando los parámetros utilizados para el caso.
$opendocurl = 'http://server:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&sOutputFormat='.$id_formato.'&iDocID='.$id_documento.'&'.$id_parametros; //URL OpenDocument del elemento (dashboard, Wei Report, etc)
//Se despliega el url para validación que este bien formado
echo $opendocurl;
// URL de los REST WebServices de la plataforma de BI
$url = 'http://server:6405/biprws/logon/long';
// XML que contiene la estructura para agregarla al header del mensaje HTTP, de esta forma se pasan las credenciales para generar el token de sesión, antes de llamar al OpenDocument
$theData = '<attrs>
<attr name="userName" type="string">usuario</attr>
<attr name="password" type="string">contraseña</attr>
<attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
</attrs>';
$header_array = array("Accept: application/xml","Content-Type: application/xml");
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array);
curl_setopt($curl, CURLOPT_POSTFIELDS, $theData);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$head = curl_exec($curl);
preg_match('/X-SAP-LogonToken:.+}/',$head,$coincidencia);
preg_match('/".+/',$coincidencia[0],$coincidencia);
// Se extrae el token de la respuesta del POST
$token = substr($coincidencia[0],1);
// Se agrega el token al url del OpenDocument previamente preparado con los parámetros
$opendocurl = $opendocurl.'&token='.urlencode($token);
// Se llama al OpenDocument para abrir el documento de la plataforma de BI
header( 'Location: '.$opendocurl ) ;
curl_close($curl);
?>