Opération qui permet de créer une tâche dans Progression.

CreateTaskRequest
 
Propriété Type Valeur
Credentials Credentials Informations d'authentification
Task Task Informations sur la tâche à créer
Location Location Informations de localisation lors de la création de la tâche (mobile)
Dispatch boolean Répartir la tâche ? Si oui, une HumanResourceRef doit être configurée sur la tâche


Exemples Java, PHP

Java

Task task = new Task();

RecordRef typeRef = new RecordRef();
typeRef.setType(RecordType.TASK_TYPE);
typeRef.setLabel("SVC"); // Code du type de tâche
task.setTypeRef(typeRef);

RecordRef priorityRef = new RecordRef();
priorityRef.setType(RecordType.TASK_PRIORITY);
priorityRef.setLabel("Normal"); // Nom de la priorité
task.setPriorityRef(priorityRef);

task.setSummary("Test");
task.setDescription("Ceci est un test");

// Configuration du RV

final GregorianCalendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTime(new Date());
task.setRv(DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar));

// Assignation

RecordRef hrRef = new RecordRef();
hrRef.setType(RecordType.HUMAN_RESOURCE);
hrRef.setLabel("John Doe"); // Nom de la ressource humaine
task.setHumanResourceRef(hrRef);

// Client (peut ne pas être disponible dans certaines configurations)

// Le client sera créé automatiquement s'il n'existe pas
RecordRef clientRef = new RecordRef();
clientRef.setType(RecordType.CLIENT);
clientRef.setLabel("Diffusion"); // Nom du client (unique)
task.setClientRef(clientRef);
Address clientAddress = new Address();
clientAddress.setAddress("51 allard");
clientAddress.setCity("Saint-alexis des monts");
clientAddress.setProvince("QC"); // ISO code
clientAddress.setCountry("CA"); // ISO code
clientAddress.setPostalCode("J0K 1V0");
task.setClientAddress(clientAddress);

// Emplacement (peut ne pas être disponible dans certaines configurations)
// Le client doit être rempli pour permettre la configuration d'un emplacement
// L'emplacement sera créé s'il n'existe pas

RecordRef nodeRef = new RecordRef();
nodeRef.setType(RecordType.NODE);
nodeRef.setLabel("Diffusion Granby"); // Nom de l'emplacement (unique)
task.setNodeRef(nodeRef);
Address nodeAddress = new Address();
nodeAddress.setAddress("10-4 Place du lac");
nodeAddress.setCity("Granby");
nodeAddress.setProvince("QC"); // ISO code
nodeAddress.setCountry("CA"); // ISO code
nodeAddress.setPostalCode("J2G 4C3");
task.setNodeAddress(nodeAddress);

// Propriétés personnalisables (le nom des propriétés dépend du type de tâche)
task.setProperties(new ArrayOfProperty());
Property p = new Property();
p.setName("test.test1");
p.setValue("test1");
task.getProperties().getProperty().add(p);
p = new Property();
p.setName("test.test2");
p.setValue("test2");
task.getProperties().getProperty().add(p);

// Liste Items
TaskItemList taskItemList = new TaskItemList();

// Créer 2 items
TaskItem taskItem = new TaskItem();
taskItem.setQuantity(1);
taskItem.setLabel("Ordinateur");
taskItem.setPrice(499.99);
taskItemList.getTaskItems().getRecord().add(taskItem);

taskItem = new TaskItem();
taskItem.setQuantity(2);
taskItem.setLabel("Écran");
taskItem.setPrice(199.99);
taskItemList.getTaskItems().getRecord().add(taskItem);

taskItemList.setSubTotal(899.97);
taskItemList.setTotal(899.97);
task.setTaskItemList(taskItemList);

// Metas Propriétés
task.setMetas(new ArrayOfProperty());
Property meta = new Property();
meta.setName("MonIdInterne");
meta.setValue("123456");
task.getMetas().getProperty().add(meta);

// Créer la tâche

CreateTaskRequest request = new CreateTaskRequest();
request.setCredentials(credentials); // voir opération login
request.setTasl(task);
request.setDispatch(true);
RecordRef taskRef = progressionPortType.createTask(request).getTaskRef();
Long taskId = taskRef.getId(); // Donne le ID interne de la tâche qui vient d'être créé

PHP


$task = new stdClass();
$task->TypeRef->Type = 'TASK_TYPE';
$task->TypeRef->Label = 'SVC';

$task->PriorityRef = new stdClass();
$task->PriorityRef->Type = 'TASK_PRIORITY';
$task->PriorityRef->Label = 'Normal';

$task->Summary = 'Test';
$task->Description = 'Ceci est un test !';

// Assignation
$task->HumanResourceRef = new StdClass();
$task->HumanResourceRef->Type = 'HUMAN_RESOURCE';
$task->HumanResourceRef->Label = "Test"; // Nom de la ressource humaine

// Client (peut ne pas être disponible dans certaines configurations)

// Le client sera créé automatiquement s'il n'existe pas
$clientRef = new StdClass();
$clientRef->Type = 'CLIENT';
$clientRef->Label = "Diffusion"; // Nom du client (unique)
$task->ClientRef = $clientRef;

$clientAddress = new StdClass();
$clientAddress->Address = "51 allard";
$clientAddress->City = "Saint-alexis des monts";
$clientAddress->Province = "QC"; // ISO code
$clientAddress->Country = "CA"; // ISO code
$clientAddress->PostalCode = "J0K 1V0";
$task->ClientAddress = $clientAddress;

// Emplacement (peut ne pas être disponible dans certaines configurations)
// Le client doit être rempli pour permettre la configuration d'un emplacement
// L'emplacement sera créé s'il n'existe pas

$nodeRef = new StdClass();
$nodeRef->Type = 'NODE';
$nodeRef->Label = "Diffusion Granby"; // Nom de l'emplacement (unique)
$task->NodeRef = $nodeRef;
$nodeAddress = new StdClass();
$nodeAddress->Address = "10-4 Place du lac";
$nodeAddress->City = "Granby";
$nodeAddress->Province = "QC"; // ISO code
$nodeAddress->Country = "CA"; // ISO code
$nodeAddress->PostalCode = "J2G 4C3";
$task->NodeAddress = $nodeAddress;

// Propriétés personnalisables (le nom des propriétés dépend du type de tâche)

$task->Properties = new StdClass();
$task->Properties->Property = array();
$task->Properties->Property[0] = new StdClass();
$task->Properties->Property[0]->Name = 'info1.NO_FACTURE';
$task->Properties->Property[0]->Value = new SoapVar('1234567890', XSD_STRING, 'string', 'http://www.w3.org/2001/XMLSchema');

$task->Properties->Property[1] = new StdClass();
$task->Properties->Property[1]->Name = 'test.test2';
$task->Properties->Property[1]->Value = new SoapVar('test2', XSD_STRING, 'string', 'http://www.w3.org/2001/XMLSchema');

// Liste Items

$taskItemList = new stdClass();
$taskItemList->TaskItems = new stdClass();
$taskItemList->TaskItems->Record = array();

// Créer 2 items
$taskItem = new StdClass();
$taskItem->Quantity = 1;
$taskItem->Label = "Ordinateur";
$taskItem->Price = 499.99;
$taskItem->Taxable = true;
$taskItemList->TaskItems->Record[0] = new SoapVar($taskItem, SOAP_ENC_OBJECT, 'TaskItem', "http://task.v1.ws.progression.diffusion.cc");


$taskItem = new StdClass();
$taskItem->Quantity = 2;
$taskItem->Label = "Écran";
$taskItem->Price = 199.99;
$taskItemList->TaskItems->Record[1] = new SoapVar($taskItem, SOAP_ENC_OBJECT, 'TaskItem', "http://task.v1.ws.progression.diffusion.cc");

//Le calcul de SubTotal, Total et TaxesAmount doivent être fait manuellement

$taskItemList->SubTotal = 899.97;
$taskItemList->Total = 899.97;
$task->TaskItemList = $taskItemList;

// Metas Propriétés
$task->Metas = new StdClass();
$task->Metas->Property = array();
$task->Metas->Property[0] = new StdClass();
$task->Metas->Property[0]->Name = 'MonIdInterne';
$task->Metas->Property[0]->Value = new SoapVar('123456', XSD_STRING, 'string', 'http://www.w3.org/2001/XMLSchema');

$createTaskRequest = new StdClass();
$createTaskRequest->credentials = $credentials;
$createTaskRequest->task = $task;
$createTaskRequest->dispatch = false;

$response = null;
try {
    $response = $service->CreateTask($createTaskRequest);
    echo "Tâche crée ";
    echo $response->taskRef->Id;
    echo "<br/>";
} catch (Exception $e){
    echo "Erreur à la création de la tâche";
    echo "<br/>";
}