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/>";
}