[59992] in SAPr3-news
Re: Sachbearbeiterinfos in Mahnung
daemon@ATHENA.MIT.EDU (Gerhard Fricke)
Tue Sep 18 00:23:26 2007
To: sapr3-news@mit.edu
Date: Tue, 18 Sep 2007 06:23:15 +0200
From: Gerhard Fricke <gerhard.fricke@lsw.de>
Message-ID: <1190089395.52@user.newsoffice.de>
Hallo,
hier ein funktionierendes Beispiel von mir, allerdings aus dem Bereich
SD/PM.
Über die Felder &VBDKA-ERNAM& und &VBDKA-VBELN& ermittele ich im Angebot
die weiteren Daten.
Sapscript-Formular
/: PERFORM Z_READ_ADDRESS IN PROGRAM Z_007_USEREXIT_ANGEBOT
/: USING &VBDKA-ERNAM&
/: USING &VBDKA-VBELN&
/: CHANGING &ANREDE&
/: CHANGING &TELNR&
/: CHANGING &FAXNR&
/: CHANGING &EMAIL&
/: CHANGING &NAME_KBS&
ENDPERFORM
und hier das Coding im Userexit
ABAP Z_007_USEREXIT_ANGEBOT
FORM Z_READ_ADDRESS TABLES INPUT STRUCTURE ITCSY
OUTPUT STRUCTURE ITCSY.
DATA: NAME LIKE VBDKA-ERNAM,
FAX LIKE ADCP-FAX_NUMBER,
VBELN LIKE VBDKA-VBELN.
data: RETURN type BAPIRET2 occurs 0.
data: ADDRESS like BAPIADDR3.
data: tel(40).
data: wa_VBPA like VBPA,
wa_PA0105 like PA0105.
READ TABLE INPUT WITH KEY 'VBDKA-ERNAM'.
NAME = INPUT-VALUE.
READ TABLE INPUT WITH KEY 'VBDKA-VBELN'.
VBELN = INPUT-VALUE.
* wenn 2. Ansprechpartner angegeben, dann dessen Daten ermitteln;
* hat Partnerrolle = 'ZM'
* 2. Ansprechpartner mit Partnerrolle = 'ZM'
select single * from VBPA
into wa_VBPA
where vbeln = VBELN and
PARVW = 'ZM'.
if sy-subrc = 0.
select single * from PA0105
into wa_PA0105
where PERNR = wa_VBPA-PERNR.
if sy-subrc = 0.
NAME = wa_PA0105-USRID.
endif.
endif.
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
USERNAME = NAME
IMPORTING
ADDRESS = ADDRESS
TABLES
RETURN = RETURN.
*--> RC: innerhalb ADRRESS stehen gewünschte Angaben.
* PERSNUMBER
READ TABLE OUTPUT WITH KEY 'PERSNUMBER'.
OUTPUT-VALUE = ADDRESS-PERS_NO.
MODIFY OUTPUT INDEX 1.
* ANREDE
READ TABLE OUTPUT WITH KEY 'ANREDE'.
OUTPUT-VALUE = ADDRESS-TITLE_P.
MODIFY OUTPUT INDEX 2.
* TELNR
concatenate ADDRESS-TEL1_NUMBR ADDRESS-TEL1_EXT into tel.
READ TABLE OUTPUT WITH KEY 'TELNR'.
OUTPUT-VALUE = TEL.
MODIFY OUTPUT INDEX 3.
* FAXNR
concatenate ADDRESS-FAX_NUMBER ADDRESS-FAX_EXTENS into fax.
READ TABLE OUTPUT WITH KEY 'FAXNR'.
OUTPUT-VALUE = FAX.
MODIFY OUTPUT INDEX 4.
* EMAIL
READ TABLE OUTPUT WITH KEY 'EMAIL'.
OUTPUT-VALUE = ADDRESS-E_MAIL.
MODIFY OUTPUT INDEX 5.
* NAME in Kleinbuchstaben
READ TABLE OUTPUT WITH KEY 'NAME_KBS'.
OUTPUT-VALUE = ADDRESS-LASTNAME.
MODIFY OUTPUT INDEX 6.
ENDFORM.
Vielleicht hilft es dir ja weiter.
Ciao
Gerd
St. Kother schrieb am 09.17.2007:
> Hallo,
> Christian Wallner schrieb:
>> <FORM> IN PROGRAM <ZREP> im Fenster INFO gelöst.
> Ich bekomme bloß die Emailadresse nicht aus dem Programm in mein Formular:
> FORM get_email tables in_tab structure itcsy
> out_tab structure itcsy.
> * Ermittlung der Emailadresse
> * steht in adr6-smtp_addr
> move 'EMAIL' to out_tab-name.
> move adr6-smtp_addr to out_tab-value.
> append out_tab.
> ENDFORM.
> Die Adresse selber wird korrekt ermittelt.
> Wenn ich in das Programm noch einen Funktionsaufruf mit simplen "write"
> packe und die Funktion anpasse (using usw.), dann sehe ich die
> Emailadresse. Ich stehe bissl auf'm Schlauch. Von dem Funktionsaufruf,
> bei dem ich abgeguckt habe, der macht im Endeffekt auch nichts and(ere)s.