Textfeld eines Infotypen per ALE übertragen

SAP R/3 Personamwirtschaft: Personalmanagement, Personalzeitwirtschaft, Personalabrechnung, Veranstaltungsmanagement, Personalentwicklung, Kostenplanung...
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Textfeld eines Infotypen per ALE übertragen

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Hi Forum,

in verschiedenen Infotypen gibt es die Möglichkeit, kurze Texte einzugeben. Diese Texte werden nicht im Infotypen selbst gespeichert, sondern im PCL1-Cluster TX.

Hat jemand mal versucht, diese Texte per ALE-Verteilung mit den Infotypen zusammen zu verteilen?
Gibt's ein Standardverfahren dafür? Ich habe eigentlich keine Lust, in den ALE-User-Exits selbst für die Datenbeschaffung und Speicherung zu sorgen

Gruß
donny

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Hallo donny,

mit dem Problem habe ich mich noch nicht speziell beschäftigt, nein. Aber ich habe mich im Bereich Stammdatenverteilung per ALE schon ziemlich ausgetobt... und soweit ich das sehe ist die Verteilung der Texte im Standard nicht vorgesehen. Zumindest habe ich in der Nachricht HRMD_A noch nichts entsprechendes gefunden...

Gruß,
Chris

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Hi Chris,

so sehe ich das auch: Die Stammdatenverteilung ignoriert die Textfelder und setzt, soweit ich das getestet habe, auch das Text-Kennzeichen zurück, welches aussagt, daß so ein Text im Textcluster vorhanden ist.

Ich überlege zur Zeit, ob ich den Infotypen (in meinem Fall den 0019 = Terminverfolgung) um ein eigenes direktes Textfeld per Kunden-Append erweitere, um das dann für meine Zwecke zu nutzen. Da weiß ich dann auch, wie ich es per ALE übertragen kann.

Ist zwar einigermaßen aufwändig, würde aber funktionieren.

Andere Ideen?
donny

Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Hi Donny,

hm... so arg viele andere Ideen hab ich so auf Anhieb auch nicht. Theoretisch könntest Du natürlich auch kundeneigene Felder für die Texte anlegen und diese dann mit den UserExits beim Export und Import füllen bzw. die Daten wieder auf das Cluster zurückschreiben... aber das dürfte wohl noch eine Idee aufwändiger werden wie die Texte in ein Kundenfeld direkt im IT 19 zu übernehmen. Du mußt das Feld ja auch nicht unbedingt auf dem Dynpro anzeigen. Es genügt ja (zumindest theoretisch), wenn Du das Feld im Modulpool füllst und die Werte dann blind mit abgespeichert werden...

Ist alles nicht so ganz unaufwändig... aber wenn Ihr die Daten unbedingt im Zielsystem benötigt... Kannst ja vielleicht vorher noch ne kleine OSS-Anfrage starten. Wer weiß... vielleicht nimmt SAP das ja auch in den Standard mit auf ;-)

Gruß,
Chris

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Hi Chris,

ich habe den Ballon im OSS mal steigen lassen....
und dort einen Verweis auf Hinweis 310993 "HR-CA-ALE: Verteilung von Infotypen mit Zusatzdaten" bekommen.

Dort steht sinngemäß: "Das ist nicht vorgesehen".

OK, dann werde ich mich mal an die Arbeit machen, und den Infotypen um ein Textfeld erweitern. Falls was spannendes passiert, werde ich's hier posten.

Gruß
donny

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
So,

nachdem ich heute fast den ganzen Vormittag Ruhe hatte, konnte ich das Thema gut bearbeiten.

Folgende Dinge mußte ich machen:
- PM01
CI-Include für Infotyp 19 um Textfeld ZZTXT ergänzt

- SE38
Modulpool MP001900 um Routinen für Versorgung aus Standardmaskenfeld erweitert (Achtung Modifikation)

- WE31
Kundensegment Z1P0019 aus E1P0019 kopiert und um Textfeld ZZTXT ergänzt

- WE30
Kundensegment Z1P0019 in bereits bestehende Erweiterung ZRMD_A05 eingefügt

- SM30
Tabelle T777D - Bei Eintrag 0019 Idoc-Segment Z1P0019 zugeordnet

ALE überträgt das Feld automatisch, weil es in beiden Dic-Strukturen (P0019 und Z1P0019) vorhanden ist
Das ganze aufs Partnersystem übertragen - fertig!

Unschön ist nur: Reports / Queries im Zielsystem liefern den Text nur, wenn das neue Kundenfeld benutzt wird, oder der Text einmal geändert und damit ins Textcluster übertragen wurden.

Ich bin mit mir sehr zufrieden und bin dir Chris sehr dankbar für deine Anmerkungen.

Gruß
donny

Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Hi donny,

Danke für Deine Infos. Was ich mir noch vorstellen könnte (um auch den Standardreports die Auswertung der Daten zu ermöglich) wäre der UserExit RHALE001 (z.B. mit dem Funktionsexit EXIT_SAPLRHA0_003). Dort könntest Du im Prinzip abfragen welcher IT gerade importiert wird und beim 0019er dann die Werte aus dem Kundenfeld wieder in das TX Cluster schreiben...

Dürfte im Prinzip nicht so arg kompliziert sein... für die Clustergeschichte gibts nen FuBa (hab den nur grad nicht greifbar) und die ClusterID setzt sich irgendwie aus den Schlüsseldaten des Infotyps zusammen... einfach mal anschauen... das ist quasi selbsterklärend :wink: Wenn Du willst, dann kann ich Dir morgen Abend mal den FuBa raussuchen.

Gruß,
Chris

PS: Und keine Ursache... wenn ich kann helf ich doch gerne :D

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Hi Chris,

du hast aber lange Arbeitszeiten (22:53), oder Spätschicht!

Die Idee mit dem User-Exit finde ich ganz gut, muß aber wohl nicht sein. Ich brauch die Daten eigentlich nur im Dialog und in einer Query. Im Dialog funktionierts prima und die Query hab ich halt auf das Kundenfeld geändert.

Mit dem Cluster-Key hast du Recht, da wird einfach PSKEY des jeweiligen Infotype eingestellt, zusammen mit dem Feld SRTF2 das zur Vermeidung von Dupkeys verwendet wird.

Jetzt so im Nachhinein wäre das natürlich auch ne Lösung gewesen: Im ALE-Ausgang per user-exit die Textdaten in das erweiterte Kundenidoc einstellen und im Eingang per FB die Daten wieder ins Textcluster schreiben. Dann hätte ich die P0019 und MP001900 gar nicht ändern brauchen. Aber jetzt ist's ja schon fertig und in Produktion, jetzt bleibt's auch so.

Gruß
donny

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Mist, jetzt läßt mich die Idee nicht mehr los! :twisted:

mit dem FB HR_READ_INFTY_NOTE könnte ich super einfach im ALE-Ausgang die Texte zu J E D E M Infotypen dazulesen und sie dort in ein eigens dafür geschaffenes Kundensegment stellen.

Wenn ich dann im Eingang dieses Segment bekomme, würde ich mit dem FB von Chris (hab ihn noch nicht selbst gefunden) die Texte wieder ins PCL1-Cluster schreiben und fertig.

Keine Standardmodifikation! Und es würde für alle Infotypen sofort funktionieren.

... ich glaube, ich baue die Sache doch noch mal um!

donny

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
So,

jetzt hab ich mal ein kleines Testprogramm, das die Texte ausliest und davon mal einen Zweizeiler neu ins Cluster reinschreibt.

Sieht schon ganz gut aus, die Texte können aus dem neu angelegten Satz gelesen werden. Komischerweise ist die Größenangabe im Feld PCL1-CLUSTR nach dem Speichern kleiner als vorher (von 134 Byte auf 95), aber der Inhalt ist noch komplett. Also vielleicht irgendwelche Blanks wegoptimiert.

Jetzt mache ich mich mal ans Werk und baue die Codeteile in die ALE-User-Exits ein.

Gruß
donny

Code: Alles auswählen.

REPORT z_test.

DATA: pcl1 LIKE pcl1.

DATA: $text_tab TYPE it_notes,
      $key      LIKE pskey,
      $text     TYPE text72.

DATA: BEGIN OF $header,
      pskey LIKE pskey,
      pshd1 LIKE pshd1,
      END OF $header.

INFOTYPES 0019.

SELECT * FROM pa0019 INTO CORRESPONDING FIELDS OF TABLE p0019
         ORDER BY pernr begda.

LOOP AT p0019 INTO $header.
  CHECK NOT $header-pshd1-itxex IS INITIAL.
  $header-pskey-infty = '0019'.
  WRITE: / 'Key P0019 ist', $header-pskey.

  CALL FUNCTION 'HR_READ_INFTY_NOTE'
       EXPORTING
            key       = $header-pskey
            tclas     = 'A'
       TABLES
            text      = $text_tab
       EXCEPTIONS
            not_found = 1
            OTHERS    = 2.

  LOOP AT $text_tab INTO $text.
    WRITE: / '  - ',  $text.
  ENDLOOP.

* Nur zum Test mal unter neuer Pernr wegschreiben!
  IF $header-pskey-pernr = 5.
    $header-pskey-pernr = 6.
    pcl1-histo = $header-pshd1-histo.
    pcl1-uname = $header-pshd1-uname.
    pcl1-aedtm = $header-pshd1-aedtm.
*   pcl1-pgmid = $header-pshd1-pgmid.
    EXPORT
      ptext FROM $text_tab
      TO DATABASE pcl1(tx) ID $header-pskey
      FROM pcl1.
  ENDIF.
ENDLOOP.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1957
Views
HCM Infotypen
von Hauschmi » 05.11.2013 13:53 • Verfasst in Human Resources
11
Antw.
5189
Views
Informationen zu Infotypen
von BlueMC » 25.01.2008 08:43 • Verfasst in Human Resources
1
Antw.
2008
Views
Änderungen in Infotypen
von mamba » 23.04.2007 14:02 • Verfasst in Human Resources
1
Antw.
2026
Views
eigenen Infotypen erstellen
von saphr » 15.10.2008 16:48 • Verfasst in Dialogprogrammierung
1
Antw.
1945
Views
Anpassung Standard Infotypen
von cba_hr » 19.01.2017 16:30 • Verfasst in Human Resources

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

IBAN und BUT0BK
Gestern von waltersen gelöst 8 / 8998
Splitter-AlV erscheint nicht
Gestern von qyurryus 2 / 1533

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.