Posts Tagged ‘SAP’

Montag, 2. März 2015

SAP-Datenexporte mit Unix-Tools filtern

Kürzlich stand ich vor der Aufgabe, einen 1.8 Millionen Zeilen umfassenden SAP-Export (SE16N, sowie Hintergründe) nach genau 16-stelligen Zahlenfolgen zu filtern. Anstelle Excel (kann sowieso nicht mit 1.8 Millionen Zeilen umgehen) oder das komplizierte ACL zu verwenden, entschied ich mich stattdessen, die Plaintext-Datei mit Unix-Tools zu filtern.

Inspiration dazu war der kürzlich auf Hacker News erschienene Artikel Command-line tools can be 235x faster than your Hadoop cluster.

Unter Windows klappt das problemlos, wenn man Github für Windows installiert hat – die Installation bringt nämlich eine Linux-Shell mitsamt den grundlegendsten Unix-Tools mit, so auch cat, grep und wc.

Um den SAP-Export mit „|“ als Feldabgrenzung auf den gesuchten Pattern zu filtern, habe ich folgenden Befehl verwendet:

$ cat export.txt | grep -E "\|[4-5]{1}[0-9]{15}" > export-filtered.txt

Dieser Befehl speichert alle Zeilen aus der Datei export.txt, welche 16-stellige Zahlen enthalten, die mit 4 oder 5 beginnen und am Anfang eines Feldes stehen (deshalb \|), in die Datei export-filtered.txt.

So entfiel der Import über eine graphische Oberfläche (mit der obligatorischen Titelleiste „Keine Rückmeldung“) und die Sache war innert 5 Minuten gegessen.

Tags: , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Montag, 12. März 2012

Coop und MIGROS sind noch nicht bei Web 2.0 angekommen

Was fällt dem geneigten Web-Entwickler an nachfolgenden URLs auf, die auf Produkte in Web-Shops von Coop (Coop@home) respektive MIGROS (LeShop) verweisen?

Mein Deutschlehrer aus dem Gymnasium würde sowohl die Detailhändler als auch die Entwickler deren Web-Shops fragen: „Sind Sie eigentlich bescheuert?!“ Es scheint, als wären die technische Entwicklung der letzten 10 Jahre spurlos an diesen beiden Buden vorbeigegangen.

Zum einen wäre der Nutzen kurzer, einfacher deklarativer URLs für die Endkunden deutlich komfortabler – und würde wohl auch sozusagen kostenlos SEO mit sich bringen. Wie wäre es bspw. mit:

  • http://www.coopathome.ch/product/coop-mango-lassi-2.5dl/1234567890
  • http://www.leshop.ch/product/selection-lassi-mango/1234567890

Zum andere Frage ich mich über die Überlegungen der Web-Entwickler hinter den beiden Web-Shops, insbesondere desjenigen von coop@home: Was zum Teufel sollen all diese Variablen, die per GET übergeben werden?

  • xcm=coop_dev
  • cpgsize=24
  • layout=7.0-1_0_3_7_8_9_10_11_14_13_51_18_15_21_46_47_52_6_26
  • uiarea=16
  • cpgnum=1

Und was sagt mir diese ellenlange URL b2c_coop/catalog/updateItems/ eigentlich aus?

Wir sehen, es bleibt bei Coop & Co. noch viel zu tun.

Tags: , , , , ,
Labels: Web

1 Kommentar | neuen Kommentar verfassen

Donnerstag, 9. Februar 2012

SAP Spreadsheet-Exporte parsen

… ist leider nicht so einfach.

SAP bietet die Möglichkeit, Reports zu exportieren. Zur Auswahl steht unter anderem auch ein „Spreadsheet“-Format, für welches die Endung .xls vorgeschlagen wird. Dabei handelt es sich aber nicht etwa um das Excel-Binärformat, welches heute durch OOXML abgelöst wurde, sondern um das ältere XLL-Format, was auch immer das genau sein soll. Betrachtet man die aus SAP generierte Datei in einem Text-Editor, ist offensichtlich, dass es sich hierbei nicht um ein Binär- sondern um ein Plaintext-Format mit Tabulator getrennten Spalten handelt.

Wenn diese Datei aber mit Python eingelesen wird und verarbeitet werden soll, ergeben sich Probleme. Die Zeichen sind auf der cygwin-Kommandozeile von einem Leerzeichen getrennt. Es handelt sich also nicht um eine ASCII-Ausgabe.

Ein Blick mit Notepad++ auf die Datei zeigt, dass die Encodierung der Datei UCS-2 Little Endian sein soll. Auf Stackoverflow ist erwähnt, dass diese Encodierung in Python wie UTF-16 behandelt werden kann, und zwar folgendermassen:

file = codecs.open(filenameInput,'Ur',encoding='utf-16be')

Leider führt das aber nicht zum Erfolg, was nachfolgende Fehlermeldung einem schmerzlich vor Augen führt:

Traceback (most recent call last):
  File "./<script>.py", line 140, in 
    data = file.read()
  File "C:\Python27\lib\codecs.py", line 671, in read
    return self.reader.read(size)
  File "C:\Python27\lib\codecs.py", line 477, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf16' codec can't decode bytes in position 1082-1083: illegal encoding

Tags: , ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. Mai 2009

Jetzt kommt auch noch die SAP-Abwrackprämie

Gemäss einem Inserat in der heutigen SonntagsZeitung übernimmt ein findiges Unternehmen

Speziell in wirtschaftlich schwierigen Zeiten ist ein stabiles, homogenes und zukunftsorientiertes ERP-System zu erschwinglichem Preis unverzichtbar. Denn nur dieses sichert Ihnen komplett durchgängige, effiziente und transparente Geschäftsprozesse.

Quelle: .: resource-Abwrackaktion: 50’000 für Ihr altes ERP-System :.

Abgesehen davon, dass das Inserat wohl vom Sohn des CEOs „designt“ wurde (ich zähle vier Schriftschnitte und ebensoviele Schriftfarben), weiss ich nicht, ob obige Aussage wirklich so wunderbar auf SAP zutrifft? Der Kostenerlass von 50’000CHF kann aus dieser Sicht eher als vorgezogenes Schmerzensgeld gezählt werden …

Tags: ,
Labels: IT, Medien, Schweiz

Keine Kommentare | neuen Kommentar verfassen

Freitag, 2. Januar 2009

Die echten Unternehmer tadeln die Banker

Natürlich brauchen wir akute Finanzhilfen, auch wenn mir nicht ganz einleuchtet, weshalb jetzt ausgerechnet die als Erste Geld vom Staat bekommen sollen, die am schlechtesten gewirtschaftet haben.

Quelle: SPIEGEL ONLINE – Druckversion – Ökonomie: „Die Welt hat viel zu sehr auf Pump gelebt“ – SPIEGEL ONLINE – Nachrichten – Wirtschaft

Tags: , ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Freitag, 11. Juli 2008

Wo wäre Levi’s ohne SAP ERP?

Im profitablen Bereich …

Levi’s is standardizing on a single global instance of SAP ERP, and told The Reg it was forced to take shipping systems at its three massive US distribution centers off line for a full week in April to fix problems receiving and fulfilling orders.

[…] SAP and ERP in general are complex systems, and when implementations go wrong they do so with profound implications on the bit of the business that really matters – making money and keeping customers happy. SAP has a few skeletons in its past.

Quelle: Levi’s suffers profit meltdown in midst of SAP embrace | The Register

Tags: , ,
Labels: IT, USA, Wirtschaft

Keine Kommentare | neuen Kommentar verfassen