Files
luos/workflow/engine/classes/triggers/class.pmSharepointFunctions.php
2011-09-05 12:47:25 -04:00

372 lines
13 KiB
PHP
Executable File

<?php
/**
* class.pmTrSharepoint.pmFunctions.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.
* *
*/
////////////////////////////////////////////////////
// pmTrSharepoint PM Functions
//
// Copyright (C) 2007 COLOSA
//
// License: LGPL, see LICENSE
////////////////////////////////////////////////////
/**
* Sharepoint Triggers that allow ProcessMaker to perform common DWS actions
* @class pmTrSharepoint
* @name Sharepoint DWS Triggers v. 0.1
* @icon /images/triggers/sharepoint.gif
* @className class.pmTrSharepoint.pmFunctions.php
*/
/**
* @method
*
* Create a DWS in Sharepoint server
*
* @name createDWS
* @label Create a DWS in Sharepoint server
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $name | Name of DWS
* @param string | $users | Relevent User of DWS
* @param string | $title | Title of DWS
* @param string | $documents | Document that need to be attached to DWS
*
* @return string | $result | Response
*
*/
function createDWS($sharepointServer, $auth, $name="", $users="", $title="", $documents="", $result="") {
//print "Trigger: createDWS";
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$beforeResult = $pmTrSharepoint->createDWS($name, $users, $title, $documents);
return $beforeResult;
}
/**
* @method
*
* Delete a DWS in Sharepoint server
*
* @name deleteDWS
* @label Delete a DWS in Sharepoint server
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | Name of DWS to be deleted
*
* @return string | $result | Response
*
*/
function deleteDWS($sharepointServer, $auth, $dwsname) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$beforeResult = $pmTrSharepoint->deleteDWS($dwsname);
$newResult = $beforeResult->DeleteDwsResult;
if($newResult == '<Result/>')
return "Successfully deleted the DWS";
else
return "Error in deleting the DWS";
}
/**
* @method
*
* Create a folder in a DWS
*
* @name createFolderDWS
* @label Create a folder in a DWS
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | Name of DWS
* @param string | $dwsFolderName | Name of DWS folder
*
* @return string | $result | Response
*
*/
function createFolderDWS($sharepointServer, $auth, $dwsname, $dwsFolderName) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->createFolderDWS($dwsname,$dwsFolderName);
var_dump($result);
$newResult = $result->CreateFolderResult;
var_dump($newResult);
if(isset($newResult))
{
if($newResult == '<Result/>')
return "Folder is created";
else
return "Folder could not be created";
}
}
/**
* @method
*
* Delete a DWS folder
*
* @name deleteFolderDWS
* @label Delete a DWS folder
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | Name of DWS
* @param string | $delDwsFolderName | Name of DWS folder to be deleted
*
* @return string | $result | Response
*
*/
function deleteFolderDWS($sharepointServer, $auth, $dwsname, $folderName) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->deleteFolderDWS($dwsname, $folderName);
$newResult = $result->DeleteFolderResult;
if(isset($newResult))
{
if($newResult == '<Result/>')
return "Folder is deleted";
else
return "Folder could not be deleted";
}
}
/**
* @method
*
* Get DWS data
*
* @name getDWSData
* @label Get DWS data
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $newFileName | File Name
* @param string | $dwsname | Name of DWS
* @param string | $lastUpdate | LastUpdate
*
* @return string | $result | Response
*
*/
function getDWSData($sharepointServer, $auth, $newFileName, $dwsname, $lastUpdate) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$resultDWSData = $pmTrSharepoint->getDWSData($newFileName, $dwsname, $lastUpdate);
if($resultDWSData)
return $resultDWSData;
else
return "There was some error while getting the DWS Data";
}
/**
* @method
*
* Get DWS meta data
*
* @name getDWSMetaData
* @label Get DWS meta data
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $newFileName | File Name
* @param string | $dwsname | Name of DWS
* @param string | $id | ID
*
*
* @return string | $result | Response
*
*/
function getDWSMetaData($sharepointServer, $auth, $newFileName, $dwsname, $id) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->getDWSMetaData($newFileName, $dwsname, $id);
//$newResult = $result->GetDwsMetaDataResult;
if(isset($result))
{
return $result;
}
else
{
return "Document workspace Meta-data not found";
}
}
/**
* @method
*
* Copy/Upload Documents to DWS folder
*
* @name uploadDocumentDWS
* @label Copy/Upload Documents to DWS folder
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | DWS name in which you want to Upload the Folder
* @param string | $folderName | Folder Name, dont provide folder name in case upload is in "Shared Directory"
* @param string | $sourceUrl | Absolute path of the file to upload
* @param string | $filename | Name of the File to Upload
*
* @return string | $result | Response
*
*/
function uploadDocumentDWS($sharepointServer, $auth, $dwsname, $folderName, $sourceUrl, $filename) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$beforeResult = $pmTrSharepoint->uploadDocumentDWS($dwsname, $folderName, $sourceUrl, $filename);
return $beforeResult;
}
/**
* @method
*
* Download documents from DWS folder
*
* @name downloadDocumentDWS
* @label Download DWS Documents
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | Name of DWS
* @param string | $fileName | File to be downloaded
* @param string | $fileLocation | Location to be downloaded into
*
* @return string | $result | Response
*
*/
function downloadDocumentDWS($sharepointServer, $auth, $dwsname, $fileName, $fileLocation) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->downloadDocumentDWS($dwsname, $fileName, $fileLocation);
if(isset($result))
return "Document downloaded";
else
return "Document cannot be downloaded";
}
/**
* @method
*
* Get DWS Folder items
*
* @name getDWSFolderItems
* @label Get DWS Folder items
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $dwsname | Name of the DWS
* @param string | $strFolderUrl | Folder URL
*
* @return string | $result | Response
*
*/
function getDWSFolderItems($sharepointServer, $auth,$dwsname, $strFolderUrl) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->getDWSFolderItems($dwsname, $strFolderUrl);
if(isset($result))
return $result;
else
return "Folder does not exists";
}
/**
* @method
*
* Get DWS Document Versions
*
* @name getDWSDocumentVersions
* @label Get DWS Document Versions
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $newFileName | Name of New File
* @param string | $dwsname | Name of DWS
*
* @return string | $result | Response
*
*/
function getDWSDocumentVersions($sharepointServer, $auth, $newFileName, $dwsname) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->getDWSDocumentVersions($newFileName, $dwsname);
if(isset($result->GetVersionsResult))
{
/*
* Code to get the Document's Version/s
*/
$xml = $result->GetVersionsResult->any;// in Result we get string in Xml format
$xmlNew = simplexml_load_string($xml);// used to parse string to xml
$xmlArray = @json_decode(@json_encode($xmlNew),1);// used to convert Objects to array
$resultCount = count($xmlArray['result']);
for($i=0;$i<$resultCount;$i++)
{
$version[] =$xmlArray['result'][$i]['@attributes']['version'];
}
$serializeResult = serialize($version);// serializing the Array for Returning.
return $serializeResult;
}
else
return "No version found";
}
/**
* @method
*
* Delete DWS Document Version
*
* @name deleteDWSDocumentVersion
* @label Delete DWS Document Version
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $newFileName | Name of the file
* @param string | $dwsname | Name of DWS
* @param string | $versionNum | Version No.
*
* @return string | $result | Response
*
*/
function deleteDWSDocumentVersion($sharepointServer, $auth, $newFileName, $dwsname, $versionNum) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->deleteDWSDocVersion($newFileName, $dwsname, $versionNum);
return $result;
}
/**
* @method
*
* Delete all DWS Document Versions
*
* @name deleteDWSAllDocumentVersion
* @label Delete all DWS Document Versions
*
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
* @param string | $auth | Valid Auth string to connect to server | user:password
* @param string | $newFileName | Name of File
* @param string | $dwsname | Name of DWS
*
* @return string | $result | Response
*
*/
function deleteDWSAllDocumentVersion($sharepointServer, $auth, $newFileName, $dwsname) {
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
$result = $pmTrSharepoint->deleteAllDWSDocVersion($newFileName, $dwsname);
return $result;
}