• WebService PHP

  • Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #25857  by jcorral
 
Hola,

no se si estoy haciendo algo mal, estoy probando y he creado una carpeta, he subido a esta un fichero PDF, tengo instalado Apache para ejecutar PHP he creado un fichero php con el código que existe en la web con el título "List folders and documents" y recibo el siguiente error:
Code: Select all
Token: a5535bb3-74c7-438e-be20-bba0d4224c1f
Path: /okm:root
[FOLDER] Path: /okm:root/Prueba, Author: okmAdmin

( ! ) Notice: Undefined property: stdClass::$return in C:\wamp\www\sislex\listar.php on line 38
Call Stack
#	Time	Memory	Function	Location
1	0.0010	690816	{main}( )	..\listar.php:0
Gracias
 #25870  by jllort
 
Nos tendrías que decir que intentas hacer y también poder ver el código fuente para tener una idea aproximada de que esta pasando en la linea 38
 #25877  by jcorral
 
es el código que existe en el apartado de OpenKM "PHP Client"
Code: Select all
<?php
  function printFolder($folder) {
    echo "[FOLDER] Path: ".$folder->path.", Author: ".$folder->author."<br>";
  }
 
  function printDocument($document) {
    echo "[DOCUMENT] Path: ".$document->path.", Author: ".$document->author.", Size: ".$document->actualVersion->size."<br>";
  }
 
  // Register WSDL
  $OKMAuth = new SoapClient('http://localhost:8081/OpenKM/services/OKMAuth?wsdl');
  $OKMDocument = new SoapClient('http://localhost:8081/OpenKM/services/OKMDocument?wsdl');
  $OKMFolder = new SoapClient('http://localhost:8081/OpenKM/services/OKMFolder?wsdl');
  $path = '/okm:root';
 
  // Login
  $loginResp = $OKMAuth->login(array('user' => 'okmAdmin', 'password' => 'admin'));
  $token = $loginResp->return;
  echo "Token: ".$token."<br>";
  echo "Path: ".$path."<br>";
 
  // List folders
  $getChildrenResp = $OKMFolder->getChildren(array('token' => $token, 'fldPath' => $path));
  $folderArray = $getChildrenResp->return;
 
  if ($folderArray) {
    if (is_array($folderArray)) {
      foreach ($folderArray as $folder) {
        printFolder($folder);
      }
    } else {
      printFolder($folderArray);
    }
  }
 
  // List documents
  $getChildrenResp = $OKMDocument->getChildren(array('token' => $token, 'fldPath' => $path));
  $documentArray = $getChildrenResp->return;
 
  if ($documentArray) {
    if (is_array($documentArray)) {
      foreach ($documentArray as $document) {
        printDocument($document);
      }
    } else {
      printDocument($documentArray);
    }
  }
 
  // Logout
  $OKMAuth->logout(array('token' => $token));
?>
 #25881  by jllort
 
Esto esta perfecto no tiene ningún problema, si quieres puedes probarlo en nuestra demo online demo.openkm.com ( te he adaptado el código fuente ). El problema yo creo que esta en otro sitio, contra que versión de OpenKM lo estas probando y que versión de php tienes, porque aquí debe estar el fondo de la cuestión.

En la linea 38 hace esto $documentArray = $getChildrenResp->return; ( lo único que se me pasa por la cabeza es que sea null ? y no creo que eso sea la naturaleza del fallo, en el catalina.log te aparece algun error ?)
Code: Select all
<?php
function printFolder($folder) {
echo "[FOLDER] Path: ".$folder->path.", Author: ".$folder->author."<br>";
}

function printDocument($document) {
echo "[DOCUMENT] Path: ".$document->path.", Author: ".$document->author.", Size: ".$document->actualVersion->size."<br>";
}

// Register WSDL
$OKMAuth = new SoapClient('http://demo.openkm.com/OpenKM/services/OKMAuth?wsdl');
$OKMDocument = new SoapClient('http://demo.openkm.com/OpenKM/services/OKMDocument?wsdl');
$OKMFolder = new SoapClient('http://demo.openkm.com/OpenKM/services/OKMFolder?wsdl');
$path = '/okm:root';

// Login
$loginResp = $OKMAuth->login(array('user' => 'user1', 'password' => 'pass1'));
$token = $loginResp->return;
echo "Token: ".$token."<br>";
echo "Path: ".$path."<br>";

// List folders
$getChildrenResp = $OKMFolder->getChildren(array('token' => $token, 'fldPath' => $path));
$folderArray = $getChildrenResp->return;

if ($folderArray) {
	if (is_array($folderArray)) {
		foreach ($folderArray as $folder) {
			printFolder($folder);
		}
	} else {
		printFolder($folderArray);
	}
}

// List documents
$getChildrenResp = $OKMDocument->getChildren(array('token' => $token, 'fldPath' => $path));
$documentArray = $getChildrenResp->return;

if ($documentArray) {
	if (is_array($documentArray)) {
		foreach ($documentArray as $document) {
			printDocument($document);
		}
	} else {
		printDocument($documentArray);
	}
}

// Logout
$OKMAuth->logout(array('token' => $token));
?>
 #25899  by jcorral
 
OpenKM 6.2.21 y PHP 5.3, el código que tu me comentas funciona perfectamente, pero no entiendo porque el mio no cuando es igual salvo que apunta a mi tomcat local, falla al hacer el ECHO del documento, no se si tendrá algo que ver, he instalado el OpenKM y solamente he creado una carpeta y subido un documento nada mas.

Un Saludos
 #25907  by jllort
 
Tienes instalada una trial verdad ? Tendrías que mirar si en el log del servidor aparece algun error ( catalina.log )
 #25909  by jcorral
 
tengo una community, va a ser mejor idea que me instale una máquina desde cero e instalar solo OpenKM y Apache y ver que pasa.

Muchas gracias
 #25915  by jllort
 
La 6.2.21 no es una community es un trial seguro que te caducará a los 30 días. La versión community actual es una 6.2.5

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.