Текущее время: Чт, мар 28 2024, 18:53

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 03 2017, 00:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
Maksimka написал:
Я его пингую, по телнету захожу по порту 3306. Получается я вижу этот сервак, но с сапа так и не могу залогинится, пишет, что login failed. Куда дальше копать не понятно.

У вас сетевики мышей не ловят?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 03 2017, 06:29 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Удав написал(а):
Maksimka написал:
Я его пингую, по телнету захожу по порту 3306. Получается я вижу этот сервак, но с сапа так и не могу залогинится, пишет, что login failed. Куда дальше копать не понятно.

У вас сетевики мышей не ловят?

Кабы знать что они там ловят, а что нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 03 2017, 07:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
broker.chelny написал:
Maksimka написал:
Чот я всё облазил в своём Microsoft SQL Server Management Studio и не нашёл ничего похожего Server Objects\Linked Servers. Не пойму чот...где Вы его там нашли??

Ищите связанные серверы.
Еще можете попробовать использовать openquery, openrowset, opendatasource. Но на линкованный проще будет писать запросы.

В общем я всё <я не знать русский языка> зацепиться к My SQl не получается. Решил <я не знать русский языка> прилинковать сервак с My SQL, как Вы и по советовали, но мне не совсем понятна одна вещь. Связываться SAP будет с этой базой используя соединение с MS SQL созданное мной в DBCO или как то по другому??


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 03 2017, 11:19 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
Да, через соединение с MS SQL.
В запросах дополнительно нужно будет указать имя линкованного сервера (ЛинкованныйСервер.ИмяБД.dbo.ИмяТаблицы).
Если будете модифицировать таблицы, могут возникнуть проблемы с распределенной транзакцией.
P.S. сам я не пробовал данный вариант для SAP, не было необходимости.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Чт, фев 09 2017, 15:57 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
В общем в продолжении работы с ABAP с внешними таблицами sql сервера я столкнулся с тонкостями написания кода, которые я не догоняю. Казалось бы синтаксис простой, нооо...не срабатывает. При написании отчёта непосредственно в ABAP допустим с какой либо таблицы на селекционном экране выбора задаются условия в соответствии с которыми происходит селект с таблицы. Ну вот допустим пример
Code:
select  * from aufk appending corresponding fields of table tab
      where auart in s_auart
      and aufnr in s_aufnr
      and erdat in s_erdat
      and phas0 ne ''.

В этом коде видно, что на селекционном экране я могу заполнять поля, т.е. выбирать какие записи мне брать из таблиц, т.е. что я хочу этим сказать, а то что если я на селекционном экране заполню только одно из полей, например укажу Вид заказ ТОРО, то запрос выдаст мне список заказов с этим видом, а если два поля заполню, например вид заказа и номер заказа то запрос выдаст мне из таблицы aufk один заказ с видом и номером. Тоже самое пытаюсь сделать с внешней таблицей sql сервера. В ABAP указываю следующее
Code:
selection-screen begin of block lb2 with frame title text-001.
parameters: year2  like tab-year obligatory,
            r_num2 like tab-r_num,
            ufio2  like tab-ufio.
selection-screen end of block lb2.
data: dbs type dbcon-con_name.
dbs = 'TEST_ERP_SQL'.
EXEC SQL.
  CONNECT TO :dbs
ENDEXEC.
EXEC SQL.
  open Test_ERP_DB for
  select r_num, y_creat, ufio from  Requests WHERE r_num = :r_num2
                                       y_creat =   :year2
endexec.
*break-point.
do.
  EXEC SQL.
    FETCH NEXT Test_ERP_DB into :tab-r_num, :tab-year, :tab-ufio
  endexec.
  if sy-subrc <> 0.
    exit.
  else.
    append tab.
*    break-point.
  endif.
enddo.
break-point.
EXEC SQL.
  CLOSE Test_ERP_DB
ENDEXEC.

При запуске и заполнении селекционного экрана всё отрабатывает и таблица заполняется согласно условиям, которые я указал на селекционном экране, но если я не заполняю хотя бы одно поле, например укажу год, чтобы произошла выборка всех записей из внешней таблицы за весь год, то условие не срабатывает. Не пойму, вроде бы синтаксис простой ABAPерский, но условия срабатывают только если я заполняю все поля на селекционном экране. Может быть кто нибудь подскажет что я не так делаю?!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Чт, фев 09 2017, 17:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Maksimka написал:
...
При запуске и заполнении селекционного экрана всё отрабатывает и таблица заполняется согласно условиям, которые я указал на селекционном экране, но если я не заполняю хотя бы одно поле, например укажу год, чтобы произошла выборка всех записей из внешней таблицы за весь год, то условие не срабатывает. Не пойму, вроде бы синтаксис простой ABAPерский, но условия срабатывают только если я заполняю все поля на селекционном экране. Может быть кто нибудь подскажет что я не так делаю?!

А всё потому, что при использовании Open Sql запрос генерится динамически. Если параметр select-options пустой, то он вообще исключается из условий динамического запроса. К тому же фишка с select-options чисто SAP-овская, в стандартном SQL нет аналога.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Чт, фев 09 2017, 17:48 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
1. поля из первого примера объявлены как SELECT-OPTIONS а у вас "parameters"
2. в первом примере запрос делается к сервер SAP на языке OPEN SQL поэтому там можно использовать IN, ABAP интерпретатор преобразовывает конструкцию IN так чтоб она была понятна БД на которой работает SAP
3. во втором примере вы используете EXEC SQL т.ь. пишете запрос непосредственно на языке целевой БД, соответственно вся подготовка запроса ...

в целом - вам надо учить матчасть

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 10 2017, 11:40 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Спасибо всем за разъяснение.

Но вот ещё такой вопрос возник. Я пытаюсь забрать данные с большого количества таблиц, лежащих на стороннем sql сервере, т.е. мне надо по сути сделать отчёт на ABAP. Есть одна главная табличка, которая связывается с остальными посредством одного общего поля. На ABAP это можно было бы сделать и с помощью разных вариантов, но не знание синтаксиса Open SQL с Native SQL немного ставит меня в тупик, потому как при попытке с генерировать простой код, прога падает в дамп и мне не понятно где именно не правильно. Прога отрабатывает нормально до второго EXEC SQL. Вот собственно код
Code:
data cont_id(10).

selection-screen begin of block lb2 with frame title text-001.
parameters: year2  like tab-year obligatory,
                   r_num2 like tab-r_num.
selection-screen end of block lb2.
data: dbs type dbcon-con_name.
dbs = 'TEST_ERP_SQL'.
EXEC SQL.
  CONNECT TO :dbs
ENDEXEC.
EXEC SQL.
  open Test_ERP_DB for
  select creat_date, r_num, req_sn, req_gn, req_dept, req_phone, req_pos, ufio, uid,
  y_creat, cont_id  from Requests WHERE r_num = :r_num2
endexec.

*break-point.
do.
  EXEC SQL.
    FETCH NEXT Test_ERP_DB into :tab-create_date, :tab-r_num, :tab-req_sn, :tab-req_gn,
     :tab-req_dept, :tab-req_phone, :tab-req_pos, :tab-ufio, :tab-uid,  :tab-year, :tab-cont_id
  endexec.
  if sy-subrc <> 0.
    exit.
  else.
    append tab.
*    break-point.

  endif.
enddo.
loop at tab.
  break-point.
  EXEC SQL.
     select creator_name  into :tab-creator_name  from creators WHERE cont_id = :tab-cont_id
  endexec.
  modify tab.
*    break-point.
endloop.
break-point.
EXEC SQL.
  CLOSE Test_ERP_DB
ENDEXEC.

Вот что я не правильно написал здесь?? В хелпе по exec sql в абапе только стандартный пример, но вот как быть в моём случае, когда нужно использовать несколько таблиц связанных друг с другом?? Буду весьма признательным за подсказку.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Запросы с SAP в SQL Server
СообщениеДобавлено: Пт, фев 10 2017, 14:19 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Блин, затупил чота. В одном поле ошибся, исправил, теперь заработало, но возникает следом тут же вопрос, я конечно могу продублировать каждый loop at tab для каждой таблицы, с которой мне будут нужны какие то записи, а таблиц таких больше 40. На абапе с любой физической таблицы, лежащей в sap, такие вещи можно сделать либо с помощью inner join, либо с помощью for all entires. Просто я думаю как быстро у меня будет отрабатывать отчёт, если я все эти записи loop -ом буду забирать, а как здесь писать синтаксис допустим inner join мне чота не совсем понятно.


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

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


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

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


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

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