Текущее время: Ср, июл 23 2025, 23:44

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Необходима помощь абапера HR-щика.
СообщениеДобавлено: Ср, ноя 07 2012, 16:50 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 16 2008, 12:31
Сообщения: 52
Ребята, помогите написать кусок кода. Все очень просто. Это подпрограмма в LSMW. Подпрограмма занимается тем, что при конвертации она берет из входящего файла два критерия: СНИЛС и группу сотрудника и идентифицирует по этим критериям табельный номер. По даному условия подпрограмма готова, но добавился еще один критерий некий идентификатор из 1С - 32-ух символьный. Под него создал подтип в коммуникации. Теперь необходимо вставить кусок кода, который бы цеплял бы еще анализ по этому критерию. Вчера попробовал, но видимо я чего-то недопонимаю. Ибо так и не заработало.
form ur_PROV_NOMER_GP
using p_in1
p_in2
p_in3
changing p_out.

data: lt_0290 type table of pa0290.
data: lt_0000 type table of pa0000.
data: lt_0001 type table of pa0001.
data: lt_0105 type table of pa0105.
data: _0000 type pa0000.
data: _nomer type pa0290-nomer.
data: _ident type pa0105-USRID_LONG.
clear p_out.
_nomer = p_in1.
_ident = p_in3.
check _nomer is not initial.

select * into table lt_0290 from pa0290
where subty eq '802'
and nomer = _nomer.

data: ld_persg type p0001-persg.
ld_persg = p_in2.

check lt_0290[] is not initial.
select * into table lt_0001 from pa0001
for all entries in lt_0290
where pernr = lt_0290-pernr
and endda = '99991231'
and persg eq ld_persg
and werks ne 'XXXX'
and abkrs ne '$$'.

check lt_0105[] is not initial.
select * into table lt_0001 from pa0001
for all entries in lt_0105
where subty eq '9003'
and pernr = lt_0105-pernr
and USRID_LONG eq _ident.


check lt_0001[] is not initial.
select * into table lt_0000 from pa0000
for all entries in lt_0001
where pernr = lt_0001-pernr
and endda = '99991231'
and stat2 eq '3'.
break point.
check lt_0000[] is not initial.
sort lt_0000 descending by begda.
read table lt_0000 into _0000 index 1.
if sy-subrc eq 0.
p_out = _0000-pernr.
endif.
endform.

Красным отмечены те куски кода, которые вставил я. Я понимаю, что это неправильно. Помогите правильно написать запрос.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Необходима помощь абапера HR-щика.
СообщениеДобавлено: Чт, ноя 08 2012, 07:49 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Вот здесь первым делом стоит check
Code:
check lt_0105[] is not initial.
select * into table lt_0001 from pa0001
for all entries in lt_0105
where subty eq '9003'
and pernr = lt_0105-pernr
and USRID_LONG eq _ident.
вот только lt_0105 в этот момент всегда пустая, и вы сразу уходите на выход.
Да и поиска-то по Ит0105 нет нигде :). То, что вы написали, производит поиск в ИТ0001 подтипа 9003 по таблице lt_0105, которая пустая.

ЗЫ. Кстати,
Цитата:
цеплял бы еще анализ по этому критерию
. Вам нужно это условие проверять по критерию И или ИЛИ. То есть, СНИЛС = ХХХХ И 1С = YYYY, либо СНИЛС = ХХХХ ИЛИ 1С = YYYY. Сейчас сделано по первому варианту. Идентификатор из 1С обязательно должен быть и совпадать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Необходима помощь абапера HR-щика.
СообщениеДобавлено: Пн, дек 03 2012, 13:25 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 16 2008, 12:31
Сообщения: 52
Спасибо большое за ответ... уже решил проблему..в тот же самый день, только настолько много работы, что забыл отписаться! ) в общем условие было "И". Все работает, если интересно могу выложить код. :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

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


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

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


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

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