Server APIs

El API de vTiger permite al desarrollador tener el control del flujo de datos para cada módulo.

Se recomienda usar cuando un módulo necesite el acceso de otros module data / state. La API de vTiger se utiliza para aplicar restricciones de acceso a un Perfil requerido, también ejecuta los controladores de eventos configurados (Workflow, etc ...) para operaciones como Guardar / Eliminar.

Nota: Utilizar consultas de bases de datos directos no se aconseja ya que los desarrolladores puedan inducir a cuestiones de seguridad de datos, sin saberlo, y aumentar el riesgo.

Webservice ID

include_once 'include/Webservices/Utils.php';

$crmid = '1'; // ID of Leads record.
$wsid = vtws_getWebserviceEntityId('Leads', $crmid);

List Types

include_once 'include/Webservices/ModuleTypes.php';

$current_user = CRMEntity::getInstance('Users');
$current_user->retrieveCurrentUserInfoFromFile(1);

try {
        $typeInformation = vtws_listtypes(array(), $current_user);
        foreach ($typeInformation['types'] as $name) {
                echo sprintf("%s\n", $name);
        }
        foreach ($typeInformation['information'] as $name => $information) {
                echo sprintf("Name: %s, Label: %s, SingluarLabel: %s, IsEntity: %s \n",
                        $name, $information['label'], $information['singular'], ($information['isEntity']? "yes": "no"));
        }
} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Describe

include_once 'include/Webservices/DescribeObject.php';

try {
        $describe = vtws_describe('Leads', $current_user);
        foreach ($describe['fields'] as $field) {
                echo sprintf("%s (%s), Mandatory? %s \n", $field['name'],
                        $field['type']['name'], ($field['mandatory']? "yes": "no"));
        }
} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Create

include_once 'include/Webservices/Create.php';
try {
        $data = array (
                'lastname' => 'LNAME',
                'firstname'=> 'FNAME',
                'company'  => 'CNAME',
                'assigned_user_id' => '19x1', // 19=Users Module ID, 1=First user Entity ID
        );
        $lead = vtws_create('Leads', $data, $current_user);

        print_r($lead);

} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Retrieve

include_once 'include/Webservices/Retrieve.php';
try {
        $wsid = vtws_getWebserviceEntityId('Leads', 'CRMID') // Module_Webservice_ID x CRM_ID
        $lead = vtws_retrieve($wsid, $current_user);
        print_r($lead);

} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Revise

include_once 'include/Webservices/Revise.php';
try {
        $wsid = vtws_getWebserviceEntityId('Leads', 'CRMID') // Module_Webservice_ID x CRM_ID
        $data = array('firstname' => 'FIRSTNAME', 'id' => $wsid);
        $lead = vtws_revise($data, $current_user);
        print_r($lead);

} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Query

include_once 'include/Webservices/Query.php';
try {
        $q = "SELECT * FROM Leads WHERE lastname LIKE '%LNAME%'";
        $q = $q . ';'; // NOTE: Make sure to terminate query with ;
        $records = vtws_query($q, $current_user);
        print_r($records);

} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}

Delete

include_once 'include/Webservices/Delete.php';
try {
        $wsid = vtws_getWebserviceEntityId('Leads', 'CRMID') // Module_Webservice_ID x CRM_ID
        vtws_delete($wsid, $current_user);

} catch (WebServiceException $ex) {
        echo $ex->getMessage();
}