<?php $soapURL = "http://localhost:8080/ws/services/AssetOperationService?wsdl"; $client = new SoapClient($soapURL, array('trace' => 1, 'location' => str_replace('?wsdl', '', $soapURL))); $auth = array('username' => 'admin', 'password' => 'admin'); $identifier = array('id' => '69b7e3140a00016c5e4c03d46a931aed', 'type' => 'folder'); $workflowDefinitionIdentifier = array('id' => '3591e3107f0000010020a239a209a2e2', 'type' => 'workflowdefinition'); $readParams = array('authentication' => $auth, 'identifier' => $identifier); $reply = $client->readWorkflowSettings($readParams); if ($reply->readWorkflowSettingsReturn->success == 'true') { $workflowDefinitions = $reply->readWorkflowSettingsReturn->workflowSettings->workflowDefinitions->assetIdentifier; if (sizeof($workflowDefinitions) == 0) { $workflowDefinitions = array(); } else { if (!is_array($workflowDefinitions)) { // For less than 2 eleements, the returned object isn't an array $workflowDefinitions = array($workflowDefinitions); } } $alreadyContains = false; foreach ($workflowDefinitions as $identifier) { if ($identifier->id == $workflowDefinitionIdentifier->id) { $alreadyContains = true; } } if ($alreadyContains) { echo "Workflow definition is alraedy assigned"; } else { $workflowDefinitions[] = $workflowDefinitionIdentifier; $reply->readWorkflowSettingsReturn->workflowSettings->workflowDefinitions->assetIdentifier = $workflowDefinitions; $editParams = array('authentication' => $auth, 'workflowSettings' => $reply->readWorkflowSettingsReturn->workflowSettings, 'applyInheritWorkflowsToChildren' => false, 'applyRequireWorkflowToChildren' => false);