SAPфорум.RU https://sapboard.ru/forum/ |
|
Как достать из профиля пользователя отдел? https://sapboard.ru/forum/viewtopic.php?f=13&t=95577 |
Страница 1 из 2 |
Автор: | sonics [ Ср, окт 11 2017, 11:25 ] |
Заголовок сообщения: | Как достать из профиля пользователя отдел? |
Подскажите как забрать из профиля данные об отделе. Имя sy-uname взял, дату создания sy-datum взял, теперь осталось только отдел этого пользователя? |
Автор: | sonics [ Ср, окт 11 2017, 11:30 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Code: method GET_PARAM_FOR_USERNAME. data: parameter1 type table of bapiparam1, parameter1_line like line of parameter1, return type bapiret2, i type i. call function 'BAPI_USER_GET_DETAIL' exporting username = username tables parameter1 = parameter1 return = return2. clear return. i = 0. loop at parameter1 into parameter1_line where parid = parid. parvalue = parameter1_line-parva. i = i + 1. endloop. if i = 0. return-type = 'E'. concatenate 'Отсутствует параметр ' parid ' для пользователя ' username into return-message. append return to return2. endif. endmethod. использовал этот метод далее посмотрел какие данные можно передавать через BAPI_USER_GET_DETAIL, но там не обнаружил именно отдела.... |
Автор: | Kuranov.Dmitry [ Ср, окт 11 2017, 11:32 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
sonics написал(а): Подскажите как забрать из профиля данные об отделе. Имя sy-uname взял, дату создания sy-datum взял, теперь осталось только отдел этого пользователя? что-то типа такого Code: type-POOLs: SZADR.
DATA: address LIKE usaddress, logondata LIKE uslogond, defaults LIKE usdefaults, ref_user LIKE bapirefus, alias LIKE bapialias. DATA: addr3_tab TYPE szadr_addr3_line, ADTEL_TAB type szadr_adtel_line. DATA: addr3_complete TYPE szadr_addr3_complete. CALL FUNCTION 'SUSR_USER_READ' EXPORTING user_name = sy-uname with_text = 'X' IMPORTING user_logondata = logondata user_defaults = defaults ref_user = ref_user alias = alias user_address = address EXCEPTIONS user_name_not_exists = 1 internal_error = 2 thers = 3. CALL FUNCTION 'ADDR_PERS_COMP_GET_COMPLETE' EXPORTING addrnumber = address-addrnumber * ADDRHANDLE = persnumber = address-persnumber * PERSHANDLE = * ARCHIVE_HANDLE = IMPORTING addr3_complete = addr3_complete EXCEPTIONS parameter_error = 1 address_not_exist = 2 person_not_exist = 3 internal_error = 4 wrong_access_to_archive = 5 OTHERS = 6. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT addr3_complete-addr3_tab INTO addr3_tab. write addr3_tab-data-department. ENDLOOP. |
Автор: | sonics [ Ср, окт 11 2017, 11:53 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
а через функцию BAPI_USER_GET_DETAIL ? возможно такое ? |
Автор: | Kuranov.Dmitry [ Ср, окт 11 2017, 11:58 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
sonics написал(а): а через функцию BAPI_USER_GET_DETAIL ? возможно такое ? функцию SUSR_USER_READ можете заменить на BAPI_USER_GET_DETAIL для получения PERS_NO и ADDR_NO, если вам та функция больше нравится, но есть ли смысл ? BAPI_USER_GET_DETAIL вызывает SUSR_USER_READ внутри себя |
Автор: | sonics [ Ср, окт 11 2017, 12:36 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Kuranov.Dmitry написал(а): sonics написал(а): а через функцию BAPI_USER_GET_DETAIL ? возможно такое ? функцию SUSR_USER_READ можете заменить на BAPI_USER_GET_DETAIL для получения PERS_NO и ADDR_NO, если вам та функция больше нравится, но есть ли смысл ? BAPI_USER_GET_DETAIL вызывает SUSR_USER_READ внутри себя мне не то, чтобы нравится или нет. все что выходит за рамки шаблонных решений вызывает некоторую сложность. поэтому хотелось бы для начала с шаблонными решениями разобраться. сейчас попробую, спасибо! |
Автор: | Skif [ Ср, окт 11 2017, 14:09 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Kuranov.Dmitry написал(а): функцию SUSR_USER_READ можете заменить на BAPI_USER_GET_DETAIL для получения PERS_NO и ADDR_NO, если вам та функция больше нравится, но есть ли смысл ? BAPI_USER_GET_DETAIL вызывает SUSR_USER_READ внутри себя уточните хотя бы что это всё только для ERP-систем |
Автор: | sonics [ Ср, окт 11 2017, 14:51 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
я где-то туплю. через команду write выводит на экран но в таблицу не вставляет Code: LOOP AT gt_outtab ASSIGNING <fs_outtab>.
MOVE-CORRESPONDING <fs_outtab> TO ls_zmmgyptable_temp. APPEND ls_zmmgyptable_temp TO it_zmmgyptable_temp. ENDLOOP. SELECT MAX( id ) INTO zid FROM zmmgyptable. " забирает максимальное число из id и копирует его в zid LOOP AT it_zmmgyptable_temp ASSIGNING <fs_zmmgyptable> WHERE id IS INITIAL. zid = zid + 1. <fs_zmmgyptable>-id = zid. <fs_zmmgyptable>-whocreate = sy-uname. <fs_zmmgyptable>-datecreate = sy-datum. <fs_zmmgyptable>-whotechange = sy-uname. <fs_zmmgyptable>-datechange = sy-datum. * <fs_zmmgyptable>-PODRAZD = param. <fs_zmmgyptable>-PODRAZD = addr3_tab-data-department. ENDLOOP. |
Автор: | Kuranov.Dmitry [ Ср, окт 11 2017, 15:14 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
внутрь каждого цикла заходит? <fs_zmmgyptable>-PODRAZD и addr3_tab-data-department одного типа? |
Автор: | Yozhhhhh [ Ср, окт 11 2017, 16:05 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Да напрямую забрать уже))) PERSNUMBER и ADDRNUMBER из USR21, а потом по этим значениям достать DEPARTMENT из ADCP. |
Автор: | sonics [ Чт, окт 12 2017, 13:06 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Несколько не так я понял задачу. В профиле Параметры я внес новый параметр и внес название подразделения. Назвал параметр PODR. и выдавать доступ отталкиваясь от содержимого этого параметра. |
Автор: | Yozhhhhh [ Чт, окт 12 2017, 13:59 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
sonics написал(а): Несколько не так я понял задачу. В профиле Параметры я внес новый параметр и внес название подразделения. Назвал параметр PODR. и выдавать доступ отталкиваясь от содержимого этого параметра. Это концовка темы или продолжение вопроса? Если как достать, то GET PARAMETER ID 'PODR' field <имя> |
Автор: | sonics [ Чт, окт 12 2017, 14:03 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
получается что продолжение, все равно с профилем работаем только в параметры лезем! |
Автор: | sonics [ Пт, окт 20 2017, 08:52 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
Из профиля, достал подразделение из параметра и вставил в таблицу, теперь хотелось бы сделать сравнение по ключу. К сожалению, [s]мой кривой[/s] поиск никаких результатов не дал мне... Как я могу сравнить внутренности параметра, типа: Code: if podrazdelenie = 'ДРП'.
CALL SCREEN 1009. else message 'Ошибка: Неверные параметры: подразделения у пользователя!' type 'E' display like 'E'. * leave program. |
Автор: | Kuranov.Dmitry [ Пт, окт 20 2017, 09:14 ] |
Заголовок сообщения: | Re: Как достать из профиля пользователя отдел? |
sonics написал(а): Из профиля, достал подразделение из параметра и вставил в таблицу, теперь хотелось бы сделать сравнение по ключу. Если таблица внутренняя: READ TABLE<tabname> WITH TABLE KEY если прозрачная: SELECT SINGLE ... FROM .... WHERE... |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |