Текущее время: Пн, июн 30 2025, 19:37

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


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

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


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

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