Witam,
Jak można zablokować użytkownikom usuwanie kontaktów handlowych z transakcji VC01n?
Obiekt uprawnień ma tylko opcje: Dodawania i tworzenia, zmiana .... nie ma odrębnej aktywności dla usuwania aby ją wyłączyć.
W takim razie jakieś rozszerzenie? Jak się do tego zabrać?
Pozdr
Zablokowanie możliwości usuwania kont. hand. VC01n
-
- Posty: 145
- Rejestracja: wt paź 10, 2017 4:26 pm
- Has thanked: 54 times
- Been thanked: 86 times
Re: Zablokowanie możliwości usuwania kont. hand. VC01n
Jest user-exit EXIT_SAPMV43A_003 - w nim czytam własną tabelę konfiguracyjną, w której mam zdefiniowane jakie kody funkcji dla jakich Działów Sprzedaży/rodzajów kontaktów dezaktywować.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Zablokowanie możliwości usuwania kont. hand. VC01n
No własnie o coś takiego mi chodzi
Exit namierzyłam, jest to FM.
Trochę chciałam dopytać odnośnie Twojego rozwiązania
Rozumiem utworzenie tabelki, działy itp. W kolumnie kod funkcji masz jakieś specjalne wartości czy przez siebie przyjete np. "D" delete itp?
I czy podzieliłbyś sie jakąś wizją użycia tego Exita, kawałkiem kodu czy jakimś może materiałem ogólnym z użyciem tego exita? Z góry wielkie dzięki.
Exit namierzyłam, jest to FM.
Trochę chciałam dopytać odnośnie Twojego rozwiązania
Rozumiem utworzenie tabelki, działy itp. W kolumnie kod funkcji masz jakieś specjalne wartości czy przez siebie przyjete np. "D" delete itp?
I czy podzieliłbyś sie jakąś wizją użycia tego Exita, kawałkiem kodu czy jakimś może materiałem ogólnym z użyciem tego exita? Z góry wielkie dzięki.
-
- Posty: 145
- Rejestracja: wt paź 10, 2017 4:26 pm
- Has thanked: 54 times
- Been thanked: 86 times
Re: Zablokowanie możliwości usuwania kont. hand. VC01n
Kod mam prościutki .... w FM wywołanie
CHECK NOT zcl_rozszerzenia=>czy_aktywne( 'SD03100208' ) IS INITIAL.
CHECK sy-tcode EQ 'ZSD_VC01N'.
CALL METHOD z01_tools4=>get_ina
EXPORTING
i_fvbka = fvbka
CHANGING
c_fausschluss = fausschluss.
(pierwsze nasza własna aktywacja wstawianych w różnych miejscach kawałków kodu, także w user-exit, drugie - nasza własna modyfikacja standardowej VC01N), kolejne to wywołanie metody, w której sprawdzamy jakie kody funkcji należy deaktywować. Tabela prosta:
MANDT MANDT CLNT 3 0 Mandant
VKORG VKORG CHAR 4 0 Dział sprzedaży
KTAAR KTAAR CHAR 4 0 Rodzaj kontaktu handlowego dla kontaktów CAS
FCODE FCODE CHAR 20 0 Kod funkcji
ACTIVE ZZAKT CHAR 1 0 Aktywacja
Możesz tutaj dodać też np. tworzącego kontakt..... byle było użyteczne
Kod metody też prościutki
DATA: wa_ina TYPE zcrm_func_ina.
IF read_ina NE 'X'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_crm_ina FROM zcrm_func_ina WHERE active = 'X'.
read_ina = 'X'.
ENDIF.
LOOP AT gt_crm_ina INTO wa_ina WHERE vkorg = i_fvbka-vkorg AND ktaar = i_fvbka-ktaar.
APPEND wa_ina-fcode TO c_fausschluss.
ENDLOOP.
(ten wskaźnik read_ina po to by tylko raz czytać tabelę).
Do tabelki z kodami deaktywacji podajemy kod funkcji podany w statusie; dla kasowania jest V43D_DELE.
Pomogło?
CHECK NOT zcl_rozszerzenia=>czy_aktywne( 'SD03100208' ) IS INITIAL.
CHECK sy-tcode EQ 'ZSD_VC01N'.
CALL METHOD z01_tools4=>get_ina
EXPORTING
i_fvbka = fvbka
CHANGING
c_fausschluss = fausschluss.
(pierwsze nasza własna aktywacja wstawianych w różnych miejscach kawałków kodu, także w user-exit, drugie - nasza własna modyfikacja standardowej VC01N), kolejne to wywołanie metody, w której sprawdzamy jakie kody funkcji należy deaktywować. Tabela prosta:
MANDT MANDT CLNT 3 0 Mandant
VKORG VKORG CHAR 4 0 Dział sprzedaży
KTAAR KTAAR CHAR 4 0 Rodzaj kontaktu handlowego dla kontaktów CAS
FCODE FCODE CHAR 20 0 Kod funkcji
ACTIVE ZZAKT CHAR 1 0 Aktywacja
Możesz tutaj dodać też np. tworzącego kontakt..... byle było użyteczne
Kod metody też prościutki
DATA: wa_ina TYPE zcrm_func_ina.
IF read_ina NE 'X'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_crm_ina FROM zcrm_func_ina WHERE active = 'X'.
read_ina = 'X'.
ENDIF.
LOOP AT gt_crm_ina INTO wa_ina WHERE vkorg = i_fvbka-vkorg AND ktaar = i_fvbka-ktaar.
APPEND wa_ina-fcode TO c_fausschluss.
ENDLOOP.
(ten wskaźnik read_ina po to by tylko raz czytać tabelę).
Do tabelki z kodami deaktywacji podajemy kod funkcji podany w statusie; dla kasowania jest V43D_DELE.
Pomogło?