Текущее время: Ср, апр 17 2024, 02:10

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


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

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


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

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