Текущее время: Вс, авг 03 2025, 09:16

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


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

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


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

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