Hi ihr,
ich weiß, wo (einer ?) der Fehler steckt, habe dort 'nen Teufel hingehauen - in eine interne Tabelle werden die Daten, die aber gefunden werden, nicht eingefügt. Außerdem werden noch immer alle usernamen angegeben und nicht nur die, die eine der Relationen reltyp haben.
[mein Ziel ist es, diejenigen User herauszufiltern und mit dem ALV anzuzeigen, die in Relation zu einer der Firmen stehen. Für diese Personen will ich dann Name, Adresse,... herausfinden + welche Rolle sie haben]
Bin voll verzweifelt, hocke ewig an dem Kram und bin leicht gereizt inzwischen.
Kann mir wer helfen? Damit es einfacher ist, habe ich den ganzen Code mitgeschickt.
Wäre echt klasse.
Danke!
__________________________________________
DATA: DY_TF_ORG_EINHEIT(40) type c,
DY_TF_ROLLE(40) type c.
DATA: fcode type SYUCOMM.
DATA: lr_custom_container TYPE REF TO
cl_gui_custom_container,
lr_alv_grid TYPE REF TO cl_gui_alv_grid.
DATA: tf_ausgew_org(40) type c.
DATA: lv_username type BAPIBNAME.
DATA: ev_buspartner type BU_PARTNER.
DATA: lv_zza_szorg_quellsys type ZZA_SZORG-QUELLSYS,
lv_zza_szorg_vkorg type ZZA_SZORG-VKORG,
lv_zza_szorg_bukrs type ZZA_SZORG-BUKRS.
*ADRESSENKRAM
DATA: is_adressdaten type table of BAPIBUS1006_ADDRESS with header line.
DATA: lt_tel type table of BAPIADTEL with header line.
DATA: lt_fax type table of BAPIADFAX with header line.
DATA: begin of gt_ausgabe_name occurs 4,
bname type BNAME,
erdat type XUERDAT,
end of gt_ausgabe_name.
DATA: begin of gt_ausgabe_reltyp occurs 4,
reltyp type BU_RELTYP,
end of gt_ausgabe_reltyp.
data: lv_reltyp type bu_reltyp.
DATA: begin of gt_ausgabe_partner occurs 4,
reltyp like BUT050-reltyp,
partner1 like BUT050-partner1,
partner2 like BUT050-partner2,
end of gt_ausgabe_partner.
DATA: begin of gs_qbv,
org type ZZA_SZORG-ORG,
partner type BU_PARTNER,
quellsys type ZZA_SZORG-QUELLSYS,
bukrs type ZZA_SZORG-BUKRS,
vkorg type ZZA_SZORG-VKORG,
end of gs_qbv.
*große Tabelle für alle Daten in der Ausgabe, wird nach und nach gefüllt
DATA: ls_ausgabe type ZZA_STRUC_AUSGABE.
DATA: gt_ausgabe type table of ZZA_STRUC_AUSGABE.
TYPES: begin of data_etb,
soursystem(2) type c,
/bic/zcompcode(4) type c,
*hier steht natürlich nur 'ne 8 in Klammern, aber mir wurde sonst immer automatisch 'n Smiley eingefügt...
/bic/zcrmsalor(Länge8) type c,
/BIC/ZSOLD_TO(10) type c,
/BIC/ZUBSTLLR(10) type c,
/BIC/ZVERBR(10) type c,
/BIC/ZSHIP_TO(10) type c,
/BIC/ZBILL_TO(10) type c,
/BIC/ZPAYER(10) type c,
/BIC/ZLOHNB(10) type c,
end of data_etb.
DATA: gt_data_etb type table of data_etb,
ls_data_etb type data_etb.
TYPES: begin of data_etf,
soursystem(10) type c,
zcompcode(4) type c,
*hier steht natürlich nur 'ne 8 in Klammern, aber mir wurde sonst immer automatisch 'n Smiley eingefügt...
zcrmsalor(Länge8) type c,
* NAME1(40) type c,
ZSOLD_TO(10) type c,
ZUBSTLLR(10) type c,
ZVERBR(10) type c,
ZSHIP_TO(10) type c,
ZBILL_TO(10) type c,
ZPAYER(10) type c,
ZLOHNB(10) type c,
end of data_etf.
DATA: gt_data_etf type table of data_etf,
ls_data_etf type data_etf.
*****************************************************
perform INIT_GRID.
*****************************************************
call screen 0100.
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZZ_100'.
SET TITLEBAR 'ZZ_100'.
ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT.
case fcode.
when 'START'.
if DY_TF_ORG_EINHEIT = 'X'.
tf_ausgew_org = '11111'.
elseif DY_TF_ORG_EINHEIT = 'Y'.
tf_ausgew_org = '22222'.
elseif DY_TF_ORG_EINHEIT = 'Z'.
tf_ausgew_org = '33333'.
endif.
******in ZZA_SZORG: Organisationsname, Quellsys, Bukrs, Vkorg,
*Partnernummer
select single *
from ZZA_SZORG
into corresponding fields of gs_qbv
where partner = tf_ausgew_org.
lv_zza_szorg_bukrs = gs_qbv-bukrs.
lv_zza_szorg_quellsys = gs_qbv-quellsys.
lv_zza_szorg_vkorg = gs_qbv-vkorg.
select bname erdat from USR02
into corresponding fields of table
gt_ausgabe_name.
select reltyp
from ZTBZ9_PARTNER
into corresponding fields of table
gt_ausgabe_reltyp
where QUELLSYS = gs_qbv-quellsys
and BUKRS = gs_qbv-bukrs
and VKORG = gs_qbv-vkorg.
append gt_ausgabe_reltyp.
perform GET_DATA_FROM_RFCS.
loop at gt_ausgabe_name.
lv_username = gt_ausgabe_name-bname.
CALL FUNCTION 'COM_BPUS_BUPA_FOR_USER_GET'
EXPORTING
IS_USERNAME = lv_username
IMPORTING
EV_BUSINESSPARTNER = ev_buspartner
EXCEPTIONS
NO_CENTRAL_PERSON = 1
* [BLA]
OTHERS = 8.
Hier steckt der Fehler irgendwie: ev_buspartner und lv_reltyp erhalten immer neue Werte, aber sie werden nicht in die interne Tabelle übernommen - warum nicht? Wo ist der Fehler???
loop at gt_ausgabe_reltyp into lv_reltyp.
select distinct partner1 partner2 crdat reltyp
from BUT050
into corresponding fields of table
gt_ausgabe_partner
where partner1 = ev_buspartner
and reltyp = lv_reltyp.
append gt_ausgabe_partner.
endloop.
if sy-subrc ne 0.
"tu etwas!!!
endif.
loop at gt_ausgabe_partner.
CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL'
EXPORTING
BUSINESSPARTNER = ev_buspartner
IMPORTING
ADDRESSDATA = is_adressdaten
TABLES
BAPIADTEL = lt_tel
BAPIADFAX = lt_fax.
select single name_last name_first
from but000
into (ls_ausgabe-vorname,
ls_ausgabe-nachname)
where partner = ev_buspartner.
ls_ausgabe-username = gt_ausgabe_name-bname.
ls_ausgabe-partner1 = gt_ausgabe_partner-partner1.
ls_ausgabe-reltyp = gt_ausgabe_partner-reltyp.
ls_ausgabe-partner2 = gt_ausgabe_partner-partner2.
ls_ausgabe-crdat = gt_ausgabe_name-erdat.
append ls_ausgabe to gt_ausgabe.
endloop. "Ende von gt_ausgabe_partner
endloop. "Ende von gt_ausgabe_name
CALL METHOD lr_alv_grid->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
i_structure_name = 'ZZA_STRUC_AUSGABE'
CHANGING
IT_OUTTAB = gt_ausgabe
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.
lr_alv_grid->refresh_table_display( ).
when 'BACK'.
set screen 0.
leave screen.
when 'EXIT'.
set screen 0.
leave screen.
endcase.
ENDMODULE. " USER_COMMAND_0100 INPUT
FORM GET_DATA_FROM_RFCS .
CALL Function 'Z_ZA_FB_CHECK_USER_ETB' Destination 'ETBCLNT333'
EXPORTING
IV_ZZA_SZORG_BUKRS = lv_zza_szorg_bukrs
IV_ZZA_SZORG_VKORG = lv_zza_szorg_vkorg
IV_ZZA_SZORG_QUELLSYS = lv_zza_szorg_quellsys
TABLES
lt_daten = gt_data_etb
EXCEPTIONS
CALL_FUNCTION_NOT_REMOTE = 1
* [BLA]
OTHERS = 8.
CALL Function 'Z_ZA_FB_CHECK_USER_ETF' Destination 'ETFCLNT333'
EXPORTING
IV_ZZA_SZORG_BUKRS = lv_zza_szorg_bukrs
IV_ZZA_SZORG_VKORG = lv_zza_szorg_vkorg
IV_ZZA_SZORG_QUELLSYS = lv_zza_szorg_quellsys
TABLES
lt_join = gt_data_etf
EXCEPTIONS
CALL_FUNCTION_NOT_REMOTE = 1
* [BLA]
OTHERS = 8.
ENDFORM. " GET_DATA_FROM_RFCS
FORM INIT_GRID.
IF lr_custom_container IS NOT BOUND.
CREATE OBJECT lr_custom_container
EXPORTING container_name = 'CU_CONT_VIEW'.
IF lr_alv_grid IS NOT BOUND.
CREATE OBJECT lr_alv_grid
EXPORTING i_parent = lr_custom_container.
Data: lt_orgs type table of ZZA_szORG.
select * into table lt_orgs from ZZA_szORG.
CALL METHOD lr_alv_grid->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
i_structure_name = 'ZZA_STRUC_AUSGABE'
CHANGING
IT_OUTTAB = gt_ausgabe
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.
endif.
endif.
ENDFORM. " INIT_GRID