Textfeld eines Infotypen per ALE übertragen

Textfeld eines Infotypen per ALE übertragen

Postby Pelin1208 » Mon Apr 24, 2006 3:04 pm

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Lasse815 » Mon Apr 24, 2006 5:55 pm

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
Lasse815
....
....
 
Posts: 683
Joined: Wed Nov 23, 2005 12:36 pm

Postby Pelin1208 » Tue Apr 25, 2006 8:49 am

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Lasse815 » Tue Apr 25, 2006 12:19 pm

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
Lasse815
....
....
 
Posts: 683
Joined: Wed Nov 23, 2005 12:36 pm

Postby Pelin1208 » Wed Apr 26, 2006 7:54 am

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Pelin1208 » Wed Apr 26, 2006 1:29 pm

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Lasse815 » Wed Apr 26, 2006 10:53 pm

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
Lasse815
....
....
 
Posts: 683
Joined: Wed Nov 23, 2005 12:36 pm

Postby Pelin1208 » Thu Apr 27, 2006 8:06 am

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Pelin1208 » Thu Apr 27, 2006 11:59 am

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
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Postby Pelin1208 » Thu Apr 27, 2006 2:30 pm

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT z_test.
  2.  
  3. DATA: pcl1 LIKE pcl1.
  4.  
  5. DATA: $text_tab TYPE it_notes,
  6.       $key      LIKE pskey,
  7.       $text     TYPE text72.
  8.  
  9. DATA: BEGIN OF $header,
  10.       pskey LIKE pskey,
  11.       pshd1 LIKE pshd1,
  12.       END OF $header.
  13.  
  14. INFOTYPES 0019.
  15.  
  16. SELECT * FROM pa0019 INTO CORRESPONDING FIELDS OF TABLE p0019
  17.          ORDER BY pernr begda.
  18.  
  19. LOOP AT p0019 INTO $header.
  20.   CHECK NOT $header-pshd1-itxex IS INITIAL.
  21.   $header-pskey-infty = '0019'.
  22.   WRITE: / 'Key P0019 ist', $header-pskey.
  23.  
  24.   CALL FUNCTION 'HR_READ_INFTY_NOTE'
  25.        EXPORTING
  26.             key       = $header-pskey
  27.             tclas     = 'A'
  28.        TABLES
  29.             text      = $text_tab
  30.        EXCEPTIONS
  31.             not_found = 1
  32.             OTHERS    = 2.
  33.  
  34.   LOOP AT $text_tab INTO $text.
  35.     WRITE: / '  - ',  $text.
  36.  
  37. * Nur zum Test mal unter neuer Pernr wegschreiben!
  38.   IF $header-pskey-pernr = 5.
  39.     $header-pskey-pernr = 6.
  40.     pcl1-histo = $header-pshd1-histo.
  41.     pcl1-uname = $header-pshd1-uname.
  42.     pcl1-aedtm = $header-pshd1-aedtm.
  43. *   pcl1-pgmid = $header-pshd1-pgmid.
  44.     EXPORT
  45.       ptext FROM $text_tab
  46.       TO DATABASE pcl1(tx) ID $header-pskey
  47.       FROM pcl1.
  48.   ENDIF.
  49.  
GeSHi ©
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am


Return to Human Resources

Who is online

Users browsing this forum: No registered users and 14 guests

cron