λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

ABAP Concept (πŸ“κ°œλ…)

(35)
STRINGκ³Ό CHAR의 차이 비ꡐ (feat. '(μž‘μ€λ”°μ˜΄ν‘œ)와 `(λ°±ν‹±) 비ꡐ) ABAPμ—μ„œ λ¬Έμžμ—΄μ„ μ„ μ–Έν•  λ•Œ, ' '(μž‘μ€λ”°μ˜΄ν‘œ)와 ` `(λ°±ν‹±)을 μ‚¬μš©ν•˜λŠ” 두 κ°€μ§€ 방식이 μžˆλ‹€. λ‹¨μˆœνžˆ μ™Έν˜•λ§Œ λ‹€λ₯Έ 것 κ°™μ§€λ§Œ, μ‹€μ œλ‘œλŠ” 데이터 νƒ€μž…μ΄λ‚˜ ν˜• λ³€ν™˜, 가독성, μ‹€ν–‰ μ„±λŠ₯ 등에 μžˆμ–΄ μ€‘μš”ν•œ 차이λ₯Ό λ§Œλ“ λ‹€. 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” 이 두 λ°©μ‹μ˜ 차이λ₯Ό μ˜ˆμ œμ™€ ν•¨κ»˜ λͺ…ν™•νžˆ μ΄ν•΄ν•˜κ³ , μ–Έμ œ μ–΄λ–€ 방식을 써야 ν•˜λŠ”μ§€ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž.πŸ“Œ μž‘μ€λ”°μ˜΄ν‘œ ' 'λŠ” CHARABAPμ—μ„œ λ¬Έμžμ—΄μ„ ' '둜 감싸면, 기본적으둜 κ³ μ • 길이 문자 νƒ€μž…(CHAR) 둜 μΈμ‹λœλ‹€. DATA(text_char) = 'ABAP'. " => TYPE c LENGTH 4 ν•˜μ§€λ§Œ 밑에 μ˜ˆμ‹œμ²˜λŸΌ λ³€μˆ˜μ— μ§€μ •λœ 길이보닀 짧은 값을 λ„£μœΌλ©΄ 뒀에 곡백이 μžλ™μœΌλ‘œ μ±„μ›Œμ§€κ²Œ λœλ‹€. (Padding)DATA text1 TY..
이벀트 블둝 / λ‹€μ΄μ–Όλ‘œκ·Έ λͺ¨λ“ˆλ³„ MESSAGE νƒ€μž… λ™μž‘ 차이 ABAPμ—μ„œ λ©”μ‹œμ§€(MESSAGE)λŠ” λ‹¨μˆœν•œ μ•Œλ¦Όμ„ λ„˜μ–΄ ν”„λ‘œκ·Έλž¨ 흐름을 μ œμ–΄ν•˜λŠ” 핡심 역할을 ν•œλ‹€. 특히 λ©”μ‹œμ§€ νƒ€μž…(A, E, I, S, W, X)κ³Ό λ°œμƒ μœ„μΉ˜(이벀트 블둝/λͺ¨λ“ˆ μ’…λ₯˜)에 따라 λ©”μ‹œμ§€κ°€ ν”„λ‘œκ·Έλž¨μ— λ―ΈμΉ˜λŠ” 영ν–₯이 μ „ν˜€ λ‹€λ₯΄κ²Œ μž‘λ™ν•œλ‹€. μœ„μ™€ 같이, λ™μΌν•œ λ©”μ‹œμ§€ νƒ€μž…μΈ W(Warning)을 μ‚¬μš©ν–ˆλŠ”λ°, μ„ νƒν™”λ©΄μ—μ„œλŠ” λ…Έλž€μƒ‰ 경고둜 잘 좜λ ₯λ˜λ‹€κ°€λ„, START-OF-SELECTIONμ—μ„œ λ˜‘κ°™μ€ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μ—λŸ¬μ²˜λŸΌ λ™μž‘ν•˜λ©΄μ„œ ν”„λ‘œκ·Έλž¨ 흐름을 λ©ˆμΆ°λ²„λ¦°λ‹€. 이번 κΈ€μ—μ„œλŠ” ABAP λ©”μ‹œμ§€ νƒ€μž…(A, E, I, S, W, X)의 λ™μž‘ 방식이 μ–΄λ–»κ²Œ κ²°μ •λ˜λŠ”μ§€, 그리고 μ–΄λ–€ 이벀트 λΈ”λ‘μ—μ„œ μ–΄λ–€ λ™μž‘μ„ ν•˜λŠ”μ§€λ₯Ό 정리해 보도둝 ν•˜κ² λ‹€.1. λ©”μ‹œμ§€ νƒ€μž…λ³„ κΈ°λ³Έ μ˜λ―Ένƒ€μž…μ„€λͺ…κΈ°λ³Έ λ™μž‘ λ©”μ‹œμ§€ ν‘œ..
ABAP Text Symbol μ΄ν•΄ν•˜κΈ° – κΈ°λ³Έ κ°œλ…λΆ€ν„° μ €μž₯ κ΅¬μ‘°κΉŒμ§€ SAP ABAPμ—μ„œλŠ” ν”„λ‘œκ·Έλž¨ μ•ˆμ— λ¬Έμžμ—΄μ„ 직접 ν•˜λ“œμ½”λ”©ν•˜μ§€ μ•Šκ³ , μœ μ§€λ³΄μˆ˜μ™€ λ‹€κ΅­μ–΄ 처리λ₯Ό μ‰½κ²Œ ν•  수 μžˆλ„λ‘ ν…μŠ€νŠΈ 심볼(Text Symbol)μ΄λΌλŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. 이본 ν¬μŠ€νŒ…μ—μ„œλŠ” ν…μŠ€νŠΈ μ‹¬λ³Όμ˜ κ°œλ…λΆ€ν„° μ‚¬μš©λ²•, μ €μž₯ κ΅¬μ‘°κΉŒμ§€ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž.1. ν…μŠ€νŠΈ μ‹¬λ³Όμ΄λž€?ν…μŠ€νŠΈ 심볼은 ABAP ν”„λ‘œκ·Έλž¨μ˜ ν…μŠ€νŠΈ μš”μ†Œ(Text Elements)에 μ •μ˜λœ λ¬Έμžμ—΄λ‘œ, λ³€μˆ˜μ²˜λŸΌ μ„ μ–Έν•˜μ§€ μ•Šμ•„λ„ ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ¬Έμžμ—΄ μƒμˆ˜μ΄λ‹€. 데이터 νƒ€μž…: C (λ¬Έμžν˜•)길이: ν…μŠ€νŠΈ μš”μ†Œμ—μ„œ μ„€μ •ν•œ mlen κ°’μœ„μΉ˜: ν•΄λ‹Ή ν”„λ‘œκ·Έλž¨μ˜ ν…μŠ€νŠΈ ν’€(Text Pool)에 μ €μž₯λ¨μƒμˆ˜μ²˜λŸΌ 읽기 μ „μš©μœΌλ‘œ μ‚¬μš©λ‹€κ΅­μ–΄ 지원과 λ²ˆμ—­ : ν”„λ‘œκ·Έλž¨μ„ μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ ν…μŠ€νŠΈλ₯Ό μ–Έμ–΄λ³„λ‘œ μžλ™ ν‘œμ‹œ κ°€λŠ₯ ( λ²ˆμ—­ 도ꡬ - SE63 )..
ABAP ν”„λ‘œκ·Έλž¨ 속성 Fixed Point Arithmetic, μ™œ μ‘΄μž¬ν• κΉŒ? κΌ­ 체크해야 ν• κΉŒ? SAP ABAPμ—μ„œ μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μ„ 생성할 λ•Œ λ‚˜νƒ€λ‚˜λŠ” μ˜΅μ…˜ 쀑 ν•˜λ‚˜κ°€ λ°”λ‘œ Fixed Point Arithmetic이닀. λŒ€λΆ€λΆ„ 이 μ˜΅μ…˜μ— λŒ€ν•΄ 깊이 μƒκ°ν•˜μ§€ μ•Šκ³  κΈ°λ³Έ μ„€μ •μœΌλ‘œ μ•Œκ³  λ„˜μ–΄κ°€μ§€λ§Œ, μ‹€μ œλ‘œλŠ” κΈˆμ•‘ 계산, μ†Œμˆ˜μ  처리 λ“± 핡심 λ‘œμ§μ— 큰 영ν–₯을 μ£ΌλŠ” 섀정이닀. 이 섀정이 μ™œ μ‘΄μž¬ν•˜λŠ”μ§€, 체크λ₯Ό μ•ˆ ν•  경우 μ–΄λ–€ ν˜„μƒμ΄ μΌμ–΄λ‚˜λŠ”μ§€ 이번 ν¬μŠ€νŒ…μ—μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž. 1. Fixed Point Arithmeticμ΄λž€?Fixed Point Arithmetic은 ABAP ν”„λ‘œκ·Έλž¨μ—μ„œ μ†Œμˆ˜μ  자릿수λ₯Ό κ³ λ €ν•œ 계산 방식을 μ‚¬μš©ν•˜λ„λ‘ μ§€μ •ν•˜λŠ” 섀정이닀. 이 μ˜΅μ…˜μ΄ ν™œμ„±ν™”(체크) λ˜μ–΄ 있으면, TYPE P, DEC, CURR, QUANκ³Ό 같은 μ†Œμˆ˜μ μ„ κ°€μ§€λŠ” 숫자 νƒ€μž…μ΄ μ‹€μ œ μ—°μ‚°μ—μ„œλ„ μ†Œμˆ˜μ κΉŒμ§€ ν¬ν•¨ν•˜..
SELECTλ¬Έ FROM @itab(μΈν„°λ„ν…Œμ΄λΈ”)은 Database μ˜μ—­μ—μ„œ μž‘λ™ ν• κΉŒ? SQL을 μ‚¬μš©ν•  λ•Œ μš°λ¦¬λŠ” 보톡 "SELECTλ₯Ό μ“°λ©΄ λ‹Ήμ—°νžˆ λ°μ΄ν„°λ² μ΄μŠ€(DB)둜 μš”μ²­μ΄ κ°„λ‹€"라고 μƒκ°ν•œλ‹€. ν•˜μ§€λ§Œ, ABAP 7.52 이후 λ“±μž₯ν•œ FROM @itab κ΅¬λ¬Έμ—μ„œλŠ” 상황이 쑰금 λ‹€λ₯΄λ‹€. 인터널 ν…Œμ΄λΈ”κΉŒμ§€ (@itab)을 데이터 μ†ŒμŠ€λ‘œ μ‚¬μš©ν•˜λ©΄, κ³Όμ—° 항상 Database μ„œλ²„ (DB λ ˆμ΄μ–΄)κΉŒμ§€ λ‹€λ…€μ˜€λŠ” 걸까? πŸ“ŒDatabase λ ˆμ΄μ–΄λž€?πŸ”—[ABAP Concept (πŸ“κ°œλ…)/Basic] - SAP 3-Tier ꡬ쑰 μ‰½κ²Œ μ΄ν•΄ν•˜κΈ° SAP 3-Tier ꡬ쑰 μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°SAPλ₯Ό 처음 λ°°μš°κ±°λ‚˜ ABAP ν”„λ‘œκ·Έλž˜λ°μ„ μ‹œμž‘ν–ˆλ‹€λ©΄ ν•œ 번쯀 이런 말을 듀어봀을 것이닀. SAPλŠ” 3-Tier ꡬ쑰둜 λ˜μ–΄ μžˆμ–΄μš”. 근데 그게 λ„λŒ€μ²΄ 무슨 λœ»μ΄μ§€? ν”„λ ˆμ  ν…Œμ΄μ…˜? μ• ν”Œλ¦¬μΌ€μ΄μ…˜? 데twossun.tist..
숫자 연산이 λ˜λŠ” CHAR - 암묡적 ν˜• λ³€ν™˜(Implicit Type Conversion) ABAPμ—μ„œ 코딩을 ν•˜λ‹€ 보면, Char νƒ€μž…μ˜ λ³€μˆ˜κ°€ 숫자 연산이 λ˜λŠ” 경우λ₯Ό λ³Ό 수 μžˆλ‹€. λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜€λ‹€λ©΄ ν˜•λ³€ν™˜ 였λ₯˜(Type Error) κ°€ λ‚˜μ•Ό μ •μƒμ΄μ§€λ§Œ, SAP μ‹œμŠ€ν…œμ€ λΉ„μ¦ˆλ‹ˆμŠ€ μ‚¬μš©μž μœ„μ£Όλ‘œ μ„€κ³„λ˜μ—ˆκΈ° λ•Œλ¬Έμ—, 문자 νƒ€μž…μ— μˆ«μžκ°€ λ“€μ–΄κ°€λ©΄ μžλ™μœΌλ‘œ 숫자둜 ν•΄μ„ν•˜λ €λŠ” νŠΉμ„±μ΄ μžˆλ‹€. 즉, ABAPμ—μ„œλŠ” 암묡적 ν˜• λ³€ν™˜(Implicit Type Conversion)에 μ˜ν•΄ 였λ₯˜ 없이 연산이 μˆ˜ν–‰λœλ‹€. 이번 κΈ€μ—μ„œλŠ” CHAR ν˜•λ³€ν™˜μ˜ νŠΉμ„±κ³Ό μ£Όμ˜μ‚¬ν•­μ„ μ˜ˆμ œμ™€ ν•¨κ»˜ 정리해 보도둝 ν•˜κ² λ‹€. πŸ“Œ CHAR νƒ€μž…μΈλ° μ™œ 숫자처럼 연산이 될까?ABAPμ—μ„œλŠ” CHAR νƒ€μž…μ˜ λ³€μˆ˜λΌ ν•˜λ”λΌλ„, κ·Έ μ•ˆμ— 숫자 ν˜•μ‹μ˜ λ¬Έμžμ—΄μ΄ λ“€μ–΄ 있으면 μžλ™μœΌλ‘œ 숫자둜 μΈμ‹ν•˜κ³  κ³„μ‚°ν•œλ‹€.μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” '2'λŠ” λ¬Έ..
ABAP μ—μ„œ Auto Rollback은 λŒ€μ²΄ μ–Έμ œ μ‹€ν–‰λ˜λŠ” 걸까? μ•ž ν¬μŠ€νŒ…μ—μ„œ Implicit Commit ( Auto Commit )에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜λ‹€. 그럼 λ°˜λŒ€λ‘œ 데이터가 μ €μž₯λ˜μ§€ μ•Šκ³  원상 λ³΅κ΅¬λ˜λŠ” Rollback κ²½μš°λŠ” μ–Έμ œμΌκΉŒ? SAP ABAP μ‹œμŠ€ν…œμ—μ„œλŠ” λͺ…μ‹œμ μœΌλ‘œ ROLLBACK WORK ꡬ문을 μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„, νŠΉμ • μƒν™©μ—μ„œλŠ” μžλ™μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€ Rollback 이 λ°œμƒν•œλ‹€. 이 μ—­μ‹œ νŠΈλžœμž­μ…˜ μ•ˆμ •μ„±μ„ μœ„ν•΄ μ‹œμŠ€ν…œμ΄ μˆ˜ν–‰ν•˜λŠ” λ™μž‘μ΄λ©°, κ°œλ°œμžκ°€ 이 λ©”μ»€λ‹ˆμ¦˜μ„ μ œλŒ€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν•˜λ©΄ 예기치 μ•Šκ²Œ 데이터가 μ‚¬λΌμ§€λŠ” 상황을 κ²ͺ을 수 μžˆλ‹€.1. Implicit Rollback (Auto Rollback)이 μ‹€ν–‰λ˜λŠ” 상황SAP μ‹œμŠ€ν…œμ—μ„œλŠ” μ•„λž˜μ™€ 같은 μ˜ˆμ™Έμ μΈ 상황이 λ°œμƒν•˜λ©΄ μžλ™μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€ 둀백을 μˆ˜ν–‰ν•œλ‹€.βœ… λŸ°νƒ€μž„ 였λ₯˜( Runtime Error )..
ABAP μ—μ„œ Auto Commit은 λŒ€μ²΄ μ–Έμ œ μ‹€ν–‰λ˜λŠ” 걸까? ABAP κ°œλ°œμ„ ν•˜λ‹€ 보면 이런 생각을 ν•œλ²ˆμ―€ ν•΄λ³΄μ•˜μ„ 것이닀. COMMIT WORK λ¬Έμž₯을 λ„£μ§€ μ•Šμ•˜λŠ”λ°, μ™œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯(commit)이 λ˜μ§€? μ²˜μŒμ—λŠ” 버그인가 μ‹Άμ–΄ μ˜μ‹¬λ„ 해보고, νŠΈλžœμž­μ…˜μ΄ 꼬인 걸까 ν•˜κ³  λ‘œκ·Έλ„ λ’€μ Έλ³΄μ§€λ§Œ, 사싀 이건 SAP μ‹œμŠ€ν…œ λ‚΄λΆ€μ˜ 정상적인 λ™μž‘μ΄λ‹€. λ°”λ‘œ Implicit Database Commit, 즉 μžλ™ 컀밋( Auto Commit ) λ•Œλ¬Έμ΄λ‹€. 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” SAP ABAPμ—μ„œ μ™œ 이런 일이 λ°œμƒν•˜λŠ”μ§€, μ–΄λ–€ κ²½μš°μ— μžλ™μœΌλ‘œ 컀밋이 λ°œμƒν•˜λŠ”μ§€λ₯Ό 정리해보도둝 ν•˜κ² λ‹€.1. Implicit Commit( Auto Commit )μ΄λž€? SAP의 AS ABAP(Application Server ABAP) μ•„ν‚€ν…μ²˜μ—μ„œλŠ” ν•œ Work Process(μž‘μ—… ν”„λ‘œμ„Έ..