Текущее время: Вт, апр 16 2024, 13:55

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 09:46 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:
+ не совсем понял Where pernr = '12345678'



О_о

написали здоровый селект с джоином, кучей условий выборки:
Code:
WHERE "zppmrp5~elevel = 1 AND
        p_list_a~elevel in r_elevel AND
        p_list_a~matnr_1 IN so_mat1 AND
        p_list_a~matnr_2 IN so_mat2 AND
        p_list_a~matnr IN so_matnr AND
        p_list_a~arbpl_1 IN so_arb1 AND
        p_list_a~arbpl_2 IN so_arb2 AND
        p_list_a~ZBESK IN so_ZBESK.

это понятно , а
Code:
Where pernr = '12345678'

нет?

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 10:28 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
оу, тогда все становится на свои места.. спасибо за разъяснение )
я неправильно понял...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 11:16 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
автор, Вам следует для начала почитать книжку Кречмера (Разработка приложений SAP R/3 на языке ABAP/4 - она на русском), но читать её нужно совместно с родной аглицкой справкой SAP (потому как раздел про динамическую выборку из таблиц БД в Кречмере есть, но примеры кода очень скудные и неполные),
или например с электронной справкой ABAP.HLP (Edited by Henrik Frank E-mail: postmaster@henrikfrank.dk Homepage: http://www.henrikfrank.dk Last updated October 2002) - там примеров кода поболее, хоть она и древняя, но базовые знания лучше понять поможет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 11:45 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Kuranov.Dmitry написал(а):

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


остался все тот же вопрос, как обратиться к двум таблицам, если переменная g_tabname у нас одна
а из какого CASE (p_list_a или p_list_a) мы не можем указать....
или же мы как-то можем ? откуда и что берется...
два left join же :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 11:46 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
pberezin написал:
автор, Вам следует для начала почитать книжку Кречмера (Разработка приложений SAP R/3 на языке ABAP/4 - она на русском), но читать её нужно совместно с родной аглицкой справкой SAP (потому как раздел про динамическую выборку из таблиц БД в Кречмере есть, но примеры кода очень скудные и неполные),
или например с электронной справкой ABAP.HLP (Edited by Henrik Frank E-mail: postmaster@henrikfrank.dk Homepage: http://www.henrikfrank.dk Last updated October 2002) - там примеров кода поболее, хоть она и древняя, но базовые знания лучше понять поможет.

спасибо, скачал, в ближайшее время продолжу ее изучение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 12:01 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
sonics написал(а):
Kuranov.Dmitry написал(а):

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


остался все тот же вопрос, как обратиться к двум таблицам, если переменная g_tabname у нас одна
а из какого CASE (p_list_a или p_list_a) мы не можем указать....
или же мы как-то можем ? откуда и что берется...
два left join же :(


*facepalm*
завести вторую переменную для второй таблицы кто мешает?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 12:09 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:

DATA tabname_1(20).
DATA tabname_2(20).

tabname_1 = 'zppmrp5'.
tabname_2 = 'zppmrp5_tmp1'

SELECT t1~matnr_1
       t1~datuv
       t1~matnr_2
       t1~matnr
       t1~werks
       t1~arbpl_1
       t1~arbpl_2
       t1~seqnr
       t1~elevel
       t1~pbdnr
       t1~zbesk
       t1~IA

       t1~gamng AS gamng_td
       t1~gamng_1 AS gamng_1_td
       t2~gamng AS gamng_ld
       t2~gamng_1 AS gamng_1_ld

  INTO CORRESPONDING FIELDS OF TABLE gt_result_tab
  FROM (tabname_1) as t1
  LEFT
    JOIN (tabname_2) as t2 ON t2~matnr = t1~matnr
        AND t2~matnr_1 = t1~matnr_1
        AND t2~matnr_2 = t1~matnr_2
        AND t2~arbpl_1 = t1~arbpl_1
        AND t2~arbpl_2 = t1~arbpl_2
        AND t2~seqnr = t1~seqnr
        AND t2~werks = t1~werks
        AND t2~pbdnr = t1~pbdnr
        AND t2_tmp1~elevel = t1~elevel
  WHERE
        t1~elevel in r_elevel AND
        t1~matnr_1 IN so_mat1 AND
        t1~matnr_2 IN so_mat2 AND
        t1~matnr IN so_matnr AND
        t1~arbpl_1 IN so_arb1 AND
        t1~arbpl_2 IN so_arb2 AND
        t1~ZBESK IN so_ZBESK.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Пт, май 18 2018, 12:59 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Kuranov.Dmitry написал(а):
*facepalm*
завести вторую переменную для второй таблицы кто мешает?

эх.. я познаю этот мир.. со временем..


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 23 2018, 11:18 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
вопрос добавился
надо было внедрить новые кнопки в меню из стандартного модуля NAVP_PROFILE_CHANGE
через INCLUDE LNAVIGATION_PROFILE_DIALOGU03.

Code:
Function Module   NAVP_PROFILE_CHANGE   Navigationsprofil ändern 
Function Group   NAVIGATION_PROFILE_DIALOG     UIs for the Navigation Profile 
Program Name   SAPLNAVIGATION_PROFILE_DIALOG     
INCLUDE Name   LNAVIGATION_PROFILE_DIALOGU03 

грубо говоря документация такова.

как я и думал, но простого инклюда не хватает...
Цитата:
The main program of the function "NAVP_PROFILE_CHANGE" does not begin with "FUNCTION-POOL".

подскажите хотя бы общими словами, что надо сделать ? :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 23 2018, 11:29 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
я так понял, вы внутри своей программы написали
Code:
INCLUDE LNAVIGATION_PROFILE_DIALOGU03.


можно спросить, зачем?

В двух словах, примерно так
Почитать что такое функциональные модули, и где они должны располагаться.
ФМ должны быть внутри функциональной группы, а не внутри программы


Последний раз редактировалось Kuranov.Dmitry Ср, май 23 2018, 11:37, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 23 2018, 11:35 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Kuranov.Dmitry написал(а):
В двух словах, примерно так
Почитать что такое функциональные модули, и где они должны располагаться.
ФМ должны быть внутри функциональной группы, а не внутри программы

это вы про FUNCTION-POOL?
так, хорошо, продолжу чтение, значит в правильной стороне.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 23 2018, 11:38 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
sonics написал(а):
Kuranov.Dmitry написал(а):
В двух словах, примерно так
Почитать что такое функциональные модули, и где они должны располагаться.
ФМ должны быть внутри функциональной группы, а не внутри программы

это вы про FUNCTION-POOL?
так, хорошо, продолжу чтение, значит в правильной стороне.

что конкретно вы хотите добиться?
Вызвать ФМ NAVP_PROFILE_CHANGE?

напишите CALL FUNCTION 'NAVP_PROFILE_CHANGE' и передайте ему требуемые параметры. никаких инклудов не надо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Чт, май 24 2018, 11:31 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Kuranov.Dmitry написал(а):
что конкретно вы хотите добиться?
Вызвать ФМ NAVP_PROFILE_CHANGE?

напишите CALL FUNCTION 'NAVP_PROFILE_CHANGE' и передайте ему требуемые параметры. никаких инклудов не надо


есть NAVP_T_OKCODE - таблица дополнительных функций профиля навигации, пакет - NAVIGATION_PROFILE
ее хочу вставить во таблицу-результат, которую мы выше сформировали.
Code:
CALL FUNCTION 'NAVP_PROFILE_CHANGE' "
  EXPORTING
    is_profile_complete =        navp_s_profile_complete
    iv_save_mode =               navp_save_mode
    iv_default_mode =            navp_default_mode
    iv_disable_call_transaction = ABAP_FALSE  " xfeld
    iv_disable_call_okcode = ABAP_FALSE  " xfeld
    iv_disable_call_class = ABAP_FALSE  " xfeld
    iv_disable_menu = ABAP_FALSE  " xfeld
    it_okcode =                  navp_t_okcode
    it_fieldname =               navp_t_fieldname
  IMPORTING
    es_changed_profile_complete =   " navp_s_profile_complete
    .  "  NAVP_PROFILE_CHANGE
    .  "  NAVP_PROFILE_CHANGE

  IF SY-SUBRC EQ 0.
    "All OK
  ENDIF.

и объявил все вначале
Code:
DATA:
ld_es_changed_profile_complete  TYPE NAVP_S_PROFILE_COMPLETE ,
ld_is_profile_complete  TYPE NAVP_S_PROFILE_COMPLETE ,
ld_iv_save_mode   TYPE NAVP_SAVE_MODE ,
ld_iv_default_mode  TYPE NAVP_DEFAULT_MODE ,
ld_iv_disable_call_transaction  TYPE XFELD ,
ld_iv_disable_call_okcode   TYPE XFELD ,
ld_iv_disable_call_class  TYPE XFELD ,
ld_iv_disable_menu  TYPE XFELD ,
ld_it_okcode  TYPE NAVP_T_OKCODE ,
ld_it_fieldname   TYPE NAVP_T_FIELDNAME .


ld_is_profile_complete = 'Check type of data required'.
ld_iv_save_mode = 'Check type of data required'.
ld_iv_default_mode = 'Check type of data required'.
ld_iv_disable_call_transaction = 'Check type of data required'.
ld_iv_disable_call_okcode = 'Check type of data required'.
ld_iv_disable_call_class = 'Check type of data required'.
ld_iv_disable_menu = 'Check type of data required'.
ld_it_okcode = 'Check type of data required'.
ld_it_fieldname = 'Check type of data required'..


теперь ошибки по конвертации
Цитата:
The type of "LD_IS_PROFILE_COMPLETE" cannot be converted to the type of "'Check type of data required'".
The type of "LD_IT_OKCODE" cannot be converted to the type of "'Check type of data required'".


NAVP_T_OKCODE - таблица дополнительных функций профиля навигации, пакет - NAVIGATION_PROFILE


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Чт, май 24 2018, 11:53 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
LD_IT_OKCODE имеет тип таблицы, вы пытаетесь присвоить строку
LD_IS_PROFILE_COMPLETE это структура, вы пытаетесь туда строку запихнуть.

естественно ошибки компиляции


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Чт, май 24 2018, 16:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
жаль нет примера...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4  След.

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


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

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


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

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