Текущее время: Пт, июл 18 2025, 04:23

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:40 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
у меня такая же проблема.

Kanev написал(а):
Цитата:
Пример, транзакция ME23, смотрим поле "Заказ на поставку", имя поля BSTNR, ID параметра 'BES', соответствнное в программе пишем

Код:
SET PARAMETER ID 'BES' FIELD '49000000001'.
CALL TRANSATION 'ME23' AND SKIP FIRST SCREEN.


Должно помочь

это помогает на уровне полей ввода, а как быть с кнопками у них ведь нет идентификатора, а только код функции...
и с того же примера, кнопка "Заголовок подробно" = KOPF,
можно ли установить параметр 'BES' и выполнить функцию KOPF?
и все без пакетного ввода...


Надо после вывода me23 (на пример) нажать еще кнопку.

_________________
Мне надо учиться учиться и еще раз учиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 17:17
Сообщения: 77
По Batch Input вот здесь доступно написано:
http://www.sap-img.com/bdc.htm


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
у меня такая же проблема.

Kanev написал(а):
Цитата:
Пример, транзакция ME23, смотрим поле "Заказ на поставку", имя поля BSTNR, ID параметра 'BES', соответствнное в программе пишем

Код:
SET PARAMETER ID 'BES' FIELD '49000000001'.
CALL TRANSATION 'ME23' AND SKIP FIRST SCREEN.


Должно помочь

это помогает на уровне полей ввода, а как быть с кнопками у них ведь нет идентификатора, а только код функции...
и с того же примера, кнопка "Заголовок подробно" = KOPF,
можно ли установить параметр 'BES' и выполнить функцию KOPF?
и все без пакетного ввода...


Надо после вывода me23 (на пример) нажать еще кнопку.

А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:52 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.[/quote]
МОжно и пакетным вводом. А можно пояснить что каждая строка означает, чтоб под свои данные изменить.

_________________
Мне надо учиться учиться и еще раз учиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 11:02 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.

МОжно и пакетным вводом. А можно пояснить что каждая строка означает, чтоб под свои данные изменить.[/quote]

по-хорошему, вам следовало бы посмотреть то что я писал в самом начале и пощупать самому транзакцию SHDB.
Перва форма выставляет активный номер экрана, втораю устанавливает курсор на поле, третья выполняет код, аналог кода вашей кнопки.

вот сами формы
Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 11:27 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
спасибо, очень помогло,( именно call transaction using <itab> меня , наверное, и интересовал), для рассмотренного примера решение(у меня работает :wink: ) выгдядит так:

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 11:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
Kanev написал(а):
спасибо, очень помогло,( именно call transaction using <itab> меня , наверное, и интересовал), для рассмотренного примера решение(у меня работает :wink: ) выгдядит так:

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.

Ну вот! А вы боялись Batch input :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 12:09 
Президент
Президент
Аватара пользователя

Зарегистрирован:
Ср, янв 12 2005, 13:39
Сообщения: 2811
Откуда: замкадыш
Цитата:
Ну вот! А вы боялись Batch input


Ну а если он страшный:)

На самом деле пакетный ввод штука очень удобная, но, к сожалению, довольно медленная:(. Да и писанины много, но других вариантов как-то не видно.

_________________
Что бы выловить случайную ошибку нужно добиться устойчивости её появления.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 12:53 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Kanev написал(а):

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


<я не знать русский языка> использовать этот код, пишет ошибку:
The FORM "BDC_DYNPRO" does not exist.
Наверное чего-то не хватает?

Не судите строго я вообще только начинаю! Если можно подробней поясните!

_________________
Мне надо учиться учиться и еще раз учиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 12:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
Kanev написал(а):

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


<я не знать русский языка> использовать этот код, пишет ошибку:
The FORM "BDC_DYNPRO" does not exist.
Наверное чего-то не хватает?

Не судите строго я вообще только начинаю! Если можно подробней поясните!


Я в своем сообщении с пояснениями привел код этих подпрограмм:
Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 13:27 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Всем огромное спасибо! заработало!

мой финальный код выглядит так:

[/code]DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FACT'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
CONDENSE BDCDATA-FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Code:

А теперь подскажите как сделать так чтоб при нажатии на кнопку "назад" или при нажатии на ESC сразу вываливался из программы а не переходил на то окно которые я пропустил?

_________________
Мне надо учиться учиться и еще раз учиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 13:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
Всем огромное спасибо! заработало!

мой финальный код выглядит так:

[/code]DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FACT'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
CONDENSE BDCDATA-FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Code:

А теперь подскажите как сделать так чтоб при нажатии на кнопку "назад" или при нажатии на ESC сразу вываливался из программы а не переходил на то окно которые я пропустил?


Полагаю вам надо узнать код кнопки выхода и дальше по- аналогии :wink:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 14:28 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Еще раз всем спасибо! Очень помогли!!!
Финальный код выглядит так:

Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=FACT'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=SAVE'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.

_________________
Мне надо учиться учиться и еще раз учиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 26 2006, 10:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
а где отображаютсся транзакции запущенные с помощью call transaction? через stat(stad) не увидел...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 26 2006, 11:10 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
По идее это просто job... попробуйте глянуть в мониторе заданий


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

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


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

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


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

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