Текущее время: Вт, июл 29 2025, 13:46

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 12:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 08 2006, 14:05
Сообщения: 105
Откуда: Россия
Добрый день, всем!!!
Скажите, пожалуйста, имеется ли возможность в динамическом мероприятии выполнить арифметическое действие с датой.
Ситуация следующая: при выполнении мероприятия увольнения необходимо создать запись в инфотипе с датой меньшей на 1 день, чем дата мероприятия.
Как можно этого добиться?

_________________
Чем больше я узнаю, тем больше я понимаю как мало я знаю...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 13:20 
Специалист
Специалист

Зарегистрирован:
Ср, ноя 23 2005, 19:10
Сообщения: 146
Пол: Женский
В динамическом мероприятии можно вызвать ФМ, в котором на ABAP'е будет прописана логика.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 13:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Это вы случайно делаете не для случая, когда чел принимается на следующий день после увольнения? Там по-другому надо.

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 16:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 08 2006, 14:05
Сообщения: 105
Откуда: Россия
Cherry написала:
В динамическом мероприятии можно вызвать ФМ, в котором на ABAP'е будет прописана логика.

А не подскажите название ФМ.
calm написал(а):
Это вы случайно делаете не для случая, когда чел принимается на следующий день после увольнения? Там по-другому надо.

Нет.

_________________
Чем больше я узнаю, тем больше я понимаю как мало я знаю...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 20:50 
Специалист
Специалист

Зарегистрирован:
Ср, ноя 23 2005, 19:10
Сообщения: 146
Пол: Женский
прошу прощение, не ФМ, а form из программы
т.е. в динамических мероприятиях - тип операции F, а в поле "Переменный компонент функции" пишем
<имя form> (<имя программы>)
Какая программа и какая form зависит от частного случая. Возможно, что и пользовательская.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 21 2009, 23:00 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вт, июл 25 2006, 14:50
Сообщения: 3481
Откуда: Moscow
Пол: Мужской
В качестве примера можно посмотреть стандарт
Code:
0000             04   10       *** CREATE INFOTYPE 41 WHEN HIRING  MEXICO ****
0000             04   11   P   P0000-MASSN='01'
0000             04   12   P   T001P-MOLGA='32'
0000             04   13   I   INS,0041,,,(P0000-BEGDA),(P0000-ENDDA)/D
0000             04   14   W   P0041-DAR01='01'
0000             04   15   W   P0041-DAT01=P0000-BEGDA
0000             04   16   W   P0041-DAR02='V1'
0000             04   17   W   P0041-DAT02=P0000-BEGDA
0000             04   18   F   REDUCE_V1_BY_ONE_DAY(HMXDYNM0)

Где эта самая подпрограмма выглядит как
Code:
*&---------------------------------------------------------------------*
*&      Form  REDUCE_V1_BY_ONE_DAY
*&---------------------------------------------------------------------*
*      Action:
*        the value of the date of type 'V1', which signifies
*        'Fecha ref.vacac.', is reduced by one
*      Requirements:
*        in table T588Z the country and the appropriate personnel action
*        should be checked and in the correct case a new infotype 41
*        record should be created with the date type 'V1' set to
*        the hiring date; afterwards this routine is called
*      Background:
*        it is necessary to generate absence contingents starting
*        from the hiring date and lasting exactly one year; if the
*        hiring date is used directly and in the customizing of
*        table T559V the end date of validity for absence contingents
*        is defined as 12 months later, then the resulting absence
*        contingents are valid for one year plus one day
*----------------------------------------------------------------------*
FORM REDUCE_V1_BY_ONE_DAY.
  DATA: L_TYPE_STARTSTR(9) TYPE C,
        L_DATE_STR(11)     TYPE C,
        L_TEMP_STR(11)     TYPE C,
        L_CHAR(2)          TYPE C,
        L_TYPE             LIKE P0041-DAR01,
        L_DATE             LIKE P0041-DAT01,
        L_SEQNR            LIKE INITIAL_VALUES-SEQNR.
  CONSTANTS: LC_V1               LIKE P0041-DAR01 VALUE 'V1',
             LC_TYPE_STARTSTR(9) TYPE C           VALUE 'P0041-DAR',
             LC_DATE_STARTSTR(9) TYPE C           VALUE 'P0041-DAT'.

  LOOP AT INITIAL_VALUES.
    L_TYPE_STARTSTR = INITIAL_VALUES-FIELD_NAME(9).
    CHECK L_TYPE_STARTSTR EQ LC_TYPE_STARTSTR.
*   this entry corresponds to a date type of infotype 41.

    L_TYPE = INITIAL_VALUES-FIELD_VALUE.
    CHECK L_TYPE EQ LC_V1.
*   this entry corresponds to the date type V1.

*   construct the IT41 field name that contains the date
    L_CHAR = INITIAL_VALUES-FIELD_NAME+9(2).
    CONCATENATE LC_DATE_STARTSTR L_CHAR INTO L_DATE_STR.
    L_SEQNR = INITIAL_VALUES-SEQNR.
    EXIT.

  ENDLOOP.

  CHECK NOT L_DATE_STR IS INITIAL.
* for IT41 the V1 date type was set

  LOOP AT INITIAL_VALUES WHERE SEQNR EQ L_SEQNR.
    L_TEMP_STR = INITIAL_VALUES-FIELD_NAME(11).
    CHECK L_TEMP_STR EQ L_DATE_STR.
*   this register contains the required date.

    L_DATE = INITIAL_VALUES-FIELD_VALUE.
    IF NOT L_DATE IS INITIAL.
      L_DATE = L_DATE - 1.
      INITIAL_VALUES-FIELD_VALUE = L_DATE.
      MODIFY INITIAL_VALUES.
    ENDIF.

    EXIT.
  ENDLOOP.

ENDFORM.                    " REDUCE_V1_BY_ONE_DAY


Есть и более примитивные варианты :) типа COMPUTE_DATE(ZPFORM01)
Code:
PROGRAM  ZPFORM01.
TABLES: RP50D,                    "return fields for dynamic actions
        PRELP.                    "buffer personal master data

* Compute date
FORM COMPUTE_DATE.
  RP50D-DATE1 = PRELP-BEGDA - 14.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Пт, янв 23 2009, 12:42 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 08 2006, 14:05
Сообщения: 105
Откуда: Россия
Спасибо, всем за отклик и полезную информацию!!!
В стандарте не нашла подходящих обработок, придется обратиться к примитивному варианту :)

_________________
Чем больше я узнаю, тем больше я понимаю как мало я знаю...


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

Зарегистрирован:
Чт, окт 14 2004, 18:02
Сообщения: 415
Откуда: из HR
Пол: Мужской
HRSAPper написал(а):
В стандарте не нашла подходящих обработок, придется обратиться к примитивному варианту :)

в вызываемой из динамических своей проге используйте стандартный ФМ HR_SEN_CALE_DAYS_DATE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 28 2009, 13:29 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 08 2006, 14:05
Сообщения: 105
Откуда: Россия
Спасибо за наводку!

Под примитивным вариантом я подразумевала использование своей программы.
У меня в связи с этим назрел новый вопрос.
Скажите, пожалуйста, а как передаются данные в свою программу в динамических мероприятиях?
И какие данные доступны для обработки?

Где можно об этом почитать?

_________________
Чем больше я узнаю, тем больше я понимаю как мало я знаю...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дата в динамическом мероприятии
СообщениеДобавлено: Ср, янв 28 2009, 14:19 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вт, июл 25 2006, 14:50
Сообщения: 3481
Откуда: Moscow
Пол: Мужской
Возврат в динамику данных - через RP50D, внутри динамики - лучше всего поставить брейк и посмотреть глобалки
К глобалкам через филд-символы подцепиться можно


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

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


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

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


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

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