Текущее время: Пт, ноя 01 2024, 02:04

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


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


ВНИМАНИЕ!

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



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

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


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

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


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

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
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.



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

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


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

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
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, 12:36 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
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, 14:09 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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

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


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

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
я где-то туплю.
через команду 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.


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

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


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

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

_________________
Алё, это Пакистан? Нам нужен один килограмм


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

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


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

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


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

_________________
Алё, это Пакистан? Нам нужен один килограмм


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

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


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

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


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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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