[출처 : http://yongandju.tistory.com/ ]
SAP를 운영하다 보면 빡빡한 라이센스(License) 정책으로 인해 골치가 조금 아픕니다.
도입 시점에서는 별 문제 없다가도, 불시에 라이센스 검사(Audit)가 나와서 추가 구매를 해야한다고 하니까요.
게다가 비용도 만만치 않습니다ㅜ
듀얼 모니터의 추세로 인해 창을 여러개 띄워놓고 작업을 하게 되는데, 하나의 로그인으로는 5개의 창 밖에는
띄울 수 없는 구조도 중복 로그인을 하게 만드는 이유가 됩니다.
물론, 라이선스 계약(1 User / 1 License)은 반드시 준수해야 합니다.
라이선스 계약이 문제가 될 것이라고 판단 된다면 도입을 보류하던지 협상을 통해 원하는 결과를
이끌어 내야 합니다. 계약할 때는 몰랐다는 식의 대응은 기업의 신뢰도를 손상시키기 때문이죠.
여기서 어느 정도 유두리(?)를 SAP에서 인정해줘야 한다고 주장하는 것은
1 User / 1 License 정책 안에서 1 User가 여러 작업을 할 수 있도록 해달라는 점 입니다.
5개 밖에 띄울 수 없는 창의 개수를 늘려 주던지, 동일 IP에 대한 복수의 로그인을 인정해 줘야 한다는거죠 : )
각설하고, 오늘은 멀티로그인을 허용한 기업에서 최대 로그인을 제한하는 방안을 소개하고자 합니다.
로그인 프로세스 안에 Exit을 걸어두고 다음과 같은 기능을 하게 만드는 것이죠
▶ 동시접속 4개 이상을 초과할 경우 강제 로그아웃
▶ 현재 접속한 내역 안내 팝업창
▶ 특수 계정은 중복 로그인 허용(ADMIN, INTERFACE 등)
먼저, Exit을 거는 위치는 아래와 같습니다.
▶ Function 그룹 : XUSR
▶ 모듈 : EXIT_SAPLSUSF_001
▶ INCLUDE : ZXUSRU01
소스코드는 하기와 같습니다. 최대 4개 로그인만 허용하도록 한 코드 입니다.
*&---------------------------------------------------------------------*
*& Include ZXUSRU01
*&---------------------------------------------------------------------*
TABLES: UINFO.
DATA: N TYPE I VALUE 5. "<- 최대 허용 중복 로그인 수치
DATA: OPCODE TYPE X VALUE 2, I TYPE I, A(60), N_C(3), B(250), c(250), TEMP_A(250),
TEMP_B(250), TEMP_C(250),TEMP_D(250).
DATA: I_n TYPE I VALUE 4.
DATA: BEGIN OF BDC_TAB1 OCCURS 5.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB1.
DATA: BEGIN OF USR_TABL OCCURS 10.
INCLUDE STRUCTURE UINFO.
DATA: END OF USR_TABL.
DATA: GT_USR41 LIKE USR41 OCCURS 0 WITH HEADER LINE.
* 예외처리할 ID있으면 아래에 표시
IF SY-UNAME <> 'ADMIN'
AND SY-UNAME <> 'SAP*'
AND SY-UNAME <> 'INTERFACE'
AND SY-UNAME <> 'DDIC'
AND SY-UNAME <> 'DDID'
AND SY-UNAME <> 'ALEREMOTE'
AND SY-UNAME <> 'BWREMOTE'
AND SY-UNAME <> 'IF_BIZTALK'
AND SY-UNAME <> 'ALEREMOTE'
AND SY-UNAME <> 'RSDUSER'
AND SY-UNAME <> 'SAPCPIC'
AND SY-UNAME <> 'TMSADM'.
CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE
ID 'TAB' FIELD USR_TABL-*SYS*.
LOOP AT USR_TABL.
IF SY-UNAME = USR_TABL-BNAME AND SY-MANDT = USR_TABL-MANDT.
I = I + 1.
ENDIF.
ENDLOOP.
SELECT *
INTO TABLE GT_USR41
FROM USR41
WHERE BNAME = SY-UNAME.
I_n = 0.
TEMP_C = ''.
TEMP_D = ''.
LOOP AT GT_USR41.
TEMP_A = GT_USR41-TERMINAL.
TEMP_B = ' / '.
I_n = I_n + 1.
IF I_n < 3 .
CONCATENATE TEMP_A TEMP_B TEMP_C INTO TEMP_C.
ELSEIF I_N < 5.
CONCATENATE TEMP_A TEMP_B TEMP_D INTO TEMP_D.
ENDIF.
ENDLOOP.
IF I >= N.
N_C = I - 1.
CONCATENATE '' SY-UNAME ' 계정이 현재 ' N_C ' 개가 로그인 되어 있습니다' INTO A.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = 'SAP ID 정책 위반 안내'
TXT1 = A
TXT2 = '중복 로그인 정책에 위반되어 종료 합니다, 접속된 PC명 : '
TXT3 = TEMP_C
TXT4 = TEMP_D.
MOVE: 'SAPMSSY0' TO BDC_TAB1-PROGRAM,
'120' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/nex' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
CALL TRANSACTION 'SM04' USING BDC_TAB1 MODE 'N'.
ENDIF.
ENDIF.
2017년 2월 3일 금요일
메일 SMTP 오류 코드 정리
[ 출처 : http://sangchul.kr/ ]
400 에러(송신단계의 문제)
1. 421 Server too busy
- 수신 측 서버의 일시 장애로 연결이 안되는 현상으로 이는 수신 측 서버의 SMTP 세션이 Full 이거나 수신 측 서버의 트래픽으로 인해 새로운 SMTP 연결을 만들지 못하는 경우 발생할 수 있습니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
2. 421-Microsoft ESMTP MAIL Service, Version: 5.0.2195.5600 ready at Service not available, closing transmission channel
- 수신 측 서버인 Microsoft ESMTP 서비스가 정상적으로 동작하지 않아 메일을 송신하지 못하는 오류입니다. 시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
3. 421 4.3.1 ILLEGAL FROM <xxx@xxx.com> Sorry. Your IP has problems. This Connection will be closed. Please mail to mailsysop@hanmir.com (by using another e-mail server). Thank you.
- 송신 측의 아이피 주소 또는 메일주소가 잘못 되어 송신이 제한된 오류입니다. 안내되어진 메일주소로 문의 메일을 보내시기 바랍니다.
4. 421 4.3.2 Your IP(xxx.xxx.xxx.xxx) is filtered and this connection will be closed. You must register your IP to spammaster@hanafos.com By SpaceLee, the Lord of mail server
- 송신 측의 아이피 주소가 하나포스닷컴에 스팸 메일러로 등록이 되어 송신이 제한된 오류입니다. 안내되어진 메일주소로 문의 메일을 보내시기 바랍니다.
5. 421 4.3.2 Your IP(xxx.xxx.xxx.xxx) is filtered and this connection will be closed. You must register your IP to http://realip.naver.com.
- 송신 측의 아이피 주소가 네이버닷컴에 스팸 메일러로 등돌이 되어 송신이 제한된 오류입니다. 네이트닷컴의 스팸 정책을 참고하시기 바랍니다.
6. 441 4.4.1 No answer from host- 수신 측의 메일서버로부터 응답을 받지 못해 연결이 실패된 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
7. 441 4.4.1 temporay dns failed <Hanmail.net>
- 한메일닷넷의 메일서버로 연결하던 도중 한메일의 스팸정책에 위배되어 발생한 오류입니다. 다음의 연락처로 연락해 보시기 바랍니다. 1544-0580 내선번호 2
8. 450 <xxx@xxx.xxx> : Recipient address rejected: Greylisted for 300 seconds (see http://isg.ee.ethz.ch/tools/postgrey/help)
- 송신 측의 메일주소가 수신측에서 참조하고 있는 Graylisting 시스템에 등록되어 메일발송이 지연되고 있는 오류입니다.
9. 451 4.4.0 DNS resolving error
- 수신 측 서버의 도메인을 찾지 못해 발생한 오류입니다. 현재 메일서버가 참조하고 있는 DNS 서버가 정상적으로 동작하는지 확인해 보시기 바랍니다. 또한 다른 ISP 업체들의 DNS를 참조하여 메일을 송신해 보시기 바랍니다.
10. 451 4.3.0 Other or undefined mail system status
- 수신 측 메일 시스템의 프로토콜이 틀리거나 연결된 서버가 SMTP 서버가 아닐경우 발생하는 오류입니다.
11. 451 4.3.0 Temporary system failure. Please try again later
- 수신 측 서버의 일시적인 장애로 인하여 메일을 수신하지 못하는 오류입니다.
12. 451 4.4.2 Bad connection (io timeout)
- 수신 측 서버의 응답시간 초과로 인하여 연결이 끊어져 발생한 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
13. 451 Relay Server Not Ready
- 수신 측 서버의 릴레이 기능이 정상적으로 동작하지 않아 발생한 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
14. 452 sorry, your recipient address is not in my local list
- 수신자의 메일주소가 수신 측의 메일서버에 존재하는 계정이 아니어서 발생한 오류입니다. 수신자의 메일주소를 올바르게 표기하였는지 확인해 보시기 바랍니다. 또한, 해당 주소가 실제 수신 측에 존재하는 계정인지 확인해 보시기 바랍니다.
15. 452 4.4.5 Requested mail action aborted: exceeded storage allocation
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
16. 452 4.4.5 Disk write / Insufficient disk space error occurred
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
17. 452 4.4.5 Insufficient disk space; try again later
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
18. 452 4.4.5 MailBox or MessageQuota exceed for <E-mail Address>
- 수신자 메일 사서함의 공간부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
500 에러(수신단계의 문제)
1. 5XX you must be spam
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
2. 5XX Your envelope sender is enlisted as spammer
- 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
3. 500 Syntax error, command unrecognized
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
4. 500 File Sending Error
- 메일 메시지 전송도중 네트웍 장애등의 이유로 전송에 실패하여 발생한 오류입니다.
5. 501 Denied domain name
- 송신 측의 도메인이 수신 측의 서버에서 거부되어 발생한 오류입니다.
6. 501 Bad sender address expression
- 송신자 또는 수신자의 메일주소가 정상적이지 않아 발생한 오류입니다. 송신자의 메일주소가 정확한지 확인해 보시기 바랍니다.
7. 501 Argument missing
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
8. 501 5.1.8 Sender domain must exist <xxx.com>
- 수신 측 xxx.com 도메인이 존재하지 않아 발생한 오류입니다. 수신자 메일수조 중 도메인 부분이 정확하게 적혀있는 지 확인하시기 바랍니다. 주소가 정확한 경우 수신 측 관리자에게 문의하여 실제 도메인이 해당 메일서버에 등록되어 있는지 확인하시기 바랍니다.
9. 503 Bad sequence of commands
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
10. 504 You are registered as spammer
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
11. 504 We do not accept mail from spammers. if you have questions,please Email
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
12. 511 sorry, no mailbox here by that name (#5.1.1 - chkuser)
- 수신자의 메일주소가 수신 측의 메일서버에 존재하지 않는 계정인 경우 발생하는 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
13. 550 No inbox for <E-mail Address>
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
14. 550 User unknown
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
15. 550 Requested action not taken: mailbox unavailable
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
16. 550 5.1.1 Suspended mailbox
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
17. 550 5.1.1 No such user <E-mail Address>
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
18. 550 Invalid recipient
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
19. 550 5.0.0 Access denied
- 수신 측 메일서버로의 접속이 거부되어 발생한 오류입니다. 수신 측 메일서버에 송신 측의 메일서버가 거부되어 있는지 확인해 보시기 바랍니다.
20. 553 sorry, that domain isn't in my list of allowed rcpt hosts
- 수신 측의 도메인주소가 수신 측 메일서버에 존재하지 않아 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신 측의 도메인 주소가 수신 측 메일서버에 존재하는지 확인해 보시기 바랍니다.
21. 550 Relay rejected for <E-Mail Address>
- 수신 측의 메일서버에서 해당 E-Mail Address 로 릴레이를 거부하여 발생한 오류입니다. 수신 측 관리자에게 문의하시기 바랍니다.
22. 550 relaying to <E-Mail Address> prohibited by administrator
- 수신 측의 메일서버에서 해당 E-Mail Address 로 릴레이를 거부하여 발생한 오류입니다. 수신 측 관리자에게 문의하시기 바랍니다.
23. 553 Too many recipients
- 수신 측 메일서버에서 허용한 동시 수신 메일 수를 초과하여 발생한 오류입니다. 수신 측 메일서버에서 허용한 수 이하로 메일을 송신해 보시기 바랍니다.
24. 553 sorry, your envelope sender is in my badmailfrom list.
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
25. 553 sorry, your envelope sender is enlisted as spammer
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
26. 550 5.0.0 Your message may contain the Klez.worm! See http://securityresponse.symantec.com/avcenter/venc/data/w32.klez.removal.tool.html
- 송신한 메일 메시지 않에 Klez worm 바이러스가 포함되어 수신 측 메일서버에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
27. 553 5.0.0 Your message may contain the Win32.Klez worm!!- If you have questions,please email
- 송신한 메일 메시지 안에 Win32.Klez worm 바이러스가 포함되어 수신 측 메일서버에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
28. 553 5.5.4 Host name (xxx.com) is not match with your ip(xxx.xxx.xxx.xxx), maybe it's bogus. Visit http://antispam.hanmail.net
- 수신 측의 메일서버에서 송신 도메인 xxx.com 에 대하여 DNS Lookup 한 결과 송신된 IP 주소인 xxx.xxx.xxx.xxx 와 일치 하지 않아 송신이 거부된 오류 입니다. 송신 측 도메인에 대한 호스트(A) 레코드 생성 후 이를 송신 측 메일서버의 아이피 주소와 일치시켜 주시기 바랍니다.
29. 553 5.5.4 <xxx> ... Domain name required for sender address <xxx>
- 송신 측의 메일주소가 ID@Domain_Name 형식이 아닌 잘못된 형식으로 송신을 시도하여 발생한 오류 입니다. 송신자의 메일주소가 올바른지 확인해 보시기 바랍니다.
30. 554 5.3.4 Too big mail sent. Max allowed mail size is xxxxxxxxx bytes
- 수신 측 메일서버에서 허용한 메일 사이즈보다 큰 메일을 송신하여 발생한 오류입니다. 송신 메일의 사이즈를 점검하여 허용 사이즈 이하로 재 전송해 보시기 바랍니다.
31. 554 5.3.0 Mail have traversed Too many hops. Reject it
- 수신 측 메일서버에서 허용한 동시 수신 메일 수를 초과하여 발생한 오류입니다. 수신 측 메일서버에서 허용한 수 이하로 메일을 송신해 보시기 바랍니다.
32. 554 delivery error: dd Sorry, your message to <E-Mail Address> cannot be delivered. This account is over quota
- 수신자의 메일사서함 용량이 초과되어 메일을 수신하지 못하는 오류 입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
33. 554 5.1.0 Sender Denied
- 송신 측의 메일주소가 거부되어 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
34. 554 5.5.0 Your message was rejected. Please refer to http://antispam.nate.com/554-550.html [Reject Option]
- 네이트 닷컴의 스팸 정책에 위배되어 메일을 송신하지 못한 오류입니다. 네이트 닷컴의 스팸 정책을 확인해 보시기 바랍니다.
35. 554 delivery error: dd This user doesn't have a yahoo.com account (E-Mail Address) [-5] - mta114.mail.sc5.yahoo.com
- 수신자의 메일주소가 야후닷컴에 실재 존재하지 않은 계정인 경우 발생하는 오류입니다. 수신자의 메일주소를 정확하게 입력하였는지 확인해 보시기 바랍니다.
36. 550 5.7.1 <E-Mail Address>. Relaying denied. IP name lookup failed <IP Address>
- 송신자의 메일주소가 DNS IP Name Lookup 에 실패하여 릴레이가 거부된 오류입니다. 송신 측 DNS 서버의 정방향 조회 영역에 송신 측 메일서버 IP Address 와 일치하는 메일교환기(MX) 레코드 값이 정확하게 설정되어 있는지 확인해보시기 바랍니다. 또한, 송신 측 DNS 서버의 역방향 조회 영역에 송신 측 메일서버 IP Address에 대하여 포인터가 올바르게 구성되어 있는지 확인해 보시기 바랍니다.
37. 550 5.5.0 VIRUS detected from your mail. Cure & Try again. Found by virus scan engine.
- 송신한 메일 메시지 안에 바이러스가 포함되어 수신 측에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
38. 550 Denied by policy: Sender is listed on DNS-based RBL
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 RBL (Real time Black List) 에 포함되어 수신 측의 메일서버에서 거부되어 발생한 오류입니다. 송신 측의 도메인 또는 아이피 주소가 등록되어 있는 RBL을 확인하여 리스트에서 제거하시기 바랍니다. 리스트에서 제거하는 방법은 RBL 사이트 마다 다르며 해당 사이트의 지시를 따르시기 바랍니다.
39. 550 Mail sender unuses allowed IP. SMTP Proxy Server close ...
- 송신 측의 IP Address 가 수신 측의 메일서버에서 거부되어 발생한 오류입니다. 수신 측 관리자에게 문의하여 송신 측의 IP가 거부되어 있는지 확인하신 후 삭제하시기 바랍니다.
40. 553 5.5.3 <E-Mail Address>... Invalid
- 송신자 또는 수신자의 메일주소가 잘못되어 발생한 오류입니다. 송신자 또는 수신자의 메일주소가 올바른지 확인해 보시기 바랍니다.
41. 557 you must be virus
- 송신자의 메일이 바이러스로 인식되어 수신 측에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
기타 에러
1. Error-Connect
- 네트웍의 장애 또는 수신 측 메일서버의 장애 또는 기타의 이유로 송신 측과 수신 측 사이에 연결이 이루어지지 않아 발생한 오류입니다. 네트웍 또는 송, 수신 측의 메일서버 상태를 점검 후 재 시도 해보시기 바랍니다.
2. Temporary system failure
- 송신 측 또는 수신 측 메일서버 또는 네트웍의 일시적인 장애입니다. 재시도 결과 같은 현상이 반복될 경우 메일서버 및 네트웍의 전반적인 상태를 점검해 보시기 바랍니다.
3. No SMTP server
- 송신 측의 메일서버에서 참조 하고 있는 DNS 서버에서 수신 측의 메일서버를 찾지 못하였거나 실제로 수신 측의 메일서버가 존재하지 않아 발생한 오류입니다. 송신 측의 DNS 서버가 정상적으로 운영 중인지 확인하신 후 이상이 없으실 경우 수신 측의 메일서버가 존재하고 있는지 확인해 보시기 바랍니다.
4. An error occurred attempting to connect to the DNS Server(s) Additional error information: The following exception occurred attempting to connect to <IP>
- 송신 측의 메일서버가 참조하고 있는 DNS 서버에 연결하려고 하였으나 연결하지 못해 발생한 오류입니다. DNS 서버가 정상적으로 동작하고 있는지 확인해 보시기 바랍니다.
5. Error Data Sending
- 송신 측과 수신 측의 메일서버 연결은 정상적으로 이루어 졌으나 실제 메일 데이터를 전송하는 과정에서 정상적으로 전송하지 못해 발생한 오류입니다. 현재 네트웍 상태가 정상적인지 확인해 보신 후 재시도 해보시기바랍니다.
6. Error Sending Timeout
- 메일 데이터를 전송하는 과정에서 지정된 시간 내에 전송하지 못해 발생한 오류입니다. 현재 네트웍 상태가 정상적인지 확인해 보신 후 재시도 해보시기 바랍니다.
아웃룩 에러
1. 메일 서버에 로그온하는 데 문제가 있습니다. 지정한 암호가 거부되었습니다. 계정 : <mail.test.com>, 서버: <mail.test.co.kr>, 프로토콜: POP3, 서버 응답: <-ERR Bad login>, 포트: 110, 보안(SSL): 아니오, 서버 오류: 0x800CCC90, 오류 번호: 0x800CCC92
- 아웃룩에서 [도구]->[계정]->[등록정보]->[서버]->비밀번호변경 또는 SiteControl에 로그인후 [계정관리자] ->[비밀번호 변경]을 통하여 비밀번호를 다시 지정하시기 바랍니다. 간혹 메일 계정 용량 초과 사용하실때도 이와 같이 나타납니다.
2. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <admin>, 서버: <mail.test.com>, 프로토콜: POP3, 포트: 110, 보안(SSL): 아니오, 소켓 오류: 11001, 오류 번호: 0x800CCC0D서버에 연결할 수 없습니다. 계정: <mail.xxxx.xx.>
- POP3 이름을 다시 정확히 확인후 POP3 서버명을 수정해 주시기 바랍니다.
예>인에이지 POP3 : mail.test.com
3. [서버에 연결할 수 없습니다. 계정: <mail.xxxx.xx.xx>, 서버: <127.0.0.1>, 프로토콜: POP3, 포트: 1110, 보안(SSL): 아니오, 소켓 오류: 10061, 오류 번호: 0x800CCC0E]
- V3Pro 2002 Deluxe를 설치하여 [POP3 감시], [Outlook 감시]를 [On]하시면 Outlook Express의 계정부분에 127.0.0.1과 같이 Local의 IP가 덧붙여 지게 됩니다.
받는 메일 서버 : 127.0.0.1
계정 이름 : 계정 이름/원래 메일 서버 주소/110 [127.0.0.1]는 가상의 프록시 서버로 고객님께서 메일을 받으시기 전 미리 바이러스 검사를 하도록 되어 있습니다
만약 계정변경 후 POP3 감시의 에러가 발생해 위와 같이 세팅된 상태에서 POP3 감시 모듈이 정상 작동을 하지 않는다면 메일을 수신할 수 없게 됩니다. 그러한 경우에는 아래와 같은 방법으로 조치해 주시면 됩니다.
(1) V3Pro 2002 Deluxe의 실시간 감시에서 POP3 감시, Outlook 감시를 Off 시킵니다.
(2) V3와 Outlook Express를 모두 종료한 다음 다시 Outlook Express를 실행하여 [도구]-[계정]-[메일]에서 POP3 감시를 설정한 계정을 선택합니다.
[등록정보]->[고급]에서 서버 포트 설정을 받는 메일을 110으로 바꾸어 주신 후, V3Pro 2002 Deluxe에서 POP3 감시와 Outlook 감시를 다시 On으로 설정을 변경해 주시면 정상적으로 송수신이 됩니다.
4. 서버 연결이 갑자기 종료되었습니다. 서버 문제, 네트워크 문제 또는 연결해 놓고 장시간 사용하지 않은 것이 원인일 수 있습니다. 계정 : <xxxxxxx>, 서버 :<mail.xxxxx.xxx>, 프로토콜: POP3, 서버 응답: <+OK 4096 octers>, 포트: 110, 보안(SSL): 아니오, 오류번호: 0x800CCC0F
- 원인은 PC에 설치된 백신 소프트웨어 혹은 하드웨어가 있을때 발생합니다. 백신 소프트웨어 혹은 하드웨어가 서버에서 다운로드되는 이메일을 검사하여, 메일중에 바이러스로 의심되는 이메일이 존재할때, PC의 안전을 위하여 서버와의 연결을 중도에 끊습니다.
그러므로, 이때의 해결방법은 웹메일로 로그인을 하여 바이러스에 감염이 된 것으로 의심되는 화일을 삭제한 후 다시 다운로드 받으면 됩니다.
(즉, 메일중 광고성 메일이나 미확인 발신자로부터의 메일을 삭제조치하시면 됩니다.)
5. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <orbiter>, 서버: <mail.test.com>, 프로토콜: SMTP, 포트: 25, 보안(SSL): 아니오, 소켓 오류: 11001, 오류번호: 0x800CCC0D
- SMTP 서버 이름을 다시 정확히 확인후 수정하여 주시기 바랍니다.
SMTP 서버의 이름은 다음과 같습니다.
SMTP/POP3 : [gw.고객사도메인명] or [mail.고객사도메인명]
6. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <orbiter>, 서버: <mail30.test.com>, 프로토콜: SMTP, 포트: 25, 보안(SSL): 아니오, 소켓 오류: 11004, 오류 번호: 0x800CCC0D
- 받는 메일(POP3) 값이 제대로 되었는지 확인 (※ V3 백신 구 버젼을 사용하실 경우 위와 같이 포트 값이 1110으로 바뀝니다. V3를 삭제 하신 후 메일 계정을 다시 설정하시기 바랍니다.)
7. 받는 사람 중 한 사람이 서버에서 거부되었으므로 메시지를 보낼 수 없습니다. 거부된 전자 메일 주소는 <test@test.com> 제목 <test>, 계정: <test>, 서버: <test.com>, 프로토콜: SMTP, 서버 응답: [553 RCPT <test@test.com> ERROR. Relaying not allowed], 포트: 25, 보안(SSL): 아니오, 서버 오류: 553, 오류 번호: 0x800CCC79
- 해결방안1
이때는 현재 사용하시는 인터넷 회선 제공업체를 다시 확인하시고 그에 맞는 해당 업체의 SMTP 서버명으로 SMTP 를 설정하셔서 메일을 보내셔야 합니다. 각 통신사 마다 통신사의 회원에게만 SMTP를 사용하도록 설정이 되어 있으므로 타통신사를 통하여 메일을 발송할 수는 없습니다.
- 해결방안2
[도구] - [계정] - [메일] - 셋팅한 메일의 [등록정보] - [서버]에서 제일 밑부분의 보내는 메일서버에서 인증 필요를 체크해주시고 다시 연결 시도
8. 보안 암호 인증을 사용하여 서버에 로그온할 수 없습니다. 계정: <test.co.kr>, 서버: <test.co.kr>, 프로토콜: POP3, 서버 응답: <.>, 포트: 110, 보안(SSL): 아니오, 오류 번호: 0x800CCC18
- [도구] - [계정] - [메일] -> 셋팅한 메일의 [등록정보] -> [서버] 부분에서 -> 보안 암호 인증(SPA)을 사용하여 로그온 체크 해지
400 에러(송신단계의 문제)
1. 421 Server too busy
- 수신 측 서버의 일시 장애로 연결이 안되는 현상으로 이는 수신 측 서버의 SMTP 세션이 Full 이거나 수신 측 서버의 트래픽으로 인해 새로운 SMTP 연결을 만들지 못하는 경우 발생할 수 있습니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
2. 421-Microsoft ESMTP MAIL Service, Version: 5.0.2195.5600 ready at Service not available, closing transmission channel
- 수신 측 서버인 Microsoft ESMTP 서비스가 정상적으로 동작하지 않아 메일을 송신하지 못하는 오류입니다. 시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
3. 421 4.3.1 ILLEGAL FROM <xxx@xxx.com> Sorry. Your IP has problems. This Connection will be closed. Please mail to mailsysop@hanmir.com (by using another e-mail server). Thank you.
- 송신 측의 아이피 주소 또는 메일주소가 잘못 되어 송신이 제한된 오류입니다. 안내되어진 메일주소로 문의 메일을 보내시기 바랍니다.
4. 421 4.3.2 Your IP(xxx.xxx.xxx.xxx) is filtered and this connection will be closed. You must register your IP to spammaster@hanafos.com By SpaceLee, the Lord of mail server
- 송신 측의 아이피 주소가 하나포스닷컴에 스팸 메일러로 등록이 되어 송신이 제한된 오류입니다. 안내되어진 메일주소로 문의 메일을 보내시기 바랍니다.
5. 421 4.3.2 Your IP(xxx.xxx.xxx.xxx) is filtered and this connection will be closed. You must register your IP to http://realip.naver.com.
- 송신 측의 아이피 주소가 네이버닷컴에 스팸 메일러로 등돌이 되어 송신이 제한된 오류입니다. 네이트닷컴의 스팸 정책을 참고하시기 바랍니다.
6. 441 4.4.1 No answer from host- 수신 측의 메일서버로부터 응답을 받지 못해 연결이 실패된 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
7. 441 4.4.1 temporay dns failed <Hanmail.net>
- 한메일닷넷의 메일서버로 연결하던 도중 한메일의 스팸정책에 위배되어 발생한 오류입니다. 다음의 연락처로 연락해 보시기 바랍니다. 1544-0580 내선번호 2
8. 450 <xxx@xxx.xxx> : Recipient address rejected: Greylisted for 300 seconds (see http://isg.ee.ethz.ch/tools/postgrey/help)
- 송신 측의 메일주소가 수신측에서 참조하고 있는 Graylisting 시스템에 등록되어 메일발송이 지연되고 있는 오류입니다.
9. 451 4.4.0 DNS resolving error
- 수신 측 서버의 도메인을 찾지 못해 발생한 오류입니다. 현재 메일서버가 참조하고 있는 DNS 서버가 정상적으로 동작하는지 확인해 보시기 바랍니다. 또한 다른 ISP 업체들의 DNS를 참조하여 메일을 송신해 보시기 바랍니다.
10. 451 4.3.0 Other or undefined mail system status
- 수신 측 메일 시스템의 프로토콜이 틀리거나 연결된 서버가 SMTP 서버가 아닐경우 발생하는 오류입니다.
11. 451 4.3.0 Temporary system failure. Please try again later
- 수신 측 서버의 일시적인 장애로 인하여 메일을 수신하지 못하는 오류입니다.
12. 451 4.4.2 Bad connection (io timeout)
- 수신 측 서버의 응답시간 초과로 인하여 연결이 끊어져 발생한 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
13. 451 Relay Server Not Ready
- 수신 측 서버의 릴레이 기능이 정상적으로 동작하지 않아 발생한 오류입니다. 잠시 후 다시 시도해 보거나 오류가 계속 될 경우 수신 측 관리자에게 문의 하시기 바랍니다.
14. 452 sorry, your recipient address is not in my local list
- 수신자의 메일주소가 수신 측의 메일서버에 존재하는 계정이 아니어서 발생한 오류입니다. 수신자의 메일주소를 올바르게 표기하였는지 확인해 보시기 바랍니다. 또한, 해당 주소가 실제 수신 측에 존재하는 계정인지 확인해 보시기 바랍니다.
15. 452 4.4.5 Requested mail action aborted: exceeded storage allocation
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
16. 452 4.4.5 Disk write / Insufficient disk space error occurred
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
17. 452 4.4.5 Insufficient disk space; try again later
- 수신 측 메일서버의 저장공간 부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
18. 452 4.4.5 MailBox or MessageQuota exceed for <E-mail Address>
- 수신자 메일 사서함의 공간부족으로 인하여 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
500 에러(수신단계의 문제)
1. 5XX you must be spam
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
2. 5XX Your envelope sender is enlisted as spammer
- 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
3. 500 Syntax error, command unrecognized
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
4. 500 File Sending Error
- 메일 메시지 전송도중 네트웍 장애등의 이유로 전송에 실패하여 발생한 오류입니다.
5. 501 Denied domain name
- 송신 측의 도메인이 수신 측의 서버에서 거부되어 발생한 오류입니다.
6. 501 Bad sender address expression
- 송신자 또는 수신자의 메일주소가 정상적이지 않아 발생한 오류입니다. 송신자의 메일주소가 정확한지 확인해 보시기 바랍니다.
7. 501 Argument missing
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
8. 501 5.1.8 Sender domain must exist <xxx.com>
- 수신 측 xxx.com 도메인이 존재하지 않아 발생한 오류입니다. 수신자 메일수조 중 도메인 부분이 정확하게 적혀있는 지 확인하시기 바랍니다. 주소가 정확한 경우 수신 측 관리자에게 문의하여 실제 도메인이 해당 메일서버에 등록되어 있는지 확인하시기 바랍니다.
9. 503 Bad sequence of commands
- SMTP 명령어 중 일부 누락 또는 일부 잘못된 명령어로 인하여 발생한 오류입니다.
10. 504 You are registered as spammer
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
11. 504 We do not accept mail from spammers. if you have questions,please Email
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
12. 511 sorry, no mailbox here by that name (#5.1.1 - chkuser)
- 수신자의 메일주소가 수신 측의 메일서버에 존재하지 않는 계정인 경우 발생하는 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
13. 550 No inbox for <E-mail Address>
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
14. 550 User unknown
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
15. 550 Requested action not taken: mailbox unavailable
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
16. 550 5.1.1 Suspended mailbox
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
17. 550 5.1.1 No such user <E-mail Address>
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
18. 550 Invalid recipient
- 수신자의 메일주소가 실제 존재하지 않는 계정이거나 사용 중지된 계정상태로 인하여 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신자의 계정이 실제 존재하는지 사용가능한 상태인지 수신 측 관리자에게 문의하시기 바랍니다.
19. 550 5.0.0 Access denied
- 수신 측 메일서버로의 접속이 거부되어 발생한 오류입니다. 수신 측 메일서버에 송신 측의 메일서버가 거부되어 있는지 확인해 보시기 바랍니다.
20. 553 sorry, that domain isn't in my list of allowed rcpt hosts
- 수신 측의 도메인주소가 수신 측 메일서버에 존재하지 않아 발생한 오류입니다. 수신자의 메일 주소가 정확한지 확인해 보시기 바랍니다. 또한 수신 측의 도메인 주소가 수신 측 메일서버에 존재하는지 확인해 보시기 바랍니다.
21. 550 Relay rejected for <E-Mail Address>
- 수신 측의 메일서버에서 해당 E-Mail Address 로 릴레이를 거부하여 발생한 오류입니다. 수신 측 관리자에게 문의하시기 바랍니다.
22. 550 relaying to <E-Mail Address> prohibited by administrator
- 수신 측의 메일서버에서 해당 E-Mail Address 로 릴레이를 거부하여 발생한 오류입니다. 수신 측 관리자에게 문의하시기 바랍니다.
23. 553 Too many recipients
- 수신 측 메일서버에서 허용한 동시 수신 메일 수를 초과하여 발생한 오류입니다. 수신 측 메일서버에서 허용한 수 이하로 메일을 송신해 보시기 바랍니다.
24. 553 sorry, your envelope sender is in my badmailfrom list.
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
25. 553 sorry, your envelope sender is enlisted as spammer
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 수신 측의 메일서버에 스패머로 등록되어 발생한 오류입니다. 수신 측 관리자에게 문의 하여 스팸 리스트에서 삭제하시기 바랍니다.
26. 550 5.0.0 Your message may contain the Klez.worm! See http://securityresponse.symantec.com/avcenter/venc/data/w32.klez.removal.tool.html
- 송신한 메일 메시지 않에 Klez worm 바이러스가 포함되어 수신 측 메일서버에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
27. 553 5.0.0 Your message may contain the Win32.Klez worm!!- If you have questions,please email
- 송신한 메일 메시지 안에 Win32.Klez worm 바이러스가 포함되어 수신 측 메일서버에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
28. 553 5.5.4 Host name (xxx.com) is not match with your ip(xxx.xxx.xxx.xxx), maybe it's bogus. Visit http://antispam.hanmail.net
- 수신 측의 메일서버에서 송신 도메인 xxx.com 에 대하여 DNS Lookup 한 결과 송신된 IP 주소인 xxx.xxx.xxx.xxx 와 일치 하지 않아 송신이 거부된 오류 입니다. 송신 측 도메인에 대한 호스트(A) 레코드 생성 후 이를 송신 측 메일서버의 아이피 주소와 일치시켜 주시기 바랍니다.
29. 553 5.5.4 <xxx> ... Domain name required for sender address <xxx>
- 송신 측의 메일주소가 ID@Domain_Name 형식이 아닌 잘못된 형식으로 송신을 시도하여 발생한 오류 입니다. 송신자의 메일주소가 올바른지 확인해 보시기 바랍니다.
30. 554 5.3.4 Too big mail sent. Max allowed mail size is xxxxxxxxx bytes
- 수신 측 메일서버에서 허용한 메일 사이즈보다 큰 메일을 송신하여 발생한 오류입니다. 송신 메일의 사이즈를 점검하여 허용 사이즈 이하로 재 전송해 보시기 바랍니다.
31. 554 5.3.0 Mail have traversed Too many hops. Reject it
- 수신 측 메일서버에서 허용한 동시 수신 메일 수를 초과하여 발생한 오류입니다. 수신 측 메일서버에서 허용한 수 이하로 메일을 송신해 보시기 바랍니다.
32. 554 delivery error: dd Sorry, your message to <E-Mail Address> cannot be delivered. This account is over quota
- 수신자의 메일사서함 용량이 초과되어 메일을 수신하지 못하는 오류 입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
33. 554 5.1.0 Sender Denied
- 송신 측의 메일주소가 거부되어 발생한 오류입니다. 수신 측 관리자에게 문의 하시기 바랍니다.
34. 554 5.5.0 Your message was rejected. Please refer to http://antispam.nate.com/554-550.html [Reject Option]
- 네이트 닷컴의 스팸 정책에 위배되어 메일을 송신하지 못한 오류입니다. 네이트 닷컴의 스팸 정책을 확인해 보시기 바랍니다.
35. 554 delivery error: dd This user doesn't have a yahoo.com account (E-Mail Address) [-5] - mta114.mail.sc5.yahoo.com
- 수신자의 메일주소가 야후닷컴에 실재 존재하지 않은 계정인 경우 발생하는 오류입니다. 수신자의 메일주소를 정확하게 입력하였는지 확인해 보시기 바랍니다.
36. 550 5.7.1 <E-Mail Address>. Relaying denied. IP name lookup failed <IP Address>
- 송신자의 메일주소가 DNS IP Name Lookup 에 실패하여 릴레이가 거부된 오류입니다. 송신 측 DNS 서버의 정방향 조회 영역에 송신 측 메일서버 IP Address 와 일치하는 메일교환기(MX) 레코드 값이 정확하게 설정되어 있는지 확인해보시기 바랍니다. 또한, 송신 측 DNS 서버의 역방향 조회 영역에 송신 측 메일서버 IP Address에 대하여 포인터가 올바르게 구성되어 있는지 확인해 보시기 바랍니다.
37. 550 5.5.0 VIRUS detected from your mail. Cure & Try again. Found by virus scan engine.
- 송신한 메일 메시지 안에 바이러스가 포함되어 수신 측에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
38. 550 Denied by policy: Sender is listed on DNS-based RBL
- 송신 측의 메일서버의 도메인 또는 IP 주소 또는 송신자의 메일주소가 RBL (Real time Black List) 에 포함되어 수신 측의 메일서버에서 거부되어 발생한 오류입니다. 송신 측의 도메인 또는 아이피 주소가 등록되어 있는 RBL을 확인하여 리스트에서 제거하시기 바랍니다. 리스트에서 제거하는 방법은 RBL 사이트 마다 다르며 해당 사이트의 지시를 따르시기 바랍니다.
39. 550 Mail sender unuses allowed IP. SMTP Proxy Server close ...
- 송신 측의 IP Address 가 수신 측의 메일서버에서 거부되어 발생한 오류입니다. 수신 측 관리자에게 문의하여 송신 측의 IP가 거부되어 있는지 확인하신 후 삭제하시기 바랍니다.
40. 553 5.5.3 <E-Mail Address>... Invalid
- 송신자 또는 수신자의 메일주소가 잘못되어 발생한 오류입니다. 송신자 또는 수신자의 메일주소가 올바른지 확인해 보시기 바랍니다.
41. 557 you must be virus
- 송신자의 메일이 바이러스로 인식되어 수신 측에서 거부된 오류입니다. 클라이언트 및 서버의 상태를 점검해 보시기 바랍니다. 또한 첨부 파일이 있을 경우 첨부 파일에 바이러스가 포함되지 않았는지 확인해 보신 후 재 전송하시기 바랍니다.
기타 에러
1. Error-Connect
- 네트웍의 장애 또는 수신 측 메일서버의 장애 또는 기타의 이유로 송신 측과 수신 측 사이에 연결이 이루어지지 않아 발생한 오류입니다. 네트웍 또는 송, 수신 측의 메일서버 상태를 점검 후 재 시도 해보시기 바랍니다.
2. Temporary system failure
- 송신 측 또는 수신 측 메일서버 또는 네트웍의 일시적인 장애입니다. 재시도 결과 같은 현상이 반복될 경우 메일서버 및 네트웍의 전반적인 상태를 점검해 보시기 바랍니다.
3. No SMTP server
- 송신 측의 메일서버에서 참조 하고 있는 DNS 서버에서 수신 측의 메일서버를 찾지 못하였거나 실제로 수신 측의 메일서버가 존재하지 않아 발생한 오류입니다. 송신 측의 DNS 서버가 정상적으로 운영 중인지 확인하신 후 이상이 없으실 경우 수신 측의 메일서버가 존재하고 있는지 확인해 보시기 바랍니다.
4. An error occurred attempting to connect to the DNS Server(s) Additional error information: The following exception occurred attempting to connect to <IP>
- 송신 측의 메일서버가 참조하고 있는 DNS 서버에 연결하려고 하였으나 연결하지 못해 발생한 오류입니다. DNS 서버가 정상적으로 동작하고 있는지 확인해 보시기 바랍니다.
5. Error Data Sending
- 송신 측과 수신 측의 메일서버 연결은 정상적으로 이루어 졌으나 실제 메일 데이터를 전송하는 과정에서 정상적으로 전송하지 못해 발생한 오류입니다. 현재 네트웍 상태가 정상적인지 확인해 보신 후 재시도 해보시기바랍니다.
6. Error Sending Timeout
- 메일 데이터를 전송하는 과정에서 지정된 시간 내에 전송하지 못해 발생한 오류입니다. 현재 네트웍 상태가 정상적인지 확인해 보신 후 재시도 해보시기 바랍니다.
아웃룩 에러
1. 메일 서버에 로그온하는 데 문제가 있습니다. 지정한 암호가 거부되었습니다. 계정 : <mail.test.com>, 서버: <mail.test.co.kr>, 프로토콜: POP3, 서버 응답: <-ERR Bad login>, 포트: 110, 보안(SSL): 아니오, 서버 오류: 0x800CCC90, 오류 번호: 0x800CCC92
- 아웃룩에서 [도구]->[계정]->[등록정보]->[서버]->비밀번호변경 또는 SiteControl에 로그인후 [계정관리자] ->[비밀번호 변경]을 통하여 비밀번호를 다시 지정하시기 바랍니다. 간혹 메일 계정 용량 초과 사용하실때도 이와 같이 나타납니다.
2. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <admin>, 서버: <mail.test.com>, 프로토콜: POP3, 포트: 110, 보안(SSL): 아니오, 소켓 오류: 11001, 오류 번호: 0x800CCC0D서버에 연결할 수 없습니다. 계정: <mail.xxxx.xx.>
- POP3 이름을 다시 정확히 확인후 POP3 서버명을 수정해 주시기 바랍니다.
예>인에이지 POP3 : mail.test.com
3. [서버에 연결할 수 없습니다. 계정: <mail.xxxx.xx.xx>, 서버: <127.0.0.1>, 프로토콜: POP3, 포트: 1110, 보안(SSL): 아니오, 소켓 오류: 10061, 오류 번호: 0x800CCC0E]
- V3Pro 2002 Deluxe를 설치하여 [POP3 감시], [Outlook 감시]를 [On]하시면 Outlook Express의 계정부분에 127.0.0.1과 같이 Local의 IP가 덧붙여 지게 됩니다.
받는 메일 서버 : 127.0.0.1
계정 이름 : 계정 이름/원래 메일 서버 주소/110 [127.0.0.1]는 가상의 프록시 서버로 고객님께서 메일을 받으시기 전 미리 바이러스 검사를 하도록 되어 있습니다
만약 계정변경 후 POP3 감시의 에러가 발생해 위와 같이 세팅된 상태에서 POP3 감시 모듈이 정상 작동을 하지 않는다면 메일을 수신할 수 없게 됩니다. 그러한 경우에는 아래와 같은 방법으로 조치해 주시면 됩니다.
(1) V3Pro 2002 Deluxe의 실시간 감시에서 POP3 감시, Outlook 감시를 Off 시킵니다.
(2) V3와 Outlook Express를 모두 종료한 다음 다시 Outlook Express를 실행하여 [도구]-[계정]-[메일]에서 POP3 감시를 설정한 계정을 선택합니다.
[등록정보]->[고급]에서 서버 포트 설정을 받는 메일을 110으로 바꾸어 주신 후, V3Pro 2002 Deluxe에서 POP3 감시와 Outlook 감시를 다시 On으로 설정을 변경해 주시면 정상적으로 송수신이 됩니다.
4. 서버 연결이 갑자기 종료되었습니다. 서버 문제, 네트워크 문제 또는 연결해 놓고 장시간 사용하지 않은 것이 원인일 수 있습니다. 계정 : <xxxxxxx>, 서버 :<mail.xxxxx.xxx>, 프로토콜: POP3, 서버 응답: <+OK 4096 octers>, 포트: 110, 보안(SSL): 아니오, 오류번호: 0x800CCC0F
- 원인은 PC에 설치된 백신 소프트웨어 혹은 하드웨어가 있을때 발생합니다. 백신 소프트웨어 혹은 하드웨어가 서버에서 다운로드되는 이메일을 검사하여, 메일중에 바이러스로 의심되는 이메일이 존재할때, PC의 안전을 위하여 서버와의 연결을 중도에 끊습니다.
그러므로, 이때의 해결방법은 웹메일로 로그인을 하여 바이러스에 감염이 된 것으로 의심되는 화일을 삭제한 후 다시 다운로드 받으면 됩니다.
(즉, 메일중 광고성 메일이나 미확인 발신자로부터의 메일을 삭제조치하시면 됩니다.)
5. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <orbiter>, 서버: <mail.test.com>, 프로토콜: SMTP, 포트: 25, 보안(SSL): 아니오, 소켓 오류: 11001, 오류번호: 0x800CCC0D
- SMTP 서버 이름을 다시 정확히 확인후 수정하여 주시기 바랍니다.
SMTP 서버의 이름은 다음과 같습니다.
SMTP/POP3 : [gw.고객사도메인명] or [mail.고객사도메인명]
6. <mail.test.com> 호스트를 찾을 수 없습니다. 서버 이름을 올바르게 입력했는지 확인하십시오. 계정: <orbiter>, 서버: <mail30.test.com>, 프로토콜: SMTP, 포트: 25, 보안(SSL): 아니오, 소켓 오류: 11004, 오류 번호: 0x800CCC0D
- 받는 메일(POP3) 값이 제대로 되었는지 확인 (※ V3 백신 구 버젼을 사용하실 경우 위와 같이 포트 값이 1110으로 바뀝니다. V3를 삭제 하신 후 메일 계정을 다시 설정하시기 바랍니다.)
7. 받는 사람 중 한 사람이 서버에서 거부되었으므로 메시지를 보낼 수 없습니다. 거부된 전자 메일 주소는 <test@test.com> 제목 <test>, 계정: <test>, 서버: <test.com>, 프로토콜: SMTP, 서버 응답: [553 RCPT <test@test.com> ERROR. Relaying not allowed], 포트: 25, 보안(SSL): 아니오, 서버 오류: 553, 오류 번호: 0x800CCC79
- 해결방안1
이때는 현재 사용하시는 인터넷 회선 제공업체를 다시 확인하시고 그에 맞는 해당 업체의 SMTP 서버명으로 SMTP 를 설정하셔서 메일을 보내셔야 합니다. 각 통신사 마다 통신사의 회원에게만 SMTP를 사용하도록 설정이 되어 있으므로 타통신사를 통하여 메일을 발송할 수는 없습니다.
- 해결방안2
[도구] - [계정] - [메일] - 셋팅한 메일의 [등록정보] - [서버]에서 제일 밑부분의 보내는 메일서버에서 인증 필요를 체크해주시고 다시 연결 시도
8. 보안 암호 인증을 사용하여 서버에 로그온할 수 없습니다. 계정: <test.co.kr>, 서버: <test.co.kr>, 프로토콜: POP3, 서버 응답: <.>, 포트: 110, 보안(SSL): 아니오, 오류 번호: 0x800CCC18
- [도구] - [계정] - [메일] -> 셋팅한 메일의 [등록정보] -> [서버] 부분에서 -> 보안 암호 인증(SPA)을 사용하여 로그온 체크 해지
2017년 2월 1일 수요일
[Arduino] 온습도센서 값을 mysql에 저장
[ 출처 : http://blog.naver.com/sealclear/ ]
[정보]
- DHT11 온습도센서
- DHT 라이브러리를 추가하였음
- 이더넷 쉴드를 장착함.
- PHP사용하여 DB에 온습도 값 저장
- MYSQL 테이블 세팅
[증상 그리고 시도해본 것들]
- 웹페이지에 접속할 때마다 db에 0값이 들어감
- 자바스크립트로 자동 refresh 기능을 넣었는데... refresh될 때마다 db에 0값이 들어감
- 자바스크립트 문제라 판단하여 자바스크립트 소스를 삭제하고 수동으로 refresh를 해보면 똑같이 db에 0이 들어간다.
- 웃긴 건 php insert 쪽 쿼리문에 if문을 삽입하여 온습도 변수 값이 0인경우 쿼리문을 삽입하지 마라는 조건을 넣었는데... 그 조건을 넣으면 db에 아무런 값이 입력되지 않음.
근데 지금은 됨... ㅡ ㅅ ㅡ... 저기서 추측컨데 아두이노에서 그럼 0을 보내는건가? 해서 아두이노 소스에 리딩값이 0이면 보내지 마 라는 조건문을 넣었지만 실패...
- 커넥시간으로 인하여... 즉 온습도 값을 db에 삽입해, 그리고 소팅해서 맨 마지막 레코드를 출력해라는 쿼리가 있는데.. 두번째 쿼리인 경우 시간이 걸린다.. 근데.. 소팅이 완
료되기 전에 다음 문장을 읽는다면.. 로스가 생기기때문에 0이들어간다고 생각하여 sleep문을 삽입하여 딜레이를 줬었다.. 그래도 db에 여전히 0값이 들어갔었었다...
- php안에 전역변수와 함수를 만들고 소팅해서 맨 마지막 레코드를 읽을 때 0이 아닌것을 읽어라 라는 소스를 만들었었는데... 함수 외부에 있는 전역변수는 결론적으로 loop
되는 문장안에 있어서 언젠가는 값이 날라가게 되어 있다... 그래서 슈퍼 전역변수를 사용하려고 했는데... 생각해보면... db에 원인을 알수 없지만 0이 들어간다.. 그런데 해
결을 못하겠다... 그래서... 0이 아닌것을 읽곘다... 이러면... 트러블슈팅을 하는게 아니라.. 회피하는거라서... 이 방법은 아니라고 생각하고 포기함
[결론]
- 웹페이지 refresh 마다 db에 0이 들어가는 문제가 해결되었음
[소스]
- 아두이노-
#include "DHT.h" //DHT 온습도 센서 라이브러리 사용
#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#define DHTPIN 2 //디지털 2번 핀 사용
#define DHTTYPE DHT11 // DHT11 사용
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xF1, 0x67 };
char server[] = "192.168.0.222"; //접속할 서버 주소 APMSETUP이 실행중인 컴퓨터의 ip
IPAddress ip(192,168,0,215); //아두이노에 부여하는 ip (고정ip부여함)
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
EthernetClient client;
DHT dht(DHTPIN, DHTTYPE); //DHT 라이브러리에 포함된 함수 형태정의
void setup() {
dht.begin(); //온습도 센서 동작시작
Serial.println("Sensor Ready");
Ethernet.begin(mac, ip, gateway, subnet); //이더넷 연결 시작
Serial.begin(9600); //시리얼 통신 시작
delay(1000);
Serial.println("connecting...");
}
void loop() {
int humidity = dht.readHumidity(); //습도 읽어
int temperature = dht.readTemperature(); //온도 읽어
if(humidity!=0 && temperature!=0) //온습도가 0이면 MYSQL에 값 보내지 마
{
if (client.connect(server, 80)) { // Http 요청 헤더
client.print( "GET /test6.php?"); //읽을 PHP 파일
client.print("humidity=");
client.print( humidity );
client.print("&&");
client.print("temperature=");
client.print( temperature ); //여기까지는 PHP에서 받기로한 데이터들이다
client.println( " HTTP/1.1");
client.println( "Host: 192.168.0.222" ); //요청을 보낼 서버의 주소
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.stop();
Serial.print("Current humdity = ");
Serial.print(humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(temperature);
Serial.println("C ");
Serial.println("OK");
}
}
delay(5000); //5초에 한번씩 센서 리딩
}
-php-
<?php
//php info
$mysql_hostname = 'localhost';
$mysql_username = 'root';
$mysql_password = 'apmsetup';
$mysql_database = 'arduino';
//DB연결
$connect = new mysqli($mysql_hostname, $mysql_username, $mysql_password, $mysql_database);
//DB연결 확인
if($connect->connect_errno){
echo '[연결실패] : '.$connect->connect_error.'<br>';
} else {
echo '[연결성공]<br>';
}
$humidity = $_GET['humidity']; //습도 읽어와
$temperature = $_GET['temperature']; //온도 읽어와
if($humidity!=0){ //온습도 값을 DB에 삽입하는 쿼리
$query = "insert into temp(humidity, temperature) values('$humidity', '$temperature')";
$connect->query($query); //쿼리실행
}
do { //맨 마지막 레코드를 읽는 쿼리
$query3 = "select * from temp order by no desc limit 1;";
$result = $connect->query($query3); //쿼리실행
$row = mysqli_fetch_object($result); //실행된 쿼리값을 읽음
} while($row->humidity == 0);
echo date("Y-m-d H:i:s") . "<br />\n"; //날짜와 시간 표시
echo "$row->no ";
echo "$row->humidity ";
echo "$row->temperature";
if($row->temperature>27) { //온도가 27도 넘으면 경보음 울림(로컬 컴퓨터 하단경로에 MP3파일 넣을 것)
echo '<embed src="c:\test.mp3" loop=-1> </embed>';
}
//하단 자바스크립트: 웹페이지 자동 REFRESH기능
?>
<script language='javascript'>
window.setTimeout('window.location.reload()',6000); //1초마다 리플리쉬 시킨다 1000이 1초가 된다.
</script>
[정보]
- DHT11 온습도센서
- DHT 라이브러리를 추가하였음
- 이더넷 쉴드를 장착함.
- PHP사용하여 DB에 온습도 값 저장
- MYSQL 테이블 세팅
[증상 그리고 시도해본 것들]
- 웹페이지에 접속할 때마다 db에 0값이 들어감
- 자바스크립트로 자동 refresh 기능을 넣었는데... refresh될 때마다 db에 0값이 들어감
- 자바스크립트 문제라 판단하여 자바스크립트 소스를 삭제하고 수동으로 refresh를 해보면 똑같이 db에 0이 들어간다.
- 웃긴 건 php insert 쪽 쿼리문에 if문을 삽입하여 온습도 변수 값이 0인경우 쿼리문을 삽입하지 마라는 조건을 넣었는데... 그 조건을 넣으면 db에 아무런 값이 입력되지 않음.
근데 지금은 됨... ㅡ ㅅ ㅡ... 저기서 추측컨데 아두이노에서 그럼 0을 보내는건가? 해서 아두이노 소스에 리딩값이 0이면 보내지 마 라는 조건문을 넣었지만 실패...
- 커넥시간으로 인하여... 즉 온습도 값을 db에 삽입해, 그리고 소팅해서 맨 마지막 레코드를 출력해라는 쿼리가 있는데.. 두번째 쿼리인 경우 시간이 걸린다.. 근데.. 소팅이 완
료되기 전에 다음 문장을 읽는다면.. 로스가 생기기때문에 0이들어간다고 생각하여 sleep문을 삽입하여 딜레이를 줬었다.. 그래도 db에 여전히 0값이 들어갔었었다...
- php안에 전역변수와 함수를 만들고 소팅해서 맨 마지막 레코드를 읽을 때 0이 아닌것을 읽어라 라는 소스를 만들었었는데... 함수 외부에 있는 전역변수는 결론적으로 loop
되는 문장안에 있어서 언젠가는 값이 날라가게 되어 있다... 그래서 슈퍼 전역변수를 사용하려고 했는데... 생각해보면... db에 원인을 알수 없지만 0이 들어간다.. 그런데 해
결을 못하겠다... 그래서... 0이 아닌것을 읽곘다... 이러면... 트러블슈팅을 하는게 아니라.. 회피하는거라서... 이 방법은 아니라고 생각하고 포기함
[결론]
- 웹페이지 refresh 마다 db에 0이 들어가는 문제가 해결되었음
[소스]
- 아두이노-
#include "DHT.h" //DHT 온습도 센서 라이브러리 사용
#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#define DHTPIN 2 //디지털 2번 핀 사용
#define DHTTYPE DHT11 // DHT11 사용
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xF1, 0x67 };
char server[] = "192.168.0.222"; //접속할 서버 주소 APMSETUP이 실행중인 컴퓨터의 ip
IPAddress ip(192,168,0,215); //아두이노에 부여하는 ip (고정ip부여함)
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);
EthernetClient client;
DHT dht(DHTPIN, DHTTYPE); //DHT 라이브러리에 포함된 함수 형태정의
void setup() {
dht.begin(); //온습도 센서 동작시작
Serial.println("Sensor Ready");
Ethernet.begin(mac, ip, gateway, subnet); //이더넷 연결 시작
Serial.begin(9600); //시리얼 통신 시작
delay(1000);
Serial.println("connecting...");
}
void loop() {
int humidity = dht.readHumidity(); //습도 읽어
int temperature = dht.readTemperature(); //온도 읽어
if(humidity!=0 && temperature!=0) //온습도가 0이면 MYSQL에 값 보내지 마
{
if (client.connect(server, 80)) { // Http 요청 헤더
client.print( "GET /test6.php?"); //읽을 PHP 파일
client.print("humidity=");
client.print( humidity );
client.print("&&");
client.print("temperature=");
client.print( temperature ); //여기까지는 PHP에서 받기로한 데이터들이다
client.println( " HTTP/1.1");
client.println( "Host: 192.168.0.222" ); //요청을 보낼 서버의 주소
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.stop();
Serial.print("Current humdity = ");
Serial.print(humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(temperature);
Serial.println("C ");
Serial.println("OK");
}
}
delay(5000); //5초에 한번씩 센서 리딩
}
-php-
<?php
//php info
$mysql_hostname = 'localhost';
$mysql_username = 'root';
$mysql_password = 'apmsetup';
$mysql_database = 'arduino';
//DB연결
$connect = new mysqli($mysql_hostname, $mysql_username, $mysql_password, $mysql_database);
//DB연결 확인
if($connect->connect_errno){
echo '[연결실패] : '.$connect->connect_error.'<br>';
} else {
echo '[연결성공]<br>';
}
$humidity = $_GET['humidity']; //습도 읽어와
$temperature = $_GET['temperature']; //온도 읽어와
if($humidity!=0){ //온습도 값을 DB에 삽입하는 쿼리
$query = "insert into temp(humidity, temperature) values('$humidity', '$temperature')";
$connect->query($query); //쿼리실행
}
do { //맨 마지막 레코드를 읽는 쿼리
$query3 = "select * from temp order by no desc limit 1;";
$result = $connect->query($query3); //쿼리실행
$row = mysqli_fetch_object($result); //실행된 쿼리값을 읽음
} while($row->humidity == 0);
echo date("Y-m-d H:i:s") . "<br />\n"; //날짜와 시간 표시
echo "$row->no ";
echo "$row->humidity ";
echo "$row->temperature";
if($row->temperature>27) { //온도가 27도 넘으면 경보음 울림(로컬 컴퓨터 하단경로에 MP3파일 넣을 것)
echo '<embed src="c:\test.mp3" loop=-1> </embed>';
}
//하단 자바스크립트: 웹페이지 자동 REFRESH기능
?>
<script language='javascript'>
window.setTimeout('window.location.reload()',6000); //1초마다 리플리쉬 시킨다 1000이 1초가 된다.
</script>
2017년 1월 25일 수요일
[ABAP] ALV내 색상 표기 방법
[ 출처 : http://www.like2party.net/ ]
[ 출처 : http://oprsteny.com/ ]
ABAP Color 색상표[참조 프로그램 SHOWCOLO ]
[ 출처 : http://oprsteny.com/ ]
ABAP Color 색상표[참조 프로그램 SHOWCOLO ]
ALV내 cell 색상을 Row로 처리 하는 방법
화면에 표시하고져 하는 필드에 위의 표시 색상을 추가
화면에 표시하고져 하는 필드에 위의 표시 색상을 추가
LOOP AT GT_DATA.
.....
GT_DATA-COLOR_FIELD = 'C310'.
.....
ENDLOOP.
※ GT_DATA-KEY = 'X'로 설정시 COLOR이 적용되지 않음(주의)
ALV내의 Layout에 해당 필드명을 명기
2017년 1월 17일 화요일
[ABAP] 시스템 내부 변수들.
[출처 : http://www.sapjoy.co.kr/ ]
SY-INDEX Loop Index -데이터의 위치를 정수로 리턴
SY-PAGNO Current List Page - 리스트의 현재 페이지 번호
SY-TABIX Index of Internal Tables - 내부테이블의 현재 인덱스
SY-TFILL Row Number of Internal Tables - 내부 테이블의 총 레코드 수 ( DESCRIBE TABLE itab LINES l_lines 의 l_lines 와 동일한 결과임 )
SY-TLOPC Internal ABAP System Field - 내부 사용
SY-TMAXL Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TOCCU Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TTABC Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TSTIS Internal ABAP System Field - 내부 사용
SY-TTABI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DBCNT Processed Database Table Rows - 데이터베이스에서 처리(선택, 삭제, 삽임)된 데이터 수(select, insert, delete)
SY-FDPOS Found Location in Byte or Character String - 탐색(seacch 등)의 찾은 문자 위치 ex) data text(10) type 'ABCDEFGHI'. SEARCH text FOR 'C'. result sy-fdpos = 2.
SY-COLNO Current List Column - 리스트에서 현재 컬럼 ( write 로 리스트 출력 후 더블클릭등 이벤트에서 활용 )
SY-LINCT Page Length of List - 리스트의 한 페이지의 라인수 ( report에서 line-count 로 설정된 값 )
SY-LINNO Current Line in List - 리스트내의 현재 라인
SY-LINSZ Line width of list - 리스틍의 한 페이지의 컬럼수 ( report에서 line-size 로 설정된 값 )
SY-PAGCT Obsolete ABAP System Field - 폐기된 시스템 필드
SY-MACOL Number of Columns on Left Margin of Print List - 리스트 출력 시 왼쪽여백 컬럼수
SY-MAROW Number of Columns in Top Margin of a Print List - 리스트 출력 시 위쪽여백 컬럼수
SY-TLENG Row Length of Internal Table - 내부테이블의 레코드 크기
SY-SFOFF Internal ABAP System Field - 내부 사용
SY-WILLI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-LILLI Selected List Line - 리스트에서 AT LINE-SELECTION 등의 이벤트 발생시 선택된 현재 페이지의 라인
SY-SUBRC Return Value of ABAP Statements - 리턴
SY-FLENG Internal ABAP System Field - 내부 사용
SY-CUCOL Horizontal Cursor Position at PAI - 커서 좌표 ( 수직 값 )
SY-CUROW Vertical Cursor Position at PAI - 커서 좌표 ( 수평 값 )
SY-LSIND Index of Details List - 상세리스트에 대한 인덱스( 최초 1, 이벤트로 다른 리스트가 호출되면 1씩 증가 )
SY-LISTI Index of Displayed List - 표시된 리스트의 인덱스
SY-STEPL Index of Current Step Loop Line - 스텝루프의 라인 인덱스
SY-TPAGI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINX1 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINY1 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINX2 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINY2 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINCO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINRO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINDI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-SROWS Screens, numbers of lines - 스크린 라인 수(모니터에 표시된 전체 화면 크기에 대하여)
SY-SCOLS Screens, number of columns - 스크린의 컬럼 수(모니터에 표시된 전체 화면 크기에 대하여)
SY-LOOPC Visible Lines of a Step Loop - 화면에 표시되는 스텝루프의 라인 수
SY-FOLEN Internal ABAP System Field - 내부 사용
SY-FODEC Internal ABAP System Field - 내부 사용
SY-TZONE Date and Time, Time Difference to UTC Reference Time - 일/시 ?
SY-DAYST Daylight Saving Time Selection - ?
SY-FTYPE Internal ABAP System Field - 내부 사용
SY-APPLI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-FDAYW Factory calendar weekday - 공장달력의 평일 ( 월-1, 화-2, 수-3, 목-4, 금-5 )
SY-CCURS Obsolete ABAP System Field - 폐기된 시스템 필드
SY-CCURT Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DEBUG Internal ABAP System Field - 내부 사용
SY-CTYPE Obsolete ABAP System Field - 폐기된 시스템 필드
SY-INPUT Internal ABAP System Field - 내부 사용
SY-LANGU Language Key of Current Text Environment - 현재 사용 언어
SY-MODNO Index of External Session - 외부 세션 인덱스
SY-BATCH Program is running in the background - 'X' 프로그램이 백그라운드 작업에서 실행되고 있습니다.
SY-BINPT Program Running Under Batch Input - 'X' 프로그램이 BDC로 실행중입니다.
SY-CALLD ABAP program, ABAP program call mode - 'X' 다른프로그램에서 호출되에 사용되고 있습니다.
SY-DYNNR Current Screen Number - 현재 화면번호
SY-DYNGR Screen Group of Current Screen - 현재 화면의 그룹(화면속성의 화면그룹. 주의!-화면의 필드 그룹과 다름 )
SY-NEWPA Internal ABAP System Field - 내부 사용
SY-PRI40 Internal ABAP System Field - 내부 사용
SY-RSTRT Internal ABAP System Field - 내부 사용
SY-WTITL Selection for Standard Page Header - 선택된(현재화면에 출력된) 페이지 헤더
SY-CPAGE Current Page Number of a List - 리스트의 현재 페이지 번호
SY-DBNAM Logical Database of an Executable Program - LDB
SY-MANDT Client ID of Current User - 현재 클라이언트
SY-PREFX Obsolete ABAP System Field - 폐기된 시스템 필드
SY-FMKEY Obsolete ABAP System Field - 폐기된 시스템 필드
SY-PEXPI Spool Retention Period (Print Parameters) - 스풀 보존 기간
SY-PRINI Internal ABAP System Field - 내부 사용
SY-PRIMM Print Immediately (Print Parameters) - 즉시 인쇄
SY-PRREL Delete After Printing (Print Parameters) - 출력 후 삭제
SY-PLAYO Internal ABAP System Field - 내부 사용
SY-PRBIG Selection Cover Page (Print Parameters) - 표지선택
SY-PLAYP Internal ABAP System Field - 내부 사용
SY-PRNEW New Spool Request (Print Parameters) - 신규스풀요청
SY-PRLOG Internal ABAP System Field - 내부 사용
SY-PDEST Output Device (Print Parameters) - 출력장치
SY-PLIST Name of Spool Request (Print Parameters) - 요청스풀이름
SY-PAUTH Internal ABAP System Field - 내부 사용
SY-PRDSN Name of Spool File - 스풀파일명
SY-PNWPA Internal ABAP System Field - 내부 사용
SY-CALLR Start Location of List Print - 출력 시작위치
SY-REPI2 Internal ABAP System Field - 내부 사용
SY-RTITL Name of Print Program (Print Parameters) - 출력프로그램명
SY-PRREC Recipient (Print Parameters) - 수신
SY-PRTXT Text for Cover Page (Print Parameters) - 표지 텍스트
SY-PRABT Department on Cover Page (Print Parameters) -
SY-LPASS Internal ABAP System Field - 내부 사용
SY-NRPAG Internal ABAP System Field - 내부 사용
SY-PAART Print Format (Print Parameters) - 프린트 포맷
SY-PRCOP Number of Copies (Print Parameters) - 출력 수
SY-BATZS Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BSPLD Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BREP4 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZD Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZW Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZM Obsolete ABAP System Field - 폐기된 시스템 필드
SY-CTABL Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DBSYS Central Database System - 중앙 데이터베이스 시스템
SY-DCSYS Obsolete ABAP System Field - 폐기된 시스템 필드
SY-MACDB Obsolete ABAP System Field - 폐기된 시스템 필드
SY-SYSID Name of the SAP System - SAP SYSTEM 명(LogIn SYSTEM 명. ex) 'PRD'(운영), 'DEV' 개발 등...)
SY-OPSYS Operating System of Application Server - 어플리케이션의 운영체제
SY-PFKEY Current GUI Status - 현재 PF-STATUS 이름
SY-SAPRL Release Status of SAP System - 최신버전상태( ex> ECC 6.0 은 700 으로 표시됨)
SY-TCODE Current Transaction Code - 현재 실행중인 트랜잭션 코드
SY-UCOMM Function code that PAI triggered - F-CODE
SY-CFWAE Internal ABAP System Field - 내부 사용
SY-CHWAE Internal ABAP System Field - 내부 사용
SY-SPONO Spool Number of List Print - 스풀 번호
SY-SPONR Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WAERS Obsolete ABAP System Field - 폐기된 시스템 필드
SY-CDATE Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DATUM Current Date of Application Server - 시스템 일자(서버기준)
SY-SLSET Used Selection Screen Variant - SUBMIT 등 SELECTION-SET 을 사용할 경우
SY-SUBTY Internal ABAP System Field - 내부 사용
SY-SUBCS Internal ABAP System Field - 내부 사용
SY-GROUP Internal ABAP System Field - 내부 사용
SY-FFILE Internal ABAP System Field - 내부 사용
SY-UZEIT Current Time of Application Server - 시스템시간(서버기준)
SY-DSNAM Internal ABAP System Field - 내부 사용
SY-TABID Internal ABAP System Field - 내부 사용
SY-TFDSN Obsolete ABAP System Field - 폐기된 시스템 필드
SY-UNAME User Name - LogIn 한 사람의 ID
SY-LSTAT Obsolete ABAP System Field - 폐기된 시스템 필드
SY-ABCDE Latin Alphabet - 알파벳대문자(A~Z)
SY-MARKY Obsolete ABAP System Field - 폐기된 시스템 필드
SY-SFNAM Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TNAME Obsolete ABAP System Field - 폐기된 시스템 필드
SY-MSGLI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TITLE Contents of Title Line - 타이틀
SY-ENTRY Internal ABAP System Field - 내부 사용
SY-LISEL Contents of a Selected List Line - 더블클릭등 이벤트시 선택된 라인의 문자열
SY-ULINE Horizontal Line - '-'
SY-XCODE Internal ABAP System Field - 내부 사용
SY-CPROG Calling Program - 현재 프로그램
SY-XPROG Internal ABAP System Field - 내부 사용
SY-XFORM Internal ABAP System Field - 내부 사용
SY-LDBPG Database Program of a Logial Database
SY-TVAR0 Text Variable for Placeholders in List Headers - 실행시간에 헤더의 문자열을 동적으로 구성하도록 지원함(0 ~ 9)
SY-TVAR1 Text Variable for Placeholders in List Headers - [사용방법]
SY-TVAR2 Text Variable for Placeholders in List Headers - 1. 메뉴->이동->리스트헤딩에서 열헤딩에 &0 ~ &9 까지 설정
SY-TVAR3 Text Variable for Placeholders in List Headers - 2. 프로그램에서 SY-TVAR0 = '텍스트 0', ... , SY-TVAR9 = '텍스트 9' 처럼
SY-TVAR4 Text Variable for Placeholders in List Headers - 텍스트를 설정함.
SY-TVAR5 Text Variable for Placeholders in List Headers - 3. 리스트 헤딩에 설정한 값이 출력될 것임.
SY-TVAR6 Text Variable for Placeholders in List Headers
SY-TVAR7 Text Variable for Placeholders in List Headers
SY-TVAR8 Text Variable for Placeholders in List Headers
SY-TVAR9 Text Variable for Placeholders in List Headers
SY-MSGID Message Class - 메세지 클래스
SY-MSGTY Message Type - 메세지 ID
SY-MSGNO Message Number - 메세지 번호
SY-MSGV1 Message Variable - 메세지 텍스트 1
SY-MSGV2 Message Variable - 메세지 텍스트 2
SY-MSGV3 Message Variable - 메세지 텍스트 3
SY-MSGV4 Message Variable - 메세지 텍스트 4
SY-ONCOM Internal ABAP System Field - 내부 사용
SY-VLINE Vertical Line - '|'
SY-WINSL Obsolete ABAP System Field - 폐기된 시스템 필드
SY-STACO First List Column Displayed - START COLUMN
SY-STARO Top Displayed Line - START ROW
SY-DATAR Selection for Screen Field Input - 'X' : 화면에 입력가능 필드에 값이 입력되었습니다
SY-HOST Name of Current Application Server - 호스트이름
SY-LOCDB Obsolete ABAP System Field - 폐기된 시스템 필드
SY-LOCOP Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DATLO Local Date for Current User - 날짜(현지 일자-사용자 시간대 고려)
SY-TIMLO Local Time of Current User - 시간(현지 시간-사용자 시간대 고려)
SY-ZONLO Time Zone of Current User
SY-INDEX Loop Index -데이터의 위치를 정수로 리턴
SY-PAGNO Current List Page - 리스트의 현재 페이지 번호
SY-TABIX Index of Internal Tables - 내부테이블의 현재 인덱스
SY-TFILL Row Number of Internal Tables - 내부 테이블의 총 레코드 수 ( DESCRIBE TABLE itab LINES l_lines 의 l_lines 와 동일한 결과임 )
SY-TLOPC Internal ABAP System Field - 내부 사용
SY-TOCCU Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TTABC Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TSTIS Internal ABAP System Field - 내부 사용
SY-DBCNT Processed Database Table Rows - 데이터베이스에서 처리(선택, 삭제, 삽임)된 데이터 수(select, insert, delete)
SY-FDPOS Found Location in Byte or Character String - 탐색(seacch 등)의 찾은 문자 위치 ex) data text(10) type 'ABCDEFGHI'. SEARCH text FOR 'C'. result sy-fdpos = 2.
SY-COLNO Current List Column - 리스트에서 현재 컬럼 ( write 로 리스트 출력 후 더블클릭등 이벤트에서 활용 )
SY-LINCT Page Length of List - 리스트의 한 페이지의 라인수 ( report에서 line-count 로 설정된 값 )
SY-LINNO Current Line in List - 리스트내의 현재 라인
SY-LINSZ Line width of list - 리스틍의 한 페이지의 컬럼수 ( report에서 line-size 로 설정된 값 )
SY-MACOL Number of Columns on Left Margin of Print List - 리스트 출력 시 왼쪽여백 컬럼수
SY-MAROW Number of Columns in Top Margin of a Print List - 리스트 출력 시 위쪽여백 컬럼수
SY-TLENG Row Length of Internal Table - 내부테이블의 레코드 크기
SY-SFOFF Internal ABAP System Field - 내부 사용
SY-LILLI Selected List Line - 리스트에서 AT LINE-SELECTION 등의 이벤트 발생시 선택된 현재 페이지의 라인
SY-SUBRC Return Value of ABAP Statements - 리턴
SY-FLENG Internal ABAP System Field - 내부 사용
SY-CUCOL Horizontal Cursor Position at PAI - 커서 좌표 ( 수직 값 )
SY-CUROW Vertical Cursor Position at PAI - 커서 좌표 ( 수평 값 )
SY-LSIND Index of Details List - 상세리스트에 대한 인덱스( 최초 1, 이벤트로 다른 리스트가 호출되면 1씩 증가 )
SY-LISTI Index of Displayed List - 표시된 리스트의 인덱스
SY-STEPL Index of Current Step Loop Line - 스텝루프의 라인 인덱스
SY-WINX1 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINY1 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINX2 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINY2 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINCO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINRO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-WINDI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-SROWS Screens, numbers of lines - 스크린 라인 수(모니터에 표시된 전체 화면 크기에 대하여)
SY-SCOLS Screens, number of columns - 스크린의 컬럼 수(모니터에 표시된 전체 화면 크기에 대하여)
SY-LOOPC Visible Lines of a Step Loop - 화면에 표시되는 스텝루프의 라인 수
SY-FOLEN Internal ABAP System Field - 내부 사용
SY-FODEC Internal ABAP System Field - 내부 사용
SY-TZONE Date and Time, Time Difference to UTC Reference Time - 일/시 ?
SY-DAYST Daylight Saving Time Selection - ?
SY-FTYPE Internal ABAP System Field - 내부 사용
SY-FDAYW Factory calendar weekday - 공장달력의 평일 ( 월-1, 화-2, 수-3, 목-4, 금-5 )
SY-CCURT Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DEBUG Internal ABAP System Field - 내부 사용
SY-INPUT Internal ABAP System Field - 내부 사용
SY-LANGU Language Key of Current Text Environment - 현재 사용 언어
SY-MODNO Index of External Session - 외부 세션 인덱스
SY-BATCH Program is running in the background - 'X' 프로그램이 백그라운드 작업에서 실행되고 있습니다.
SY-BINPT Program Running Under Batch Input - 'X' 프로그램이 BDC로 실행중입니다.
SY-CALLD ABAP program, ABAP program call mode - 'X' 다른프로그램에서 호출되에 사용되고 있습니다.
SY-DYNNR Current Screen Number - 현재 화면번호
SY-DYNGR Screen Group of Current Screen - 현재 화면의 그룹(화면속성의 화면그룹. 주의!-화면의 필드 그룹과 다름 )
SY-NEWPA Internal ABAP System Field - 내부 사용
SY-PRI40 Internal ABAP System Field - 내부 사용
SY-RSTRT Internal ABAP System Field - 내부 사용
SY-WTITL Selection for Standard Page Header - 선택된(현재화면에 출력된) 페이지 헤더
SY-CPAGE Current Page Number of a List - 리스트의 현재 페이지 번호
SY-DBNAM Logical Database of an Executable Program - LDB
SY-MANDT Client ID of Current User - 현재 클라이언트
SY-FMKEY Obsolete ABAP System Field - 폐기된 시스템 필드
SY-PEXPI Spool Retention Period (Print Parameters) - 스풀 보존 기간
SY-PRINI Internal ABAP System Field - 내부 사용
SY-PRIMM Print Immediately (Print Parameters) - 즉시 인쇄
SY-PRREL Delete After Printing (Print Parameters) - 출력 후 삭제
SY-PLAYO Internal ABAP System Field - 내부 사용
SY-PRBIG Selection Cover Page (Print Parameters) - 표지선택
SY-PLAYP Internal ABAP System Field - 내부 사용
SY-PRNEW New Spool Request (Print Parameters) - 신규스풀요청
SY-PRLOG Internal ABAP System Field - 내부 사용
SY-PDEST Output Device (Print Parameters) - 출력장치
SY-PLIST Name of Spool Request (Print Parameters) - 요청스풀이름
SY-PAUTH Internal ABAP System Field - 내부 사용
SY-PRDSN Name of Spool File - 스풀파일명
SY-PNWPA Internal ABAP System Field - 내부 사용
SY-CALLR Start Location of List Print - 출력 시작위치
SY-REPI2 Internal ABAP System Field - 내부 사용
SY-RTITL Name of Print Program (Print Parameters) - 출력프로그램명
SY-PRREC Recipient (Print Parameters) - 수신
SY-PRTXT Text for Cover Page (Print Parameters) - 표지 텍스트
SY-PRABT Department on Cover Page (Print Parameters) -
SY-LPASS Internal ABAP System Field - 내부 사용
SY-NRPAG Internal ABAP System Field - 내부 사용
SY-PAART Print Format (Print Parameters) - 프린트 포맷
SY-PRCOP Number of Copies (Print Parameters) - 출력 수
SY-BSPLD Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BREP4 Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZO Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZD Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZW Obsolete ABAP System Field - 폐기된 시스템 필드
SY-BATZM Obsolete ABAP System Field - 폐기된 시스템 필드
SY-CTABL Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DBSYS Central Database System - 중앙 데이터베이스 시스템
SY-MACDB Obsolete ABAP System Field - 폐기된 시스템 필드
SY-SYSID Name of the SAP System - SAP SYSTEM 명(LogIn SYSTEM 명. ex) 'PRD'(운영), 'DEV' 개발 등...)
SY-OPSYS Operating System of Application Server - 어플리케이션의 운영체제
SY-PFKEY Current GUI Status - 현재 PF-STATUS 이름
SY-SAPRL Release Status of SAP System - 최신버전상태( ex> ECC 6.0 은 700 으로 표시됨)
SY-TCODE Current Transaction Code - 현재 실행중인 트랜잭션 코드
SY-UCOMM Function code that PAI triggered - F-CODE
SY-CFWAE Internal ABAP System Field - 내부 사용
SY-CHWAE Internal ABAP System Field - 내부 사용
SY-SPONO Spool Number of List Print - 스풀 번호
SY-WAERS Obsolete ABAP System Field - 폐기된 시스템 필드
SY-CDATE Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DATUM Current Date of Application Server - 시스템 일자(서버기준)
SY-SLSET Used Selection Screen Variant - SUBMIT 등 SELECTION-SET 을 사용할 경우
SY-SUBTY Internal ABAP System Field - 내부 사용
SY-SUBCS Internal ABAP System Field - 내부 사용
SY-GROUP Internal ABAP System Field - 내부 사용
SY-FFILE Internal ABAP System Field - 내부 사용
SY-UZEIT Current Time of Application Server - 시스템시간(서버기준)
SY-DSNAM Internal ABAP System Field - 내부 사용
SY-TABID Internal ABAP System Field - 내부 사용
SY-UNAME User Name - LogIn 한 사람의 ID
SY-ABCDE Latin Alphabet - 알파벳대문자(A~Z)
SY-SFNAM Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TNAME Obsolete ABAP System Field - 폐기된 시스템 필드
SY-MSGLI Obsolete ABAP System Field - 폐기된 시스템 필드
SY-TITLE Contents of Title Line - 타이틀
SY-ENTRY Internal ABAP System Field - 내부 사용
SY-LISEL Contents of a Selected List Line - 더블클릭등 이벤트시 선택된 라인의 문자열
SY-ULINE Horizontal Line - '-'
SY-XCODE Internal ABAP System Field - 내부 사용
SY-CPROG Calling Program - 현재 프로그램
SY-XPROG Internal ABAP System Field - 내부 사용
SY-XFORM Internal ABAP System Field - 내부 사용
SY-LDBPG Database Program of a Logial Database
SY-TVAR0 Text Variable for Placeholders in List Headers - 실행시간에 헤더의 문자열을 동적으로 구성하도록 지원함(0 ~ 9)
SY-TVAR1 Text Variable for Placeholders in List Headers - [사용방법]
SY-TVAR2 Text Variable for Placeholders in List Headers - 1. 메뉴->이동->리스트헤딩에서 열헤딩에 &0 ~ &9 까지 설정
SY-TVAR3 Text Variable for Placeholders in List Headers - 2. 프로그램에서 SY-TVAR0 = '텍스트 0', ... , SY-TVAR9 = '텍스트 9' 처럼
SY-TVAR4 Text Variable for Placeholders in List Headers - 텍스트를 설정함.
SY-TVAR5 Text Variable for Placeholders in List Headers - 3. 리스트 헤딩에 설정한 값이 출력될 것임.
SY-TVAR6 Text Variable for Placeholders in List Headers
SY-TVAR7 Text Variable for Placeholders in List Headers
SY-TVAR8 Text Variable for Placeholders in List Headers
SY-TVAR9 Text Variable for Placeholders in List Headers
SY-MSGID Message Class - 메세지 클래스
SY-MSGTY Message Type - 메세지 ID
SY-MSGNO Message Number - 메세지 번호
SY-MSGV1 Message Variable - 메세지 텍스트 1
SY-MSGV2 Message Variable - 메세지 텍스트 2
SY-MSGV3 Message Variable - 메세지 텍스트 3
SY-MSGV4 Message Variable - 메세지 텍스트 4
SY-ONCOM Internal ABAP System Field - 내부 사용
SY-VLINE Vertical Line - '|'
SY-STACO First List Column Displayed - START COLUMN
SY-STARO Top Displayed Line - START ROW
SY-DATAR Selection for Screen Field Input - 'X' : 화면에 입력가능 필드에 값이 입력되었습니다
SY-HOST Name of Current Application Server - 호스트이름
SY-LOCOP Obsolete ABAP System Field - 폐기된 시스템 필드
SY-DATLO Local Date for Current User - 날짜(현지 일자-사용자 시간대 고려)
SY-TIMLO Local Time of Current User - 시간(현지 시간-사용자 시간대 고려)
SY-ZONLO Time Zone of Current User
2017년 1월 9일 월요일
오라클 윈도우 함수
[ 출처 : http://evian87.tistory.com/ ]
* 집합 함수
UNION : 합집합(중복행 합쳐짐)
UNION ALL : 합집합(중복행 그대로 표시)
INTERSECT : 교집합
EXCEPT : 차집합
윈도우 함수는 크게 4가지로 구분할 수 있습니다.
첫번째, 그룹내 순위 함수인 RANK, DENSE_RANK, ROW_NUMBER 가 있어요.
두번째, 그룹내 집계 함수인 SUM, MAX, MIN, AVG, COUNT 함수가 있습니다.
세번째, 그룹내 행 순서 함수인 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수가 있고
네번쨰, 그룹내 비율 관련 함수로 CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT 가 있어요.
1.순위함수
1) RANK 함수 : 순위함수(동일 순위가 있을 경우 중복수만큼 순위를 건너 뛴다.
2) DENSE_RANK 함수 : 동일한 순위를 하나의 건수로 취급(중복과 상관없이1부터 순차로지정)
2. 집계 함수
1) SUM 함수 : 파티션별 윈도우의 합
- ange unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
2) MAX 함수 : 파티션별 윈도우의 최대값 / MIN 함수 : 파티션별 윈도우의 최소값
3) AVG 함수 : 파티션별 ROWS 윈도우를 이용해 원하는 조건에 맞는 데이터에 대한 통계값 구함
4) COUNT 함수
3. 그룹 내 행순서 함수
1) FIRST_VALUE 함수 : 파티션별 윈도우에서 가장 먼저 나온 값 출력, 공동 등수 인정X, 처음 나온 행만 처리.
- rows unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
2) LAST_VALUE 함수 : 파티션별 윈도우에서 가장 나중에 나온 값 출력 (=MAX함수)
- rows unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
- rows between current row and unbounded following : 현재 행 포함해서 파티션 내의 마지막 행까지의 범위 지정
3) LAG 함수 : 파티션별 윈도우에서 이전 몇번째 행까지의 값 가져올 수 있다.
4) LEAD 함수 : 파티션별 윈도우에서 이후 몇번째 행의 값을 가져올 수 있다.
4. 그룹 내 비율 함수
1) RATIO_TO_REPORT 함수 : 파티션 내 전체 SUM(컬럼)에 대한 행별 컬럼 값의 백분율을 소수점으로 구할 수 있다.
2) PERCENT_RANK 함수 : 값이 아닌 행의 순서별 백분율 구한다.
3) CUME_DIST 함수 : 파티션별 윈도우의 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율 구한다.
4) NTILE 함수 : 파티션별 전체 건수를 ARGUMENT 값으로 N등분한 결과를 구할 수 있다
* 집합 함수
UNION : 합집합(중복행 합쳐짐)
UNION ALL : 합집합(중복행 그대로 표시)
INTERSECT : 교집합
EXCEPT : 차집합
윈도우 함수는 크게 4가지로 구분할 수 있습니다.
첫번째, 그룹내 순위 함수인 RANK, DENSE_RANK, ROW_NUMBER 가 있어요.
두번째, 그룹내 집계 함수인 SUM, MAX, MIN, AVG, COUNT 함수가 있습니다.
세번째, 그룹내 행 순서 함수인 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수가 있고
네번쨰, 그룹내 비율 관련 함수로 CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT 가 있어요.
1.순위함수
1) RANK 함수 : 순위함수(동일 순위가 있을 경우 중복수만큼 순위를 건너 뛴다.
2) DENSE_RANK 함수 : 동일한 순위를 하나의 건수로 취급(중복과 상관없이1부터 순차로지정)
사용방법 :
- rank() over (order by sal desc) all_rank : sal의 역순으로 정렬하여 순위 지정
- rank() over (partition by job order by sal desc) job_rank : sal의 역순으로 정렬하여 순위 지정하고 job에 대한 그룹 순위 지정
- dense_rank() over (order by sal desc) dense_rank : sal의 역순으로 정렬하여 순위지정
- rank() over (order by sal desc) all_rank : sal의 역순으로 정렬하여 순위 지정
- rank() over (partition by job order by sal desc) job_rank : sal의 역순으로 정렬하여 순위 지정하고 job에 대한 그룹 순위 지정
- dense_rank() over (order by sal desc) dense_rank : sal의 역순으로 정렬하여 순위지정
2. 집계 함수
1) SUM 함수 : 파티션별 윈도우의 합
- ange unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
사용방법 :
- sum(sal) over (partition by mgr order by sal range unbounded preceding) mgr_sum :현재ROW까지의 누적
- sum(sal) over (partition by mgr) mgr_sum : 그룹 누적값
- sum(sal) over (partition by mgr order by sal range unbounded preceding) mgr_sum :현재ROW까지의 누적
- sum(sal) over (partition by mgr) mgr_sum : 그룹 누적값
2) MAX 함수 : 파티션별 윈도우의 최대값 / MIN 함수 : 파티션별 윈도우의 최소값
사용방법
- max(sal) over (partition by mgr) max
- min(sal) over (partition by mgr) min
- max(sal) over (partition by mgr) max
- min(sal) over (partition by mgr) min
3) AVG 함수 : 파티션별 ROWS 윈도우를 이용해 원하는 조건에 맞는 데이터에 대한 통계값 구함
사용방법
- max(sal) over (partition by mgr) max
- min(sal) over (partition by mgr) min
- round(avg(sal) over (partition by mgr order by hiredate rows between 1 preceding and 1 following)) mgr_avg
- max(sal) over (partition by mgr) max
- min(sal) over (partition by mgr) min
- round(avg(sal) over (partition by mgr order by hiredate rows between 1 preceding and 1 following)) mgr_avg
4) COUNT 함수
사용방법
- count(sal) over (order by sal range between 50 preceding and 150 following) count
- count(sal) over (order by sal range between 50 preceding and 150 following) count
3. 그룹 내 행순서 함수
1) FIRST_VALUE 함수 : 파티션별 윈도우에서 가장 먼저 나온 값 출력, 공동 등수 인정X, 처음 나온 행만 처리.
- rows unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
사용방법
- first_value(ename) over (partition by deptno order by sal desc rows unbounded preceding) dept_rich
- first_value(ename) over (partition by deptno order by sal desc rows unbounded preceding) dept_rich
2) LAST_VALUE 함수 : 파티션별 윈도우에서 가장 나중에 나온 값 출력 (=MAX함수)
- rows unbounded preceding : 현재 행을 기준으로 파티션 내의 첫번째 행까지의 범위 지정
- rows between current row and unbounded following : 현재 행 포함해서 파티션 내의 마지막 행까지의 범위 지정
사용방법
- LAST_VALUE(ename) over (partition by deptno order by sal desc rows between current row and unbounded following) dept_rich
- LAST_VALUE(ename) over (partition by deptno order by sal desc rows between current row and unbounded following) dept_rich
3) LAG 함수 : 파티션별 윈도우에서 이전 몇번째 행까지의 값 가져올 수 있다.
사용방법
- lag(sal) over (order by hiredate) prev_sal
- lag(sal, 2) over (order by hiredate) prev_sal2
- lag(sal) over (order by hiredate) prev_sal
- lag(sal, 2) over (order by hiredate) prev_sal2
4) LEAD 함수 : 파티션별 윈도우에서 이후 몇번째 행의 값을 가져올 수 있다.
사용방법
- lag(sal) over (order by hiredate) lag
- lead(hiredate, 1) over (order by hiredate) lead
- lag(sal) over (order by hiredate) lag
- lead(hiredate, 1) over (order by hiredate) lead
4. 그룹 내 비율 함수
1) RATIO_TO_REPORT 함수 : 파티션 내 전체 SUM(컬럼)에 대한 행별 컬럼 값의 백분율을 소수점으로 구할 수 있다.
사용방법
- round(ratio_to_report(sal) over (), 2) ratio
- round(ratio_to_report(sal) over (), 2) ratio
2) PERCENT_RANK 함수 : 값이 아닌 행의 순서별 백분율 구한다.
사용방법
- percent_rank() over(partition by deptno order by sal desc) percent_Rank
- percent_rank() over(partition by deptno order by sal desc) percent_Rank
3) CUME_DIST 함수 : 파티션별 윈도우의 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율 구한다.
사용방법
- round(cume_dist() over (partition by deptno order by sal desc)
- round(cume_dist() over (partition by deptno order by sal desc)
4) NTILE 함수 : 파티션별 전체 건수를 ARGUMENT 값으로 N등분한 결과를 구할 수 있다
사용방법
- ntile(4) over (order by sal desc) ntile
- ntile(4) over (order by sal desc) ntile
2017년 1월 2일 월요일
MariaDB 명령어
Show Databases; <-- 데이터베이스 목록 조회
Show Tables; <-- 테이블 목록 조회(단 사전에 데이터 베이스로 이동을 먼저 해야함.
use db명; <-- 해당 디비로 이동
show processlist; <-- 연결된 리스터 리스트 조회
kill "id"; <-- 조회 리스너중 해당 ID를 kill 한다.
explain select * from tab; <-- sql에 해당되는 Plan을 조회
show explain for processid; <-- 수행중인 프로세스에 대한 SQL Plan을 본다.
create database test; <-- 데이터베이스 생성
create user 'user'@'localhost' identified by 'password'; <- user 계정에 비번이 password인 유저를 생성
- test디비의 모든 권한을 user에세 부여(% 대신 localhost는 외부접근 차단시 사용)
grant all privileges on test.* to 'user'@'%';
revokr all on test.table from 'user'@'%'; <--해당 테이블에 대한 유저의 권한을 전부 삭제
flush privileges; <-- 권한 설적을 새로 반영한다.
1. Index(참조)
- show index from tablename; <-- 해당 테이블의 인덱스 조회
- Index의 종류
① Primary key : 중복이 발생될 수 없는 필드임.
② index : 일반적인 인덱스이고 중복이 가능(와일드카드 입력시 사용 불가)
③ Unique : Primary key와 동일하게 중복이 안되는 키임
④ fulltext key: 텍스트 필드의 like 검색을 위한 인덱스임(텍스트에 최적화).
⑤ foreign key : 데이터의 무결성을 유지시키는 인덱스임(외부 참조키임)
피드 구독하기:
글 (Atom)
