WAIT 사용에 대한 질문이 있습니다. 코드 검토 및 승인을 담당하는 내부 소스 코드 품질 팀과 협력합니다. 죄송 합니다만, WAIT UP TO x SECONDS
사용법은 금지되어 있으며 양도 할 수 없습니다. I이 의사 코드를 실행하면대기 오류를 방지하고 메모리를 확보하기 위해 WAIT를 바꾸는 방법
호
CALL FUNCTION 'ANY_FUNCTION_WITH_LOCK'.
CALL FUNCTION 'ANY_FUNCTION_WITH_LOCK_2'.
는 I 오류 (잠긴 물체) I 공유 객체를 사용하기 때문에 (I는 동기/비동기 모드 않고 기능 모듈을 사용)을 가질 것이다.
이 문제는 WAIT
의 사용으로 해결할 수 있습니다.
CALL FUNCTION 'ANY_FUNCTION_WITH_LOCK'.
WAIT UP TO 5 SECONDS. " or 1, 2, 3, 4, 5, ... seconds <------------
CALL FUNCTION 'ANY_FUNCTION_WITH_LOCK_2'.
이 방법 (및 std 기능)을 사용하면 시스템이 중지되고 특정 시간 동안 대기합니다. 하지만 시스템에 1 초 이상 걸릴 수도 있습니다. 필요한 정확한 시간을 알 수 없습니다. 우리는 많은 수의 개체와 루프 내부에이 코드를 실행하면
하지만, 시스템은 메모리 덤프 때까지 무한 시간 동안 기다릴 수 있습니다.
의 필요성은 WAIT 명령을 대체하는 방법 입니다 필요
(매복 기능 VL32N, QA11, ... 그리고 해당 개체와 관련된)? 우리는 WAIT UP TO
와 같은 동작을 가진 솔루션/기능을 찾아야하지만 사실 (... 덤프, 자원의 과도한 소비)
를 메모리 수준에 영향을 미칠 (이하)하지 않습니다 우리 COMMIT WORK AND WAIT
과 같은 것이 필요하지만 데이터베이스가 아닌 기능의 결과가 필요합니다.
솔루션?
는 타임 스탬프 comparaison와 루프를 사용하여 X의 secondes 때까지 잠긴 개체의 목록을 얻을 필요한 객체가이 목록에 있는지 확인하는 ENQUEUE_READ를 사용합니다.
이 솔루션은 WAIT
과 동일한 수준의 리소스가 필요합니다.
ENQUE_SLEEP는 아직 메모리 (How to make an abap program pause?)
리팩터링 모든 코드에 WAIT 같은 동작을, 동기 기능을 사용할 것으로 보인다.
다른 건 없습니까? 어떤 생각? 심지어 가능할까요? 사전 :
둘 다 비동기 RFC의 기능을합니까? 아니면 'UPDATE TASK'를 사용합니까? 우선 나는 왜 '5 초간 기다려야하는지'에 초점을 맞추었고 그 질문에는 아무 것도 없습니다. 'x 초 기다리기'를 제거하는 것은 오히려 최소한 첫 번째 함수 모듈을 동기로 만들고 싶다는 의미이며, 내 관점에서 합리적인 해결책은 동기 화하는 것입니다. 다른 해결책은 재 시도 카운터를 도입하는 것인데, '기다려야합니다'를하지 않고 잠금 장치가 해제되거나 카운터가 올라올 때까지 다시 시도하는 것입니다. – Jagger
이 'WAIT' 문 때문에 프로그램이 멍청하다고 말하는가? 그래서 그걸 제거하고 싶은거야? – Suncatcher
표준 FM입니까? FM 대신 BAPI를 사용할 수 있습니까? – Brian