Reihenfolge der Infotypen bei dynamischen Massnahmen

SAP R/3 Personamwirtschaft: Personalmanagement, Personalzeitwirtschaft, Personalabrechnung, Veranstaltungsmanagement, Personalentwicklung, Kostenplanung...
17 Beiträge Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

Reihenfolge der Infotypen bei dynamischen Massnahmen

Beitrag von MarcoS (ForumUser / 23 / 0 / 0 ) » 30. Jul 2008 21:20

Hallo Ihr Experten :)

Ich bin heute auf folgendes Problem gestossen, ich hoffe Ihr könnt mir helfen:

Ich habe die Massnahme Eintritt angelgt, mit folgender Infotgruppe:

0001, 002, 0006, 0007, 0008, 0009, 00014, 2006.
Nun möchte ich gerne, dass nach dem IT 0007 der IT 0041 (Datumsangaben) erscheint, der im ersten Datumsfeld die Datumsart 01 und als Datum das Beginndatum der Massnahme Eintritt als Vorschlag hat. Soweit so gut, aber das Problem ist, dass der IT0041 immer gleich zu Beginn der Massnahme erscheint, nicht nach dem pflegen des IT0007. Wie schaffe ich es, dass das funktioniert? Muss ich den IT0041 in der Infogruppe schon angeben? Wenn ja, wie mach ich das mit dem Vorschlagswert?
Bis jetzt sieht die dyn. Massnahme wie folgt aus (Wie Ihr seht, nirgends steht was von Reihenfolge :oops: )

0000 04 40 P T001P-MOLGA='02'
0000 04 50 P PSPAR-MASSN='A1'/X
0000 04 60 P PSPAR-MASSN='A2'/X
0000 04 70 I INS,0041,,,(P0000-BEGDA),(P0000-ENDDA)
0000 04 80 W P0041-DAR01='01'
0000 04 90 W P0041-DAT01=P0000-BEGDA



Wäre super wenn mir jemand Hilfe wüsste 8)


Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 30. Jul 2008 23:41

Hallo Marco,

du hast m.M.n. 2 Möglichkeiten, Deine Fragestellung zu lösen:

1. Du arbeitest wie geplant mit einer dynamischen Maßnahme, stößt die aber nicht wie geschildert vom IT0000 an (0000 04 40 P T001P-MOLGA='02' ...), sondern vom IT0007
2. Du baust den IT0041 in die Infogruppe ein und füllst die Vorschlagwerte via User Exit ( TCODE SMOD, Exit PBAS0001, glaub ich)

Vielleicht gibt's noch andere Möglichkeiten (Merkmale?!?), aber dies scheinen mir die einfachsten. Hab leider momentan kein System, daher kann ich es nicht näher erläutern.

Gruß aus Bremen,
Klaus

Beitrag von donny (Specialist / 253 / 0 / 0 ) » 31. Jul 2008 09:36

Hi Marco,

Schau dir mal in der Transaktion PE03 das Merkmal DATAR an.

Leider liefert das Merkmal nur die Datumsart, der Datumswert müsste dann in der Tat über den von Klaus genannten Userexit ermittelt und eingestellt werden. Oder eben per dyn. Maßnahme....


Gruß
donny

Beitrag von MarcoS (ForumUser / 23 / 0 / 0 ) » 6. Aug 2008 11:44

Danke für Eure Antworten :)

Bahnfahrer, was muss ich denn im variablen Funktionsteil reinschreiben wenn ich den 41er nach dem Anlegen vom 0007ner aufrufen möchte? Ich habe leider nicht so eine Ahnung von dyn. Massnahmen.
Die Idee mit dem Userexit ist sicher auch nicht schlecht, aber da weiss ich leider überhaupt nicht wie das funtioniert.

Danke für Eure Hilfe :)

Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 6. Aug 2008 16:46

Hallo Marco,

ich habe gerade festgestellt, dass wir einen von Dir angestrebten Automatismus gar nicht haben. :evil:

Wie auch immer, ich würde an Deiner Stelle immer den Exit vorziehen, da die dynamische Maßnahme (zumindest) folgende Probleme birgt:
1. Du willst sicherstellen, dass nur bei Einstellungsmaßnahme der Automatismus greift, nicht bei späterer Copy des IT0007
2. Du willst den Infotyp 41 vom It0007 anstoßen, dabei aber mit Inhalten vom IT0000 versorgen
Punkt 1 kannst Du nur durch aufwendige Prüfungen lösen, Punkt 2 am einfachsten durch eine Funktion. Wenn Du aber soweit gehen willst, kannst Du auch gleich einen User Exit aktivieren.

Und das ginge so:
1. Transaktionscode SMOD
2. Erweiterung PBAS0001
3. Button TESTEN
4. Den Exit EXIT_SAPFP50M_001 auswählen (zuständig für Vorschlagswerte)
5. Beispiele dazu ansehen (Doppelklick in entspr. Spalte)
6. In Spalte IMPL doppelklicken
7. Doppelklick auf Include ZXPADU01 und das Anlegen bestätigen
8. Die Funktionsbausteindoku lesen und die Schnittstellenparameter anschauen
9. Coding anlegen (wichtig ob UNICODE oder nicht)

Ich würde das betreffende Feld mithilfe des Funktionsbausteins HR_ENTRY_DATE füllen.

Das Einarbeiten in die Exits kann ich Dir leider nicht ersparen. Es lohnt sich aber auf jeden Fall. Der 2. Exit ist eigentlich noch wichtiger, hier kann man z.B. kundeneigene Eingabeprüfungen anlegen.

Gruß, Klaus

Beitrag von MarcoS (ForumUser / 23 / 0 / 0 ) » 6. Aug 2008 21:53

Hallo Klaus

Vielen Dank für Deine ausführliche Anleitung :) Ich werde die mir Morgen gleich mal zu Brust nehmen! Das Einarbeiten in die Exits macht mir nicht viel aus, ein wenig Programmiererfahrung habe ich schon :) Und etwas Neues zu lernen macht immer wieder Spass!
Wie meinst Du das, Ihr habt keinen solchen Automatismus wie ich ihn beschreibe? Habt Ihr keine solche Anforderung, dass ein IT bei einer bestimmten Massnahme nach einem bestimmten IT angestossen wird? Ich dachte, dass dies noch eine häufige Anforderung wäre.

Gruss Marco

Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 6. Aug 2008 23:47

Hi Marco,

doch, doch dynamische Maßnahmen und User Exits haben wir ohne Ende, teilweise auch in Kombination. Einige recht schicke Geschichten sogar. Z.B. haben wir die Möglichkeit, Sonderzahlungen (Urlaubsgeld,...) in Zeitkontingente umzuwandeln. Das wird per Selfservice im IT0015 als Umwandlungslohnart angestoßen, die wiederum per dynamischer Maßnahme mithilfe des individuellen Stundensatzes eine Zeitumbuchung anlegt, die das Kontingent füllt,....

Die dynamischen Maßnahmen und User Exits sind im PA einfach klasse, um ohne Modifikation Standardinfotypen abweichend zu behandeln. Was ich mit meiner Maulerei meinte: Deine konkrete Fragestellung, die ja durchaus sinnvoll ist, hab ich noch nicht umgesetzt. Da hätte ich auch mal drauf kommen können.

Manchmal fehlt einfach die Zeit, um festzustellen, an wie vielen Stellen man noch unterstützen kann.

Gruß aus Bremen,
Klaus

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) » 7. Aug 2008 07:47

Hallo zusammen,

die Beschäftigung mit dem Userexit macht meiner Meinung nach durchaus Sinn... und die Anforderung lässt sich damit wohl auch abdecken. Ich möchte allerdings die Aufstellung vom Bahnfahrer noch etwas ergänzen. Vermutlich hast Du den Userexit nicht selbst aktiviert sondern "nur" auf einen besthehenden Exit aufgesetzt?! Die Transaktion SMOD ist normalerweise eigentlich primär für die Anzeige der "möglichen" Userexits gedacht... die die Implementierung eines Exits gibt es die Transaktion CMOD. Und ohne dort ein Kundeneigenes Projekt angelegt zu haben und dieses zu aktivieren dürfte eigentlich der Userexit nie durchlaufen werden. D.h. meiner Meinung nach müsste die Reihenfolge so ausssehen:

1. In der CMOD ein neues Projekt anlegen - beim Namen bist Du ziemlich frei... um zukünftig wieder schnell zu erkennen welcher Exit mit dem Projekt implementiert wurde, bin ich inzwischen dazu übergegangen die Projekte gleich zu bennen wie die entsprechenden Exits... im aktuellen Fall also PBAS0001.
2. In der CMOD die Erweiterung PBAS0001 zuordnen.
3. Unter Komponenten gibts dann die bei Funktionsexits EXIT_SAPFP50M_001 und EXIT_SAPFP50M_002. Ab hier kannst Du bei der Nr. 4 vom Bahnfahrer weitermachen...

Wichtig ist noch, dass Du nach der Aktivierung des Codings noch das Projekt aktivieren musst (auf der Einstiegsseite der Transaktion CMOD).

Grüße
Chris

Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 7. Aug 2008 10:40

Hallo Chris,

ich widerspreche Dir nur ungern, aber obwohl schon eine Weile her, so habe ich die Erweiterung genau auf die von mir geschilderte Art und Weise angelegt und nicht etwa auf eine bestehende aufgesetzt.

Ich habe das auch noch einmal gegengecheckt, indem ich im CMOD nach Projekten mit der Erweiterung PBAS0001 gesucht habe. Die gibt es aber nicht. Also entweder bilde ich mir nur ein, dass unsere (nicht wenigen) Routinen funktionieren, oder Deine Richtigstellung ist nicht so ganz korrekt.

Gruß aus Bremen,
Klaus

Beitrag von MarcoS (ForumUser / 23 / 0 / 0 ) » 7. Aug 2008 14:34

Ich habs geschafft :) Ich bin über die Transaktions CMOD eingestiegen und habe den Userexit angelegt mit folgendem Coding:

IF innnn-infty NE '0041'.
RETURN.
ENDIF.

IF IPSYST-MASSN EQ 'A1'.

CLASS CL_HR_PNNNN_TYPE_CAST DEFINITION LOAD.
CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
EXPORTING
PRELP = INNNN
IMPORTING
PNNNN = I0041.
MOVE '02' TO I0041-DAR01.
MOVE IPSYST-BEGDA TO I0041-DAT01.


CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
EXPORTING
PNNNN = I0041
IMPORTING
PRELP = INNNN.
ENDIF.

Danke nochmals für Eure Hilfe!

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) » 7. Aug 2008 19:38

Hallo Klaus,

mag sein, dass das funktioniert... das habe ich zugegeben noch nie ausprobiert... soweit ich die Dokus verstanden habe ist die SMOD jedefalls nicht zum Anlegen von Kudnenerweiterungen gedacht sondern zum Suchen und Prüfen der von SAP definierten Exits... aber egal. Ich will mich hier ja nicht streiten... wenn es funktioniert, dann soll es mir ja recht sein..

Wenn Du die Doku nachlesen möchtest... ich meine bspw. das hier: http://help.sap.com/saphelp_46c/helpdat ... ameset.htm

Grüße
Chris

Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 8. Aug 2008 10:28

Hallo Chris

irgendwie haben wir wohl beide recht, wobei Dein Vorgehen natürlich formal korrekt ist.

Allerdings ist eine Diskussion hier wohl ohnehin überflüssig, da SAP mehr und mehr zu BADIs übergeht und die alten UserExits quasi Auslaufmodelle sind. (Friedenspfeife zurück reich!!)

Gruß aus Bremen,
Klaus

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) » 8. Aug 2008 23:19

Hallo Klaus,

stimmt natürlich... kann man bei den BAdIs die Implementierung eigentlich auch mit der SE18 anlegen? Das ist ja quasi die alte SMOD... bisher habe ich das immer mit der SE19 gemacht und auch noch nicht anders probiert :D

Grüße aus Stuttgart
Chris

Beitrag von der.bahnfahrer (ForumUser / 38 / 0 / 0 ) » 14. Aug 2008 09:20

Hallo Chris,

ich arbeite auch nur mit der se19, direkt oder über IMG.

Gruß, Klaus

Beitrag von MarcoS (ForumUser / 23 / 0 / 0 ) » 14. Aug 2008 16:35

Hallo zusammen, noch eine kleine Frage :)
Wie bekomme ich am einfachsten zur Personalnummer? Der Funktionsbaustein HR_ENTRY_DATE braucht ja eine Personalnummer.

Daaaaaaaaaaanke :)

Seite 1 von 2 (current) Nächste

Aktuelle Forenbeiträge

ABAP Clean Code
vor 49 Minuten von deejey 54 / 1335
Funktionsbaustein READ_TEXT
vor 17 Stunden von Tron 2 / 121
Code lesen
Gestern von GastX 5 / 1464
CL_GUI_TEXTEDIT im Subscreen
Gestern von black_adept 2 / 84

Unbeantwortete Forenbeiträge

HowTo? Reisekosten PR05: Land hinzufügen
vor 2 Tagen von Florian9999 1 / 75
eMail Versand Faktura, falscher Betreff in eMail
vor 2 Tagen von bapimueller 1 / 74
[GELÖST] Kundenhierarchien in der Preisfindung
vor 3 Tagen von SAP_ENTWICKLER 1 / 84
[GELÖST] Feld KNVV-BOIDT
vor einer Woche von SAP_ENTWICKLER 1 / 65