Текущее время: Пт, июл 25 2025, 05:40

Часовой пояс: 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 часа


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

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


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

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