Ralf Hohoff

Geräteinformationen von Dell automatisch auslesen

Die Informationen über auslaufende Service-Verträge gelangten recht schwach strukturiert in unser Unternehmen und dies war seitens Dell auch nicht einfach änderbar. Der Abruf dieser und weiterer Informationen wie Gerätedaten über den Dell-Kundenbereich gestaltete sich auch als schwierig, weil das Dateiformat geändert wurde und Datumsangaben mal im deutschen und mal im amerikanischen Format angegeben wurden (in einer Spalte!).

Eine zentrale Verwaltung der Informationen in einer Datenbank und das automatische Aktualisieren der Gerätedaten musste her. Nach einiger Suche habe ich herausgefunden, dass es eine API gibt, die aber Probleme bereitet.

Hilfreich waren PHP: Querying Dell AssetService webservice to retrieve asset information und Get Dell System Warranty with PowerShell.

Ich habe erst versucht, die Daten mit Pentaho Data Integration direkt über den Webservice-Aufruf die Daten auszulesen. Das scheiterte, weil die im WSDL-File angegebene Adresse http://support.dell.com/WebServices/GetAssetInformation für die Funktion “GetAssetInformation” nicht verfügbar war. Wenn man diese Adresse durch http://xserv.dell.com/services/AssetService.asmx überschreibt, erhält man die Daten. Das “Überschreiben” ging nicht in Pentaho Data Integration und deshalb habe ich das mit PHP gemacht. Das PHP-Skript wird mit dem Service-Tag aufgerufen und gibt die Informationen im JSON-Format zurück.

$DELL_URL = "http://xserv.dell.com/services/assetservice.asmx?WSDL";
$soap = new SoapClient($DELL_URL, array('soap_version' => SOAP_1_2));
 
// Location muss überschrieben werden, weil die Url (die im WSDL angegeben wird!) nicht mehr korrekt ist!
// http://www.scconfigmgr.com/2013/06/23/get-dell-system-warranty-with-powershell/
$soap->__setLocation('http://xserv.dell.com/services/AssetService.asmx');
 
$tag = $_GET['ServiceTag'];
$response = $soap->GetAssetInformation(
	array(
	"guid" => "11111111-1111-1111-1111-111111111111",
	"applicationName" => "AssetService",
	"serviceTags" => $tag
	)
);
echo json_encode($response, JSON_PRETTY_PRINT);

Das Pentaho-Skript liest alle Service-Tags aus der Datenbank, ruft die PHP-Seite parametrisiert mit dem Service-Tag auf, verarbeitet das zurückgegebene JSON-Format und speichert die Informationen in der Datenbank.

Dell Servive-Tags auslesen

 

JSON-Beispiel für Service-Tag “4FL45W1”

{
    "GetAssetInformationResult": {
        "Asset": {
            "AssetHeaderData": {
                "ServiceTag": "4FL45W1",
                "SystemID": "optiplex-9010-aio",
                "Buid": "8270",
                "Region": "Asia \/ Pacific",
                "SystemType": "OptiPlex",
                "SystemModel": "OptiPlex 9010 All In One (Mid 2012)",
                "SystemShipDate": "2012-12-12T13:00:00-06:00"
            },
            "Entitlements": {
                "EntitlementData": [
                    {
                        "ServiceLevelCode": "HDD",
                        "ServiceLevelDescription": "For Non Returnable HDD",
                        "Provider": "",
                        "StartDate": "2012-12-12T00:00:00",
                        "EndDate": "2015-12-13T00:00:00",
                        "DaysLeft": 88,
                        "EntitlementType": "Active"
                    },
                    {
                        "ServiceLevelCode": "AD",
                        "ServiceLevelDescription": "Accidental Damage Service",
                        "Provider": "",
                        "StartDate": "2012-12-12T00:00:00",
                        "EndDate": "2015-12-13T00:00:00",
                        "DaysLeft": 88,
                        "EntitlementType": "Active"
                    },
                    {
                        "ServiceLevelCode": "NBD",
                        "ServiceLevelDescription": "Next Business Day response",
                        "Provider": "",
                        "StartDate": "2013-12-13T00:00:00",
                        "EndDate": "2015-12-13T00:00:00",
                        "DaysLeft": 88,
                        "EntitlementType": "Active"
                    },
                    {
                        "ServiceLevelCode": "POW",
                        "ServiceLevelDescription": "Parts Only Warranty",
                        "Provider": "",
                        "StartDate": "2013-12-13T00:00:00",
                        "EndDate": "2015-12-13T00:00:00",
                        "DaysLeft": 88,
                        "EntitlementType": "Active"
                    },
                    {
                        "ServiceLevelCode": "NBD",
                        "ServiceLevelDescription": "Next Business Day response",
                        "Provider": "",
                        "StartDate": "2012-12-12T00:00:00",
                        "EndDate": "2013-12-13T00:00:00",
                        "DaysLeft": 0,
                        "EntitlementType": "Expired"
                    },
                    {
                        "ServiceLevelCode": "POW",
                        "ServiceLevelDescription": "Parts Only Warranty",
                        "Provider": "",
                        "StartDate": "2012-12-12T00:00:00",
                        "EndDate": "2013-12-13T00:00:00",
                        "DaysLeft": 0,
                        "EntitlementType": "Expired"
                    }
                ]
            }
        }
    }
}

Die Turbo-Backstube

In vielen Unternehmen werden Daten in manueller Form auf Papier oder in einfach strukturierten Excel-Tabellen erfasst und weiterverarbeitet. Eingabe- und Übertragungsfehler sind vorprogrammiert, doch der Einsatz einer Software-Anwendung erscheint auf den ersten Blick aufwendig und teuer. Insbesondere dann, wenn keine Standardanwendung zur Verfügung steht, die mit geringem Customizing-Aufwand und geringen Lizenzkosten genutzt werden kann. Dass dennoch eine Individuallösung innerhalb kurzer Zeit und mit begrenzten finanziellen und personellen Ressourcen umgesetzt werden kann, zeigt dieses Beispiel.

In einer Case Study beschreiben mein Kollege Thomas Recke und ich, wie mit CakePHP und MySQL ein Buchungssystem für 900 Mitarbeiter in nur sechs Wochen umgesetzt wurde. Der Artikel ist druckfrisch erschienen im Entwickler Magazin 5/2010 und steht wie gewohnt als Download zur Verfügung.

Hübsche Zahlen – Interaktive Diagramme mit Flash und PHP

Die Visualisierung von Kennzahlen stellt eine wesentliche Erleichterung bei der Entscheidungsfndung in der Steuerung von Unternehmen und ihren Prozessen dar. Beliebt sind hierfür z. B. Tortendiagramme oder die Darstellungen von Säulen, die mit den verbreiteten Tabellenkalkulationen MS Excel oder Open Offce einfach realisiert werden können. Doch wie publiziert man sich häufg ändernde Daten in kurzen Zeitintervallen und präsentiert sie in ansprechender Weise auch einer größeren Benutzergruppe?

Mein Artikel ist sowohl im Entwickler Magazin 1/2010 als auch im PHP Magazin erschienen.

Als PDF kann ich es nun auch direkt zum Download anbieten 😉

BTW: Das beschriebene Open Flash Chart wird auch von Pentaho BI im Dashboard eingesetzt.