내 프로그램은 두 가지 방법으로 시작할 수 있습니다.ABAP에서 프로그램 호출 스택 추적을 얻는 방법은 무엇입니까?
START OF SELECTION
내 로컬 클래스 중 하나에서 MAIN
함수를 호출하는 이벤트. ZAVGTTA4
동일한 메소드를 호출하는 트랜잭션.
PAI
에서 BACK 이벤트의 경우 LEAVE TO SCREEN '0'.
을 호출 할 때 내 프로그램은 시작된 방법에 따라 두 가지 방식으로 동작합니다. 선택 화면 (1000)으로 돌아가고 싶습니다.
스택을 쿼리하는 것에 대해 생각해 보았습니다. 스택을 쿼리하면 프로그램이 어떻게 호출되었는지 확인할 수 있습니다. 스택 추적이 다르다는 것을 알 수 있지만 프로그램에서 스택을 액세스하는 방법을 모르겠습니다. RTTI에 대해 들었습니다. 저를 도울 수있을 것 같아요.
Thx. 그게 그랬어. Btw, 귀하의 설명과 함께, 당신은 "데이터"섹션에서 선언 된 "행동"이라는 일부 데이터 객체가 있다는 것을 의미합니까? 그리고 일부 논리가 구현됩니까? 사촌 그게 내가 한 짓이야. 그러나 만약 당신이 나와 다른 것을 (그리고 당신이 정말로 설명하는 것이 좋다고 생각 : P) 좀 더 자세한 내용을 제공해주십시오. 어쨌든 많이! –
올바른 예를 들어야 할 몇 가지 문제가 있습니다. 왜냐하면 제가 정말로 이해하지 못했기 때문에 당신이 어떻게 부르는지를 알기 때문입니다. 당신의 프로그래머를 호출하는 두 가지 방법은 무엇입니까? 'ZAVGTTA4'트랜잭션을 통해 제출? 시스템 필드'SY-TCODE'는 실제 트랜잭션을 포함합니다. 'SY-TCODE = 'ZAVGTTA4'' 인 경우, 프로그램은 트랜잭션'ZAVGTTA4'로 호출됩니다. – knut
나는 이미 답을 알고 있지만 변수'SY-CPROG'의 값이 너무 (프로그램 이름을 호출하고있다) 궁금합니다. – Jorg