Автор Тема: Выборка данных с последующим обновлением.  (Прочитано 54738 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
В общем есть запрос который выгребает данные во внутреннюю таблицу, например
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF lt_int_file OCCURS 1,
    fld_1(18) TYPE c,
    fld_2(18) TYPE c,
    status(1) TYPE c,
END OF lt_int_file.

SELECT xxx.fld_1 zzz.fld_2 INTO CORRESPONDING FIELDS OF TABLE lt_int_file
FROM xxx
  JOIN zzzz
WHERE <разные ограничения>

* Далее делаем типа
UPDATE z_table
FROM TABLE lt_int_file.

Так вот, надо всем записям которые обновились для поля status например поставить значение 'U', т.е. в выборке такого поля нет, конструкции типа SELECT xxx.fld_1 zzz.fld_2 'U' as status INTO CORRESPONDING FIELDS OF TABLE lt_int_file, вроде как тоже нет, т.е. остается только пройтись
Код: You are not allowed to view links. Register or Login
LOOP AT lt_int_file.
  lt_int_file-status = 'U'.
  MODIFY lt_int_file.
ENDLOOP.

* И дальше уже
UPDATE z_table
FROM TABLE lt_int_file.
Или есть идеи как это можно сделать по другом? Просто не очень хочется проходиться по всей выборке после SELECT-а ???

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #1 : Февраль 19, 2009, 03:26:03 pm »
Код: You are not allowed to view links. Register or Login
  DATA: BEGIN OF lt_int_file OCCURS 1,
      fld_1(18) TYPE c,
      fld_2(18) TYPE c,
      status(1) TYPE c,
  END OF lt_int_file.
* В данном случае можно обойтись без INTO CORRESPONDING FIELDS,
* т.к. выбираемые поля во вн.табл. и выборке перечислены соответственно   
  SELECT xxx~fld_1 zzz~fld_2 INTO TABLE lt_int_file FROM xxx
    JOIN zzz ON (условия соединения)
    WHERE (разные ограничения).
Первое, что пришло на ум (возможно из-за неполного понимания всей задачи, стоящей "за кадром"): если мы проводим UPDATE dbtab из внутренней сразу всех записей без цикла, то не означает ли это, что установка поля status в строке ее эквивалента простому наличию строки? К тому же, лог, как я понял, не ведется...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #2 : Февраль 19, 2009, 03:33:03 pm »
You are not allowed to view links. Register or Login
Код: You are not allowed to view links. Register or Login
  DATA: BEGIN OF lt_int_file OCCURS 1,
      fld_1(18) TYPE c,
      fld_2(18) TYPE c,
      status(1) TYPE c,
  END OF lt_int_file.
* В данном случае можно обойтись без INTO CORRESPONDING FIELDS,
* т.к. выбираемые поля во вн.табл. и выборке перечислены соответственно   
  SELECT xxx~fld_1 zzz~fld_2 INTO TABLE lt_int_file FROM xxx
    JOIN zzz ON (условия соединения)
    WHERE (разные ограничения).
Первое, что пришло на ум (возможно из-за неполного понимания всей задачи, стоящей "за кадром"): если мы проводим UPDATE dbtab из внутренней сразу всех записей без цикла, то не означает ли это, что установка поля status в строке ее эквивалента простому наличию строки? К тому же, лог, как я понял, не ведется...


Не очень понял, что ты написал.

Реально, задача стоит в том, что бы проапдейтить табличку выборкой с нее же + еще кое-какие данные, и + установить статус.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #3 : Февраль 19, 2009, 03:48:34 pm »
You are not allowed to view links. Register or Login
Не очень понял, что ты написал.
Реально, задача стоит в том, что бы проапдейтить табличку выборкой с нее же + еще кое-какие данные, и + установить статус.
Если поле status есть в z_table, то пардон, значит неправильно понял подоплеку. Скорее всего только в цикле.
 

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #4 : Февраль 19, 2009, 03:52:25 pm »
пока так и сделал.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #5 : Февраль 19, 2009, 03:53:43 pm »
You are not allowed to view links. Register or Login
Если поле status есть в z_table, то пардон, значит неправильно понял подоплеку. Скорее всего только в цикле.
Дело в том что если в выборку попадает так скажем 10 000 000 записей, то в цикле получается очень долго, вот и искались мысли, а нельзя ли как-то например при апдейте указать начальное значение для одного из полей. Похоже нельзя и надо вообще искать какой-то другой метод для контроля обновившихся записей.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #6 : Февраль 19, 2009, 03:57:44 pm »
You are not allowed to view links. Register or Login
Дело в том что если в выборку попадает так скажем 10 000 000 записей, то в цикле получается очень долго,

сделаем замер на реальных данных (джоб запускается в 10 утра)  ;)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #7 : Февраль 19, 2009, 03:59:01 pm »
You are not allowed to view links. Register or Login
сделаем замер на реальных данных (джоб запускается в 10 утра)  ;)
Да вообще-то это уже рабочий день полным ходом... какое нафиг утра  :D утра это часов в 5...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #8 : Февраль 19, 2009, 04:01:33 pm »
You are not allowed to view links. Register or Login
Да вообще-то это уже рабочий день полным ходом... какое нафиг утра  :D утра это часов в 5...

Раньше  нельзя, еще не все данные есть.

За последнее время статистика (до изменений):
4.003
3.648
2.349
2.047
3.797
4.086
2.762
3.439
посмотрим завтра
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #9 : Февраль 19, 2009, 04:08:56 pm »
You are not allowed to view links. Register or Login
4.003
3.648
2.349
2.047
А что это за цифры???

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #10 : Февраль 19, 2009, 04:12:57 pm »
sm37, продолжительность выполнения.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #11 : Февраль 19, 2009, 04:15:30 pm »
You are not allowed to view links. Register or Login
sm37, продолжительность выполнения.
Ну я бы замерял бы все таки время выборки и время выполнения LOOP AT. А так общее время выполнения, никак не корелируется с выборками.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #12 : Февраль 19, 2009, 04:16:18 pm »
я просто посмотрю на сколько увеличилось время выполнения всей проги
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #13 : Февраль 19, 2009, 04:34:59 pm »
You are not allowed to view links. Register or Login
я просто посмотрю на сколько увеличилось время выполнения всей проги
Да ну, меньше часа крутиться... это фигня еще  ;)

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #14 : Февраль 19, 2009, 05:08:57 pm »
Если сильно прижмет по быстродействию LOOP at ... assigning <> ... ENDLOOP, то сделайте табличку из 2-х ключевых полей: MANDT и STATUS, и вставьте туда 1 запись: MANDT = sy-mandt и STATUS = 'U'. Джоин - по манданту. Проверил - заполняется статус без цикла. ;)

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #15 : Февраль 19, 2009, 05:16:47 pm »
You are not allowed to view links. Register or Login
TATUS, и вставьте туда 1 запись: MANDT = sy-mandt и STATUS = 'U'. Джоин - по манданту. Проверил - заполняется статус без цикла. ;)
Что-то я не понял мысли... можешь примером кода набросать?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #16 : Февраль 19, 2009, 05:29:43 pm »
You are not allowed to view links. Register or Login
Что-то я не понял мысли... можешь примером кода набросать?
 
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF lt_int_file OCCURS 1,
      fld_1(18) TYPE c,
      fld_2(18) TYPE c,
      status(1) TYPE c,
  END OF lt_int_file.
  DATA: ls type yxxx. "Тип нашей таблички с одной записью или без оной.
  SELECT SINGLE * INTO ls FROM yxxx.
  IF SY-SUBRC <> 0.
    ls-mandt = sy-mandt.
    ls-status = 'U'.
    INSERT INTO yxxx VALUES ls.
    COMMIT WORK AND WAIT.
  ENDIF.
* В данном случае можно обойтись без INTO CORRESPONDING FIELDS,
* т.к. выбираемые поля во вн.табл. и выборке перечислены соответственно   
  SELECT xxx~fld_1 zzz~fld_2 yxxx~status INTO TABLE lt_int_file FROM xxx
    JOIN zzz ON (условия соединения)
    JOIN yxxx ON zzz~mandt = yxxx~mandt
    WHERE (разные ограничения).
« Последнее редактирование: Февраль 19, 2009, 05:31:39 pm от Dmitriy »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #17 : Февраль 19, 2009, 05:35:29 pm »
Ага ясно... а в принципе это таки да мысль.. сделать JOIN с табилице, т.е. там статусов напримеру у меня 5 штук. Вставить эти статусы и джойнить их  стем статусом который нужен, автоматически заливаем требуемое значение статуса в нашу выборку и LOOP по таблице для установки статуса уже не нужен...

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #18 : Февраль 19, 2009, 05:37:02 pm »
You are not allowed to view links. Register or Login
Ага ясно... а в принципе это таки да мысль.. сделать JOIN с табилице, т.е. там статусов напримеру у меня 5 штук. Вставить эти статусы и джойнить их  стем статусом который нужен, автоматически заливаем требуемое значение статуса в нашу выборку и LOOP по таблице для установки статуса уже не нужен...
Ну про то, что целезообразно там все статусы завести я уже не стал писать. ;)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #19 : Февраль 19, 2009, 06:32:12 pm »
1. Результат (запустил на выполнение перед отьездом с работы)
2.491 (правда данныех сейчас там мало, после всех обработок, лишнее данные удаляются), так что это не показатель, завтра, на реальных данных посмотрим.

Дима, по поводу LOOP at ... assigning <> ... ENDLOOP
2. Никак не привикну юзать данную конструкцию все постаринке
LOOP AT gt_sap_rest.
  gt_sap_rest-status = 2. " загруженно с магазина + расчитано в SAP
  MODIFY gt_sap_rest.
ENDLOOP.

3. Решение Димы, простое и оригинальное, как все гениальное  :), попробуемс ....
спасибо
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #20 : Февраль 19, 2009, 06:45:03 pm »
You are not allowed to view links. Register or Login
Дима, по поводу LOOP at ... assigning <> ... ENDLOOP
2. Никак не привикну юзать данную конструкцию все постаринке
LOOP AT gt_sap_rest.
  gt_sap_rest-status = 2. " загруженно с магазина + расчитано в SAP
  MODIFY gt_sap_rest.
ENDLOOP.
Код: You are not allowed to view links. Register or Login
FIELD-SYMBOLS: <fs> LIKE LINE of gt_sap_rest.
LOOP AT gt_sap_rest ASSIGNING <fs>.
  <fs>-status = '2'. " - с одинарными кавычками, т.к. поле символьное, хотя SAP не ругается " загруженно с магазина + расчитано в SAP
ENDLOOP.
Дает существенное ускорение цикла в котором строки вн. таблицы модифицируются (особенно при большом к-ве записей), пора привыкать.


Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #21 : Февраль 19, 2009, 09:13:04 pm »
Однако подтверждаю, и так провел небольшой тест, есть табличка MSEG, система тестовая записей  123 226, сделана программка следующего вида:
Код: You are not allowed to view links. Register or Login
REPORT  yuuk_test_select.

DATA: lt_mseg LIKE mseg OCCURS 1 WITH HEADER LINE,
      runtime_1 TYPE i,
      runtime_2 TYPE i,
      time_diff TYPE i.

FIELD-SYMBOLS: <fs> LIKE LINE OF lt_mseg.

SELECT * INTO TABLE lt_mseg
FROM mseg.

GET RUN TIME FIELD runtime_1.
LOOP AT lt_mseg.
  lt_mseg-bwart = '000'.
  MODIFY lt_mseg.
ENDLOOP.
GET RUN TIME FIELD runtime_2.
time_diff = runtime_2 - runtime_1.
WRITE: / time_diff.

GET RUN TIME FIELD runtime_1.
LOOP AT lt_mseg ASSIGNING <fs>.
  <fs>-bwart = '000'.
ENDLOOP.
GET RUN TIME FIELD runtime_2.
time_diff = runtime_2 - runtime_1.
WRITE: / time_diff.
Результат на экране, комментарии я так думаю излишние, разница в производительности даже не на лице  ;) в надцать раз практически, т.е.  192 580 миллисекунд против  12 172, кажется закрывают данный вопрос как нужно делать обновления внутренних таблиц.

PS: Данный пример так же вставлю в тему по оптимизации ABAP.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #22 : Февраль 19, 2009, 09:16:39 pm »
Собственно, ждемс, что скажет нам завтра г-н Паганель, лишь бы не перепутал Южную Америку с Австралией и Н.Зеландией, или как там у автора было... Нужно просто сгенерить диалог ведения, для красоты в табличку БД yxxx добавить неключевое поле поле status_text с расшифровкой статуса типа "загруженно с магазина + расчитано в SAP", сгенерить диалог ведения и не париться с INSERT в нее в своей программе, сориентировав ответственных за ведение статусов (то бишь нашей небольшой таблички) при помощи соответствующей спецификации/инструкции:
Код: You are not allowed to view links. Register or Login
DATA: ls TYPE yxxx. "Тип нашей таблички с одной записью или без оной.
  SELECT SINGLE * INTO ls FROM yxxx.
  IF SY-SUBRC <> 0.
    ls-mandt = sy-mandt.
    ls-status = 'U'.
    INSERT INTO yxxx VALUES ls.
    COMMIT WORK AND WAIT.
  ENDIF.
А сразу же:
  
Код: You are not allowed to view links. Register or Login
SELECT xxx~fld_1 zzz~fld_2 yxxx~status INTO TABLE lt_int_file FROM xxx
    JOIN zzz ON (условия соединения)
    JOIN yxxx ON zzz~mandt = yxxx~mandt
    WHERE (разные ограничения)
    AND yxxx~status = 'нужный нам статус'.
« Последнее редактирование: Февраль 19, 2009, 09:32:32 pm от Dmitriy »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #23 : Февраль 19, 2009, 09:21:01 pm »
You are not allowed to view links. Register or Login
Собственно, ждемс, что скажет нам завтра г-н Паганель, лишь бы не перепутал Южную Америку с Австралией и Н.Зеландией, или как там у автора было...
Ага, есть такое дело... но даже если он LOOP / ENDLOOP перепишет, это ему уже даст ускорение...  ;)

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #24 : Февраль 19, 2009, 09:37:49 pm »
You are not allowed to view links. Register or Login
Ага, есть такое дело... но даже если он LOOP / ENDLOOP перепишет, это ему уже даст ускорение...  ;)
Да, результат выигрыша в быстродействии для большого к-ва записей впечатляет.
2 Паганель: завтра, как доберусь до системы, отпишу про возможности работы с ФМ - генерирующим диалог ведения таблицы БД. Здесь будет: You are not allowed to view links. Register or Login.

P.S. А руки все про FIELD-SYMBOLS так и не доходят написать, охота нормальный пример просто оттестить... ::)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #25 : Февраль 20, 2009, 09:34:36 am »
You are not allowed to view links. Register or Login
....отпишу про возможности работы с ФМ - генерирующим диалог ведения таблицы БД...

А зачем использовать FM? Что бы не делать это ручками? Что-то не понял этой фразы.

Спасибо за советы, осталось 30 мин до запуска Джоба, попробую переделать все циклы на использование FIELD-SYMBOLS.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #26 : Февраль 20, 2009, 09:48:35 am »
с отделной табличкой не успеваю, а FIELD-SYMBOLS сделал.
так как у меня 2 loop"а, сделал один по класике, а другой с FIELD-SYMBOLS, сделал вывод лога времени. Сравнимс  :)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #27 : Февраль 20, 2009, 09:57:57 am »
You are not allowed to view links. Register or Login
с отделной табличкой не успеваю, а FIELD-SYMBOLS сделал.
так как у меня 2 loop"а, сделал один по класике, а другой с FIELD-SYMBOLS, сделал вывод лога времени. Сравнимс  :)
Лог времени как получал?

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #28 : Февраль 20, 2009, 10:11:19 am »
так как ты написал.

Код: You are not allowed to view links. Register or Login
GET RUN TIME FIELD runtime_1.
LOOP AT gt_rest.
  gt_rest-status = 2. " загруженно с магазина + расчитано в SAP
  MODIFY gt_rest.
ENDLOOP.
GET RUN TIME FIELD runtime_2.
time_diff = runtime_2 - runtime_1.
WRITE: /'LOOP AT gt_rest'.
WRITE: / time_diff.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #29 : Февраль 20, 2009, 10:14:09 am »
You are not allowed to view links. Register or Login
так как ты написал.
ОК!

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #30 : Февраль 20, 2009, 10:58:35 am »
ну имеем результаты:

LOOP AT gt_rest
   721.907         
FIELD-SYMBOLS     
    11.979       

Правда, для чистоты эксперимента  надо бы поменять местами (первый сделать FIELD-SYMBOLS а второй  LOOP ) так как объемы там разные
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #31 : Февраль 20, 2009, 11:05:35 am »
Общий результат:
вчера     3.439
сегодня  3.095

Но есть несколько "но", видимо данных сегодня было менше, или загрузка системы поменьше, так как по идее оба добавленных цикла, должны были увеличить время работы джоба.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #32 : Февраль 20, 2009, 11:18:49 am »
You are not allowed to view links. Register or Login
Но есть несколько "но", видимо данных сегодня было менше, или загрузка системы поменьше, так как по идее оба добавленных цикла, должны были увеличить время работы джоба.
Ну на LOOP  точно будет выигрыш в разы, но надо еще добавить табличку статусов и думаю общее время выполнения должно уменьшиться.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #33 : Февраль 20, 2009, 12:01:08 pm »
You are not allowed to view links. Register or Login
Ну на LOOP  точно будет выигрыш в разы, но надо еще добавить табличку статусов и думаю общее время выполнения должно уменьшиться.
Табличку статусов по-любому нужно. А по поводу ФМ - нет под рукой системы, по счастливому стечению обстоятельств оказался сегодня выходным, поэтому здесь, и, как грится, на пальцах...
Генерится диалог ведения в течении нескольких секунд. Но это уже ТВОЯ ф-ция. Можно зайти на экран, раздвинуть колонки (эк меня понесло, после Legio ;D) и т.п., т.е. сделать все, как тебе удобно... ;D ;D ;D

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #34 : Февраль 20, 2009, 12:03:46 pm »
Дима, так и не понял, о чем ты, ну будешь возле системы, раскажешь .....

Это, как я понял, вроде обычного диалога введения, только как бы подконтрольней?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #35 : Февраль 20, 2009, 12:26:51 pm »
You are not allowed to view links. Register or Login
Дима, так и не понял, о чем ты, ну будешь возле системы, раскажешь .....
Это, как я понял, вроде обычного диалога введения, только как бы подконтрольней?
Часть кода из проги, по программному вызову диалога ведения ZRTC_CC.
Код: You are not allowed to view links. Register or Login
AT SELECTION-SCREEN.
* Вызов диалога ведения настроечной таблицы видов движения объектов НКС
  CASE sy-ucomm.
    WHEN 'FC01'.
      CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
           EXPORTING
                action                       = 'S'
                view_name                    = 'ZRTC_CC'
           EXCEPTIONS
                client_reference             = 1
                foreign_lock                 = 2
                invalid_action               = 3
                no_clientindependent_auth    = 4
                no_database_function         = 5
                no_editor_function           = 6
                no_show_auth                 = 7
                no_tvdir_entry               = 8
                no_upd_auth                  = 9
                only_show_allowed            = 10
                system_failure               = 11
                unknown_field_in_dba_sellist = 12
                view_not_found               = 13
                OTHERS                       = 14.
      IF sy-subrc <> 0.
*       ошибка вызова диалога ведения
        MESSAGE e070(zunikr_001) WITH sy-subrc 'ZRTC_CASHFLOW_1'.
      ENDIF.
  ENDCASE.
К чему это бишь я? Да к тому, что на любом проекте можно создать прогу, у которой один входной параметр: view_name, и презентовать ее юзерам, а потом, создавать на нее проги (и транзакции на них) с оператором SUBMIT и подстановкой этого параметра view_name в зависимости от SY-TCODE. А дальше уже пизанты разнесут полномочия на твои транзакции.
« Последнее редактирование: Февраль 20, 2009, 12:29:34 pm от Dmitriy »

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #36 : Февраль 20, 2009, 12:31:50 pm »
о, прикольно, аналог sm30 для пользователей  :)
Спасибо большое, так как прав обычно в продуктиве на sm30 нету, можно для себя использовать, скажем что бы настройки смотреть. 
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #37 : Февраль 20, 2009, 12:42:40 pm »
You are not allowed to view links. Register or Login
о, прикольно, аналог sm30 для пользователей  :)
Спасибо большое, так как прав обычно в продуктиве на sm30 нету, можно для себя использовать, скажем что бы настройки смотреть. 
И не нужно ничего бояться: максимум, что могут с тобой сделать - это убийство с предварительными многочасовыми мучениями, а потом - другая жизнь. ;)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #38 : Июнь 01, 2009, 12:09:42 pm »
Дополнительный вопрос: будет ли ускорение при использовании FIELD-SYMBOLS, если не проводится модификации таблички, только копирование в другую.

Или как массово перенести данные из одно таблички в другую, если их структура не идентична?
Есть что-то типа move corresponding для все таблички?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #39 : Июнь 01, 2009, 12:16:11 pm »
You are not allowed to view links. Register or Login
Дополнительный вопрос: будет ли ускорение при использовании FIELD-SYMBOLS, если не проводится модификации таблички, только копирование в другую.
Ну теоретически будет, так как не будет как минимум копирования записей в заголовок таблицы/или рабочую область.

You are not allowed to view links. Register or Login
Или как массово перенести данные из одно таблички в другую, если их структура не идентична?
Есть что-то типа move corresponding для все таблички?
Ну вот именно и есть для этого move corresponding. А ты как хотел типа мувкорреспондинг но быстро?  ;)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #40 : Июнь 01, 2009, 12:22:17 pm »
You are not allowed to view links. Register or Login
Ну вот именно и есть для этого move corresponding. А ты как хотел типа мувкорреспондинг но быстро?  ;)

Туплю с утра, так вроде работает, правда будет ли прирост скорости:
Код: You are not allowed to view links. Register or Login
TYPES: BEGIN OF gs_alvtab.
TYPES: celltab TYPE lvc_t_styl.
TYPES: colinfo TYPE lvc_t_scol.
        INCLUDE STRUCTURE mkol.
TYPES: mjahr LIKE mseg-mjahr.
......
TYPES: END OF gs_alvtab.

DATA: gt_alvtab TYPE STANDARD TABLE OF gs_alvtab WITH HEADER LINE.
DATA: ls_alvtab LIKE LINE OF gt_alvtab.

DATA: gt_mkol TYPE STANDARD TABLE OF mkol WITH HEADER LINE.


" Выбор Поставщ. Завода, Материала, и Текущего Остатка
  SELECT matnr werks lifnr SUM( slabs ) AS slabs
   INTO TABLE gt_mkol " Для быстроты выборки
   FROM mkol
   WHERE mkol~matnr IN so_matnr AND
         mkol~werks IN so_werks AND
         mkol~lifnr IN so_lifnr AND
         mkol~sobkz = 'K'
   GROUP BY matnr werks lifnr.

  MOVE-CORRESPONDING gt_mkol to gt_alvtab. " <<< ---- тут
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #41 : Июнь 01, 2009, 12:27:56 pm »
Еще один вопросик, что бы не плодить тем кучу.

Что-то не найду как обьявить FIELD-SYMBOLS для таблички которая обьявлена как TYPE STANDARD TABLE OF.

Код: You are not allowed to view links. Register or Login
DATA: gt_mkol TYPE STANDARD TABLE OF mkol WITH HEADER LINE.

FIELD-SYMBOLS <fs_mkol> TYPE LINE OF gt_mkol. " <--- так не дает обьявить
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #42 : Июнь 01, 2009, 12:29:10 pm »
You are not allowed to view links. Register or Login
Туплю с утра, так вроде работает, правда будет ли прирост скорости:
Ну мне тоже интересно будет ли прирост, как считать время выполнения есть в ветке про оптимизацию абапа, предлагаю в качество домашнего задания замерять время выполнения двух вариантов по 10 прогонов, на каждый и дописать пример в ветку про оптимизацию.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #43 : Июнь 01, 2009, 12:32:48 pm »
You are not allowed to view links. Register or Login
Ну мне тоже интересно будет ли прирост, как считать время выполнения есть в ветке про оптимизацию абапа, предлагаю в качество домашнего задания замерять время выполнения двух вариантов по 10 прогонов, на каждый и дописать пример в ветку про оптимизацию.


Ссори наверное не получится, в тестовой системе не достаточно данных что бы нормально что то проверить, а продуктив не чаще чем 1 раз в день 1 запрос .... притом проверенный без всяких дополнительных фич (типа вставок для тестирования скорости) такова теперь жизнь .... все надо сделать за один раз .....
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #44 : Июнь 01, 2009, 12:36:13 pm »
Тут вообще-то что то есть ..... только еще не разобрался ....

You are not allowed to view links. Register or Login

пока вижу что может объявлять FIELD-SYMBOLS: <fs_mseg> TYPE ANY .
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #45 : Июнь 01, 2009, 12:48:18 pm »
You are not allowed to view links. Register or Login
Ссори наверное не получится, в тестовой системе не достаточно данных что бы нормально что то проверить, а продуктив не чаще
Берешь MSEG и проверяешь, там данных наверное должно быть достаточно... тебе же скорость надо проверить, именно твоя таблица в данном случае не важна.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #46 : Июнь 01, 2009, 01:21:22 pm »
а ну да ....
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновление&#
« Ответ #47 : Июнь 02, 2009, 04:51:58 pm »
Что-то туплю, может кто-то подскажет .....

Для оптимизации делаю следующее:
Код: You are not allowed to view links. Register or Login
"Вьюха z_mkpf_mseg mkpf + mseg
DATA: gt_mseg TYPE STANDARD TABLE OF z_mkpf_mseg WITH HEADER LINE.
 SELECT
         werks AS werks budat AS budat  matnr AS matnr
         lifnr AS lifnr shkzg AS shkzg
         SUM( menge ) AS menge
    "APPENDING CORRESPONDING FIELDS OF TABLE gt_mseg
    APPENDING TABLE gt_mseg
    FROM mseg
    WHERE
      werks IN  so_werks  AND
      budat => so_budat-low  AND   "!!! (может быть просто >) ???
      matnr IN  so_matnr AND
      lifnr IN  so_lifnr  AND
      sobkz = 'K'
      GROUP BY werks budat matnr lifnr shkzg. " Может не группировать?
Чего то падает в дамп:DBIF_RSQL_INVALID_RSQL
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #48 : Июнь 02, 2009, 04:52:54 pm »
Что группировать нельзя?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #49 : Июнь 02, 2009, 04:55:01 pm »
You are not allowed to view links. Register or Login
Что группировать нельзя?
Ну вообще-то APPENDING TABLE gt_mseg а на входе у тебя DATA: gt_mseg TYPE STANDARD TABLE OF z_mkpf_mseg, как-то структурки не сходятся?!

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #50 : Июнь 02, 2009, 04:58:37 pm »
Не понял ....
Есть табличка обьявленая как DATA: gt_mseg TYPE STANDARD TABLE OF z_mkpf_mseg WITH HEADER LINE.
z_mkpf_mseg  - это ракурс, вьюха.

И есть выборка из этой вьюхи
Код: You are not allowed to view links. Register or Login
SELECT
         werks AS werks budat AS budat  matnr AS matnr
         lifnr AS lifnr shkzg AS shkzg
         SUM( menge ) AS menge
    "APPENDING CORRESPONDING FIELDS OF TABLE gt_mseg
    APPENDING TABLE gt_mseg
    FROM mseg
    WHERE
      werks IN  so_werks  AND
      budat => so_budat-low  AND   "!!! (может быть просто >) ???
      matnr IN  so_matnr AND
      lifnr IN  so_lifnr  AND
      sobkz = 'K'
      GROUP BY werks budat matnr lifnr shkzg.

Так вроде бы типы сходятся.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #51 : Июнь 02, 2009, 05:02:35 pm »
Пробывал  и так:
DATA: gt_mseg like z_mkpf_mseg OCCURS 10000 WITH HEADER LINE.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #52 : Июнь 02, 2009, 05:32:31 pm »
You are not allowed to view links. Register or Login
Пробывал  и так:
DATA: gt_mseg like z_mkpf_mseg OCCURS 10000 WITH HEADER LINE.
Ну вообще-то я всегда думал что если SELECT * APPENDING TABLE <>, а вот если поля перечисляешь тогда, типа APPENDING CORRESPONDING FIELDS OF TABLE или у тебя в z_mkpf_mseg только поля которые ты указал:
Код: You are not allowed to view links. Register or Login
werks AS werks
budat AS budat 
matnr AS matnr
lifnr AS lifnr
shkzg AS shkzg
SUM( menge ) AS menge
В такой последовательности и других нет?

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #53 : Июнь 02, 2009, 05:46:28 pm »
You are not allowed to view links. Register or Login
Ну вообще-то я всегда думал что если SELECT * APPENDING TABLE <>, а вот если поля перечисляешь тогда, типа APPENDING CORRESPONDING FIELDS OF TABLE или у тебя в z_mkpf_mseg только поля которые ты указал:
Код: You are not allowed to view links. Register or Login
werks AS werks
budat AS budat  
matnr AS matnr
lifnr AS lifnr
shkzg AS shkzg
SUM( menge ) AS menge
В такой последовательности и других нет?

Есть и другие поля, просто что бы оптимизировать, я использую APPENDING TABLE.
« Последнее редактирование: Июнь 02, 2009, 05:49:12 pm от Паганель »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #54 : Июнь 02, 2009, 05:56:41 pm »
You are not allowed to view links. Register or Login
Есть и другие поля, просто что бы оптимизировать, я использую APPENDING TABLE.
Ну посмотри что на выходе, для пары записей...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #55 : Июнь 02, 2009, 05:59:55 pm »
Не понял, выборка валится сразу .....

Прийдется использовать INTO CORRESPONDING FIELDS OF TABLE
Хотя есть сомнения по поводу оптимальности такого кода.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #56 : Июнь 02, 2009, 09:03:51 pm »
You are not allowed to view links. Register or Login
Не понял, выборка валится сразу .....
Ну так типизация же нарушена... конечно оно валится.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #57 : Июнь 02, 2009, 09:25:46 pm »
Я тут немного "покурил травы" котрую индусы предлагали, расслабился, и точно туплю.... мой запрос возвратит только werks, budat, matnr ... но никак не струтктуру   z_mkpf_mseg, оттого и валится

Ссори, туплю ...
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Martha

  • Newbie
  • *
  • Сообщений: 51
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Выборка данных с последующим обновлением.
« Ответ #58 : Июль 30, 2009, 02:44:11 pm »
You are not allowed to view links. Register or Login
Пробывал  и так:
DATA: gt_mseg like z_mkpf_mseg OCCURS 10000 WITH HEADER LINE.

Есть табличка обьявленая как DATA: gt_mseg TYPE STANDARD TABLE OF z_mkpf_mseg WITH HEADER LINE.


а в чем разница для таблицы в этих двух определениях?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #59 : Июль 30, 2009, 03:04:48 pm »
You are not allowed to view links. Register or Login
Есть табличка обьявленая как DATA: gt_mseg TYPE STANDARD TABLE OF z_mkpf_mseg WITH HEADER LINE.

а в чем разница для таблицы в этих двух определениях?
Думаю что уже ни в чем... и со временем оно все перейдет на использование TYPE, просто это объявление если не ошибаюсь с версии 4.6 стало доступно, как и не обязательность использования циферки после OCCURS <n>, типа сейчас там ставишь 0 и всех делов, раньше это вроде как влияло на количество буферов открываемых для внутренней таблицы, что типа на прямую влияло на производительность работы с ней. Я по привычке ставлю там как бы для себя если 1, предполагаю, что тут данных будет не много, если 100 то так среднее, если 1000 или больше, то это значит, что-то будет глобальное выгребаться эту таблицу.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #60 : Июль 30, 2009, 03:17:13 pm »
Ну какая то разница все же есть:

LIKE  - можно использовать в том случае если есть структура, табличка и тд. которые определенные в словаре данных.

А TYPE STANDARD TABLE OF - можно использовать,  даже если тип (табличка, структура) не определена в словаре данных, т.е. вы прямо в коде объявляете тип, типа так:

Код: You are not allowed to view links. Register or Login
TYPES: BEGIN OF gs_outtab.
  TYPES: celltab TYPE lvc_t_styl.
  TYPES: colinfo TYPE lvc_t_scol.
  TYPES: sticon TYPE icon_d.
  "
  INCLUDE STRUCTURE msku.
  "
TYPES: END OF gs_outtab.

такое обьявление «пройдет», т.е. система допустит объявление:
Код: You are not allowed to view links. Register or Login
DATA: gt_outtab TYPE STANDARD TABLE OF gs_outtab WITH HEADER LINE.
DATA: ls_outtab LIKE LINE OF gt_outtab.

"А так нельзя
Код: You are not allowed to view links. Register or Login
DATA: gt_outtab1 LIKE gs_outtab OCCURS 0 WITH HEADER LINE.
DATA: ls_outtab1 LIKE LINE OF gt_outtab1.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Выборка данных с последующим обновлением.
« Ответ #61 : Июль 30, 2009, 03:26:38 pm »
Так LIKE это дословно переменная слева будет такая же как переменная справа, а в твоем случае ты объявил тип данных, а потом попытался сказать что переменная будет как... и ссылку на тип даешь, что не логично  ::)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Выборка данных с последующим обновлением.
« Ответ #62 : Июль 30, 2009, 03:53:05 pm »
Цитата: Uukrul  link=topic=510.msg4592#msg4592 date=1248956798
Так LIKE это дословно переменная слева будет такая же как переменная справа, а в твоем случае ты объявил тип данных, а потом попытался сказать что переменная будет как... и ссылку на тип даешь, что не логично  ::)

Ну да в этом и разница, что like - обьявление ссылкой на переменную, а TYPE STANDARD TABLE OF обьявление со ссылкой на тип.

Хотя ты наверное прав, судя по всему разницы нету...
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Sapforum.Biz

Re: Выборка данных с последующим обновлением.
« Ответ #62 : Июль 30, 2009, 03:53:05 pm »