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/projects

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

2. Methoden

2.1. crmaddProject

Syntax:

int crmaddProject( array(string $session_id, array $crmProjectItem) )

Beschreibung:

Fügt ein Projekt hinzu

Liefert eine project_id bei Erfolg, 0 im Fehlerfall.

crmProjectItem ist ein assoziatives Array.

Eigenschaften von crmProjectItem:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------
string(255)       $name                Projekt-Name
string(50)        $number              Projekt Nummer 
string(255)       $url                 URL des Projekts (Website) 
int               $start               Timestamp des Beginns
int               $stop                Timestamp des Endes
int               $done                Fertigstellung in Prozent
double            $budget              Projektbudget
string(65535)     $notes               Projektnotizen
int               $leader              Userid Projektleiter
int               $substitute          Userid stellv. Projektleiter
string(65535)     $shortnotes          Project Kurznotizen
int               $invoice             Rechnung erstellt? Mögliche Werte: 0, 1
int               $priority            Priorität, Mögliche Werte: -1 = niedrig, 0 = normal, 1 = hoch 
string(255)       $category            Projektkategorien, Format: Category1:Category2:... 
int               $ext_id              Externe ID ( ab Version 4.2 )
string(255)       $user19              Benutzerdefiniertes Feld Nr. 19
string(255)       $user20              Benutzerdefiniertes Feld Nr. 20
   :                  :                           :
string(255)       $user80              Benutzerdefiniertes Feld Nr. 80 

Beispiel 1:

<?php
 
try{
	include_once 'crm_rest_api.php';
   
	$projects	= new crm_rest_api("http://hostname/dirname/rest/index.php/projects");
	$project	= array(
		'name'        => 'WebService-Projekt',
		'url'         => 'http://www.tecart.de',
		'start'       => mktime(0, 0, 0, 5, 11, 2007),
		'stop'        => mktime(0, 0, 0, 5, 31, 2007),
		'done'        => 30,
		'budget'      => 120000,
		'notes'       => 'Notizen hier',
		'leader'      => 5,
		'user21'      => "333"
	);
 
	$project_id = $projects->crmaddProject(
		array(
			'session_id'		=> $session_id,
			'crmProjectItem'	=> $project
		)
	);
 
	echo $project_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.2. crmchangeProject

Syntax:

int crmChangeProject( array(string $session_id, int $project_id, array $crmProjectItem) )

Beschreibung:

Ändert Eigenschaften eines bestehenden Projekts.

Liefert die project_id bei Erfolg zurück.

crmProjectItem ist ein assoziatives Array.

Eigenschaften von crmProjectItem Array: sind die selben wie für crmaddProject

Beispiel:

<?php
 
try { 
	$project	= array('name' => 'WebService-Projekt changed');
	$params		= array(
		'session_id'		=> $session_id,
		'project_id'		=> $project_id,
		'crmProjectItem'	=> $project
	);
	$project_id = $projects->crmchangeProject($params);
 
	echo $project_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.3. crmdeleteProject

Syntax:

int crmdeleteProject( array(string $session_id, int $project_id) )

Beschreibung:

Löscht ein Projekt. Liefert 1 bei Erfolg zurück.

Beispiel:

<?php
 
try { 
	$success = $projects->crmDeleteProject(
		array(
			'session_id'	=> $session_id,
			'project_id'	=> 123
		)
	);
 
	if ($success == 1) {
		echo "Delete project success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.4. crmgetChangedProjects

Syntax:

array crmgetChangedProjects( array(string $session_id, int $timestamp) )

Beschreibung:

Liefert ein Array von Projekt-Objekten, die seit timestamp geändert wurden.

Hinweis: Es werden nur Projekte zurückgegeben, für die der authentifizierte Benutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetProject

Beispiel:

<?php
 
try { 
	$result = $projects->crmgetChangedProjects(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 1176208357
		)
	);
 
	foreach($result as $project) {
		echo "{$project->pid}, {$project->name}, {$project->realnumber}, {$project->done}<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.5. crmgetChangedProjectsLimit

Syntax:

array crmgetChangedProjectsLimit( array(string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung:

Liefert ein Array von Projekt-Objekten zurück, die seit timestamp geändert wurden, begrenzt durch count und Offset.

Hinweis: Es werden nur Projekte zurückgegeben, für die der authentifizierte Benutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetProject

Beispiel:

<?php
 
try { 
	$params	= array(
		'session_id'	=> $session_id,
		'timestamp'		=> 1176208357,
		'count'			=> 10,
		'offset'		=> 0
	);
	$result	= $projects->crmgetChangedProjectsLimit($params);
 
	foreach($result as $project) {
		echo "{$project->pid}, {$project->name}, {$project->realnumber}, {$project->done}<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.6. crmgetProject

Syntax:

array crmgetProject( array(string $session_id, int $project_id) )

Beschreibung:

Liefert ein Array von Projekt-Objekten mit nur einem Element.

project_id ist die Project-Id.

Eigenschaften:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------
int               $pid                 Project-Id 
int               $ext_id              Externe ID ( ab Version 4.2 )
string(255)       $name                Projektname 
string(50)        $realnumber          Projektnummer
string(255)       $url                 URL des Projekts (Website) 
int               $start               Timestamp des Beginns
int               $stop                Timestamp des Endes
int               $done                Fertigstellung in Prozent
double            $budget              Projektbudget
string(65535)     $notes               Projekt-Notizen
int               $leader              Userid Projektleiter/in
int               $substitute          Userid Stellv. Projektleiter/in 
string(65535)     $shortnotes          Projektkurzbeschreibung
int               $invoice             Rechnung erstellt? Mögliche Werte: 0, 1
int               $priority            Priorität, Mögliche Werte: -1 = niedrig, 0 = normal, 1 = hoch 
string(255)       $category            Projektkategorien, Format: Category1:Category2:... 
int               $chguser             Userid der letzten Änderung
int               $chgtime             Unix-Timestamp der letzten Änderung
int               $createuser          Userid der Erstellung
int               $createtime          Unix-Timestamp der Erstellung
string(255)       $user19              Benutzerdefiniertes Feld Nr. 19
string(255)       $user20              Benutzerdefiniertes Feld Nr. 20
   :                  :                           :
string(255)       $user80              Benutzerdefiniertes Feld Nr. 80 

Beispiel:

<?php
 
try { 
	// Get Project with id 258
	$result = $projects->crmgetProject(
		array(
			'session_id'	=> $session_id,
			'project_id'	=> 258
		)
	);
 
	foreach($result as $key => $value) {
		echo $key. ": " .$value. "<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.7. crmgetProjectIds

Syntax:

array crmgetProjectIds( array(string $session_id, int $timestamp) )

Beschreibung:

Liefert ein Array von Projekt-IDs, die seit timestamp geändert wurden.

Hinweis: Es werden nur Projekte zurückgegeben, für die der authentifizierte Benutzer Leseberechtigungen hat.

Beispiel:

<?php
 
try { 
	$result = $projects->crmgetProjectIds(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 0
		)
	);
 
	foreach($result as $id) {
		echo $id."<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.8. crmsearchProjects

Syntax:

array crmsearchProjects( array(string $session_id, string $search, string $category, int $count, int $offset, string $sort_name) )

Beschreibung:

Liefert ein Array mit Projekt-Objekten.

search ist ein freier Suchtext.

Mit der Version (>=3.4.5347) kann search auch ein assoziatives Array sein, bei dem der key das Feld zum Suchen und der value der Suchstring ist. Sie können ein %-Zeichen am Anfang und/oder Ende der Zeichenfolge als Platzhalter verwenden.

category ist die Kategorie des Projekts, stellen Sie sie auf -1 um sie zu deaktivieren.

count ist die maximale Anzahl von Ergebnissen, die zurückgegeben werden soll.

offset ist die Offset Position der Ergebnisse, die zurückgegeben werden sollen.

sort_name Wie die zurückgegebenen Daten nach den Name sortiert werden soll (ASC : von A bis Z, DESC : von Z bis A).

Eigenschaften der zurückgegebenen project Objekte:

Type(Length)  Eigenschaft     Beschreibung
-------------------------------------------------------------------
int           $pid            Project-Id
string(255)   $name           Projektname 
string(50)    $number         Projektnummer 
int           $leader         Userid Projektleiter/in
int           $start          Unix-Timestamp des Beginns
int           $stop           Unix-Timestamp des Endes
int           $done           Fertigstellung in Prozent

Beispiel:

<?php
 
try { 
	$params = array(
		'session_id'	=> $session_id,
		'search'		=> 'crm',
		'category'		=> -1,
		'count'			=> 5,
		'offset'		=> 0,
		'sort_name'		=> 'DESC'
	);
 
	$result = $projects->crmsearchProjects($params);
 
	foreach($result as $project) {
		echo "{$project->pid}, {$project->name}, {$project->realnumber}, {$project->done}<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}


Beispiel 2: Komplexe Suche
:

<?php
 
try {   
	// Get 5 projects with name LIKE '%crm%' AND budget LIKE '%2000%'
	$search	= array('name' => '%crm%', 'budget' => '2000');
	$params	= array(
		'session_id'	=> $session_id,
		'search' 		=> $search,
		'category'		=> -1,
		'count'			=> 5
	);
 
	$result = $projects->crmsearchProjects($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $project) {
	echo "{$project->pid}, {$project->name}, {$project->realnumber}, {$project->done}<br>  \n";
}



2.9. crmgetProjectMembers

(Version >= 3.4.5347)

Syntax:

array crmgetProjectMembers( array(string $session_id, int $pid) )

Beschreibung:

Gibt ein Array mit Information aller Mitglieder von einem Projekt zurück.

Eignenschaften von zurückgegebenen array:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
string            $type                   Type des Mitgliedes : 'contact' oder 'user'
int               $cid                    Kontakt ID mit dem Format 'cid:pid'
int               $uid                    User ID in CRM
string            $name                   Der Kontaktname, wenn das Mitglied ein Kontakt ist.
                                          Vorname Nachname, wenn das Mitglied ein Person oder ein TecArt-System Benutzer ist.
string            $email                  Die Emailaddresse
string            $phone                  Telefon
string            $mobile                 Mobile nummer
string            $fax                    Telefax

Beispiel:

<?php
 
try {
	$params		= array('session_id' => $session_id, 'pid' => 7);
	$members	= $projects->crmgetProjectMembers($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach( $members as  $member) {
    echo "{$member->name} <br>\n";
}



2.10. crmgetProjectFields

(Version >= 3.4.5347)

Syntax:

array crmgetProjectFields()

Beschreibung:

Gibt ein Array mit Information der Feldern für Projekt zurück. Die Info enthält die Felder in der Datenbank, die angezeigte Namen und die Typen der Felder.

Eignenschaften von zurückgegebenen array:

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             Key                       Name des Feldes in der Datenbank
array(255)              Value                     Array mit 
                                                  label: der angezeigte Name des Feldes
                                                  field: Name des Feldes in der Datenbank
                                                  type:  Typ des Feldes

Beispiel:

<?php
 
try {
	$params		= array('session_id' => $session_id);
    $members	= $projects->crmgetProjectFields($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $fields as $key => $val) {
    echo $key " => ". $val['label'] ."<br/>";
}



2.11. crmcountProjects

(Version >= 3.4.5398)

Syntax:

int crmcountProjects()

Beschreibung:

Gibt die Gesamtanzahl an Projekten zurück.

Beispiel:

<?php
 
try { 
	$result = $projects->crmcountProjects();
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo $result;



2.12. crmgetIdByExtId

(Version >= 4.2)

Syntax:

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

Beschreibung

Liefert interne ID(s) von Projekten mit der übergebenen externen ID zurück.

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

Beispiel:

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



2.13. crmgetAllExtIds

(Version >= 4.2)

Syntax:

array crmgetAllExtIds( array ( string $session_id ) )

Beschreibung

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

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

Beispiel:

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



2.14. crmsetDuplicateConfig

(Version >= 4.4)

Syntax:

boolean | string <err_msg> crmsetDuplicateConfig( array( 'session_id' => string <session_id>, 'fields' => array( string <fieldname>, [string <fieldname>...])) )

Beschreibung:

Ermöglicht eine temporäre Überschreibung der Dublettenprüfungsfelder für die Laufzeit der angemeldeten Session.

Parameter fields ist ein Array mit den Feldnamen, die anstatt der aktuell für das Modul festgelegten Felder zur Dublettenprüfung herangezogen werden sollen.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/projects';
	$session_id  = session_id();
	$projects    = new crm_rest_api($rest_url);
 
	$params  = array(
		'session_id'	=> $session_id,
		'fields'		=> array('realnumber', 'notes')
	);
	$success = $projects->crmsetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo ($success ? 'override successful' : $success);



2.15. crmgetDuplicateConfig

(Version >= 4.4)

Syntax:

array | string <err_msg> crmgetDuplicateConfig( array( 'session_id' => string <session_id> ) )

Beschreibung:

Gibt Array mit aktueller Feldkonfiguration der Dublettenprüfung zurück.

Sollte aktuell keine temporäre Überschreibung der Feldkonfiguration aktiv sein (siehe crmsetDuplicateConfig), wird die durch die Administration konfigurierte Feldliste zurückgegeben.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/projects';
	$session_id  = session_id();
	$projects    = new crm_rest_api($rest_url);
 
	$params  = array('session_id' => $session_id);
	$fields  = $projects->crmgetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo print_r($fields, true);



2.16. crmgetProjectsByCidPid

(Version >= 4.4.15648)

Syntax:

array crmgetProjectsByCidPid( array(string $session_id, int $cid, int $pid) )

Beschreibung:

Liefert ein Array von Projekt-Objekten, bei denen der Kontakt im ID $cid oder die Person mit ID $pid Mitglied ist.

Hinweis: Es werden nur Projekte zurückgegeben, für die der authentifizierte Benutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetProject

Beispiel:

<?php
 
try { 
	include_once 'crm_rest_api.php';
 
	$projects = new crm_rest_api("http://hostname/dirname/rest/index.php/projects");
 
	// Get all projects with member contact id 123
	$result = $projects->crmgetProjectsByCidPid(
		array(
			'session_id'	=> $session_id,
			'cid'			=> 123
		)
	);
 
	// Get all projects with member person id 456
	$result = $projects->crmgetProjectsByCidPid(
		array(
			'session_id'	=> $session_id,
			'pid'			=> 456
		)
	);
 
	foreach($result as $project) {
		echo "{$project->pid}, {$project->name}, {$project->realnumber}, {$project->done}<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.17. crmaddContact

(Version >= 4.4.15648)

Syntax:

int crmaddContact( array(string $session_id, int $cid, int $pid) )

Beschreibung:

Fügt einen Kontakt oder eine Person den Mitgliedern eines Projektes hinzu.

cid ist die Kontact/Personen-Id (z.B.: "1234" oder "1234:5678")

pid ist die Projekt-Id

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
   
	$projects = new crm_rest_api("http://hostname/dirname/rest/index.php/projects");
 
	// Fügt Kontakt 123 dem Projekt 5 als Mitglied hinzu
	$success = $projects->crmaddContact(
		array(
			'session_id'	=> $session_id,
			'cid'			=> 123,
			'pid'			=> 5
		)
	);
 
	if ($success > 0) {
		echo "Add project member success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.18. crmremoveContact

(Version >= 4.4.15648)

Syntax:

bool crmremoveContact( array(string $session_id, int $id) )

Beschreibung:

Entfernt ein Mitglied aus einem Projekt.

id ist die Id des Projektmitgliedes

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
   
	$projects	= new crm_rest_api("http://hostname/dirname/rest/index.php/projects");
	$success	= $projects->crmremoveContact(
		array(
			'session_id'	=> $session_id,
			'id'			=> 12
		)
	);
 
	if ($success == 1) {
		echo "Delete project member success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.19. crmgetsearchfilteredProjects

(Version >= 4.5.16630)

Syntax:

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

Beschreibung:

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

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 wird eine CRMException mit mehr Fehlerdetails geworfen.

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

Eigenschaften:

sind die selben wie für crmgetProject, evtl eingeschränkt nach Parameter fields

Beispiel:

<?php
 
try { 
	include_once 'crm_rest_api.php';
 
	$projects = new crm_rest_api("http://hostname/dirname/rest/index.php/projects");
 
	// Liefert die Felder name und realnumber der ersten 10 Projekte, die dem Suchfilter 5 ohne eingegebenen Suchbegriff entsprechen
	$params	= array(
		'session_id'	=> $session_id, 
		'filter_id'		=> 5,
		'search'		=> '',
		'count'			=> 10,
		'offset'		=> 0,
		'fields'		=> array('name', 'realnumber')
	);
 
	// Liefert alle Felder aller Projekte, die dem Suchfilter 5 mit eingegebenen Suchbegriff "test" entsprechen
	$params = array(
		'session_id'	=> $session_id, 
		'filter_id'		=> 5,
		'search'		=> 'test',
		'count'			=> 0,
		'offset'		=> 0,
		'fields'		=> false
	);
 
	$result = $projects->crmgetsearchfilteredProjects($params);
 
	print_r($result);
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
  • No labels