Freitag, 21. Dezember 2007
FF: Flex und Ferien
Merry x-mas and a happy new year!
the rap team
Donnerstag, 20. Dezember 2007
Kundenprojekte und Praxisarbeit
Am Nachmittag, nach einer RAPer Ski Challenge Session, widmeten Manuel und ich uns dann auch der neuen - vierten - Praxisarbeit zu.
Stefan seinerseits war mit den Tests eines weiteren Kundenprojektes betraut - scheinbar keine so 'lässige' Arbeit, waren doch von Zeit zu Zeit immer wieder genervte Äusserungen aus seiner Ecke zu vernehmen.
Nun freuen wir uns alle auf die Weihnachtsferien.
Mittwoch, 19. Dezember 2007
Start PXA2
Herr Brandenberger kam mit einer klaren Vorstellung der Lösung zu uns, der ein Kollege von ihm hat ihm die Lösung, welche sie in der Firma einsetzen gezeigt.
Folgendes ist noch zu ändern:
Änderungen der von Ihnen vorgestellten Lösung der Schaltag AG:
1. Selektionsbild
1.1 Selektionskriterien für Backoffice Mitarbeiter
1.2 Selektionskriterium für Positionsnettowert
1.3 Logo
1.4 (optional) Intranet Popup
2. Produktstruktur-Browser
2.1 Header mit Stichtag und Logo
2.2 TreeALV Lösung mit Selektierten Materialien
2.2.1 Anzeige der hinterlegten Dokumenten
2.2.2 Anzeige aller Spalten (Sortierung im Tree)
2.2.3 (optional) Aktualisieren von Positionsdaten des selektierten Materials
2.3 Auftragspositionsliste
2.3.1 zusätzliche Spalte für Backoffice Mitarbeiter (Input)
2.3.2 Hotspot auf Belegnummer -> Auftrag ändern
2.3.3 Drucktaste für Druckvorschau
2.3.4 Hervorheben von Nettowert anhand Wert von Selektionsbildschirm
2.3.5 Ausblenden von Drucktasten "neu" und "Spalte hinzufügen"
3. Druckvorschau
3.1 Drucktasten: Texteditor, Vollbild, Mail, Auftrag o.k.
3.2 Email Editor für interne und externe Mail-Nachrichten
3.3 Betreff enthält Auftragsnummer
3.4 als Empfänger wird Personalnummer angegeben
3.5 Popup falls noch kein Backoffice Mitarbeiter zugewiesen ist
Ach ja, und dann war da noch was mit dem Server. Man konnte regelrecht zuschauen wie langsam aber sicher abkratzt, was das Versenden der Offerte ziemlich erschwerte. Doch auch das haben wir noch hinbekommen.
Dienstag, 18. Dezember 2007
MM/PP Schulung - Part 2
Als nächstes haben wir mal unsere Stammdaten im MM entsprechend den folgenden Aufgaben angepasst. Die heutige Aufgabe: Kalkulationschemas, Preisfindungen, Planung/Stückliste, Inventar, Fertigung und Prüfung/QM kennenlernen.
Es begann sich eine Wolke zu bilden, man sah den Bildschirm kaum.. Es war nicht immer leicht gleich alles nachzuvollziehen, vor allem bei dem Tempo war es nicht immer leicht am Faden zu bleiben.
Als final part haben wir noch die Theorie der Variantenkonfiguration durchgejagt. Ein sehr verlockendes Thema, wenn auch etwas beängstigend als man hörte wie komplex es werden kann :-( das witzige war hier der Code, welcher nicht nur ungewöhnlich war ;-)
Montag, 17. Dezember 2007
LSMW - Einfach... oder doch nicht?
Am Nachmittag hat uns Tom eine Aufgabe gegeben per LSMW den Kundenstamm zu erweitern. Ich habe mich wirklich mal alleine mit dieser Aufgabe beschäftigen wollen, damit ich alles nachvollziehen kann, jedoch habe ich nebenbei noch Stefan geholfen bei seiner WEKA Aufgabe. Wie ging Prozentrechnen schonwieder? Egal... Die Datenübernahme hat jetzt um 17:30 noch nicht geklappt. Bei der Datenüberprüfung stosse ich im Moment noch auf über 7000 Fehler. Jedoch was ich so von den anderen gehört habe, sind diese auch noch am Kämpfen. Bis morgen... ich geh jetzt einkaufen.
Freitag, 14. Dezember 2007
Der Tag der anstehenden Arbeiten
Donnerstag, 13. Dezember 2007
Another Thursday
Alles in allem - ein nicht zu erfreulicher Donnerstag. Aber auch die schlechten Tage brauchts, nöd wohr.
Mittwoch, 12. Dezember 2007
WEKA & BatchInput
Vom restlichen Geschehen bekahm ich jedoch recht wenig mit, lediglich das für die WEKA diverse Sachen gemacht wurden :-(
Dienstag, 11. Dezember 2007
Die Realität
Ja, eigentlich arbeite ich im Moment an einem Kundenprojekt, wo es um Datenmigration mit Hilfe von Batch-Input geht. Die schwierigkeit ist hier, das Customizing einstellungen gelesen werden müssen, damit der Batch-Input fehlerfrei funktioniert. Ansonsten funktioniert der Batch-Input eigentlich ganz gut. Mit Hilfe der Transaktionsaufzeichnung ist so ein Batch-Input relativ schnell erstellt. Es sei denn... :) Die Anforderungen und die Struktur des Inputfiles ändern andauernd.
Aber auch das, normal. :)
So geht es bei uns zügig voran. Flexibel sein ist das oberste Gebot. Wenn gerade mal eine Pause entsteht, gibt es viele Kapitel und Themen die noch offen sind.
Montag, 10. Dezember 2007
Projektarbeit? Schulung?
Zuerst gab es einen Theorieblock über die Datenübernahme-Technicken. Da gibt es z.B. Batch-Input, Direct Input und Call Transaction. Wie jede einzelne funktioniert steht im zweiten Kapitel des Kurses BC420. Es gibt jeweils eine "schöne" Grafik dazu.
Im Verlauf des Nachmittages schauten wir zusammen ein Batch-Input Programm an, welches Fabrice für die WWZ geschrieben hat. Wir haben ebenfalls den Transaction-Recorder angeschaut. Mit diesem kann man sehr einfach und bequem Batch-Input Programme erzeugen, welche dann sehr leicht anpassbar sind. Zum Schluss haben wir den Unterschiede zwischen Batch-Input und Call Transaction angeschaut. Bei beidem braucht man eine bdc_tabelle.
Freitag, 7. Dezember 2007
Friedrichshafen
Selbststudium Freitag
64 Customcontainers, 64 Picture Controls, ca. 128 unterschiedliche Pictures der Schachfiguren die im BDS hinterlegt sein sollten oder allenfalls über eine externe URL bereitgestellt sind. Soweit so gut, doch wie genau sieht der Re-Link eines Picturecontrols aus, wenn der Zug eine Gegnerische Figur angreifft? Wie soll überprüft werden, welcher Zug überhaupt möglich ist? Und wie implementiert man denn bloss eine Rochade? :)
Viele kleine Dinge die das Resultat aber schwer beeinflussen -> Von mir aus gesehen eine bessere Übung die zumindest motiviert und verschiedene Bereiche miteinbezieht. Wann wir aber wieder Zeit für's Selbststudium haben und ob es dann auch für ein Schach reicht lassen wir mal dahingestellt. Die nächsten Kundenprojekte stehen vor der Tür, ich geh dann mal aufmachen - bis bald!
Mittwoch, 5. Dezember 2007
Controls, Quartalsmeeting und Apéro
Mein Thema war die Drag&Drop-Funktionalität in EnjoyControls. Ein ziemlich happiges Thema, welches in den Schulungsunterlagen ziemlich unglücklich erklärt wird, wie wir feststellen mussten. Nichts desto trotz arbeiteten wir das Kapitel tapfer durch und versuchten dann gemeinsam eine Übung dazu zu machen. Dummerweise funktionierte zum Schluss nur die Drag-, nicht aber die Drop-Funktionalität. Nach ergiebiger Fehlersuche mussten wir dann feststellen, dass der Fehler in der Musterlösung lag - und wir diesen unwissend übernommen hatten.
Kurz darauf begaben wir uns zum Quartalsmeeting wo wir von Sergio ausführlich über alle Aktualitäten in der resource informiert wurden. Nachdem beim letzten Quartalsmeeting Silas einen RAP-Bericht geliefert hatte, gab diesmal Stefan seinen Vortrag von unseren letzten 3 Monaten im RAP zum besten.
Nach dem Meeting ging es dann hinunter in die Globus "Weihnachts-Lounge", wo wir diverse Köstlichkeiten präsentiert bekamen und auch der Durst nicht zu kurz kam. So blieben viele noch bis spät am Abend und genossen die Zeit zusammen.
Dienstag, 4. Dezember 2007
Ein Tag im Serverraum
ALV_GRID mit Jim Knopf
Das Hotspot event, wobei im Fieldcatalog der Spalte der Eintrag wa_fieldcat-hotspot = 'X'. hinzugefügt werden muss,
Das double_click Event sowie das toolbar Event.
Denn für das hinzufügen von Button's in den Header der ALV Liste wir ebenfalls ein Event benötigt.
Dieses wird mit der Methode set_table_for_first_display ausgelöst.
Deshalb muss der Befehl
set handler lcl_event_handler=>on_toolbar for ref_alv.
Auch vor dem ersten Aufruf der ALV Liste ausgeführt werden.
Mit dem Befüllen der Tabelle e_object->mt_toolbar wird anschliessend der Button im Header des ALV angezeigt.
METHOD on_toolbar.
data l_wa_button type stb_button.
l_wa_button-function = 'JIMKNOPF'.
l_wa_button-icon = ICON_OKAY.
l_wa_button-quickinfo = 'JIMMY'.
l_wa_button-butn_type = 0.
l_wa_button-text = 'JIM'.
insert l_wa_button into table e_object->mt_toolbar.
ENDMETHOD.
Dieser Button löst wiederum ein Event aus: user_command, welchen im Eventhandler mit der Variable e_ucomm abgefangen werden kann.
Am Mittag gabs dann noch eine Schulung von Thomas zum Thema Transportaufträge Kopieren.
Montag, 3. Dezember 2007
Enjoy Controls die nächste Runde!
Die verschiedenen Container welche uns Pascal gezeigt hat, waren folgende: Der Custom Container, der Dialogbox Container, der Dockingcontainer. Was auch noch zu den Containern gehört sind das SAP Split Control und das SAP Easy Splitter Control. Wobei zweiteres wesentlich einfach hand zu haben ist. Jedoch bietet ersteres mehr Möglichkeiten.
Ziemlich flott ging es dan mit den Kontextmenüs weiter. Kontextmenüs werden über bestimmte Events bearbeitet, verarbeitet oder gelöscht. Das tückische an diesen Events ist, dass diese bei jedem Control anders heissen. Es gibt auch noch ein Spezialfall beim Picture Control. Zu den Kontextmenüs haben wir dann auch noch eine kleine Übung gemacht.
Ganz am Schluss von Pascals Schulung haben wir noch ein Blick in das Text Edit Control geworfen und auch dazu eine Übung gemacht.
Anschliessend an die Schulung von Pascal versuchte ich dem R.A.P.-Team das SAP Grid Control (ALV) näher zu bringen. Wir haben in kurzer Zeit ein ALV hinbekommen. Auch haben wir einen eigenen Feldkatalog einbauen können. Für die Events vom ALV-Grid hat es an diesem Abend leider nicht mehr gereicht.
Freitag, 30. November 2007
?= What the fuck? Down-Casting? hääääää?!
Donnerstag, 29. November 2007
Lost in Debug
In der ME31k können Kontrakte angelegt werden für die wir Standardtexte aus 'SO10' auf Kopf sowie Positionsebene ziehen. Das Laden dieser Texte funktioniert soweit - doch werden diese in auf den Dynpros erst nach einmaligem aufrufen des entsprechenden Texteditors hineingezogen. Simpel oder? ... ähm nein, nicht ganz. Wir haben heute Stunden damit verbracht PAI sowie PBO der Dynpros die dieses "Hineinladen" der Texte bewirken zu debugen.
Nun -Stunden später und nach einigen Lösungsansätzen erkläre ich mich für weich! Ich frage mich wie oft heute F5, F6, F7 oder F8 gedrückt wurde und beschliesse mal an etwas essbares zu denken. Vielleicht trifft mich ja noch ein Blitz der Blitze :/.
Nebst diesem Blocker läuft es mit den Arbeiten allerdings gut vorran. Die Pendenzen, sogar die für nächste Woche, sind soweit zum Transport bereit. Die Arbeiten am FlexMonitor sind nich zu kurz gekommen und für die EnjoySAP Control schulung sind bereits weitere Kapitel vorbereitet. Die Arbeitsteilung ging meiner Meinung nach gut auf
und ich freue mich auf eine 'freie' Stunde für ein Projektreview auf die geleisteten Aufgaben!
Ahja, morgen ist schonwieder Freitag! - sollte man sich eigentlich Sorgen machen, wenn die Zeit zu rasen scheint?
Mittwoch, 28. November 2007
SWT, Enjoy und Flex
Während Pascal sich den Pendenzen des FlexMonitors zuwandte, arbeitete sich Silas den grössten Teil des Tages in ein Thema der kommenden EnjoyControls-Schulung ein.
Thomas und Stefan schlugen sich tapfer bei der automatischen Einbindung der von SWT gewünschten Kopf- bzw. Positions-Texte beim Erfassen eines neuen Mengen-Kontraktes.
Fabrice stellte die Modifikation an der SM21N fertig, welche den Einkäufer bei der Auswahl des Kontraktes (sofern vorhanden) unterstützt.
Manuel seinerseits war mit dem Rahmenvereinbarungs-Formular beschäftigt, wobei ich ihn nach Möglichkeit unterstützte.
Allgemein war ich heute ziemlich vielseitig beschäftigt. Ich unterstützte Manuel bei sämtlichen Problemen die auftraten, half Fabrice beim Testen seiner Lösung und erfasste die Standard-Texte für Thomas und Stefan.
Ausserden schaffte ich es heute endlich, mir einen Überblick über die Lieferadress-Findung in SWTs Bestellformular zu verschaffen. Dies war eine Bitte von Thomas, so dass er nicht der einzige ist, der darüber Bescheid weiss.
Nach zwei langen, fast zehnstündigen Tagen konnten wir heute alle 'bereits' nach acht Stunden den Heimweg antreten.
Dienstag, 27. November 2007
SWT, Enjoy & E1-Meeting
Die Haubtpunkte waren für mich heute, SO10 Texte anpassen und einfügen. Dann noch herausfinden wie ich den Positions und Kontrakttext in das Formular bekomme. Trotz hilfe von Mat haben wir das aber nicht mehr vor der Schulung hingekrigt. =(
Stefan gab uns nuhn einen Einblick in die Enjoy'able OO-Welt (EnjoyControls). Als Übung erstellten wir ein kleines Dynpro, welches bei Aufruf ein Bild mit der [load_picture_from_url] Methode, an hand einer URL, anzeigt.
Pascal brachte dazu noch ein kleines Addon. Er zeigte uns wie man ein Bild auch ohne Dynpro ausgeben und auch einen Refresh des Standarddynpros, nach ablauf einer Zeit erzeugen kann.
Zum schluss gab es noch ein E1-Meeting mit interessanten und auch lustigen Themen. Tom zeigte uns wie man ein iDoc per Mail versendet und Pascal fand sogar ein Weg um SELECT's dynamisch zu befüllen.
Montag, 26. November 2007
Begeisterung erleben...
Stefan ackerte sich durch die Kursunterlagen des nächsten Kurses ABAP Dialogprogrammierung EnjoySAP Controls. Er hat sich die Grundlagen angeschaut und wird uns morgen eine Schulung geben.
Manuel kämpft mit einem Formular. Was er genau macht weiss ich nicht. Aber es läuft wohl nicht alles so wies sollte. Das war ganz klar zu hören. :)
Silas und Pascal sind weiterhin am FlexMonitor beschäftigt und kommen zügig voran. Gestern eröffnete sich für sie eine geniale Chance zu Kundeneinsätzen, welche sie hoffentlich auch wahrnehmen können. Auch wenn sie sich dafür in Pinguine verwandeln müssen. :D
Ich habe mich der nächsten Aufgabe für das Kundenprojekt aus der letzten Woche angenommen.
Auch wenn mir UserExits und dergleichen völlig unbekannt waren, wird bereits an der richtigen Stelle das gewünschte ALV Popup angezeigt. Zugegeben, den richtigen BAdi zu finden und anzulegen bedurfte es Unterstürzung vom Coach.
Obwohl das Programm in AbapObjects geschrieben ist, und uns diese Schulung noch fehlt, ist bei uns in der Gruppe bereits Know how vorhanden, sodass sich dies relativ schnell gelöst werden konnte.
Freitag, 23. November 2007
Kundeneinsatz und Standarttexte
Donnerstag, 22. November 2007
Der zweite Projektarbeitstag
Konkret liegen uns drei Aufgaben vor die wird zum Teil noch diese Woche noch abschliessen müssen. Zugegeben es hat mir schon gestern den Einen oder Anderen Gedanken geklaut um heute eine passende Ein- / Auf-teilung zu finden. Dank dem Tipp den mir Coach 10der gestern Abend noch mitgegeben hat teilten wir uns heute morgen sogleich auf, um die unterschiedlichen Pendenzen anzugehen. Als Projektleiter mit dem Team zu arbeiten ist für mich eine neue Erfahrung. Auf der einen Seite erkennt man eine Art Notwendigkeit von jemandem der die Arbeiten koordiniert und auf der anderen Seite fragt man sich wie man sich selbst, nebst den fortwährend aufkommenden Situationen die meine Aufmerksamkeit verlangen, am besten einbringen kann. Wie klingt das denn jetzt ?!? *grml*
Die Arbeiten kamen heute im Allgemeinen gut voran. Ich bin zuversichtlich und will die Erwartungen des Kunden, der Teamkameraden und selbstverständlich auch diejenigen von Coach Thomas erfüllen! Ich denke wir alle bleiben gespannt auf den morgigen Verlauf, insbesondere dem Event morgen Abend :)
Mittwoch, 21. November 2007
Kundeneinsatz bei SWT
Um neun Uhr trafen wir bei SWT ein und wurden freundlich empfangen. Schnell ging es zu den Punkten über, die es zu besprechen galt. Ich möchte auf diese Themen hier im Detail nicht eingehen, jedoch war es überaus interessant, Thomas bei dem führen des Gesprächs zu beobachten und zu sehen, wie er das Gelernte von den letzten beiden Tagen aktiv umsetzte. Schwierig war allerdings, mich selber in das Gespräch einzubringen, da praktisch alle Punkte welche mir in den Sinn kamen von Thomas behandelt wurden, bevor ich selbst Gelegenheit dazu gehabt hätten.
Nachdem wir drei Stunden intensiv diskutiert, verschiedene Anforderungen zu einer verschmolzen hatten, unterbrachen wir die Gespräche für eine halbe Stunde für das Mittagessen - ein überraschend schmackhafter Fitness-Teller in der SWT-Kaffeteria im Raum nebenan. Um halb eins ging es dann bereits weiter und es wurden noch die letzten Punkte besprochen, worauf wir uns um drei Uhr wieder auf den Rückweg ins Glatt machten.
Nach der Ankunft im Resource HQ überrumpelte Tom mich gleich mal mit der Aufforderung, die Kollegen über das vergangene Gespräch und dessen Resultate aufzuklären. Das viel mir aus mehreren Gründen ziemlich schwer. Zum Einen war ich auf diese Aufgabe nicht vorbereitet und musste "on the fly"entscheiden was ich wann in welchem Detailgrad erzählen wollte. Eine weitere Schwierigkeit bestand darin, mich an die Fülle des Besprochenen überhaupt im Detail zu erinnern und dabei gleichzeitig das Wichtige vom Unwichtigen zu trennen. Die letzte Schwierigkeit die ich an dieser Stelle erwähnen möchte, war, die ganzen Informationen sinnvoll zu ordnen, im Gespräch war öfter vom Einen ins Andere Thema und zurück gewechselt worden.
Alles in Allem war heute ein extrem interessanter und lehrreicher, aber auch strenger Tag.
Dienstag, 20. November 2007
Erwartungsmanagement
Als Auflockerung und förderung der Kreativität haben wir als nächstes mal ein Brainstorming zum Wort "Erwartung" gemacht. Hierzu wurde das erwähnte Wort gross aufgeschrieben, um anschliessend Wörter zum Thema "Erwartung" für jeden Buchstaben zu notieren.
Der negste Konflikt wurde in einem Rollenspiel dargestellt...
Ein Waschmaschinenhersteller (Kunde) hat für seine Geräte 1000 Steuer/Bedienungsplatinen bei einem Platinenhersteller (Lieferant) bestellt. Der Kunde hat bereits 500 Maschinen verkauft und hat dann bemerkt dass die Platinen defekt sind. Der Kunde meldet sich also beim Lieferant und beanstandet die Umkosten, durch die Rücknahme der bereits gelieferten Waschmaschinen, wie auch der Ersatz der defekten Platinen. Der Lieferant muss in dieser Situation also versuchen, mit seinem lieben Kunden ein Kompromiss zu schliessen.
Folgend wurde dann der Unterschied zwischen einem Ein- und Vorwand geklärt und haben gesehen wie man sich entsprechend verhalten muss. Hier wird der Einwand als eine evtl. positive Situation klassifiziert, während der Vorwand einer negativeren Natur entspricht - in diesem Fall muss man versuchen über die Gesamtsituation zu sprechen, da das Selbst Wert Gefühl (SWG) möglicherweise bedroht ist.

Das penetrante in den letzten 2 Tagen war das Fragenstellen, daher haben wir uns natürlich auch die Vorteile von Fragen angesehen:
- biologische - Fragen werden selten als Angriff aufgefasst, Fragen "reizen" das denk-Hirn (löst Blockaden)
- psychologische - jede Frage ist eine "Streicheleinheit", Anerkennung und baut Brücken zum anderen und helfen die Beziehungsebene positiv zu gestalten
- logische - prüfen der Informationen von anderen, Missverständnisse ausschliessen, wir entdecken eventuelle Denkrinnen, wir erfahren seine Argumente bevor wir unsere "Katze" aus dem Sack lassen und wir können abschaetzen ob unser angebot für den anderen ok ist
Die nächsten Punkte waren die Wahr-nehmung und "wie wirklich ist die Wirklichkeit?".
Jeder hat recht auf seine eigene Wirklichkeit. Wärend der eine das Glass als halb leer sieht, schaut es der andere als halb voll an. Genau so unterschiedlich wie die Wirklichkeit ist auch die Wahrnehmung, die Kriterien welche diese ausmachen sind zB. Kleidung, Ausstrahlung etc.
Als weitere Übung haben wir ein möglichst realitäts nahes Rollenspiel gestalltet, diesmal Herr. Meisterhans vs. Silas.
Um die Realität etwas näher zu bringen, wollte der Kunde (Herr. Meisterhans) in diesem Fall eine SAP-Lösung, Silas musste nun mit dem Gelernten herausfinden was zu tuhen ist und den Kunden ggf. beraten.
Das Gespräch verlief grösstenteils wie von uns Erwartet, wurden jedoch darauf aufmerksam gemacht dass Silas mit weteren logischen Fragen an den Kunden, zu einer noch besseren Lösung gekommen wäre. Da er durch den Gedanken "ich bin Entwickler, also muss ich wahrscheinlich etwas Programmieren", auf das gewünschte Programm konzentriert war und daher nicht darauf gekommen wäre, dem Kunden eine Mobile Lösung anzubieten, welche sich in dieser Situation besser geeignet hätte.
An dieser Stelle wurden wir über eine weitere wichtige Tatsache bei der Beratung aufgeklärt.
Eine perfekte Lösung besteht nicht nur aus einem guten Programm. Will man den Kunden wirklich glücklich machen, muss man bestimmte gegebenheiten beachten (Abbildung-Kreise) und dabei möglichst die Mitte treffen. Man muss dem Kunden nicht einfach ein Programm hinstellen und denken "das passt schon", man sollte etwas weiter denken (was ist wenn der Kunde garnicht richtig weis was er will?), der Kunde kommt ja zu uns weil er unter anderem auch beraten werden will.
Montag, 19. November 2007
Wer fragt der führt!
Im weiteren Verlauf des Morgens haben wir Assoziationen zum Wort KUNDE gesucht. Das heisst wir haben für jeden Buchstaben im Wort eine oder mehrere Assoziationen gesucht. Was nachher an der Wandtafel stand, waren überwiegend "böse" Begriffe. In einem zweiten Durchlauf versuchten wir positive Wörter zu finden. Dies war eindeutig schwerer.
Das selebe Spiel haben wir mit dem englischen Wort CUSTOMER gemacht. Hier vielen die positiven Begriffe viel einfacher.
Ein Rollenspiel, in welchem ich Stefan eine Reise nach Mykonos in Griechenland verkaufen sollte haben wir auch durchgeführt. Dies einfach mal um zu schauen, wie wir ein Gespräch bis jetzt führen. Anschliessend wurde das Gespräch mit Hilfe von Carolyn analysiert und ausgewertet.
Noch ein Thema welches wir behandelt haben ist die Wahrnehmung. Das erstaunliche an der Wahrnehmung ist, dass der Mensch nur ca. 10% bewusst wahrnimmt. Die restlichen 90% passieren unbewusst. Es geht also darum, dass man sich mit Fragen mehr als diese 10% bewusst wahrnehmen kann. Denn die Wahrnehmung und der Fokus steuern unser Verhalten!
Mir hat dieser Tag sehr viel Spass gemacht und habe auch viel dazu gelernt, wie sich Menschen verhalten in einem Gespräch. Mir ist nun auch bewusst, wie man mit Fragen ein Gespräch geziehlt führen kann. Denn mit meinen Fragen kann ich die Richtung des gespräches vorgeben.
Freitag, 16. November 2007
FI / CO Schulung
Donnerstag, 15. November 2007
Die scheinbar unendlichen Weiten des PP / MM
Nachdem wir am Nachmittag die genannten Themen durchgesehen haben pflegte jeder noch eines seiner Materialien, eine Stückliste dazu, ein Arbeitsplan, den Arbeitsplatz... Das ging ziemlich rasant vorwärts, ganz nach dem Motto kurz und schmerzlos es funktionierte auch bei ziemlich allen. Ausser bei mir erstmals nicht, weil ich natürlich wiedereinmal eine grössere Stückliste (halt eine die der Realität näher steht) erzeugte die Materialien beinhaltet hat welche bedauerlicherweise einige Wochen zuvor unzureichend gepflegt wurden. Zum Schluss gabs noch ein kleines Roundup über den 1. Tag MM/PP und schon war der Tag gelaufen. Ich denke man hätte sich gut eine Woche mit all den angesprochenen Bereichen beschäftigen können aber so haben wir einen zwar groben, aber ich hoffe doch breiten Überblick aufs MM und die ersten Angelegenheiten im PP.
Hier noch die eine oder andere Spezialität...
Konsignation - http://de.wikipedia.org/wiki/Konsignation
Retrograd - http://de.wikipedia.org/wiki/Retrograde_Verbrauchsermittlung
Lohnbearbeitung
Hierbei senden wir einem Hersteller oder einer Produktionsstäte (extern) unser Material und lasse ihn damit unser Produkt fertigen.
Koppelprodukt
Wenn ein Material in seiner Stückliste sich selbst beinhaltet (Rekursion => allenfalls in der Chemie). Oder z.B. wenn aus einem Baustamm mehrere Qualitativ unterschiedliche Bretter gefertigt werden.
Ein rasanter und packender Tag von dem wir alle natürlich versuchen so viel wie möglich zu merken. Ich freue mich jedenfalls auf den zweiten Tag mit Christian. -> Meine rohen Notizen zum Tag könnt ihr im unteren Link einsehen.
Kurznotizen / RAW
Mittwoch, 14. November 2007
IDoc
So begannen wir damit abzuklären, was nötig ist, um eine Bestellung als IDOC an einen Geschäftspartner zu übermitteln.
Als erstes beschafften wir uns die Struktur der Bestellung - wobei gleich eine RAPer-Typische Diskussion aufkam, ob nicht XML sich besser eignen würde um die Daten zu übermitteln (welche dann aber auch schnell wieder ein Ende fand). So schauten wir uns die Dokumentation zur Struktur des Basistypen ORDERS05 an.
Darauf legte jeder einen eigenen Fileport sowie eine Partnervereinbarung an und fügte diese als Nachicht in seiner Lieferanten-Bestellung hinzu. Nun galt es, das genererierte File in einem eigenen Programm vom Applikations-Server zu lesen und zu guter letzt noch zu versenden. Während das Versenden der E-Mail Nachricht an sich kein grosses Problem darstellte hatten wir jedoch Probleme mit dem Dateianhang. Dessen Zeilen dürfen aufgrund des Funktionsbausteins nicht länger als 255 Zeichen sein. Unsere Datei, welche wir verschicken sollten, überschritt diese Länge aber um fast das doppelte.
Nach längerem Probieren konnten wir das Problem schlussendlich lösen, indem wir die zu übermittelnde Datei dem FuBa in binärer Form übergaben.
Dienstag, 13. November 2007
SD Schulung
Heute haben wir folgende Themen angeschaut:
- Nachrichtensteuerung
- Stammdatenpflege
- Verkauf
- VV11 (Anlegen)
- VV12 (Ändern)
- VV13 (Anzeigen
- Versand
- VV21, VV22, VV23
- Fakturierung
- VV31, VV32, VV33
- Lieferungsprozess
- Versandstellenvermittlung
- Kopiersteuerung
- Fakturierung
An dieser Stellen ein grosses Dankeschön an Thomas.
Montag, 12. November 2007
Ausbildung Vertriebslogistik
- Stammdaten
- Spezielle Auftragsarten und Vorgänge
- Geschäftspartner
- Positionstypen im Vertrieb
- Einteilungen
- Preisfindung
- Unvollständigkeitsprüfung
- Verfügbarkeitsprüfung
Zu jedem dieser Themen hat es durchschnittlich 11 Folien gegeben, welche Thomas zur Unterstützung seiner Erklärungen benutze. Man kann also sagen dass wir die verschiedenen Bereiche recht gründlich angeschaut haben. Auch haben wir in der Customizing Transaktion SPRO "herumgewütet". So konnten wir das ganze besser kennenlernen. Thomas hat Zeichnungen gemacht um die ganzen Abhängigkeiten verständlich zu machen. Diese Zeichnungen werden vermutlich auch noch auf dem FTP-Server abgelegt.
Ich fand den heutigen Tag super, da ich die Abhängigkeiten von den ganzen Funktionen welche SAP bietet etwas mehr nachvollziehen kann. Thomas hat sich auch sehr gut angestellt mit erklären und helfen. Bin gespannt auf morgen.
Freitag, 9. November 2007
Selbststudium rund um Dialogprogrammierung

Zusammenfassung Switch Framework (SFW)
Das SFW erlaubt es, gewisse Repository Objekte (Dynpro Felder, Ablauflogik-Module, etc.) anhand eines Schalter anzuzeigen oder auszublenden. Dies ist praktisch, wenn man zum Beispiel ein Dynpro mit individuellen Feldern je nach Industrielösung (Öl, Auto, Chemie... ) oder eigen definierten Varianten programmieren möchte. Dazu erstellt man in der Transaktion (SFW1) eine Schaltergruppe oder merkt sich eine schon vorhandene und wählt diese nachher im Dynprofeldattribut "Schalter" aus. Auch Module in der Dynpro Ablauflogik können abhängig nach Gruppen aktiviert oder deaktiviert werden mit dem Zusatz SWITCH. Mit der Transaktion SFW5 kann man dann diese Feature-Gruppen für ein System begutachten und gegebenfals aktivieren.
Der Unterschied und die Zusammenarbeit zum Enhancement Framework lässt sich nicht besser als in gutem alten Englisch erklären:
The Enhancement Framework enables the implementation of the best-practice solutions defined within an industry, while the Switch Framework controls which enhancement implementations are to be performed.
Grundsätzlich, so wie ich das verstanden habe:
SFW: Ausgabe durch Schalter steuern und Enhancements aktivieren/deaktivieren.
EFW: Verarbeitung durch Schalter aufteilen
Donnerstag, 8. November 2007
SAP Basis Schulung
1. Aufbau SAP Produkte Business Suite und NetWeaver
- Business Suite ERP and Industrie Lösung (IC, WebShop) , CRM (Mobile, IC, WebSHop), SCM and Live Cache (APO), PLM, …
- NetWeaver Portal, BI, PI/XI and SLD, MI, MDM, Adobe Service,...
2. Welche Provider und Hardware Lösungen werden unterstützt.
- IBM, HP, SUN, Siemens, Dell, EMC, ...
- Cluster (Fail-Over) Lösungen,...
- SAN, NAS,...
- Libelle, Schattendatenbank,...
* Wo liegen die stärken und die schwächen
3. Welche Betriebsysteme werden unterstützt
- Windows 32Bit / 64 Bit
- Linux
- HP-UX (Digital, Compac True 64)
- IBM Unix, i5, mainframe
- Sun Solaris
* Wo liegen die stärken und die schwächen
4. Welche Datenbank Lösungen werden unterstützt
- MaxDB Windows, HP-UX, Linux, Sun, IBM Unix (openSource mysql, SAPDB, ADABAS)
- MS SQL Windows
- Oracle Windows, HP-UX, Linux, Sun, IBM Unix (RAC Lösung)
- IBM Windows, HP-UX, Linux, Sun, IBM Unix, i5, mainframe
- Informix Windows, HP-UX, Linux, Sun, IBM Unix
* Wo liegen die stärken und die schwächen
5. Architektur
- WebAS for Abap (kernel, verschiedene arts von patch
- WebAS for Java
- MCOD
Um jetzt aber nicht den ganzen Kurs zu Wiederholen will ich mich auf zwei, drei Bereiche beschränken. Was ist MCOD und was genau ist mit Netweaver gemeint? Was hat es mit den mysteriösen Ausdrucken von der Praxisarbeit auf sich?
Bei MCOD handelt es sich um eine Lösung die alle in einem SAP Datenbanken in einer vereint. Man hat also nicht verschiedene Instanzen für Beispielsweise ERP, CRM, SRM, ... sondern nur eine gemeinsame Datenbank. Diese Lösung kann kosten sparen, aber nach den Aussagen die man in verschiedenen Foren im Web findet kann ich nur darauf schliessen, dass die Nachteile die Vorteile überwiegen. (Backupsystem muss auch MCOD sein, geringere Ausfallsicherheit / Erreichbarkeit ...
Netweaver beschreibt eine Menge von Zusätzlichen Systemen die besonders zur Hardwarenahen unterstützung dienen. Konkret gibt es die Module BI, EP, PI, MI, MDM, sowie XI bzw. PI. Letzteres bietet eine Schnittstelle für die Kommunikation zwischen dem SAP System und externen / anderen Systemen. Daher wahrscheinlich sein alter Name 'XI' (Exchange Infrastructure (?)).
Wer sich an die Praxisarbeit und an seine SAP Script / SmartForm Ausdrücke erinnern kann soll sich künftig nicht mehr wundern wenn er seine Ausdrücke über LOCAL druckt und 'Mist' erhält. Hier der Weg den wir 'theoretisch' gelernt haben:
1. Drucker im System anlegen (Printserveradresse mit IP festlegen, keine Domänen verwenden da diese oft zu lange Responsetimes aufgrund der Auflösung haben.
2. Formular auf diesen Drucker einrichten (erstellen), Schriften ect. verwalten.
3. Sich über ein seriösen Ausdruck freuen.
Als kleiner Hinweis: Mit einem OSS Benutzer kann man ein beliebiges SAP System herunterladen und 3 Wochen (bis zur Lizenzeingabeaufforderung) Testen / Benutzen!
Mittwoch, 7. November 2007
Ein Tag für's Table Control
Im Verlaufe meiner Tests stornierte ich aus Versehen alle Buchungen eines eines Fluges. Dies war zwar nicht weiter schlimm, da es sich nur um Übungsdaten handelte, aber nichts desto trotz baute ich schleunigst ein 'POPUP_TO_CONFIRM' in mein Programm ein um das in Zukunft zu verhindern...
Das stornieren aller Buchungen des Fluges führte dann aber bei der nächsten Ausführung zu einem DUMP meines Programmes, da der FuBa welcher für das Stornieren der Buchungen verwendet wurde in der Datenbank einen Minus-Wert (seatsocc) hinterlassen hatte, was dem DynPro dann Probleme bereitete.
Dieses Problem konnten wir dann aber durch das simple auf 0 setzen des entsprechenden Wertes zur Laufzeit umgehen. Gelöst ist das Problem damit allerdings noch nicht, da der Fehler im FuBa liegt - die Anpassung bzw. das Ersetzen eben dieses FuBas ist nun eine Aufgabe für das Selbststudium am Freitag.
Danach wandten wir uns dem Kapitel der Kontext-Menüs zu, welches wir rasch durcharbeiteten. Nachdem wir auch das zugehörige Übungsbeispiel in den Schulungsunterlagen, in welchem wir unser Table Control durch ein Kontext-Menü erweiterten geschafft hatten, ging es weiter mit Kapitel 9, "Listen auf Dynpros", und der entsprechenden Übung.
Dienstag, 6. November 2007
Magische Benutzerdialoge
Jetzt musste/durfte endlich mal der Wizard verwendet werden um ein Tabstrip zu erstellen, da ich nicht der Freund von Wizards bin versuchte ich es zunächst von Hand, musste jedoch feststellen das es mit dem Wizard einiges einfacher und schneller geht.
Nun hatten wir den Tabstrip schön mit Daten befüllt, also stand als nächstes Tablecontrols auf der todo Liste. Natürlich gibt es hierfür auch einen Wizard, den ich aber zum Glück nicht verwendet habe.
Grundsätzlich kann man es sich so merken:
- Tabstrip: Hier kann sorglos der Wizard verwendet werden, es macht das Leben sogar einfacher.
- Tablecontrols: Achtung! bei komplexeren Sachen (Strukturen usw.) ist es empfehlenswert die Tablecontrols von Hand zu erstellen, der Wizard wird nur für einzelne Tabellen empfohlen.
Montag, 5. November 2007
Benutzerdialoge
Dieser Kurs bringt auch wieder viel Theorie mit sich. So haben wir am Anfang nur das Gröbste angeschaut. Da wir schonmal mit Dynpros zu tun hatten, war das für mich wie eine kleine Auffrischung.
Beim Entwickeln von Userdialogen geht es im Prinzip darum, Dynpros zu gestalten und mit einer Ablauflogik zu versehen. In der Ablauflogik eines Dynpros gibt es die zwei Elemente Process Before Output (PBO) und Process After Input (PAI). Diese Elemente werden mit Modulen gefüttert, welche die Datenbeschaffung übernehmen.
Heute ist es mehr darum gegangen sich mit dem grafischen Layouter vertraut zu machen und sein erstes Dynpro zu erstellen. Auch GUI-Titel und GUI-Stati wurden von uns erstellt. Danach ging es schon um die verschiedenen Controls welche in einem Dynpro verwendet werden können. Tom zeigte uns für was sie sind und wie die Daten transportiert werden.
Donnerstag, 1. November 2007
Tag der Entscheidung
Heute waren noch Pascal und ich im Rennen. Und so waren wir den ganzen Tag damit beschäftigt, das bestmögliche Resultat zu erarbeiten um die Challenge wenn möglich zu gewinnen - der Wettbewerb war in vollem Gange. Wir beide schafften es, das Formular bis zum Abgabetermin fertigzustellen.
Danach lag es an Thomas den Gewinner auszuwählen. Leider entschied er sich nach langem überlegen dafür, dass es keinen Gewinner gibt, denn sowohl Pascal als auch ich hatten zwar schöne Formulare entwickelt, hatten allerdings etwa die selben Mängel bei der Selektion der Daten. Diese müssen wir nun morgen noch beheben - danach dürfen wir aber dann doch noch verfrüht ins Wochenende starten. :o)
Dienstag, 30. Oktober 2007
Zeit- & Arbeitsmanagement Seminar in Moggelsberg

Oerlikon 07:30... Paskal, Stefan und ich treffen uns auf dem Parkplatz der Mobility. Hier begann unsere Reise nach Mogelsberg, wo wir uns dann mit Fabrice und unserer RAP'er Mami trafen.
Zu Beginn gab es eine Einführung im Resort Hotel (Bild) und eine kleine Wanderung zum mogelsberger Baumkreis. Auf dem Weg dorthin sollten wir uns ein Bild über uns selbst machen, auf welches wir im Baumkreis eingegangen sind.
Zurück im Hotel haben wir ein Raster zu unserem Charakter erstellt und darüber diskutiert. Daraus konnten pro Person die Pros und Kontras ermittelt und bewertet werden. Nach einem super Mittagsessen folgte eine kurze Diskussion und jeder erstellte für sich eine Vision, anschliessend spielten wir eine interessante Partie Schach. Zum Schluss haben wir für uns ein paar Leitsätze geschrieben und besprochen was es noch zu tun gibt (Aufgabe).
Das Motto des heutigen Tage: Sei anders!
Aufgabe: Ein Businessplan über sich selbst erstellen.
Um den ganzen Tag schön abzurunden gab es noch einen "kleinen" Snack, wobei wir noch über den Tag diskutiert haben.
Montag, 29. Oktober 2007
SAPscript Feedback
Nach dem Feedback von Tom haben wir die Anpassungen an den Formularen gemacht. Ein Zusatzwunsch von Herrn Meisterhans war noch, dass die Empfängeradresse auf den Rechnungen des lausanner Verkaufsbüros auf der linken statt auf der rechten Seite sein soll. Da das Büro in Lausanne das Sichtfenster von den Couverts links hat. Das Formular wurde natürlich auch so angepasst.
Desweiteren hat Tom eine Challange für uns RAPER gestartet. Wer bis Donnerstag Abend eine Buchungsbestätigung in Smartforms realisiert hat, bekommte am Freitag frei. Aber nur der mit der schönsten und technisch funktionierenden Buchungsbestätigung.
Freitag, 26. Oktober 2007
Freitagsschulung: E-Commerce
Mittwoch, 24. Oktober 2007
SAP-Script: zweiter Tag
Ich befasste mich heute mit der Ausgabe des Kopfteils der Rechnung, genauer gesagt mit der Ausgabe des Zuständigen Mitarbeiters sowie der Telefonnummer desselben.
Auch galt es die Telefonnummer aufzubereiten - was schliesslich mit dem FuBa 'TELNUMBER_FORMAT' gelang. Schliesslich verschob ich das Adressfenster noch so lange, bis es im Fenster des Couverts erschien.
Danach ging es dann weiter zu den Rechnungs-Positionen. Nach dem Erstellen diverser Absatzformate und dem erstellen des Headers war sowie der Ausgabe der bereits im Standard-Formular vorhandenen Daten war der Tag dann auch schon wieder vorbei.
Dienstag, 23. Oktober 2007
SAP-Script: erster Tag
Bei der Positionierung der verschiedensten Fenster kann man sich merken - alles so angeben wie der Kunde möglicherweise auch Änderungen wünscht, sprich "CM". Wenn man nämlich angaben zB in LN oder CH macht und der Kunde will dann Fenster-X 0,5cm weiter rechts, darf man dies zuerst umrechnen.
Das Hauptproblem für mich war jedoch die Orientierung im Programmcode des Standardformulars. Tausend Zeilen mit spärlich kommentiertem Code machen es nicht unbedingt leicht.
Montag, 22. Oktober 2007
Lessions Learned
Ein netter Nebeneffekt dieses Tages: Wir wissen nun wie das Smartboard genau funktioniert ;)
Freitag, 19. Oktober 2007
Selbststudium der Dritte
Abschliessend zu SAPScript/Smartforms kann man sagen, der Kurs war ein Erfolg aber: Man könnte diese beiden Kurse ohne Probleme in eine Woche packen. hat man nämlich SAPScript begriffen und genügend Hintergrundverständnis, ist der Sprung auf Smartforms dann kein grosses Problem mehr, ein paar Sachen wie das FUBA generieren, Bilder, gewisse Feldertypen oder Schablonen sind neu, aber grundsätzlich könnte man Smartforms innerhalb eines Tages erlernen, wenn man SAPScript im Griff hat.
Was uns jetzt die letzen 2 Tage noch blieb ist viel zu viel Zeit für das Smartforms Selbstudium. Darum schreib ich jetz noch den Blog, Catse und geh danach ins Wochenende :) Arriba andale andale
Donnerstag, 18. Oktober 2007
SmartForms
Ich bin gespannt wie uns diese 'Technologien' die Praxisarbeit versüssen werden :)
Mittwoch, 17. Oktober 2007
Selbststudium SmartForms
Ich für meinen Teil las in den Schulungsunterlagen übersprungene Themen nach. Danach erstellte ich nochmals von Grund auf eine Tabelle zur Darstellung der Aufträge eines Kunden mit den zugehörigen Auftrags-Positionen.
Darauf befasste ich mich noch mit den Optionen für Druckansicht und Dialog und probierte dabei verschieden Einstellungen aus. Zum Schluss bastelte ich noch etwas am Stil meines Formulars herum, um ein einigermassen Ansprechendes Layout zu erhalten.
Dienstag, 16. Oktober 2007
The Smart Form(s)
Und dann ging es weiter mit den Smart Forms!
An sich ist die Handhabung der Smart Forms viel besser als SAPScript, auch wenn ein gewisser Zusammenhang besteht, auch der Formpainter ist etwas freundlicher.
Zur Übung erstellten wir also mal ein Formular, wobei der Formpainter bereits recht hilfreich war, auch wenn man noch die genauen Positionierungen etwas justieren musste. Um dass Formular nun nach etwas aussehen zu lassen, erstellten wir ein entsprechendes ABAP Programm, welches die nötigen Daten ausliest und integrierten dieses im Smart Form.
Bis jetzt hat alles eine gewisse Ähnlichkeit mit SAPScript, doch dann kamen die Schablonen zum Einsatz. Eine Schablone kann man mit einer Tabelle vergleichen, der wesentliche Unterschied prägt jedoch die Statik. Während Tabellen erst zur Laufzeit generiert werden, ist die Grösse der einzelnen Felder oft unterschiedlich, die Schablone hingegen wird im Formpainter festgelegt und ist somit definitiv.
Schlussfolgerung: ich würde Smart Forms gegenüber SAPScript bevorzugen, bin aber weiterhin sehr gespannt auf die Lösung von Adobe ;-)
Montag, 15. Oktober 2007
Smartforms - nochmal Formulare
Freitag, 12. Oktober 2007
SAPScript - Selbststudium
Noch ein Wort zu unserem SAPScript-Ausbilder: Rolf trinkt sein Käfeli und versucht nicht vorhandene Fragen zu beantworten und gibt sich zufrieden :)
Nun, was tut man an so einem Tag? Genau! Man bloggt, führt seine Arbeitszeiten nach, räumt den PC auf und macht nochmals ein Formular oder verfeinert die bestehenden Absätze :)
Auf zu den SmartForms! Möge der Montag kommen!
Donnerstag, 11. Oktober 2007
SAP Script Beispiel
Hauptprogram
TOP Include , Print - Include , GET - Include , Formular Include ( Includes zum Programm )
Bedauerlicherweise kann ich das Formular nicht bereitstellen, dennoch sollte der Programmcode ein sauberes Beispiel für einen Anwendungsfall von SAP Script sein. (Obwohl SAP Script Formulare oft vom Standart aus kopiert und angepasst werden)
Mittwoch, 10. Oktober 2007
SAP Script Kurstag 3
Nach dem Mittag waren wir angehalten, das Gelernte auszuprobieren und zu vertiefen - es ging also fliessend ins Selbststudium über. Ich ging das während der Schulung erstellte Formular nochmals durch und probierte verschiedene Einstellungen durch. Danach stellte ich die Darstellung komplett um, um auch mal ein zwei- bzw. mehrseitiges Formular zu sehen. Ich stellte bei meinen Versuchen fest, das SAP Script vorallem in Sachen Layout und Bedienung schon so seine Tücken hat, auch wenn die Grundsätze relativ schnell erlernt zu sein scheinen.
Zusammenfassend lässt sich also sagen, dass SAP Script weniger schwierig ist als ich erwartet hatte - allerdings sind zum Teil simple Dinge recht mühsam oder gar kaum zu realisieren. Diesbezüglich bin ich gespannt auf den Smartforms-Kurs von nächster Woche.
Dienstag, 9. Oktober 2007
SAPscript - weiter gehts!
Heute haben wir uns die Barcodes und OCRa/b vorgenommen.
<komische Sache!>
Die ganzen Abhängigkeiten geben einem zu Denken..
Bis ende des Tages hatten wir jedoch unser Formular!
Fazit:
Logik - nicht schwer
Umsetzung - Mühsam
Montag, 8. Oktober 2007
SAPscript - Ist doch gar nicht so schwer!
Das tückische an der ganzen Sache ist das layouten des Formulars. Man muss verschiedene Seiten, Fenster, Absatzformate, etc. erstellen und diese dann mit Massangaben positionieren. Dadurch dass die Positionsangaben metrisch angegeben werden können, wird der Massstab zu einem wichtigen Werkzeug. Klingt komisch, ist aber so!
Donnerstag, 4. Oktober 2007
Abgabetermin!
Erfreulicherweise konnten sämtliche Programme abgenommen werden, wenn auch mit einigen wenigen neuen Punkten auf der Pendenzenliste. Diese sollten dann bei Gelegenheit mal noch erledigt werden.
Ein Rückblick über das Gelernte steht dann nach der Rückkehr von Thomas aus seinen Ferien (bzw. Herr Meisterhans vom Cheminée Kongress) an - gelernt haben wir so einiges, soviel steht fest. Nun sind wir alle gespannt auf den SAP Script Kurs nächster Woche.
Montag, 1. Oktober 2007
Praxisarbeit 1 - Tag 5
Bezüglich Projekt gab uns Tom noch ein paar wichtige Hinweise:
- Bei Programm spezifischen Abmachungen IMMER klären um welche Transaktion bzw. Feld es sich handelt. Idealerweise das spezifische Feld mit dem Kunden kurz anschauen.
- Bei Fragen des Kunden ob X oder Y möglich wäre, IMMER gleich definieren ob es mehr Zeit benötigt und dass die Zeit ggf. auch zusätzlich verrechnet wird --> Zeit <> Kosten
- Und zusätzliche Abmachungen schriftlich festhalten!
Meinerseits verläuft das Projekt soweit super, nicht ganz nach Zeitplan, doch momentan ist der Lerneffekt das wichtigste und der findet eindeutig statt.
Freitag, 28. September 2007
resource meets mallorca
Morgens um 11 Uhr versammelte sich ein Grossteil der resource Belegschaft im Terminal 1 des Flughafens Zürich. Nach dem Check-in ging es direkt durch die Passkontrolle in die zollfreie Zone. Dort verbrachten wir dann unsere Zeit bis zum Abflug. Der Flug verlief Reibungslos. Meiner Meinung nach zumindest :). Als wir in Mallorca angekommen sind und unser Gepäck gefasst haben, stand auch schon ein Bus bereit, welcher uns zu den Hotels transferiert hat.
Mehr dazu im nächsten Post
Montag, 24. September 2007
Herr Meisterhans
Nach dem gemeinsamen Kaffee gings dann sofort los mit dem Kundengespräch. Herr Meisterhans brachte uns dabei seine Vorstellungen und Anforderungen an die gewünschte Kunden- bzw. Auftragsliste näher. Nach einer knappen halben Stunde war das Gespräch dann bereits vorbei - ein Umstand, denn wir schon kurz danach bereuten, hätten wir doch noch so einige schlaue Fragen stellen können die wir so nachträglich klären mussten. Etwas, das wir beim nächsten Mal sicher besser machen werden.
Den Rest des Tages verbrachten wir dann - zwischen den vermehrt auftretenden Diskussionen betreffend der genauen Anforderungen und wie sie wer verstanden hatte - alle fleissig und konzentriert mit Spezifizieren.
Freitag, 21. September 2007
Selbststudium Freitag
Kürzlich wurde der Hauptwasserhahn von einem Sanitär ausgetauscht, dieser hatte jedoch ein zu kurzes Ventil. Dies hat zu folge das man dass Wasser überhaupt nicht abstellen kann - jetzt muss also ein neuer montiert werden.
Da muss man sich nicht wundern dass ich meine Sachen lieber selbst erledige ;-)
'Back to business' - Die heutigen Themen umfassten nebst dem ganzen Logistikprozess (Kundenstamm, Aufträge, Materialstamm, Fertigung und Fakturierung) auch ALV Grids.
Wobei ich mich eher auf den Logistikprozess konzentriert habe, da ich mich hier noch am unsichersten fühle. Entsprechend hatte ich auch ziemliche Probleme eine Bestellung bei einem Lieferanten zu verarbeiten.
Silas sah sich auch plötzlich mit einem eher ungewöhnlichen Problem konfrontiert. Als er versuchte seine Arbeitstation wieder zu entsperren, wollte die Tastatur nicht die richtigen Zeichen zurückgeben (Space war zB. plötzlich ein Alt) - also musste er sich, mit einer zusätzlichen Tastatur und ASCII Tabelle bewaffnet, wieder in das System zurück kämpfen.
Donnerstag, 20. September 2007
Selbststuduim: Aufträge, Fertigung, Lieferung, etc.

Wir haben heute nochmal den ganzen Logistikprozess angeschaut und durchgespielt. Dabei ging es um den Kundenstamm, Aufträge, um den Materialstamm, Fertigung und um die Fakturierung. Ich hatte da so meine Probleme damit, desshalb habe ich das Szenario mehrmals durchgespielt. Das heisst: Vom Kunden anlegen über Materialstamm pflegen bis hin zur Fakturierung, habe ich alles mehrmals durchgespielt.
Pascal und Fabrice haben sich dem REUSE Baustein für ALV Grids gewidmet. Sie kamen dabei zu einem tollen Ergebnis. Die ALV-Liste hatte am Schluss einen Kopfbereich mit einem eigenen Logo. Es war eine Ente.
An diesem Tag hatten wir auch einige lustige Momente. Vorallem als Manuel sich mit seinem Vermieter um den Wasserhahn gestritten hat. Dies ergab ein sehr lustiges Gespräch.
Mittwoch, 19. September 2007
Die unendliche Geschichte: SAP-Tabellen sammeln
Die Diskussion ging am Nachmittag in die "Aber das isch doch? Hä? AHAA Ja stimmt!" Phase, als wir das Anlegen von Material, Kunden und die ganzen Logistikprozesse repetierten, natürlich in Hinsicht auf die Praxisarbeit die schon nächste Woche ansteht. Als sämtliche fiktiven Cheminees ausgeliefert und fakturiert wurden, schauten wir uns dann noch das Vertriebsinformationssystem mit den Statistiktransaktionen genauer an. Ein mittel bis grosser Lacher ging dann durch die Männerrunde, als wir in der Liste der Transaktion MCTC die Option fanden, "nach Periode aufzureissen" :). Was haben sich die Waldorfer dabei gedacht? Könnte man da nicht anstatt "Aufriss" "Gruppierung" nehmen? ;)
Am Abend stand dann noch das Quartalsmeeting an, wo Silas den anwesenden Mitarbeitern einen kurzen Einblick in das Leben eines RAPers gab. Im Übrigen wissen wir jetz, wie das Transportieren über den SAP Solution Manager ablaufen sollte und dass schlussendlich doch die meisten Entwickler mehr Rechte bekommen als nötig, das wenige bis keine Firmen den ITIL Standart im Bereich des Change Management's wirklich begreifen und auch hart durchziehen. Ganz in Resource Manier kam nach dem durchaus positiv ausschauhenden Geschäftsbericht von Bruno, auch der Apero nicht zu kurz!
Dienstag, 18. September 2007
Ein schlechter Dienstag
Der Titel spricht es aus, der Dienstag war einer dieser Tage an denen nicht alles lief wie erwartet. Ich möchte hier aber nicht weiter auf die Dinge eingehen die zu diesem schlechten Tag führten sondern auf das positive - das Gelernte. Anstatt dem Versuch alle Kapitel zusammen zu fassen und erneut einen übergrossen Blog zu verursachen beschränken wir uns doch hier einfach auf das Kapitel Abhänigkeiten von Objekten im ABAP Dictionary.
Die Abbildung zeigt die Hirachien verschiedener Elementen und deren Abhänigkeiten. In anderen Worten: Ein ABAP Programm greift in der Regel auf Datensätze in Tabellen und Strukturen zu. Diese Tabellen und Strukturen können mehrdimensional also verschachtelt sein. Eine Struktur S1, kann in einer Struktur B inkludiert werden. Auch diese Struktur S2 kann dann wiederum in einer Tabelle T1 verwendet oder miteinbezogen werden. Jede Struktur und Tabelle besteht aus unterschiedlichen Datenelementen die wiederum über eine Domäne zur Deklaration verfügen.
Des Weiteren halte ich es für erwähnenswert dass Tabellen, Strukturen, ect. erst logisch in der Datenbank eingefügt werden nachdem diese aktiviert worden sind. Wird also z.B. eine Tabelle im ABAP Dictionary modifiziert bleibt diese solange eine ungenutzte Vorlage bis zu ihrer Aktivierung. Anders formuliert: Es werden immer die zuletzt aktivierte 'Version' der ABAP Dictionary Elementen instanziert.
Freitag, 14. September 2007
Selbststudium Freitag
Zuerst arbeitete ich die Liste der Unklarheiten und Interessen von dieser Woche ab. Vom Selbststudium gestern übriggeblieben waren dabei die folgenden Themen:
- SQL Trace
- Tabellen-Indizes
- ABAP Performance Tuning
Danach las ich die im Kurs übersprungenen Textpassagen im Ordner BC402 nach und freute mich dabei über herrliche Aussagen wie "Die einzelnen Zeilen einer Tabelle werden als Tabellenzeilen oder Tabelleneinträge bezeichnet", worauf der Tag überraschend schon wieder gelaufen war.
Donnerstag, 13. September 2007
Kundeneinsatz bei der Schaltag AG
Mit unserem Werkzeug in der Hand begaben wir uns fast quer durch eine Art Montage Abteilung, ein paar Treppen hoch, durch einige Büroräumlichkeiten und schlussendlich in ein Büro indem wir den zuständigen SAP Betreuer begrüssten. Nach einer kurzen Unterhaltung durften wir uns dann auf einem freien Tisch einrichten. Der erste Einblick in die Firma hatte ich also schon bekommen, doch jetzt kam der interessante Teil. "Wie sieht unsere Aufgabe wohl aus?" dachte ich mir noch...
Als erstes schossen gleich mal einige, mir unbekannte, Stichwörter durch den Raum. Ich hatte schon fast Angst, dass mir der Tag nicht ohne Kompfschmerzen vorüber geht doch nach einigen Minuten wurde mir dann langsam klar worum es bei gewissen Änderungen ging. Hier ein Ausschnitt meiner Notizen und ein paar Begriffserklärungen:
8:40
(Änderung an ZHART, Lohnbestellungen von Tschechien, (Änderung im Verfaharen), Alle Bestelltypen im Selektionsbild, Lieferant obligatorisch setzen, Lieferant in die Selektion miteinbeziehen statt wie vorher im nachhinein dazu zu laden (? Klingt zwar komisch, wird aber schon so irgendwie sein), Rückfrage an Kunde -> nächste Anpassung
10:15
ZHART ist eine Kundeneigene Transaktion (Der Kunde nennt im Normalfall den Transaktionscode nicht aber die Programmbezeichnung).
Lohnbestellungen, sind z.B. Fertigungsaufträge (extern) zu denen das Eigenmaterial oder die Halbfabrikate mitgeliefert werden anstatt den Hersteller die Teile selbst beschaffen zu lassen. Offensichtlich eine Art von Outsourcing, wenn ich mich nicht gänzlich irre.
Workflow, damit gemeint ist (zumindest bei diesem Kunden) die Liste der Empfänger die über gewisse Prozessschritte informiert werden sollten. Thomas wenn du das vielleicht als Kommentar ergänzen könntest? Ich habe das so verstanden, dass es sich hier um eine Art visierungs- Dokument dass über verschiedene Personen weitergeleitet wird handelt.
Endlieferkennzeichen, das Kennzeichen dass eine Lieferung bei Erhalt bekommt, wenn diese vollständig ist.
Nachdem Thomas die ersten Änderungen erledigt hatte kam es zu einem interessanten Problemlösungsdialog bezüglich der Stücklistenausgabe. Ich hielt es nicht für ein Ding der Unmöglichkeit und machte mir ein paar Notizen auf die ich gerne in einem anderen Blog zurückkomme, sobald wir die besagte Beispielliste erhalten haben.
Der Tag verging rasch und brachte mir vorallem die eine Erkenntnis, dass uns R.A.P.ern schon noch das eine oder Andere fehlt z.B. eben SAPscript *...* - Schreck, entschuldigt den eher längeren Blogg. Ich mach an dieser Stelle mal einen Punkt und verbleibe mit einem letzten Auszug aus meinen Notizen:
" 16:30
- Thomas nimmt sich schritt für schritt die änderungen der History an der Materialstückliste vor, mir fällt dabei vor allem auf, wie dringend ich eine Brille brauche. Dennoch vom Prinzip her sind die Vorgänge klar, das Coding geht mir allerdings noch etwas zu rasch um auf Schritt und Tritt folgen zu können."
Mit etwas Glück erzählt uns Thomas noch etwas über seine Erfahrungen mit Migroskassen-optimierungs Aufgaben aus der Wirtschaftsinformatik :)
Selbststudium
Wir verbrachten unsere Zeit mit native SQL Abfragen, dynamische Programmerzeugung, Fieldsymbols und Erfassung von Materialstämmen.
Die einzige Abwechslung brachte Tom's Mail über das Einnehmen der Weltherrschaft, in dem wir dem russischen Militär SAP andrehen um für eine Vakuumbombe einen Transportauftrag anlegen zu können. ;-)
Eine Vakuumbombe besteht aus zwei Sprengsätzen, der eine verstäubt einen flüssigen oder auch pulverartigen Sprengstoff, sobald dieser das richtige Sprengstoff/Luft Verhältniss erreicht hat zündet der zweite diese Wolke, welches einen riesen Knall zu folge hat.
Mittwoch, 12. September 2007
Fieldsymbols - Klingt komisch, ist aber so!
Nach den Fieldsymbols war das Kapitel "Programmaufrufe und Speichermanagement" an der Reihe. In diesem Kapitel lernten wir wie man Programme aus anderen Programmen aufruft und wie man Daten zwischen den Programmen hin und her geben kann. Dabei lernten wir das SAP-Memory und das ABAP-Memory kennen. Während wir Aufgaben dazu lösten, feuerte Tom den Grill an. Nachdem wir dann alle die Aufgaben mit mehr oder weniger Erfolg abgeschlossen haben, gab es ein super Mittagessen vom Grill. An dieser Stelle nocheinmal Danke für das tolle Essen!
Am Nachmittag gab es dann noch einiges zu verdauen. Einerseits waren das immernoch die Fieldsymbols und andererseits war es das Mittagessen. ;)
Dienstag, 11. September 2007
ABAP Open SQL Vertiefung

Durch dieses Wissen konnten wir uns an den SQL Trace heranmachen, dies ist eine Transaktion mit der man alle SQL Statements zwischen dem manuellen Starten und dem Stoppen des Traces anzeigen lassen kann. Dies bewirkt, dass wir unsere ABAP Entwicklungen analysieren können und mehrere gleiche SQL Statements aufspüren können, diese sollte man möglichst vermeiden, da sie nur unnötige Datenbankzugriffe verursachen.
Montag, 10. September 2007
Verwirrung bei Type / Like
Es ist morgen früh, mal wieder eine Planänderung. Den Funblock gibt’s nun nicht mehr. Er heisst jetzt "Alternativblock". Klingt auch viel
professioneller :)
Weiter ging’s mit organisatorischem. Es gab Infos über die erste Praxisarbeit und man merkte schnell. Alle sind gespannt, wie diese
Praxisarbeit herauskommen wird. Thomas wurden die Infos regelrecht aus den Fingern gesaugt.
Anschliessend ging’s wie gewohnt weiter. Zuerst etwas Grundsätzliches zum Thema Zeichensatz, UNICODE, UCCHECK bevor wir uns in die
Stringverarbeitung stürzten. Dazu erledigten wir einige Übungen.
Als es dann zum nächsten Thema, den Geschachtelten Strukturen ging, fing das Chaos an. Um trotzdem bei Laune zu bleiben wurden die Datentypen
dementsprechend kreativ benammst.
Um dies zu verdeutlichen hier der Ausschnitt aus dem Coding:
REPORT zztesttz2.
DATA: wf_feld2 TYPE i,
wf_feld3(10) TYPE c
PARAMETER: pm_feld1(10) TYPE c DEFAULT '0000004711'.
break zehnder.
shift pm_feld1 left deleting leading '0'.
WRITE: pm_feld1.
types: begin of ty_judi.
include structure lvc_s_fcat.
types: feld1,
feld2,
end of ty_judi.
data: it_judihui type standard table of ty_judi.
data: wa_judihui like line of it_judihui,
wa_judihui4 type ty_judi,
wa_judihui3 type line of lvc_t_fcat,
wa_judihui5 type lvc_t_fcat,
wa_judihuit like it_judihui,
* wa_judihui6 like ty_judi,
ita_judihui7 like standard table of mara.
Weiter ging’s: Mit den geschachtelten und nochmals geschachtelten Strukturen hielten wir uns nicht lange auf. Da war das Thema Namenskonventionen erzwingen viel interessanter.
Im Zusammenhang mit den Breakpoint und Assertions wurden wir zuerst wieder verwirrt. Schliesslich muss dabei doppelt verdreht gedacht werden, was die einen schon gefährlich nahe an die Grenze des machbaren brachte ;)
Danach nahmen wir den Codeinspector (SCI) genauer unter die Lupe und fanden viele Möglichkeiten, die dem Entwickler helfen können, sauber zu Programmieren oder Namenskonventionen einzuhalten. Übermütig wollten die Raper den Code Inspector obligatorisch machen, doch Thomas intervenierte sehr vehement. :)
Freitag, 7. September 2007
Selbststudium
Mein Bedarf lag vorallem bei der Erstellung von ALV Listen mit Customcontainern und Grid-Controlls die über ABAP Objects angelegt werden. Da die Übung während dem Kurs kurz und schmerzlos anhand eines kopierten Templates erstellt werden konnte, die dazu noch den ok_code handelte ohne diesen im Dynpro überhaupt definiert zu haben (!!!), erstellte ich nochmals ein Programm von Grund auf neu.
Da die logischen Datenbanken mir noch nicht so ganz logisch eingingen versuchte ich heute eine solche unlogische Datenbanken anzulegen. Das klappte auch ganz gut, bis auf das Hinzufügen eines weiteren Nodes in einer hirachisch untergeordneten Position das zum ultimativen Laufzeitfehler führte. Nun denn, das Prüfprotokoll zeigte mir schliesslich auf welche Punkte fehlten und jetzt muss ich nur noch herausfinden wo ich diese Daten pflegen kann und vorallem wie ich ohne Laufzeitfehler dahin gelange :/ -> Für mich sind diese logischen Datenbanken bis _jetzt_ jedenfalls alles andere als ''eine vernünftige Schlussfolgerung".
So, mein Interrupt-buffer füllt sich langsam aber sicher mit der Nachricht w023->"Nikotinspiegel niedrig." und so gönn ich mir jetzt noch die letzte Pause vor den letzten Anstrengungen um dann einem entspannten Wochenende entgegen zu gehn.
-> Schreibe ich denn wirklich soooo überhoben?
Donnerstag, 6. September 2007
Selbststudium
Neben bei hat uns Thomas gezeigt wie man korrekt ein Transportauftrag (TA) anlegt - dies an einem Kundenbeispiel. Hier gelten für Entwickler/innen folgende Kriterien:
- Er/sie muss in der Regel nie einen TA von einem Q zu einem P System auslösen
- NIE auf den grossen LKW klicken - da dieser alle vergangenen Aufträge erneut auslöst
- Alle Transport Aufgaben müssen freigegeben werden, damit der TA stattfinden kann
- Keine Trojaner verwenden ;-) (welche es ohnehin nicht gibt)
Mittwoch, 5. September 2007
ALV Grid Control, Diskussion und ERM
Danach machten wir uns daran, das letzte Kapitel im Ordner BC405 durchzuarbeiten, wobei der Ausdruck "Wiederverwendbarkeit" immer, und immer wieder fiel. Kurz vor Mittag liessen wir dann noch eine heftige Diskussion betreffend dem Unterschied zwischen statischen und instanzierten Methoden vom Stapel, welche dann jedoch vorzeitig abgebrochen werden musste um Schlimmeres zu verhindern.
Nach dem Mittag arbeitete jeder selbstständig an den Übungen zum ALv Grid Control wo es darum ging, eine Liste mit Hilfe eben diesem Control zu erstellen, zu erweitern und zu formatieren. Um halb fünf Uhr wurden wir dann von Tom über eine optionale Übung informiert, wo es darum geht, mit Hilfe des REUSE_ALV_GRID_DISPLAY Controls eine Liste zu erstellen und mit Header und eigenem Logo zu versehen.
Zum Schluss suchten wir im SAP noch nach einer Möglichkeit, die vielen Datenbank-Tabellen in einem ERM darzustellen. Wir haben zwar eine entsprechende Funktionalität gefunden, allerdings entsprach diese nicht wirklich unseren Vorstellungen, sodass wir damit begannen, ein eigenes ERM aufzuzeichnen. Allerdings hatten wir noch nicht 1 Promille der Tabellen aufgezeichnet, als der Tag schon gelaufen war.
Dienstag, 4. September 2007
logical database, data retrieval, control level processing
Soweit ich mich errinern kann und meine Notizen stimmen, haben wir an diesem Dienstag mit den logischen Datenbanken auseinander gesetzt.
Im Bild nebenan, sollte man erkennen können, was eine logische Datenbank ist bzw. was sie macht. Auf eine logische Datenbank können verschiedene Programme und QuickViews zugreifen. Auch kann man ein normales Queries auf eine logische DB absetzen. Die benötigten Tabellen werden mit dem ABAP Befehl NODES. Daten aus den einzelnen Tabellen bekommt man unter anderem auch mit GET tabellenname.
Desweiteren aben wir kurz das Kapitel "Daten abrufen" angeschaut. In diesem Kapitel ging es darum, wie man Daten aus Tabellen auslesen kann. Da wir aber den meisten Stoff schon intus haben, war das eine kurze Angelegenheit.
Beim nächsten Kapitel wurde uns der Gruppenumbruch gezeigt. Dazu haben wir eine kleine Übung gemacht und gut wars. Im grossen und ganzen, haben wir die Theorie für diesen Kurs bis jetzt nur kurz durchgeschaut und dazu Übungen gemacht. Die Übungen haben dabei die meiste Zeit in Anspruch genommen.
Gegen Ende dieses laaaangen Tages haben wir noch das Speichern von fertigen Listen angeschaut. Man kann diese als Datei auf dem lokal PC speichern, im SAPOffice können sie abgelegt werden und selbstverständlich können diese auch gedruckt werden.
Montag, 3. September 2007
Repetition, Listenformatierung und Eingabechecks
Der erste Teil des Kurses BC405 befasste sich mit Repetition von Selektionsbildern, Listen und Formatierung. Thomas zeigte uns weitere Formatierungsmöglichkeiten neben Farben setzen wie zum Beispiel das Setzen von Frames und Blöcken und dessen Verschachtelung, spezielle SELECT-OPTIONS Parameter und das Einsetzen von Radio Buttons.
Zusätzlich wurde uns beigebracht wie man Eingaben in Formularfelder überprüft und diese behandelt. Interessant war vorallem die Möglichkeit, wie einfach man Popups anzeigen lassen oder mehrere unabhängige Selektionsbilder untereinander anzeigen kann.
Vielmehr gibt es nicht zu sagen, da wir gerissenen Raperlein in der Vergangenheit immer so fleissig Fragen stellten, war der grösste Teil des Tages Repetition der bisher gelernten Optionen und Möglichkeiten in Selektionsbildern, weil wir das meiste schon kannten.
Freitag, 31. August 2007
Freitagsschulung
Zu beginn zeigte er uns den neuen Editor, dessen Möglichkeiten und Unterschiede zum alten. Als grosse Neuerung zeigte sich die Code-completion.
Für uns Raper war dies nichts neues, da wir in unserem System von Anfang an mit diesen neuen Werkzeugen gearbeitet haben.
Eine weitere Neuigkeit von SAP ist das Management von Breakpoints und Assertions. Neu können Breakpoints einer Checkpoint Gruppe zugeordnet werden. Diese können Anschliessend über die Transaktion SAAB ein - ausgeschaltet werden. Dadurch können Breakpoints von Testszenarien auch in Produktivsystemen belassen werden, was das Testen nach allfälligen Änderungen erheblich erleichtert.
Bei der Dynamischen Typermittlung, der Dynamischen Programmerzeugung und den Shareds Objects wurde es dann etwas zu schnell für die Raper. Immerhin hat man einmal davon gehört und kann sich vielleicht irgend wann später in dieser Ausbildung wieder daran errinnern.
Zum Schluss wurden wieder etwas verständliche Themen vorgestellt. Das neue Erweitereungskonzept, welches Branchenlösungen wieder zusammen führen soll und die Regular Expressions waren wieder für alle nachvollziehbar.
Am Nachmittag versanken dann alle wieder in den PDF's oder versuchten das gelernte vom Morgen nochmals nachzuvollziehen.
