Текущее время: Чт, дек 14 2017, 04:20

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 12:25 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
Подскажите как забрать из профиля данные об отделе.
Имя sy-uname взял, дату создания sy-datum взял, теперь осталось только отдел этого пользователя?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 12:30 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
Код:
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, но там не обнаружил именно отдела....


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 12:32 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 112
sonics писал(а):
Подскажите как забрать из профиля данные об отделе.
Имя sy-uname взял, дату создания sy-datum взял, теперь осталось только отдел этого пользователя?


что-то типа такого

Код:
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.



Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 12:53 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
а через функцию BAPI_USER_GET_DETAIL ? возможно такое ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 12:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 112
sonics писал(а):
а через функцию BAPI_USER_GET_DETAIL ? возможно такое ?

функцию SUSR_USER_READ можете заменить на BAPI_USER_GET_DETAIL для получения PERS_NO и ADDR_NO, если вам та функция больше нравится, но есть ли смысл ? BAPI_USER_GET_DETAIL вызывает SUSR_USER_READ внутри себя


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 13:36 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
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 внутри себя

мне не то, чтобы нравится или нет.
все что выходит за рамки шаблонных решений вызывает некоторую сложность.
поэтому хотелось бы для начала с шаблонными решениями разобраться.
сейчас попробую, спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 15:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 15:57
Сообщения: 5090
Откуда: Ростов невеликий
Пол: Мужской
Kuranov.Dmitry писал(а):
функцию SUSR_USER_READ можете заменить на BAPI_USER_GET_DETAIL для получения PERS_NO и ADDR_NO, если вам та функция больше нравится, но есть ли смысл ? BAPI_USER_GET_DETAIL вызывает SUSR_USER_READ внутри себя

уточните хотя бы что это всё только для ERP-систем

_________________
Нет сегодняшних проблем -
есть вчерашние ошибки
(с)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 15:51 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
я где-то туплю.
через команду write выводит на экран
но в таблицу не вставляет

Код:
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.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?  Тема решена
СообщениеДобавлено: Ср, окт 11 2017, 16:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 112
внутрь каждого цикла заходит?
<fs_zmmgyptable>-PODRAZD и addr3_tab-data-department одного типа?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Ср, окт 11 2017, 17:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, фев 21 2007, 09:50
Сообщения: 821
Откуда: Москва
Пол: Мужской
Да напрямую забрать уже)))
PERSNUMBER и ADDRNUMBER из USR21, а потом по этим значениям достать DEPARTMENT из ADCP.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Чт, окт 12 2017, 14:06 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
Несколько не так я понял задачу.
В профиле Параметры
я внес новый параметр и внес название подразделения.
Назвал параметр PODR.
и выдавать доступ отталкиваясь от содержимого этого параметра.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Чт, окт 12 2017, 14:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, фев 21 2007, 09:50
Сообщения: 821
Откуда: Москва
Пол: Мужской
sonics писал(а):
Несколько не так я понял задачу.
В профиле Параметры
я внес новый параметр и внес название подразделения.
Назвал параметр PODR.
и выдавать доступ отталкиваясь от содержимого этого параметра.


Это концовка темы или продолжение вопроса?
Если как достать, то
GET PARAMETER ID 'PODR' field <имя>


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Чт, окт 12 2017, 15:03 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
получается что продолжение, все равно с профилем работаем только в параметры лезем! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Пт, окт 20 2017, 09:52 
Специалист
Специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 157
Из профиля, достал подразделение из параметра и вставил в таблицу, теперь хотелось бы сделать сравнение по ключу.
К сожалению, мой кривой поиск никаких результатов не дал мне...
Как я могу сравнить внутренности параметра, типа:
Код:
if podrazdelenie = 'ДРП'.
CALL SCREEN 1009.
else
message 'Ошибка: Неверные параметры: подразделения у пользователя!' type 'E' display like 'E'.
*            leave program.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как достать из профиля пользователя отдел?
СообщениеДобавлено: Пт, окт 20 2017, 10:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 112
sonics писал(а):
Из профиля, достал подразделение из параметра и вставил в таблицу, теперь хотелось бы сделать сравнение по ключу.

Если таблица внутренняя:
READ TABLE<tabname> WITH TABLE KEY
если прозрачная:
SELECT SINGLE ... FROM .... WHERE...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Google Feedfetcher и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB