Page tree
Skip to end of metadata
Go to start of metadata
 

Mit der Veröffentlichung von TecArt Version 4.10 wird diese Version des REST Webservice nicht weiterentwickelt, steht aber zu Zwecken der Abwärtskompatibilität weiter zur Verfügung. 

With the release of TecArt version 4.10 this version of REST Webservice will no longer receive further development, yet will stay available for reasons of downward compatibility.

1. Aufruf URL

http://hostname/dirname/rest/index.php/docs

e.g. https://test.tecart-system.de/rest/index.php/docs

2. Klasse

crmdocs

3. Methoden

3.1. crmaddTree

Syntax:

int crmaddTree( array(string $session_id, string $module, array $tree, int $user_id, int $object_id, int $ext_id) )

Beschreibung:

Erstellt oder lädt einen ganzen Dateibaum hoch. Gibt 1 für Erfolg oder 0 für einen teilweise Erfolg zurück. crmaddTree hört nicht auf, falls Fehler auftreten (z.B. einige Teile der neuen Struktur bereits vorhanden sind), sondern gibt 0 zurück.

$module (obligatorisch): siehe module bei crmgetTree

$tree (obligatorisch):

- enthält ein tree Array

$user_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $module auf user_docs gesetzt wird

$object_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt wird: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$ext_id (optional, 0 wenn nicht genutzt):

- Externe ID ( ab Version 4.2 )

Eigenschaften von tree Array:

Type(Length)            Eigenschaft                      Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                            relativer Pfad des neuen Dokuments / Verzeichnisses
text                    $content                         Base64-kodierter (optional: komprimierter) Dokumenteninhalt
int                     $is_path                         auf 0 gesetzt, wenn der Pfad ein Dokument enthält
                                                         auf 1 gesetzt, wenn der Pfad ein Verzeichnis enthält
int                     $is_compressed                   auf 1 gesetzt, wenn der Inhalt mit GZIP komprimiert wurde 
                                                         (Inhalt muss nach dem Komprimieren Base64-kodiert werden!)

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
 
	/* @var $docs crmdocs */
	$docs = new crm_rest_api("http://hostname/dirname/rest/index.php/docs");
 
	/**
	- in diesem Beispiel werden drei Verzeichnisbäume und zwei Dokumente erstellt
	- das Dokument "new_document_a" enthält einen unkomprimierten, Base64 kodierten String
	- das Dokument "new_document_b" enthält einen GZIP / Base64 kodierten String
	- Hinweis: alle Verzeichnisse werden rekursiv erstellt
	**/
   
	// setup two directory and two document Objekte, based on the crmFileTreeItem instances
 
	$new_document_a              = array();
	$new_document_a['path']      = utf8_encode("/new_path/inner_path/new_document_a.doc");
	$new_document_a['content']   = 
		"e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmdGFiNzA4e1xmb250dGJse1xmMFxmcm9tYW5cZmNoYXJzZXQwIFRpb".
		"WVzIE5ldyBSb21hbjt9e1xmMVxmbmlsXGZjaGFyc2V0MCBSYWF2aTt9fQ0Ke1xjb2xvcnRibCA7XHJlZDI1NVxncmVlbjBcYmx1ZTA7fQ0Ke1wqXGdlbmVyYXRvciBNc2Z0ZWRpdCA1LjQxLjIx".
		"LjI1MDA7fVx2aWV3a2luZDRcdWMxXHRyb3dkXHRyZ2FwaDcwXHRybGVmdC03MFx0cnJoODg1XHRycGFkZGw3MFx0cnBhZGRyNzBcdHJwYWRkZmwzXHRycGFkZGZyMw0KXGNsYnJkcmxcYnJkcnc".
		"xNVxicmRyc1xjbGJyZHJ0XGJyZHJ3MTVcYnJkcnNcY2xicmRyclxicmRydzE1XGJyZHJzXGNsYnJkcmJcYnJkcncxNVxicmRycyBcY2VsbHgzNTMwXGNsYnJkcmxcYnJkcncxNVxicmRyc1xjbG".
		"JyZHJ0XGJyZHJ3MTVcYnJkcnNcY2xicmRyclxicmRydzE1XGJyZHJzXGNsYnJkcmJcYnJkcncxNVxicmRycyBcY2VsbHg3NjcwXHBhcmRcaW50YmxcbGFuZzEwMzFcZjBcZnMyNCBIYWxsbyBkZ".
		"FxjZWxsXGYxXGZzOTYgVHNlXGYwXGZzMjQgdFxjZWxsXHJvd1x0cm93ZFx0cmdhcGg3MFx0cmxlZnQtNzBcdHJyaDEyNDVcdHJwYWRkbDcwXHRycGFkZHI3MFx0cnBhZGRmbDNcdHJwYWRkZnIz".
		"DQpcY2xicmRybFxicmRydzE1XGJyZHJzXGNsYnJkcnRcYnJkcncxNVxicmRyc1xjbGJyZHJyXGJyZHJ3MTVcYnJkcnNcY2xicmRyYlxicmRydzE1XGJyZHJzIFxjZWxseDM1MzBcY2xicmRybFx".
		"icmRydzE1XGJyZHJzXGNsYnJkcnRcYnJkcncxNVxicmRyc1xjbGJyZHJyXGJyZHJ3MTVcYnJkcnNcY2xicmRyYlxicmRydzE1XGJyZHJzIFxjZWxseDc2NzBccGFyZFxpbnRibFxjZjFcYiBTZG".
		"ZzZnNkZlxjZWxsXGNmMFxiMCBTZnNmZGRzc2Rkc3Nkc2RzZHNkXGNlbGxccm93XHRyb3dkXHRyZ2FwaDcwXHRybGVmdC03MFx0cnJoMjM0MFx0cnBhZGRsNzBcdHJwYWRkcjcwXHRycGFkZGZsM".
		"1x0cnBhZGRmcjMNClxjbGJyZHJsXGJyZHJ3MTVcYnJkcnNcY2xicmRydFxicmRydzE1XGJyZHJzXGNsYnJkcnJcYnJkcncxNVxicmRyc1xjbGJyZHJiXGJyZHJ3MTVcYnJkcnMgXGNlbGx4MzUz".
		"MFxjbGJyZHJsXGJyZHJ3MTVcYnJkcnNcY2xicmRydFxicmRydzE1XGJyZHJzXGNsYnJkcnJcYnJkcncxNVxicmRyc1xjbGJyZHJiXGJyZHJ3MTVcYnJkcnMgXGNlbGx4NzY3MFxwYXJkXGludGJ".
		"sXGNmMVxiIFNmZnNkZnNkXHBhcg0KS2xsamtsamtcY2VsbFxjZjBcYjAgRGdmZ2ZkZ2RnXHBhcg0KXGNlbGxccm93XHBhcmRccGFyDQp9DQoA";
 
 	$new_document_b                  = array();
	$new_document_b['path']          = utf8_encode("/new_path/inner_path/inner_path2/test.txt");
	$new_document_b['content']       = "H4sIAAAAAAAAA3NJLFbILC5RSM3MUwhJLS4BAIufOksQAAAA";
	$new_document_b['is_compressed'] = 1;
   
	$new_path_a                = array();
	$new_path_a['path']        = utf8_encode("/new_path_a/emty_path");
	$new_path_a['is_path']     = 1;
   
	$new_path_b                = array();
	$new_path_b['path']        = utf8_encode("new_path_b/emty_path/inner_path");
	$new_path_b['is_path']     = 1;  
 
	$filetree                  = array ($new_document_a, $new_document_b, $new_path_a, $new_path_b);
 
	// send the request and fetch the result
	// $result = 0 => partially errors, z.B. if a part of the new created structure already exists
	// $result = 1 => no errors
 
	$params = array('session_id' => $session_id, 'module' => 'contacts', 'tree' => $filetree, 'user_id' => -1, 'object_id' => 4978);
	$result = $docs->crmaddTree($params);
 
	echo $result;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.2. crmcopyDocument

Syntax:

int crmcopyDocument( array(string $session_id, string $from_module, string $from_document_path, int $from_user_id, int $from_object_id, string $to_module, string $to_document_path, int $to_user_id, int $to_object_id, int $copy_rights)

Beschreibung:

Kopiert ein Verzeichnis (einschließlich aller Unterverzeichnisse) oder ein einziges Dokument von einem Ort zum anderen und liefert 1 für den Erfolg. Eine Multi-Modul Kopier- Aktion wird unterstützt, die Zugriffsrechte des kopierten Dokuments werden ebenfalls kopiert (optional). Im Falle eines Fehlers wird ein SOAP-Fehler mit Detailinformationen zurückgesandt.

$from_module (obligatorisch): siehe module at crmgetTree

$from_document_path (obligatorisch):

- der relative Pfad des Quell- Dokuments / Verzeichnisses

- UTF-8 kodierter String wird erwartet

$from_user_id (optional, -1 wenn ungenutzt):

- muss festgelegt sein, wenn Sie $from_module auf user_docs setzen

$from_object_id (optional, -1 wenn ungenutzt):

- muss festgelegt sien, wenn Sie $from_module auf einen der folgenden Werte setzen: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$to_module (obligatorisch): siehe module at crmgetTree

$to_document_path (obligatorisch):

- der relative Pfad des Ziel-Dokuments / Verzeichnisses

- UTF-8 kodierter String wird erwartet

$to_user_id (optional, -1 wenn ungenutzt):

- muss gesetzt sein wenn $to_module auf user_docs gesetzt wird

$to_object_id (optional, -1 wenn ungenutzt):

- muss gesetzt sein wenn $to_module auf einen der folgenden Werte gesetzt wird: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des entsprechenden Objekts

$copy_rights (optional, -1 wenn ungenutzt):

- wenn auf 1 gesetzt werden alle Dokumentenberechtigungen mitkopiert(Benutzer-und Gruppen Berechtigungen werden kopiert)

- wenn auf -1 gesetzt werden Dokumentenberechtigungen aus dem übergeordneten Element des $to_document_path vererbt

Beispiel:

<?php
 
try {
	// copy the entire directory directory_a from the contact with the ID 4878 to a new directory in the user docs of user with ID 4
	// keep the permission setting of each file / directory
	$original_doc_full_name	= utf8_encode("directory_a");
	$copy_doc_full_name		= utf8_encode("directory_b");
 
	$params = array(
		'session_id'			=> $session_id,
		'from_module'			=> 'contacts',
		'from_document_path' 	=> $original_doc_full_name, 
		'from_user_id'			=> -1,
		'from_object_id'		=> 4978,
		'to_module'				=> 'user_docs',
		'to_document_path'		=> $copy_doc_full_name, 
		'to_user_id'			=> 4,
		'to_object_id'			=> -1,
		'copy_rights'			=> 1
	);
 
	$result = $docs->crmcopyDocument($params);
 
	echo($result);
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.3. crmcreateDirectory

Syntax:

int crmcreateDirectory( array(string $session_id, string $module, string $directory_path, int $user_id, int $object_id, int $ext_id) )

Beschreibung:

Erstellt ein neues Verzeichnis( rekursiv ) in dem angegenebem Pfad ($directory_path) und gibt 1 beim Erfolg zurück.

$module (obligatorisch): siehe module bei crmgetTree

$directory_path (obligatorisch):

- Der relative Pfad des neuen Verzeichnisses, das erstellt werden soll

- UTF-8 kodierter String wird erwartet

$user_id (optional, -1 wenn ungenutzt):

- muss gesetzt sein wenn $module auf user_docs gesetzt wird

$object_id (optional, -1 wenn ungenutzt):

- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt wird: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$ext_id (optional, 0 wenn nicht genutzt):

- Externe ID ( ab Version 4.2 )

$subscription_type (optional, 0 wenn nicht genutzt):

- Wert für das Abonnement (0 = kein Abo, 1 = bei jeder Änderung Benachrichtigen, 2 = einmal pro Tag benachrichtigen)

$sync_doc (optional, 0 wenn nicht genutzt):

- 1, wenn erstellter Ordner als zum synchronisieren markiert werden soll

Beispiel:

<?php
 
try {
	// creates a new directory "newdir" in the root path of the contact documents from contact ID 4978
	$params = array(
		'session_id'		=> $session_id,
		'module'			=> 'contacts',
		'directory_path' 	=> utf8_encode("newdir"),
		'user_id'			=> -1,
		'object_id'			=> 4978
	);
   
	$result = $docs->crmcreateDirectory($params);
   
	echo $result;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.4. crmcreateDocument

Syntax:

int crmcreateDocument( array(string $session_id, string $module, string $doc_path, string $draft_path, int $user_id, int $object_id, string $draft_contact, int $draft_project, int $ext_id) )

Beschreibung:

Erstellt ein Dokument aus einem bestehenden Entwurf und liefert 1 für Erfolg.

$module (obligatorisch): siehe crmgetTree

$doc_path (obligatorisch):

- der relative Pfad des neuen Dokument, einschließlich Verzeichnis-und Dateinamen

- die eingestellte Verzeichnispfad muss gültig sein, mit crmcreateDocument werden keine Verzeichnisse erstellt

- UTF-8 kodierter String wird erwartet

$draft_path (obligatorisch):

- derrelativePfad zum Entwurf des Dokuments, einschließlich Verzeichnis-und Dateinamen

- UTF-8 kodierter String wird erwartet

$user_id (optional, -1 wenn ungenutzt):

- muss festgelegt sein, wenn Sie das Modul user_docs verwenden

- legt das hochgeladene Dokument in den eigenen Dokumente des jeweiligen Benutzers ab

$object_id (optional, -1 wenn ungenutzt):

- muss festgelegt sein, wenn Sie das Modul zu einem den folgenden Werte setzen: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$draft_contact (optional, -1 wenn ungenutzt):

- die Kontakt / Person-ID die durch den Entwurf Parser verwendet wird (Kontakt-Platzhalter in dem Entwurf werden mit den Informationen aus des ausgewählten Kontakts / Persons ersetzt)

- Format: Contact-Id:Person-Id

$draft_project (optional, -1 wenn ungenutzt):

- die Projekt-ID die durch den Entwurf Parser verwendet wird (Projekt-Platzhalter in dem Entwurf werden mit den Informationen aus dem ausgewählten Projekt ersetzt)

$ext_id (optional, 0 wenn nicht genutzt):

- Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	//Creates a new document based on a draft for contact 4978:
	$draft_doc_full_name	= utf8_encode("Mappe1.xls");
	$new_doc_full_name		= utf8_encode("Document.xls");
 
	$params = array(
		'session_id'		=> $session_id,
		'module'			=> 'contacts',
		'document_path'		=> utf8_encode("Mappe1.xls"), 
		'draft_path'		=> utf8_encode("Document.xls"),
		'user_id'			=> -1,
		'object_id'			=> 4978,
		'draft_contact'		=> '4978:4829', 
		'draft_project'		=> 362
	);
 
	$result = $client_docs->crmcreateDocument($params);
 
	echo $result;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.5. crmdeleteDocument

Syntax:

int crmdeleteDocument( array(string $session_id, string $module, string $document_path, int $user_id, int $object_id) )

Beschreibung:

Löscht ein einzelnes Dokument oder einen ganzen Dateibaum inklusive aller Kindelemente und gibt 1 zurück. Das gelöschte Dokument wird in den Papierkorb des authentifizierten Nutzers abgelegt. Hinweis: Dateien mit dem gleichen Namen können nicht zweimal gelöscht werden, stellen Sie also sicher, dass der Benutzer-Papierkorb leer ist, bevor Sie crmdeleteDocument ausführen.

$module (obligatorisch): siehe module bei crmgetTree

$document_path (obligatorisch):

- der relative Pfad des Dokuments / Verzeichnisses, das Sie löschen möchten

- UTF-8 kodierten String wird erwartet

$user_id (optional, -1 wenn ungenutzt):

- muss gesetzt sein, wenn $module auf user_docs gesetzt ist

$object_id (optional, -1 wenn ungenutzt):

- muss festgelegt sein, wenn Sie $module zu einem der folgenden Werte setzen: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

Beispiel:

<?php
 
try {
	// delete (move to trash) the directory "temp" including all its childs from the own docs of user 4
	$doc_full_name	= utf8_encode("temp");
	$params			= array(
		'session_id'	=> $session_id,
		'module'		=> 'contacts',
		'document_path'	=> utf8_encode("temp"),
		'user_id'		=> 4,
		'object_id'		=> -1
	);
   
	$result = $docs->crmdeleteDocument($params);
   
	echo $result;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.6. crmemptyTrash

Syntax:

int crmemptyTrash( array(string $session_id) )

Beschreibung:

Leert den Papierkorb des authentifizierten Benutzers und gibt beim Erfolg 1 zurück.

Beispiel:

<?php
 
try {
	// empty the trash of the session user
	$success = $docs->crmemptyTrash( array('session_id' => $session_id) );
 
	if($success == 1) {
		echo 'Empty trash success';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.7. crmgetDocument

Syntax:

stdClass crmgetDocument( array(string $session_id, string $module, string $doc_path, int $user_id, int $object_id, int $compress))

Beschreibung:

Gibt detaillierte Informationen über ein einzelnes Verzeichnis oder Dokument. Wenn ein Dokument angefordert wird, wird der Inhalt dieses Dokuments zurückgegeben (Base64 kodiert und - optional - GZIP komprimiert).

$module (obligatorisch): siehe crmgetTree

$doc_path (obligatorisch):

- der relative Pfad des angeforderten Verzeichnisses oder Dokuments

- UTF-8 kodierter String wird erwartet

$user_id (optional, -1 wenn nicht verwendet):

- muss festgelegt sein, wenn Sie das Modul user_docs verwenden

- gibt die Dokumente des TecArt-System Benutzer mit der angegebenen Benutzer-ID

$object_id (optional, -1 wenn nicht verwendet):

- muss festgelegt sein, wenn Sie eines der folgenden Module verwenden: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$compress (optional, -1 wenn nicht verwendet):

- wenn auf 1 gesetzt wird der Inhalt des Dokuments GZIP-komprimiert (Spezifikationen: http://www.faqs.org/rfcs/rfc1952 )

Eigenschaften der zurückgegebenen Array :

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                     relativer Pfad zu dem Dokument
string(255)             $title                    Titel des Dokuments
string(255)             $keywords                 Dokument Stichwort
int                     $category                 ID einer einzigen Kategorie
int                     $filesize                 die Dateigröße des Dokuments (0 wenn Verzeichnis)
int                     $dtime                    Unix-Timestamp der Dokumenten- Löschung
int                     $duser                    Userid der Dokumenten- Löschung
int                     $ctime                    Unix-Timestamp der letzten Dokumentenbearbeitung
int                     $cuser                    Userid der letzten Dokumentenbearbeitung
int                     $otime                    Unix-Timestamp des letzte Dokument Downloads / Öffnens
int                     $ouser                    Userid des letzte Dokument Downloads / Öffnens
int                     $etime                    Unix-Timestamp der letzten Dokumentenerstellung
int                     $euser                    Userid der Dokumentenerstellung
int                     $itime                    Unix-Timestamp der letzten Indexierung des Dokuments
int                     $iuser                    Userid der letzten Indexierung des Dokuments
int                     $pid                      Projekt ID
int                     $ext_id                   Externe ID ( ab Version 4.2 )
int                     $edit                     1 wenn das Dokument derzeit verwendet wird, 0 wenn nicht
int                     $edituser                 Userid des Benutzers der das Dokument bearbeitet
int                     $authuser                 Userid des authentifizierten Benutzers
int                     $version                  Version
int                     $folder                   0 wenn es ein Dokument ist, 1 wenn es ein Ordner ist 
string(255)             $mimetype                 der Mimetyp des Dokuments
string(255)             $modul                    der Name des Moduls 
text                    $content                  base 64-kodierter (optional: komprimierter) Dokumenteninhalt, nur mit crmgetDocument genutzt
array                   $group_permission         Array mit $group_permission Objekte
array                   $user_permission          Array mit $user_permission Objekte

Eigenschaften von $group_permission and $user_permission Array:

Type(Length)         Eigenschaft           Beschreibung
---------------------------------------------------------------------------------------------
int                  $id                User - or group ID of the crmPermissionItem's values
int                  $read              1 = Leseberechtigung, 0 = keine Leseberechtigung, -1 = keine Leseberechtigung und keine Vererbung der Gruppenrechte
int                  $write             1 = Schreibrechte, 0 = keine Schreibrechte, -1 = keine Schreibrechte und kein Vererbung der Gruppenrechte
int                  $delete            1 = Löschrechte, 0 = keine Löschrechte, -1 = keine Löschrechte und keine Vererbung der Gruppenrechte

Beispiel:

<?php
 
try {
	/**
	 * this Beispiel fetches all the information from a document
	 * the document is located in the archive of the contact with ID 4978
	 */
 
	// the TecArt-System module
	$module   = "contacts";
	// the full path to the document
	$docpath  = utf8_encode("directory/Creek.jpg");
	// no user ID needed when using not the own docs
	$userid   = -1;
	// the contact ID is 4878 
	$objectid = 4978;
 	// the document should be compressed
	$compress = 1;
 
	$params = array(
		'session_id'	=> $session_id,
		'module'		=> $module,
		'doc_path'		=> $docpath,
		'user_id'		=> $userid,
		'object_id'		=> $objectid,
		'compress'		=> $compress
	);
 
	// send the request and fetch the result   
	$result = $docs->crmgetDocument($params);
 
	// handle an Beispiel return value
	// is the current dataset a directory?
	if ($result->folder == 1) {
		echo $result->path . " is an DIRECTORY!<br>";
	} 
	else {
		echo $result->path . " is an FILE!<br>";
	}    
 
	// show the user permissions for the current dataset    
	foreach ($result->user_permission as $perm) {
		//display the read, write and delete rights for the current user
		echo "User with ID " .$perm->id . ": can read - " . ($perm->read == 1 ? "YES" : "NO");
		echo "User with ID " .$perm->id . ": can write - " . ($perm->write == 1 ? "YES" : "NO");
		echo "User with ID " .$perm->id . ": can delete - " . ($perm->delete == 1 ? "YES" : "NO");
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 



3.8. crmgetChangedDocsLimit

(Version >= 4.6.19678)

Syntax:

stdClass crmgetChangedDocsLimit( array(string $session_id, string $module[, int $lastmodified, int $limit, int $offset, int $object_id, boolean $include_folders]) )

Beschreibung: Liefert ein Standardobjekt mit Dokument-Objekten zurück, welches mit $limit und $offset für seitenweise Auflistung und $lastmodified eingeschränkt werden kann.

  • Parameter $module ist obligatorisch: siehe crmgetTree

  • Parameter $lastmodified ist ein Unix Timestamp und spezifiziert den Zeitpunkt der letzten Änderung, ab dem Dokumente zurückgegeben werden sollen.

  • Parameter $limit beschränkt Gesamtanzahl der Rückgabe auf ganzzahligen Wert

  • Parameter $offset spezifiziert, wieviele Einträge des Resultsets übersprungen werden sollen

  • Parameter $object_id spezifiziert eine bestimmte Modulobjekt ID, z.B. Kontakt ID oder Aufgaben ID

  • Parameter $include_folders bestimmt, ob auch Ordner in der Rückgabe enthalten sein sollen

Eigenschaften der zurückgegebenen Dokument-Objekte :

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                     relativer Pfad zu dem Dokument
string(255)             $title                    Titel des Dokuments
string(255)             $filename                 Dateiname des Dokuments
string(255)             $keywords                 Dokument Stichwort
int                     $category                 ID einer einzigen Kategorie
int                     $filesize                 die Dateigröße des Dokuments (0 wenn Verzeichnis)
int                     $dtime                    Unix-Timestamp der Dokumenten- Löschung
int                     $duser                    Userid der Dokumenten- Löschung
int                     $ctime                    Unix-Timestamp der letzten Dokumentenbearbeitung
int                     $cuser                    Userid der letzten Dokumentenbearbeitung
int                     $otime                    Unix-Timestamp des letzte Dokument Downloads / Öffnens
int                     $ouser                    Userid des letzte Dokument Downloads / Öffnens
int                     $etime                    Unix-Timestamp der letzten Dokumentenerstellung
int                     $euser                    Userid der Dokumentenerstellung
int                     $itime                    Unix-Timestamp der letzten Indexierung des Dokuments
int                     $iuser                    Userid der letzten Indexierung des Dokuments
int                     $pid                      Projekt ID
int                     $ext_id                   Externe ID ( ab Version 4.2 )
int                     $edit                     1 wenn das Dokument derzeit verwendet wird, 0 wenn nicht
int                     $edituser                 Userid des Benutzers der das Dokument bearbeitet
int                     $version                  Version
int                     $folder                   0 wenn es ein Dokument ist, 1 wenn es ein Ordner ist 
string(255)             $mimetype                 der Mimetyp des Dokuments
string(255)             $modul                    der Name des Moduls 

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	/* @var $logon crmlogon */
    $logon = new crm_rest_api('https://<mytecartcrm>/rest/index.php/logon');
    $session_id = $logon->crmLogin(array(
        'username'      => '<login>',
        'password'      => '<password>',
        'response_type' => 'JSON'
    ));
     
    /* @var $docs crmdocs */
    $docs   = new crm_rest_api('http://<mytecartcrm>/rest/index.php/docs');
    $params = array(
        'session_id'      => $session_id,            // session
        'module'          => 'common',               // fetch from common documents
        'lastmodified'    => (time() - (3*86400)),   // documents modified within last 3 days
        'limit'           => 50,                     // max. 50 documents
        'offset'          => 0,                      // page 1, no offset
        'object_id'       => 0,                      // no distinct module specified, hence no ID
        'include_folders' => true                    // include folders in resultset
    );
     
    $result = $docs->crmgetChangedDocsLimit($params);
    // convert stdClass object to array
    $result = get_object_vars($result);
 
    echo '<pre>'.print_r($result,true).'</pre>';
 
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.9. crmgetTree

Syntax:

array crmgetTree( array(string $session_id, string $module, string $root_path, int $recursive, int $timestamp, int $user_id, int $object_id, int $reable_only) )

Beschreibung:

Gibt ein Array der angegebenen Dokument Tree-Objekte (Dokumente und Ordner). Die zurückgegebenen Dokumente müssen durch das TecArt-System zuerst indiziert werden.

$module (obligatorisch): Diese Variable muss einen der folgenden Strings enthalten:

- offers: Dokumente vom ausgewähltem Angebot (das Setzen der Variable $object_id ist obligatorisch)
- contracts: Dokumente vom ausgewähltem Vertrag (das Setzen der Variable $object_id ist obligatorisch)
- calls: Dokumente vom ausgewähltem Anruf (das Setzen der Variable $object_id ist obligatorisch)
- todo: Dokumente von der ausgewählten Aufgabe (das Setzen der Variable $object_id ist obligatorisch)
- dates: Dokumente vom ausgewähltem Termin (das Setzen der Variable $object_id ist obligatorisch)
- projects: Dokumente vom ausgewähltem Projekt (das Setzen der Variable $object_id ist obligatorisch)
- contacts: Dokumente vom ausgewähltem Kontakt(das Setzen der Variable $object_id ist obligatorisch)
- tickets: Dokumente vom ausgewähltem Ticket(das Setzen der Variable $object_id ist obligatorisch)
- articles: Dokumente vom ausgewähltem Artikel (das Setzen der Variable $object_id ist obligatorisch)
- orders: Dokumente vom ausgewähltem Auftrag (das Setzen der Variable $object_id ist obligatorisch)
- notes: Dokumente vom ausgewählter Notiz (das Setzen der Variable $object_id ist obligatorisch)
- payments: Dokumente vom ausgewählter Zahlung (das Setzen der Variable $object_id ist obligatorisch)
- invoices: Dokumente vom ausgewählter Ausgangsrechnung (das Setzen der Variable $object_id ist obligatorisch)
- purchases: Dokumente vom ausgewählter Eingangsrechnung (das Setzen der Variable $object_id ist obligatorisch)
- ressources: Dokumente vom ausgewählter Ressource (das Setzen der Variable $object_id ist obligatorisch)
- forum: Dokumente vom ausgewähltem Forum-Thema (das Setzen der Variable $object_id ist obligatorisch)
- clientaccounts: Dokumente vom ausgewähltem Rechnungskonto (das Setzen der Variable $object_id ist obligatorisch)
- deliveries: Dokumente vom ausgewähltem Lieferschein (das Setzen der Variable $object_id ist obligatorisch)
- vouchers: Dokumente vom ausgewählter Gutschrift (das Setzen der Variable $object_id ist obligatorisch)
- admonitions: Dokumente vom ausgewählter Mahnung (das Setzen der Variable $object_id ist obligatorisch)
- cashjournals: Dokumente vom ausgewähltem Kassenbuch-Eintrag (das Setzen der Variable $object_id ist obligatorisch)
- user_docs: Dokumente vom ausgewähltem Nutzer (das Setzen der Variable $user_id ist obligatorisch)
- common: Dokumente aus den gemeinsamen Dokumenten
- domaintemplates: domaintemplate Dokumente
- drafts: Dokumenten-Vorlagen
- dashboard: Startbildschirm-Vorlagen
- ticketdrafts: Ticket-Vorlagen
- folderdrafts: Ordner-Vorlagen
- mailtemplates: E-Mail-Vorlagen
- reportingtemplates: Auswertungen-Vorlagen
- billingdrafts: Systemvorlagen für Rechnungs-Module
- billingemaildrafts: E-Mail-Vorlagen für Rechnungs-Module
- ressourcetemplates: ressourcetemplates Dokumente
- contacttemplates: contacttemplates Dokumente
- ordertemplates: persontemplates Dokumente
- persontemplates: persontemplates Dokumente
- projecttemplates: projecttemplates Dokumente
- contracttemplates: contracttemplates Dokumente
- offertemplates: offertemplates Dokumente
- tickettemplates: tickettemplates Dokumente
- articletemplates: articletemplates Dokumente
- invoicetemplates: invoicetemplates Dokumente
- admonitiontemplates: admonitiontemplates Dokumente
- deliverytemplates: deliverytemplates Dokumente
- vouchertemplates: vouchertemplates Dokumente
- client_accounttemplates: client_accounttemplates Dokumente
- paymenttemplates: paymenttemplates Dokumente
- cash_journals_entrytemplates: cash_journals_entrytemplates Dokumente

$root_path (obligatorisch):

- dierelative Basis Pfad zur Wurzel des ausgewählten Moduls oder Objekt

- UTF-8 kodierter String wird erwartet

$recursive (optional):

- kann 0 (gibt nur Dokumente aus der ersten $root_path Ebene) oder 1 (liefert alle Dokumente, rekursiv, beginnend mit dem $root_path Ebene) sein

$timestamp (optional, -1 wenn nicht verwendet):

- Wenn gesetzt (UNIX Timestamp-Format) werden alle nach dem $changed_timestamp geänderten oder erstellten Dokument-Tree-objekte zurückgegeben

- auf -1 setzen, um alle Dokumente zu bekommen

$user_id (optional, -1 wenn nicht verwendet):

- muss festgelegt sein, wenn Sie das "user_docs" Modul verwenden

- Wenn auf 1 gesetzt werden nur Dokumente / Verzeichnisse zurückgeliefert, bei denen der Benutzer Zugriff auf Webservices hat,

$object_id (optional, -1 wenn nicht verwendet):

- muss festgelegt sein, wenn Sie eines der folgenden Module verwenden: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$reable_only (optional, -1 wenn nicht verwendet):

- Wenn auf 1 gesetzt werden nur Dokumente / Verzeichnisse zurückgeliefert, bei denen der Benutzer Zugriff auf Webservices hat,

Eigenschaften der zurückgegebenen crmgetTreeResultElement elements :

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                     relativer Pfad zu dem Dokument
string(255)             $title                    Titel des Dokuments
string(255)             $keywords                 Dokument Stichwort
int                     $category                 ID einer einzigen Kategorie
int                     $filesize                 die Dateigröße des Dokuments (0 wenn Verzeichnis)
int                     $dtime                    Unix-Timestamp der Dokumenten- Löschung
int                     $duser                    Userid der Dokumenten- Löschung
int                     $ctime                    Unix-Timestamp der letzten Dokumentenbearbeitung
int                     $cuser                    Userid der letzten Dokumentenbearbeitung
int                     $otime                    Unix-Timestamp des letzte Dokument Downloads / Öffnens
int                     $ouser                    Userid des letzte Dokument Downloads / Öffnens
int                     $etime                    Unix-Timestamp der letzten Dokumentenerstellung
int                     $euser                    Userid der Dokumentenerstellung
int                     $itime                    Unix-Timestamp der letzten Indexierung des Dokuments
int                     $iuser                    Userid der letzten Indexierung des Dokuments
int                     $pid                      Projekt ID
int                     $ext_id                   Externe ID ( ab Version 4.2 )
int                     $edit                     1 wenn das Dokument derzeit in Bearbeitung ist, 0 wenn nicht
int                     $edituser                 Userid des Benutzers der das Dokument bearbeitet
int                     $authuser                 Userid des authentifizierten Nutzers
int                     $version                  Version
int                     $folder                   0 wenn es ein Dokument ist, 1 wenn es ein Ordner ist 
string(255)             $mimetype                 der Mimetyp des Dokuments
string(255)             $modul                    der Name des Moduls 
text                    $content                  base64-kodierter (optional: comprimierter) Dokumenteninhalt, nur in crmgetDocument genutzt
array                   $group_permission         array mit $group_permission Objekten
array                   $user_permission          array mit $user_permission Objekten

Eigenschaften von $group_permission und $user_permission Objekt:

Type(Length)         Eigenschaft        Beschreibung
---------------------------------------------------------------------------------------------
int                  $id                User - oder Gruppen-ID der crmPermissionItem's Werte
int                  $read              1 = Leseberechtigung, 0 = keine Leseberechtigung, -1 = keine Leseberechtigung und keine Vererbung der Gruppenrechte
int                  $write             1 = Schreibrechte, 0 = keine Schreibrechte, -1 = keine Schreibrechte und kein Vererbung der Gruppenrechte
int                  $delete            1 = Löschrechte, 0 = keine Löschrechte, -1 = keine Löschrechte und keine Vererbung der Gruppenrechte

Beispiel:

<?php
 
try {
 
	/**
	 * this Beispiel fetches all common documents changed after 01.08.2008
	 */
 
	// the TecArt-System module
	$module         = "common";
	// we want all the docs from the parent directory "new_docs"
	$root_path = utf8_encode("new_docs");
	// fetch the complete tree - recursive
	$recursive      = 1;
	// the timestamp for 01.08.2008
	$timestamp      = 1217541600;
	// no user ID needed when using not the own docs
	$userid         = -1;
	// the common docs module needs no object ID
	$objectid       = -1;
 
	// we want all the documents, not only the read only docs for the current session user
	$readonly_docs  = -1;
 
	$params = array(
		'session_id'	=> $session_id,
		'module'		=> $module,
		'root_path'		=> $root_path,
		'recursive'		=> $recursive,
		'timestamp'		=> $timestamp, 
		'object_id'		=> $objectid,
		'user_id'		=> $userid,
		'reable_only'	=> $readonly_docs
	);
 
	// send the request and fetch the result
	$result = $docs->crmgetTree($params);
 
	// loop through the result set
	foreach ($result as $doc) {
		// handle an Beispiel return value
		// is the current dataset a directory?
 
		if ($doc->folder == 1) {
			echo $doc->path . " is an DIRECTORY!<br>";
		} 
		else { 
			echo $doc->path . " is an FILE!<br>";
		}
 
		// show the user permissions for the current dataset    
 
		foreach ($doc->user_permission as $perm) {
			//display the read, write and delete rights for the current user
			echo "User with ID " .$perm->id . ": can read - " . ($perm->read == 1 ? "YES" : "NO");
			echo "User with ID " .$perm->id . ": can write - " . ($perm->write == 1 ? "YES" : "NO");
			echo "User with ID " .$perm->id . ": can delete - " . ($perm->delete == 1 ? "YES" : "NO");
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}

3.10. crmmoveDocument

Syntax:

int crmmoveDocument( array(string $session_id, string $from_module, string $from_document_path, int $from_user_id, int $from_object_id, string $to_module, string $to_document_path, int $to_user_id, int $to_object_id, int $copy_rights) )

Beschreibung:

Verschiebt ein Verzeichnisses (einschließlich aller Kindelemente) oder ein einzelnes Dokument von einem Ort zum anderen und liefert 1 für Erfolg. Eine Multi-Modul verschieben Aktion wird unterstützt, der Zugriffsrechte der bewegten Dokumente werden erhalten (optional). Im Falle eines Fehlers wird ein SOAP-Fehler mit Detailinformationen zurückgesandt.

$from_module (obligatorisch): siehe module bei crmgetTree

$from_document_path (obligatorisch):

- der relative Pfad der Quell- Dokuments / Verzeichnisses

- UTF-8 kodierter String wird erwartet

$from_user_id (optional, -1 wenn nicht genutzt):

- muss gesetzt werden wenn $from_module auf user_docs gesetzt ist

$from_object_id (optional, -1 wenn nicht genutzt):

- muss gesetzt werden wenn $from_module auf einen der folgenden Werte gesetzt ist: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$to_module (obligatorisch): siehe module bei crmgetTree

$to_document_path (obligatory):

- der relative Pfad des Ziel-Dokuments / Verzeichnisses

- UTF-8 kodierter String wird erwartet

$to_user_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $to_module auf user_docs gesetzt ist

$to_object_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $to_module auf einen der folgenden Werte gesetzt ist: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$copy_rights (optional, -1 wenn nicht genutzt):

- wenn auf 1 gesetzt werden alle Dokumentenberechtigungen übernommen (Benutzer-und Gruppen Berechtigungen werden kopiert)

- wenn auf -1 gesetzt werden die Berechtigungen von dem übergeordneten Element des $to_document_path vererbt

Beispiel:

<?php
 
try {
	// move the file Document.doc from the contact with the ID 4878 to the file Test.doc in the user docs of user with ID 4
	// keep the permission setting of the moved file
	$original_doc_full_name	= utf8_encode("Document.doc");
	$copy_doc_full_name		= utf8_encode("Test.doc");
 
	$params = array(
		'session_id'			=> $session_id,
		'from_module'			=> 'contacts',
		'from_document_path'	=> $original_doc_full_name, 
		'from_user_id'			=> -1,
		'from_object_id'		=> 4978,
		'to_module'				=> 'user_docs',
		'to_document_path'		=> $copy_doc_full_name, 
		'to_user_id'			=> 4,
		'to_object_id'			=> -1,
		'copy_rights'			=> true
	);
 
	$result = $client_docs->crmmoveDocument($params);
 
	if ($result == 1) {
		echo 'Document moved success';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.11. crmrenameDocument

Syntax:

int crmrenameDocument(string $session_id, string $module, string $from_name, string $to_name, int $user_id, int $object_id)

Beschreibung:

Benennt ein Dokument oder ein Verzeichnis um und gibt 1 beim Erfolg zurück.

$module (obligatorisch): siehe module bei crmgetTree

$from_name (obligatorisch):

- der relativer Pfad des Dokuments oder Verzeichnisses , welches Sie umbenennen möchten

- UTF-8 kodierter String wird erwartet

$to_name (obligatorisch):

- der relativer Pfad des umbenannten Dokuments oder Verzeichnisses

- UTF-8 kodierter String wird erwartet

$user_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein, wenn $module auf user_docs gesetzt wird

$object_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein, wenn $module auf einen der folgenden Werte geändert wird: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

Beispiel:

<?php
 
try {
	// renames the directory "newdir" into "newdir_renamed" from contact ID 4978
	$from_doc_name	= utf8_encode("newdir");
	$to_doc_name	= utf8_encode("newdir_renamed");
 
	$params = $params = array(
		'session_id'	=> $session_id,
		'module'		=> 'contacts',
		'from_name'		=> $from_doc_name,
		'to_name'		=> $to_doc_name, 
		'user_id'		=> -1,
		'object_id'		=> 4978
	);
 
	$result = $docs->crmrenameDocument($params);
 
	if ($result == 1) {
		echo 'Document rename success';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.12. crmsearchDocument

Syntax:

array crmsearchDocument( array(string $session_id, string $search_term, string $module, string $path, int $fulltext) )

Beschreibung:

Gibt ein Array mit indizierten document Objekten welche den Suchbegriff enthalten.

$search_term (obligatorisch):

- der zu suchende Inhalt des Dokuments

$module (obligatorisch): siehe crmgetTree

$path (optional, "" wenn ungenutzt):

- Der relative Pfad zur Wurzel des ausgewählten Moduls

- UTF-8 kodierter String wird erwartet

$fulltext (obligatorisch):

- 0 = keine Volltextsuche, 1 = Volltextsuche

Eigenschaften der zurückgegebenen Array :

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                     relativer Pfad zu dem Dokument
string(255)             $title                    Titel des Dokuments
string(255)             $keywords                 Dokument Keyword
int                     $category                 ID einer einzigen Kategorie
int                     $filesize                 die Dateigröße des Dokument (0 wenn Verzeichnis)
int                     $dtime                    Unix-Timestamp der Dokumenten- Löschung
int                     $duser                    Userid der Dokumenten- Löschung
int                     $ctime                    Unix-Timestamp der letzten Dokumentenbearbeitung
int                     $cuser                    Userid der letzten Dokumentenbearbeitung
int                     $otime                    Unix-Timestamp des letzte Dokument Downloads / Öffnens
int                     $ouser                    Userid des letzte Dokument Downloads / Öffnens
int                     $etime                    Unix-Timestamp der letzten Dokumentenerstellung
int                     $euser                    Userid der Dokumentenerstellung
int                     $itime                    Unix-Timestamp der letzten Indexierung des Dokuments
int                     $iuser                    Userid der letzten Indexierung des Dokuments
int                     $pid                      Projekt ID
int                     $ext_id                   Externe ID ( ab Version 4.2 )
int                     $edit                     1 wenn das Dokument derzeit in Bearbeitung ist, 0 wenn nicht
int                     $edituser                 Userid des Benutzers, der das Dokument gerade bearbeitet
int                     $authuser                 Userid des authentifizierten Nutzers
int                     $version                  Dokumentenversion
int                     $folder                   0 wenn das Dokument ein Dokument ist, 1 wenn das Dokument ein Ordner ist
string(255)             $mimetype                 Der MIME-Type des Dokuments
string(255)             $modul                    Der Name des Moduls
int                     $read_permission          1 = Leseberechtigung
                                                  0 = keine Leseberechtigung
                                                  -1 = keine Leseberechtigung und keine Vererbung von Gruppenrechten
int                     $write_permission         1 = Schreibberechtigung
                                                  0 = keine Schreibberechtigung
                                                  -1 = keine Schreibberechtigung und keine Vererbung von Gruppenrechten
int                     $delete_permission        1 = Löschberechtigung
                                                  0 = keine Löschberechtigung
                                                  -1 = keine Löschberechtigung und keine Vererbung von Gruppenrechten

Beispiel:

<?php
 
try {
	// search all common documents containing "testterm"
	$params = array(
		'session_id'	=> $session_id,
		'search_term'	=> 'testterm',
		'module'		=> 'common',
		'path'			=> '', 
		'fulltext'		=> 1
	);
	$result = $docs->crmsearchDocument($params);
 
	foreach($result as $doc) {
		echo $doc->title.'<br>';
   }
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.13. crmupdateDocument

Syntax:

int crmupdateDocument( array(string $session_id, string $module, array $doc_properties, int $user_id, int $object_id) )

Beschreibung:

Aktualisiert die Dokumenten-Metainformationen und -Berechtigungen für ein einzelnes Dokument oder ein Verzeichnis und gibt 1 beim Erfolg zurück. Der Session Benutzer benötigt Lese-und Schreibrechte auf der Dokumenten Daten und zusätzliche Zugangsberechtigung (also volle Berechtigungen) um die Berechtigungen des Dokuments zu aktualisieren.

$module (obligatorisch): siehe module bei crmgetTree

$user_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $module auf user_docs gesetzt wird

$object_id (optional, -1 wenn nicht genutzt):

- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt wird: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

Eigenschaften von doc_properties Array:

Type(Length)            Eigenschaft                      Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $path                            relativer Pfad des Dokuments / Verzeichnisses
int                     $in_process                      1 = Dokument wird derzeit bearbeitet
                                                         0 = Dokument wird derzeit nicht bearbeitet
string(255)             $title                           Titel des Dokuments
string(255)             $keywords                        Keywords des Dokuments
string(255)             $description                     Kurze Beschreibung des Dokuments
int                     $category                        die jeweilige Dokumentenkategorie
int                     $ext_id                          Externe ID ( ab Version 4.2 )
array                   $updated_group_permission        Ein Array mit group_permission items, umfasst 
                                                         alle aktualisierten Gruppenberechtigungen
array                   $removed_group_permission        Ein Array mit remove_permission items, 
                                                         enthält die IDs der Gruppen, die aus den 
                                                         Dokumentenberechtigungen entfernt werden sollen
array                   $updated_user_permission         Ein Array mit user_permission items, umfasst 
                                                         alle aktualisierten Benutzerberechtigungen
array                   $removed_user_permission         Ein Array mit remove_permission items, 
                                                         enthält die IDs der Nutzer, die aus den 
                                                         Dokumentenberechtigungen entfernt werden sollen

Eigenschaften von user_permission und group_permission Array:

siehe user_permission und group_permission bei crmgetDocument

Eigenschaften von emove_permission Array:

Type(Length)            Eigenschaft                      Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                              Benutzer - oder Gruppen-ID des Benutzers / der Gruppe, 
                                                         die Sie von den Berechtigungen entfernen möchten

Beispiel:

<?php
 
ini_set("soap.wsdl_cache_enabled", "0");
 
try {
	// Update the metadata the directory "temp2" from the contact documents of contact ID 4978
	$document_properties= array(
		"path"						=> utf8_encode("temp2"),
		"title"     				=> utf8_encode("new title"),
		"keywords"					=> utf8_encode("keyword_1, keyword_2"),
		"description"				=> utf8_encode("this is a short document description"),
		"category"					=> 5,
		"updated_group_permission"	=> array(
			array("id" => 1, "read" => 1, "write" => 1, "delete" => 0),
			array( "id" => 14, "read" => 1, "write" => 1, "delete" => 0) 
		),
		"removed_group_permission"	=> array(
			array( "id" => 4) 
		),
		"updated_user_permission"	=> array(
			array( "id" => 5, "read" => 1, "write" => 1, "delete" => 0),
			array( "id" => 4, "read" => 1, "write" => 1, "delete" => 0) 
		),
		"removed_user_permission"	=> array (
			array( "id" => 20)
		)
	);
   
	$params = array(
		'session_id'		=> $session_id,
		'module'			=> 'contacts',
		'doc_properties'	=> $document_properties,
		'user_id'			=> -1,
		'object_id'			=> 4978
	);
   
	$result = $docs->crmupdateDocument($params);
   
	if($result == 1) {
		echo 'Update document success';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.14. crmuploadDocument

Syntax:

int crmuploadDocument( array(string $session_id, string $module, string $doc_path, string $doc_content, int $user_id, int $object_id, int $compress, int $ext_id) )

Beschreibung:

Läd ein Dokument hoch und gibt 1 für Erfolg zurück.

$module (obligatorisch): siehe crmgetTree

$doc_path (obligatorisch):

- der relative Pfad des Dokuments, einschließlich Verzeichnis-und Dateinamen

- der übergebene Pfad wird, sofern teile nicht vorhanden sind, durch den Aufruf erstellt und die Rechte des ersten gefundenen Ordners übernommen

- UTF-8 kodierter String wird erwartet

$doc_content (obligatorisch):

- der Inhalt des Dokuments

- ein Base64 kodierter String wird erwartet

- kann vor Base64-Codierung mit GZIP komprimiert werden

$user_id (optional, -1 wenn nicht genutzt):

- muss festgelegt sein, wenn Sie das Modul user_docs verwenden

- legt das hochgeladene Dokument in die eigenen Dokumente des jeweiligen Benutzers

$object_id (optional, -1 wenn nicht genutzt):

- muss festgelegt sein, wenn Sie das Modul zu einem die folgenden Werte setzen: offers, contracts, calls, todo, dates, projects, contacts

- enthält die ID des jeweiligen Objektes

$compress (optional, -1 wenn nicht genutzt):

- auf 1 setzen, wenn Sie den Inhalt des Dokuments GZIP komprimiert hochladen (vor der Base64-Codierung)

$ext_id (optional, 0 wenn nicht genutzt):

- Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	//Uploads a document into the existing directory "temp" of the contacts (ID 4978) document collection:
	$base64_content =
		"e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmdGFiNzA4e1xmb250dGJse1xmMFxmcm9tYW5cZmNoYXJzZXQwIFRpbWVzIE5l".
		"dyBSb21hbjt9e1xmMVxmbmlsXGZjaGFyc2V0MCBSYWF2aTt9fQ0Ke1xjb2xvcnRibCA7XHJlZDI1NVxncmVlbjBcYmx1ZTA7fQ0Ke1wqXGdlbmVyYXRvciBNc2Z0ZWRpdCA1LjQxLjIxLjI1MDA7".
		"fVx2aWV3a2luZDRcdWMxXHRyb3dkXHRyZ2FwaDcwXHRybGVmdC03MFx0cnJoODg1XHRycGFkZGw3MFx0cnBhZGRyNzBcdHJwYWRkZmwzXHRycGFkZGZyMw0KXGNsYnJkcmxcYnJkcncxNVxicmRy".
		"c1xjbGJyZHJ0XGJyZHJ3MTVcYnJkcnNcY2xicmRyclxicmRydzE1XGJyZHJzXGNsYnJkcmJcYnJkcncxNVxicmRycyBcY2VsbHgzNTMwXGNsYnJkcmxcYnJkcncxNVxicmRyc1xjbGJyZHJ0XGJy".
		"ZHJ3MTVcYnJkcnNcY2xicmRyclxicmRydzE1XGJyZHJzXGNsYnJkcmJcYnJkcncxNVxicmRycyBcY2VsbHg3NjcwXHBhcmRcaW50YmxcbGFuZzEwMzFcZjBcZnMyNCBIYWxsbyBkZFxjZWxsXGYx".
		"XGZzOTYgVHNlXGYwXGZzMjQgdFxjZWxsXHJvd1x0cm93ZFx0cmdhcGg3MFx0cmxlZnQtNzBcdHJyaDEyNDVcdHJwYWRkbDcwXHRycGFkZHI3MFx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRy".
		"bFxicmRydzE1XGJyZHJzXGNsYnJkcnRcYnJkcncxNVxicmRyc1xjbGJyZHJyXGJyZHJ3MTVcYnJkcnNcY2xicmRyYlxicmRydzE1XGJyZHJzIFxjZWxseDM1MzBcY2xicmRybFxicmRydzE1XGJy".
		"ZHJzXGNsYnJkcnRcYnJkcncxNVxicmRyc1xjbGJyZHJyXGJyZHJ3MTVcYnJkcnNcY2xicmRyYlxicmRydzE1XGJyZHJzIFxjZWxseDc2NzBccGFyZFxpbnRibFxjZjFcYiBTZGZzZnNkZlxjZWxs".
		"XGNmMFxiMCBTZnNmZGRzc2Rkc3Nkc2RzZHNkXGNlbGxccm93XHRyb3dkXHRyZ2FwaDcwXHRybGVmdC03MFx0cnJoMjM0MFx0cnBhZGRsNzBcdHJwYWRkcjcwXHRycGFkZGZsM1x0cnBhZGRmcjMN".
		"ClxjbGJyZHJsXGJyZHJ3MTVcYnJkcnNcY2xicmRydFxicmRydzE1XGJyZHJzXGNsYnJkcnJcYnJkcncxNVxicmRyc1xjbGJyZHJiXGJyZHJ3MTVcYnJkcnMgXGNlbGx4MzUzMFxjbGJyZHJsXGJy".
		"ZHJ3MTVcYnJkcnNcY2xicmRydFxicmRydzE1XGJyZHJzXGNsYnJkcnJcYnJkcncxNVxicmRyc1xjbGJyZHJiXGJyZHJ3MTVcYnJkcnMgXGNlbGx4NzY3MFxwYXJkXGludGJsXGNmMVxiIFNmZnNk".
		"ZnNkXHBhcg0KS2xsamtsamtcY2VsbFxjZjBcYjAgRGdmZ2ZkZ2RnXHBhcg0KXGNlbGxccm93XHBhcmRccGFyDQp9DQoA";
 
	$new_doc_full_name  = utf8_encode("/temp/uploaded_document.doc");
 
	$params = array(
		'session_id'	=> $session_id,
		'module'		=> 'contacts',
		'doc_path'		=> $new_doc_full_name,
		'doc_content'	=> $base64_content,
		'user_id'		=> -1,
		'object_id'		=> 4978,
		'compress'		=> -1
	);
 
	$result = $docs->crmuploadDocument($params);
 
	if($result == 1) {
		echo 'Upload document success';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.15. crmdocumentExists

(Version >= 3.4.5381)

Syntax:

int crmdocumentExists( array(string $module, string $doc_path) )

Beschreibung:

Liefert 1, wenn ein Dokument oder ein Verzeichnis existiert. Liefert 0 wenn nicht.

Wirft eine CRMException im Fehlerfall.

Beispiel:

<?php
 
try {
	$params = array(
		'session_id'	=> $session_id,
		'module'		=> 'contacts',
		'doc_path'		=> '/test_folder/test_document.doc'
	);
   
	$result = $docs->crmdocumentExists($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
if ($result == 1) {
	echo 'Document already exists';
}
else {
	echo 'Document does not exists';
}



3.16. crmgetPathByExtId

(Version >= 4.2)

Syntax:

array crmgetPathByExtId( array( string $session_id, int $ext_id ) )

Beschreibung

Liefert Pfade von Dokumenten mit der übergebenen externen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $docs->crmgetPathByExtId(
		array(
			'session_id'	=> $session_id,
			'ext_id'		=> 12345
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $path) {
	echo $path."<br>  ";
}



3.17. crmgetAllExtIds

(Version >= 4.2)

Syntax:

array crmgetAllExtIds( array ( string $session_id ) ) )

Beschreibung

Liefert eine lister aller externen IDs in Dokumenten zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try { 
	$result = $docs->crmgetAllExtIds(array('session_id' => $session_id));
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.18. crmgetsearchfilteredDocuments

(Version 4.7.20011)

Syntax:

array crmgetsearchfilteredDocuments( array(string $session_id, int $filter_id, string $search, int $count, int $offset, array $fields) )

Beschreibung

Gibt ein Array mit Dokument-Objekten zurück, die dem angegebenen Suchfilter und Suchbegriff entsprechen, limitiert von count und offset.

Parameter filter_id ist eine Pflichtangabe und entspricht einer ganzzahligen im adressierten CRM für die Dokumentenverwaltung existierenden Suchfilter ID. Fehlerhafte Angaben der Suchfilter ID resultieren in einer Fehlermeldung.

Der Parameter search repräsentiert die Eingabe im Suchfeld im CRM (Platzhalter <#search_field#> in Filterbedingungen).

Über den Parameter fields können die zurückgegeben Felder eingeschränkt werden (false = alle Felder).

Im Falle eines Fehlers werden Fehlermeldungen mit Detailangaben zurückgegeben.

Hinweis: Es werden nur Dokumente und Felder zurückgegeben, für die der authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften der zurückgegebenen Dokument-Objekte sind identisch mit crmgetDocument abhängig von einer spezifizierten Felderrückgabe.

Beispiel:

<?php
 
try { 
	include_once 'crm_rest_api.php';
     
    /* @var $logon crmlogon */
    $logon = new crm_rest_api('http://domain/of/crm/rest/index.php/logon');
     
    $session_id = $logon->crmLogin(array(
        'username'      => 'testusr',
        'password'      => 'testpass',
        'response_type' => 'JSON'
    ));
    /* @var $docs crmdocs */
    $docs   = new crm_rest_api('http://domain/of/crm/rest/index.php/docs');
 
    $params = array(
        'session_id' => $session_id,
        'filter_id'  => 7,
        'search'     => 'my document',
        'count'      => 0,
        'offset'     => 0,
        'fields'     => array('title', 'path', 'etime'))
    );
    $result = $docs->crmgetsearchfilteredDocuments($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
$result = get_object_vars($result);
echo '<pre>'.print_r($result, true).'</pre>';
  • No labels