Текущее время: Пн, июл 28 2025, 00:15

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


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

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


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

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