Текущее время: Чт, июл 03 2025, 05:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 09:43 
Гость
А с етим как работать? не умею работать с функциями, поэто с двух слов понять как это делать не могу :oops: :(


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 10:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Snegurenok написал(а):
А если у вас 50 человек должны ети акты вводить - а один начал ето делать и ушел в отпуск :) - понятно что можно выкинуть - но не в эетом дело - для решение таких задач специально было придумано нумерация.
Транзакция SNUM - создаем новый диапазон номеров

ФМ NUMBER_GET_NEXT - получение номеров - хоть 200 человек могут теперь вводит ваши документы - каждому будет выдан свой номер ... :)

тр. SNRO
Попытаюсь немного защитить автора. Да с диапазонами работать и удобно и вроде бы правильно (кстати если может вы не умеете, то почитайте тут http://sap-easy.net.ru/diap.htm). Но иногда надо чтобы в работе был только один документ (правда я думаю это не та задача), как правило это связано с блажью юзеров по отсутствию окон в нумерации. Т.е. пока не проведется документ, второй проводить нельзя - а то вдруг первый не отработает. Но повторяю, я считаю это блажью...
понятно никто не запрещает использовать обе технологии одновременно :wink:

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 12:34 
Гость
и все таки, если продолжить тему, что не правильно в моем коде?
* Global Data
INCLUDE ZAATX012_TOP.
DATA INDEX LIKE INDX-PGMID.
CALL FUNCTION 'DEQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.

IF SY-SUBRC NE 0.


МESSAGE s001 WITH 'Акт приемки-передачи формируется другим пользоватем'.
ENDIF.
* PBO Module
INCLUDE ZAATX012_PBO.
* PAI Module
INCLUDE ZAATX012_PAI.
INCLUDE ZAATX012_FORM.

*&---------------------------------------------------------------------*
*& Form VIG_EXCEL
*&---------------------------------------------------------------------*

CALL FUNCTION 'dEQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 12:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
bella_nata написал(а):
и все таки, если продолжить тему, что не правильно в моем коде?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 12:49 
Гость
поподробней для чайников :D


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 12:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
bella_nata написал(а):
и все таки, если продолжить тему, что не правильно в моем коде?
* Global Data
INCLUDE ZAATX012_TOP.
DATA INDEX LIKE INDX-PGMID.
CALL FUNCTION 'DEQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.

Надо использовать ф-цию ENQUEUE_ESINDX - она создает объект блокировки. Вы же 2 раза пытаетесь его освободить, но, т.к. у Вас его нет, то и освобождать его не получается.
Далее. INDEX - это имя Вашего объекта блокировки, параметр SRTF2 - счетчик. Еще есть область видимости/время жизни блокировки, но еще не успел сегодня про них прочитать. Пусть гуру по памяти рассказывают :) Кроме того, они выставляются по умолчанию, поэтому пока можно их не трогать.

Code:
* Global Data
INCLUDE ZAATX012_TOP.
DATA INDEX LIKE INDX-PGMID.
INDEX = 'MY_UNUQUE_ID'.
CALL FUNCTION 'ENQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.
IF SY-SUBRC = 1.
  MESSAGE 'Не надо систему грузить лишний раз!' TYPE 'E'.
ENDIF.


З.Ы. 2АВС. Тормоза... Из-за них одновременно (почти) написали об одном и том же :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 13:05 
Гость
По идее, если один пользователь использует программу, то когда второй пытается в нее войти, должно выползать сообщение и прекращать работу программы. но этого не происходит:(


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 13:22 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Code:
* Global Data
INCLUDE ZAATX012_TOP.
DATA INDEX LIKE sy-repid.
CALL FUNCTION 'ENQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.

IF SY-SUBRC NE 0.
МESSAGE s001 WITH 'Акт приемки-передачи формируется другим пользоватем'.
leave program.
ENDIF.
* PBO Module
INCLUDE ZAATX012_PBO.
* PAI Module
INCLUDE ZAATX012_PAI.
INCLUDE ZAATX012_FORM.

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 13:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
artyom написал:
Code:
IF SY-SUBRC NE 0.
МESSAGE s001 WITH 'Акт приемки-передачи формируется другим пользоватем'.
leave program.
ENDIF.

Можно обойтись без leave program., если установку блокировки и МESSAGE Е001 (именно типа "Е", а не предупреждающего) сделать в AT SELECTION-SCREEN.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 13:55 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
RoadRunner написал:
artyom написал:
Code:
IF SY-SUBRC NE 0.
МESSAGE s001 WITH 'Акт приемки-передачи формируется другим пользоватем'.
leave program.
ENDIF.

Можно обойтись без leave program., если МESSAGE Е001 сделать в AT SELECTION-SCREEN.

Согласен на все 100%. Это кому как больше нравится. Мне просто кажется что в случае блокирования и не надо даже человеку давать селекционный экран. Просто надо блокирование поместить в INITIALIZATION.

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 14:05 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Мне просто не понравилось, что экран мелькает еще с пустыми неподписанными контролами (если проверку сделать в INITIALIZATION) - я и перенес ее в секцию AT SELECTION-SCREEN.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 14:08 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
У меня ничего не мелькает? А может у тебя как и у всех пернатых зрение более быстрое? :D

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 14:16 
Гость
Народ, а в 4.0 это работает?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 14:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Не помню с какой системы я начал это использовать, но вроде с 4.0

А ты прямо перенесла мой код в программу? и не работает?

_________________
Все будет хорошо...
http://sap-blog.ru/


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 03 2005, 14:26 
Гость
artyom написал:
Не помню с какой системы я начал это использовать, но вроде с 4.0

А ты прямо перенесла мой код в программу? и не работает?

да:(
INCLUDE ZAATX012_TOP.
* Global Data
INITIALIZATION.
DATA INDEX LIKE SY-REPID.
INDEX = SY-REPID.
CALL FUNCTION 'ENQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2.

IF SY-SUBRC NE 0.
MESSAGE S001 WITH 'Акт приемки-передачи формируется другим пользоватем'.
LEAVE PROGRAM.
ENDIF.

* PBO Module
INCLUDE ZAATX012_PBO.
* PAI Module
INCLUDE ZAATX012_PAI.
INCLUDE ZAATX012_FORM.

*&---------------------------------------------------------------------*
*& Form VIG_EXCEL
*&---------------------------------------------------------------------*
FORM VIG_EXCEL.
***********************

ENDFORM. " VIG_EXCEL
CALL FUNCTION 'DEQUEUE_ESINDX'
EXPORTING
RELID = 'ZZ'
SRTFD = INDEX
SRTF2 = 1.


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

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


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

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


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

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