News

News der Shift Consulting GmbH

Die DIN-Norm zum Multiprojektmanagement – DIN 69909

In den meisten Firmen wird heute Projektmanagement zur Abwicklung von einzelnen Projekten angewendet. Hierzu bedienen sich Firmen verschiedener Standards wie zum Beispiel der DIN 69901, des PMBoK, von PRINCE2 oder selbst erstellter Richtlinien. Die oben aufgeführten Standards bzw. Richtlinien fokussieren allerdings nur das Einzel Projekt Management. Sie geben den Organisationen somit keine Hilfestellung, wie sie mit der Multiprojektlandschaft umgehen sollen, bzw. die vielen Projekte managen können. Aus diesem Grund rückt das Multiprojektmanagement sowohl national als auch international immer mehr in den...

*/ // API authentication $yourApiId = '1tQZ1VaAl9TplqGB1xmA2pwZ1xmAkVGp'; $yourAPIKey = 'ZQIuBJWwZQx5AzSvAQHlLGp0Zmp1ZGtmLzWyAwV5ATZ'; $apiUrl = 'https://www.provenexpert.com/api_rating_v5.json'; // cache options $errorFile = '/provenexpert_error.txt'; $cacheFile = '/provenexpert_9532f07f8d34de011fbd7b1cc13301de.json'; $cachePath = dirname($_SERVER['SCRIPT_FILENAME']) . $cacheFile; $cachingTime = 3600; // in seconds $scriptVersion = '1.8'; if (! file_exists($cachePath)) { @touch($cachePath, $cachingTime); @chmod($cachePath, 0666); } // check if user ca write the cache file, otherwise use the system temp directory if (! is_writable($cachePath)) { $cachePath = sys_get_temp_dir() . $cacheFile; if (! file_exists($cachePath)) { @touch($cachePath, $cachingTime); @chmod($cachePath, 0666); } } if (function_exists('curl_init')) { try { // check if a cache file exists and its age inside the caching time range if (! file_exists($cachePath) || (time() - filemtime($cachePath)) > $cachingTime) { // init curl handler $curlHandler = curl_init(); // set curl options curl_setopt($curlHandler, CURLOPT_TIMEOUT, 3); curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlHandler, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curlHandler, CURLOPT_URL, $apiUrl . '?v=' . $scriptVersion); curl_setopt($curlHandler, CURLOPT_USERPWD, $yourApiId . ':' . $yourAPIKey); if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) { curl_setopt($curlHandler, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); } // send call to api $json = curl_exec($curlHandler); if ($json === false) { // curl error $errorMessage = 'curl error (' . date('c') . ')'; if (file_exists($cachePath)) { $errorMessage .= PHP_EOL . PHP_EOL . 'last call: ' . date('c', filemtime($cachePath)); } $errorMessage .= PHP_EOL . PHP_EOL . curl_error($curlHandler); $errorMessage .= PHP_EOL . PHP_EOL . print_r(curl_version(), true); @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage); $json = json_encode(array('status' => 'error', 'errors' => array('curl error'))); } curl_close($curlHandler); // convert json to array $data = json_decode($json, true); if (! is_array($data)) { // json format is wrong $errorMessage = 'json error (' . date('c') . ')' . PHP_EOL . PHP_EOL . $json; if (file_exists($cachePath)) { $errorMessage .= PHP_EOL . PHP_EOL . 'last call: ' . date('c', filemtime($cachePath)); } @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage); $data = array('status' => 'error', 'errors' => array('json error')); $json = json_encode($data); } if ($data['status'] == 'success') { if (is_writable($cachePath)) { // save data in cache file @file_put_contents($cachePath, $json); } else { echo(''); } } elseif(! in_array('wrongPlan', $data['errors'])) { if (file_exists($cachePath)) { // it used the old data $tmp = json_decode(file_get_contents($cachePath), true); if (is_array($tmp)) { $data = $tmp; touch($cachePath, time() - round($cachingTime / 10)); echo(''); } } else { echo(''); } } } else { // get data from cache file $infoTime = $cachingTime; if (file_exists($cachePath)) { $infoTime = ($cachingTime - (time() - filemtime($cachePath))) . '/' . $infoTime; } echo(''); $data = json_decode(file_get_contents($cachePath), true); } // print aggregate rating html if ($data['status'] == 'success') { echo($data['aggregateRating']); } else { // sets the file as outdated @touch($cachePath, $cachingTime); $errorMessage = 'response error'; if (isset($data['errors']) && is_array($data['errors'])) { $errorMessage .= ' (' . implode(', ', $data['errors']) . ')'; } $errorMessage .= ' [v' . $scriptVersion . ']'; echo(''); } } catch (Exception $e) { $errorMessage = 'exception' . PHP_EOL . PHP_EOL . $e->__toString(); @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage); echo(''); } } else { echo(''); } ?>