메뉴 건너뛰기

SAP 한국 커뮤니티

ip

양파링 2011.11.02 14:19 조회 수 : 6116

DATA: BEGIN OF DESTI OCCURS 100.
        INCLUDE STRUCTURE MSXXLIST.
DATA: END OF DESTI.

DATA: BEGIN OF USR_LIST OCCURS 1000.
        INCLUDE STRUCTURE UINFO.
DATA: END OF USR_LIST.

DATA: BEGIN OF SERVERP OCCURS 100, " Presentationserver
        S(32),
        SL(15),
        X(4) TYPE X,
        L(5),
        H(5),
        M(5),
        C,
        PRO(4),
        COMMU,
        " SL(31) for new IP-Address
END OF SERVERP.

 

 

 

FORM GET_IP   CHANGING P_IP.

  REFRESH DESTI.
  CALL FUNCTION 'RFC_GET_LOCAL_SERVERS'
    TABLES
      HOSTS         = DESTI
    EXCEPTIONS
      NOT_AVAILABLE = 1.

  CLEAR DESTI.
  READ TABLE DESTI WITH KEY HOST = SY-HOST.
  IF SY-SUBRC EQ 0.
    REFRESH USR_LIST.
    CALL FUNCTION 'THUSRINFO' DESTINATION DESTI-NAME
      TABLES
        USR_TABL              = USR_LIST
      EXCEPTIONS
        COMMUNICATION_FAILURE = 17.
    IF SY-SUBRC = '17'.
      SERVERP-COMMU = 'P'.
      EXIT.
    ELSE.
      SERVERP-COMMU = ' '.
    ENDIF.

    CLEAR USR_LIST.
    READ TABLE USR_LIST WITH KEY BNAME = SY-UNAME.
    IF SY-SUBRC EQ 0.
      CLEAR SERVERP-S.
      SERVERP-S = USR_LIST-TERM.
      SERVERP-X = USR_LIST-HOSTADR.
      PERFORM IP_HEX2ASCII_N USING SERVERP-X CHANGING SERVERP-SL.
      MOVE SERVERP-SL TO P_IP.
    ENDIF.
  ENDIF.

ENDFORM.                    " GET_IP
*&---------------------------------------------------------------------*
*&      Form  IP_HEX2ASCII_N
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_SERVERP_X  text
*      <--P_SERVERP_SL  text
*----------------------------------------------------------------------*
FORM IP_HEX2ASCII_N USING DESI CHANGING ERGEBNIS.
  DATA: T     TYPE X,
        TT(3),
        HELP  TYPE I,
        HELP1 TYPE I VALUE 0,
        DESTI_X(8) TYPE X ,
        DESI_HLP TYPE I,
        H_TYPE.

* unicode
  DESCRIBE FIELD DESI LENGTH DESI_HLP IN BYTE MODE.
* non-unicode
*  DESCRIBE FIELD DESI LENGTH DESI_HLP.

  DESCRIBE FIELD DESI TYPE H_TYPE.

  IF DESI_HLP <> 4 AND DESI_HLP <> 8.
*    WRITE: / 'Length of processed IP-address is'(026), DESI_HLP, '.'.
*    WRITE: / 'It should be of length 4 or 8 !'(027).
  ELSE.
    IF H_TYPE = 'X'.
      DESTI_X = DESI.
      DESI_HLP = DESI_HLP - 1.

      CLEAR ERGEBNIS.
      DO DESI_HLP TIMES. " 4 or 8 Bytes ?3 or 7 times
        T = DESTI_X+HELP1(1).
        PERFORM HEX2ASCII USING T CHANGING TT.
        HELP = STRLEN( ERGEBNIS ).
        ERGEBNIS+HELP = TT.
        HELP = STRLEN( ERGEBNIS ).
        ERGEBNIS+HELP = '.'.
        HELP1 = HELP1 + 1.
      ENDDO.
      T = DESTI_X+HELP1(1).
      PERFORM HEX2ASCII USING T CHANGING TT.
      HELP = STRLEN( ERGEBNIS ).
      ERGEBNIS+HELP = TT.
    ELSE.
      EXIT.
    ENDIF.
  ENDIF.

ENDFORM.                    " IP_HEX2ASCII_N
*&---------------------------------------------------------------------*
*&      Form  HEX2ASCII
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_T  text
*      <--P_TT  text
*----------------------------------------------------------------------*
FORM HEX2ASCII USING T CHANGING V.

  DATA : H TYPE I,
         E(3).
  H = T. E = H.
  CONDENSE E.
  V = E.

ENDFORM.                                                    " HEX2ASCII

번호 제목 글쓴이 날짜 조회 수
367 READ_TEXT 관련 [14] file 노름마치 2007.11.15 5177
366 Background Processing sapjoy 2007.11.20 3436
365 SUBQUERY 사용예 입니다. [1] 노름마치 2007.11.20 9546
364 SAP Tips. [7] file 박성민 2007.11.22 5484
363 스크린에서 리스트 박스의 값을 동적으로 생성하는 tip [1] sapjoy 2007.11.30 4801
362 문자열 자를 때 자르는 위치에 2BYTE문자가 있는지를 체크하는 방법입니다. [8] 꿈하루 2007.12.01 7064
361 abap refresh 함수 [2] 꿈하루 2007.12.03 6130
360 BAPI LIST 입니다. 참고하세요. [24] file 노름마치 2007.12.10 4964
359 BAPI_GOODSMVT_CREATE 입고/출고/재고이동시에 사용하세요. [5] 노름마치 2007.12.10 15093
358 BAPI_INCOMINGINVOICE_CREAE 송장처리시에 사용하세요. [1] 노름마치 2007.12.10 4535
357 BAPI_MATERIAL_AVAILABILITY 가용성체크시에 사용하세요. [1] 노름마치 2007.12.10 6299
356 BAPI_MATERIAL_SAVEDATA 자재마스터 생성시에 사용하세요. [1] 노름마치 2007.12.10 9242
355 BAPI_MESSAGE_GETDETAIL 작업결과에 대한 메세지는 이렇게도 보여줄수 있겠군요 [1] 노름마치 2007.12.10 4816
354 BAPI_PO_CHANGE 구매오더 변경시에 사용하세요 [7] 노름마치 2007.12.10 5557
353 BAPI_PO_CREATE1 구매오더 생성시에 사용하세요 [8] 노름마치 2007.12.10 9700
352 BAPI_PR_CREATE 구매요청 생성시에 사용하세요 [2] 노름마치 2007.12.10 23699
351 BAPI_PR_CREATE 구매요청 생성시에 사용하세요. 이렇게도 쓸 수 있군요. [1] 노름마치 2007.12.10 6676
350 BAPI_RESERVATION_CREATE1 MB21의 예약생성시 사용하세요. [2] 노름마치 2007.12.10 7604
349 BAPI_SALESDOCU_CREATEFROMDATA1 판매오더를 이렇게 생성해도 되는군요. [4] 노름마치 2007.12.10 5504
348 ABAP TIP 정리(영문 60페이지) [31] file sapjoy 2008.01.04 4478