folgende Aufgabenstellung: Ich soll im CRM verschiedene Angebote selektieren und mir über die so gewonnen GUI ID´s aus dem "CRM_ORDER_READ" noch 2 weiter relevante Einträge holen.
So meine Frage Jetzt ich habe in einer internen Tabelle alle GUId´s stehen die ich brauche.
Jetzt würd ich gerne mit SUBMIT CRM_ORDER_READ den Report aufrufen und ihm alle GUId´s mitgeben und dann die Ergebnisse von CRM_ORDER_READ in meinem Ursprungsreport verwenden.
Hoffe es ist verständlich was ich meine?
DATA: lt_crmd_orderadm_h TYPE TABLE OF crmd_orderadm_h WITH HEADER LINE,
ls_crmd_orderadm_h LIKE LINE OF lt_crmd_orderadm_h.
SELECT * FROM crmd_orderadm_h INTO CORRESPONDING FIELDS OF TABLE lt_crmd_orderadm_h
WHERE process_type = 'ZBAC' OR process_type = 'ZBAA'.
DATA: seltab TYPE TABLE OF rsparams WITH HEADER LINE,
wa_seltab LIKE LINE OF seltab.
Datenaustausch zwischen deinem Programm und dem Report CRM_ORDER_READ ist nur über Memory-IDs, über das SHARED-MEMORY oder über die Persistenzschicht (Datenbank) möglich. Den Report CRM_ORDER_HEAD habe ich nicht zur Hand. Hier müsstest du selber suchen, wie die Ergebnisse abgelegt werden und diesen eventuell erweitern.
Die SUBMIT-Anweisung in deinem Codebeispiel ersetzt die interne Sitzung, da der Aufruf ohne den Zusatz AND RETURN vonstatten geht.
D.h. der Inhalt der Variablen lt_crmd_orderadm_h geht nachdem SUBMIT-Aufruf verloren.
Wenn der Inhalt dieser Variable noch dem SUBMIT-Aufruf benötigt wird, würde ich den Zusatz AND RETURN empfehlen.
dh mit dem "and Return" behalte ich nur die Daten die ich vorab schon in meine lt selektiert habe? Ich bekomme nicht die selektierten daten aus dem "CRM_ORDER_READ" mit retour?
@burggartenkind
Ja, der Zusatz AND RETURN sorgt dafür, dass die GUIDs in der Tabelle lt_crmd_orderadm_h erhalten bleiben.
Die SUBMIT-Anweisung unterstützt im Vergleich zu Prodezuraufrufen (Form-Routine, Methode, Funktionsbausteine) in diesem Sinne keine "Rückgabe-" oder "Ausgabeparameter".
Die Ergebniss des CRM_ORDER_READ-Reports müssen:
1. in eine MEMORY-ID exportiert (EXPORT ... TO MEMORY ID) oder
2. in das SHARED MEMORY exportiert (EXPORT ... TO SHARED MEMORY) oder
3. einen SHARED BUFFER exportiert (EXPORT ... TO SHARED BUFFER) oder
4. in die Datenbank geschrieben werden.
Nur dann kannst du auf die Ergebnisse in deinem Ursprungsreport zugreifen.
Definiert der Report CRM_ORDER_READ beispielsweise das Ergebniss nur als globale Variable (DATA: gt_result TYPE ...), hast du in deinem Ursprungsreport keinen Zugriff auf die Variable gt_result.