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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 09:07 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 17 2008, 08:29
Сообщения: 258
Подскажите пожалуйста как написать программу поиска открытых позиций, на ABAP/4 пишу совсем недавно....
надо по прочитать внетрению табличку и найденные открытые например на 01 01 2009 записать в другую табличку
заполняя поле ФИнго/период занчением 001.2009 и так далее по каждому месяцу....
пока что для видна и смысла набросал вот что.... :)


Code:
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.

* Сумма на 01 01 2009 --- Январь

IF <RESULT_FIELDS>-PSTNG_DATE < '20090101' and
   ( <RESULT_FIELDS>-CLEAR_DATE >= '20090101' or
     <RESULT_FIELDS>-CLEAR_DATE = '00000000' ).

  move-corresponding <RESULT_FIELDS> to pos_line.
  pos_line-FISCPER = '2009001'.

                  collect pos_line INTO pos_tbl.
   ENDIF.

*  pos_line-FISCPER+5 = pos_line-FISCPER + 1.
*  budat+4(2)         = budat+4(2) + 1.
*  augdt+4(2)         = augdt+4(2) + 1.


* Сумма на 01 02 2009 --- Февраль

IF <RESULT_FIELDS>-PSTNG_DATE < '20090201' and
   ( <RESULT_FIELDS>-CLEAR_DATE >= '20090201' or
     <RESULT_FIELDS>-CLEAR_DATE = '00000000' ).

  move-corresponding <RESULT_FIELDS> to pos_line.
  pos_line-FISCPER = '2009002'.

                  collect pos_line INTO pos_tbl.


        ENDIF.
         ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 09:17 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
MaybexX написал(а):
Подскажите пожалуйста как написать программу поиска открытых позиций, на ABAP/4 пишу совсем недавно....
надо по прочитать внетрению табличку и найденные открытые например на 01 01 2009 записать в другую табличку
заполняя поле ФИнго/период занчением 001.2009 и так далее по каждому месяцу....
пока что для видна и смысла набросал вот что.... :)

...

Тут два варианта:
либо изучить ABAP/4 и, поняв что и как и для чего, "написать программу ..."
либо обратится к тем, кто уже изучил ABAP/4 и договорится с ними, чтобы они, в рамках своих должностных обязанностей на основании ТЗ "написали программу ...", или, если не в рамках, то за соответствующую компенсацию.

Если Вы выбираете первый вариант, то здесь лучше задавать конкретные вопросы по непонятным местам, а не общие типа "сделайте за меня мою работу".

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 09:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
MaybexX написал(а):
Подскажите пожалуйста как написать программу поиска открытых позиций, на ABAP/4 пишу совсем недавно....
надо по прочитать внетрению табличку и найденные открытые например на 01 01 2009 записать в другую табличку
заполняя поле ФИнго/период занчением 001.2009 и так далее по каждому месяцу....
пока что для видна и смысла набросал вот что.... :)

Похоже на STARTUP из BW.:)
Написать можно так:
Code:
DATA: dat(8), month(2) type n.
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
WHILE month < 12.
ADD 1 TO month.
CONCATENATE '2009'  month '01' INTO dat.
IF <RESULT_FIELDS>-PSTNG_DATE < dat and
   ( <RESULT_FIELDS>-CLEAR_DATE >= dat or
     <RESULT_FIELDS>-CLEAR_DATE = '00000000' ).
  move-corresponding <RESULT_FIELDS> to pos_line.
  pos_line-FISCPER = dat.
collect pos_line INTO pos_tbl.
ENDIF.
ENDWHILE.
ENDLOOP.


Последний раз редактировалось ROKO Ср, июн 30 2010, 14:19, всего редактировалось 3 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 09:32 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 17 2008, 08:29
Сообщения: 258
ROKO добрый день, ага BW подпрограмма завершения....
большее спасибо сейчас попробую...
:pivo:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 11:10 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
month почистить забыли ;-)
и как быть с 2010 годом?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 11:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
RA написал:
month почистить забыли ;-)

В BW для каждого нового пакета она сама будет обнуляться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 12:54 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 17 2008, 08:29
Сообщения: 258
ROKO написал:
RA написал:
month почистить забыли ;-)

В BW для каждого нового пакета она сама будет обнуляться.


я прогоняю через это 2 млн. записей оборотов по дебеторам, каждый пакет по 50 000 записей,
а как она его обнуляет??? что то я не понимаю....


и ещё начал тестировать вылете в дамп...
ошибка CONVT_NO_NUMBER
Unable to interpret "*" as a number
на строке...

Code:
WHILE month le 12.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 13:02 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
MaybexX написал(а):
и ещё начал тестировать вылете в дамп...
ошибка CONVT_NO_NUMBER
Unable to interpret "*" as a number
на строке...

Code:
WHILE month le 12.


month надо отчищать после вайл.
P.S. см пост от sy-uname. Больше времени потратите...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 13:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Code:
WHILE month le 12.
ADD 1 TO month.
CONCATENATE '2009'  month '01' INTO dat.
ENDWHILE.


в таком варианте - 13 месяцев.

поменяйте на
Code:
WHILE month < 12


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Ср, июн 30 2010, 14:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
MaybexX написал(а):
я прогоняю через это 2 млн. записей оборотов по дебеторам, каждый пакет по 50 000 записей,
а как она его обнуляет??? что то я не понимаю....

Всякий раз, когда вы попадаете в свою подпрограмму запуска.
MaybexX написал(а):
и ещё начал тестировать вылете в дамп...
ошибка CONVT_NO_NUMBER
Unable to interpret "*" as a number
на строке...

Поставьте
Code:
DATA: dat(8), month(2) TYPE n.

Вместо
Code:
DATA: dat(8), month.

RA написал:
Code:
WHILE month le 12.
ADD 1 TO month.
CONCATENATE '2009'  month '01' INTO dat.
ENDWHILE.

в таком варианте - 13 месяцев.

Согласен, Коллега. :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Чт, июл 01 2010, 08:47 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 17 2008, 08:29
Сообщения: 258
больше всем спасибо, заработало ))) суммы нормально...
только немного WHILE переставил.... :)

Code:
DATA: dat(8), date(7), month(2) type n.

  WHILE month < 12.
    ADD 1 TO month.

LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.

break-point.

CONCATENATE '2009' month '01' INTO dat.
CONCATENATE '2009' '0' month INTO date.


IF <RESULT_FIELDS>-PSTNG_DATE < dat and
   ( <RESULT_FIELDS>-CLEAR_DATE >= dat or
     <RESULT_FIELDS>-CLEAR_DATE = '00000000' ).

  move-corresponding <RESULT_FIELDS> to pos_line.

   pos_line-FISCPER = date.

                  collect pos_line INTO pos_tbl.
ENDIF.
ENDLOOP.
  ENDWHILE.


Последний раз редактировалось MaybexX Чт, июл 01 2010, 12:37, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Loop at поиск открытых позиций, и запись в таблицу.....
СообщениеДобавлено: Чт, июл 01 2010, 09:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Для определения периода из даты можно использовать ФМ DATE_TO_PERIOD_CONVERT с параметром I_PERIV = 'K4'.

_________________
С уважением,
Удав.


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

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


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

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


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

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