문제

저는 ASP.NET 및 ABAP 개발자입니다. 수년 동안 RFC를 사용하여 SAP .NET 커넥터를 사용하여 ASP.NET과 통신했습니다.

통합 테스트 중에, 우리가 직면하고있는 버그가 SE37에서 발생하지 않기 때문에 ASP.ENT에서 호출 된 RFC를 디버깅해야합니다.

그래서 RFC를 디버깅해야 할 때마다 방금 삽입했습니다.

IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.

그렇게함으로써 프로그램이 갇히게됩니다. 그런 다음 SM50으로 가서 디버깅합니다.

디버깅을 위해 코드를 변경하거나 디버그 제어 기능을 구현하는 아이디어가 마음에 들지 않기 때문에이 작업을 수행하는 다른 방법이 있는지 궁금합니다.

그렇다면 RFC를 디버그해야 할 때 어떻게합니까?

미리 감사드립니다!

도움이 되었습니까?

해결책

상당히 최근 버전의 SAP (4.7+)를 사용하고 있다고 가정합니다.

  • RFC를 ASP에서 SAP로 호출하는 사용자 이름을 얻으십시오.
  • SE37을 발사하고 RFC의 코드 섹션으로 이동하십시오.
  • 상단의 메뉴를보고 '유틸리티'를 클릭하십시오.
  • 설정을 클릭하십시오
  • 디버깅 탭으로 이동하십시오
  • ASP에서 호출 할 사용자 이름을 작성하십시오.
  • IP 매칭을 클릭합니다 (그렇지 않으면 사용자가 호출 할 때마다 디버그 세션이 나타납니다)
  • 세션 중단 점 활성화는 즉시 클릭하는 것이 좋습니다.
  • 외부 중단 점을 필요한 곳에 두십시오 (정지 부호와 작은 사람으로 아이콘을 클릭하십시오).
  • ASP 커넥터를 테스트하십시오
  • 중단 점이 발효되어야합니다. 디버그 창이 팝업됩니다.
  • 작동하지 않는 경우 SU53을 사용하여 누락 된 내용을 찾으십시오.

이것은 작동해야합니다.

다른 팁

까다로운 .. "버그가 SE37에서 일어나지 않는다"는 의미를 자세히 설명해 주시겠습니까?

그것은 문제로 이어지는 데이터를 재현 할 수 없거나 문제가 RFC를 통해 함수 모듈이 호출된다는 사실에만 해당된다는 것을 의미합니까?

일반적으로 SE37을 사용하여 기능 모듈을 시작할 수 있어야하며 기능 모듈에 다른 데이터 별자리를 기록하는 몇 가지 방법이 있습니다. 함수 모듈의 동작은 SE37에서 호출되거나 RFC를 통해 호출된다는 점에 대해 동일해야합니다.

SE37을 통해 RFM을 호출하면 무의식적으로 SAP 선택 화면을 사용합니다. RFC에서 호출 할 때 헤더 라인이있는 테이블이있는 경우 헤더 라인이 "채워져"가있을 수 있습니다.

RFC에서 동일한 FM을 초기의 헤더 라인을 호출하는 경우.

PT_JNC에서 루프. 출구. EndLoop. 또는 테이블 PT_JNC 인덱스 1을 읽습니다.
헤더 라인을 채우는 데 도움이됩니다

이것은 미묘한 차이입니다. 다른 간단한 차이점은 SAP 사용 yyyymmdd 날짜 형식 및 hh24miss 시간입니다.

콜카타에서 JNC를 안부합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top