SAP 시스템을 사용하다 보면 얘기치 못한 오류를 접하는 경우가 많습니다.
출력 되는 오류 메시지 내용만 봐서는 정확한 오류 원인을 파악하기 어려운 경우도 정말 많이 있습니다.
“Text xxxx ID GRUN language EN(KO) not found” 또는 “텍스트 xxxx ID GRUN 언어 EN(KO)을(를) 찾지 못했습니다” 오류 메시지도 정확한 원인을 찾는데 어려움을 주는 오류 메시지 중에 하나 입니다.
참고로 메시지 번호(Message no.) TD600 오류 입니다.
이번 글에서는 SAP 텍스트 xxx ID GRUN 언어 EN(KO)을 찾지 못했습니다. 오류 해결 방법에 대해 알아보겠습니다.
“텍스트 xxxx ID GRUN 언어 EN(KO)을(를) 찾지 못했습니다” 오류 원인
“메시지 번호(Message no.) TD600“은 테이블 STXH(STXD SAPscript 텍스트파일헤더)에서 데이터를 읽어 올 때 주로 발생하는 오류 입니다.
STXH 테이블은 SAP 시스템의 Long Text가 저장되는 테이블입니다.
STXH 테이블의 텍스트 데이터를 저장하거나 읽어올 때 INSERT나 SELECT 문으로 처리할 수는 없고, SAVE_TEXT, READ_TEXT와 같은 Function 모듈을 사용해야 합니다.
SAP에서 Long Text 처리 방법에 대한 자세한 설명은 SAP의 텍스트오브젝트 및 ID를 만들고 텍스트를 읽고 저장하는 방법-Long Text 글을 참고하시기 바랍니다.
“텍스트 xxxx ID GRUN 언어 EN(KO)을(를) 찾지 못했습니다 (Text xxxx ID GRUN language EN not found)” 오류 발생 원인은 READ_TEXT function 모듈 실행 단계에서 매개변수로 지정한 언어에 대한 텍스트가 STXH 테이블에 존재하지 않기 때문입니다.
CALL FUNCTION ‘READ_TEXT‘
EXPORTING
ID = ‘GRUN’ “텍스트 ID
LANGUAGE = ‘E’ “언어
NAME = ‘000000007010030571’ “텍스트 식별자
OBJECT = ‘MATERIAL’ “텍스트 오브젝트
▼ 오류가 발생할 때 나타나는 메시지 입니다.
▼ 해당 메시지에 대한 상세한 정보 화면입니다. 메시지 내용, 메시지 번호(Message no.), 그리고 해결 방법에 대한 힌트를 보여주고 있습니다. 하지만 화면에 보이는 내용 만으로 해결 방법을 찾는 것은 쉽지 않습니다.
“텍스트 xxxx ID GRUN 언어 EN(KO)을(를) 찾지 못했습니다” 오류 해결 방법 1
오류가 발생하는 원인을 알았다면 해결 방법은 무척 간단합니다.
가장 근본적으로 해결 할 수 있는 첫 번째 방법에 대한 설명입니다.
1. 텍스트 ID가 “GRUN“은 자재 마스터의 “기본 데이터 텍스트“에 대한 텍스트 오브젝트 ID 입니다.
따라서 자재 마스트의 [기본 데이터 텍스트(Basic Data Texts)]에 해당 언어의 텍스트를 추가해 주면 오류가 해결 됩니다.
2. 오류가 발생한 자재에 대해 자재 변경(MM02) 화면에서 [기본 데이터 1(Basic data 1)] 뷰의 하단에 있는 기본 데이터 텍스트 버튼을 클릭합니다.
3. 아래 화면에서 화살표 표시의 텍스트 생성 버튼을 클릭합니다.
4. 텍스트 생성(Create text in)에 추가할 언어를 선택합니다. 오류가 발생한 언어를 찾아서 선택해 주면 됩니다.
5. 새로 생성된 텍스트 언어를 선택해서 텍스트를 입력하고 저장 해 줍니다. 그럼 더 이상 오류가 발생하지 않습니다.
“Text xxxx ID GRUN language EN not found” 오류 해결 방법 2
특정 언어 하나로만 텍스트가 저장되어 있고, 그런 자재가 많을 경우 일일이 언어를 추가해서 텍스트를 입력하는 것이 어려울 수 있습니다.
이를 경우에는 ABAP 프로그램에서 텍스트를 가져오는 READ_TEXT function 모듈을 찾아 LANGUAGE 매개변수를 텍스트가 저장된 언어로 직접 지정해 주는 방법입니다.
▼ READ_TEXT 함수를 사용할 때 LANGUAGE 매개변수를 로그온 언어를 그대로 사용하는 경우가 많습니다.
만약 로그온 할 때 KO로 로그온 했다면 SY-LANGU는 ‘3’(KO)가 될 것이고, EN으로 로그온 했다면 SY-LANGU는 ‘E'(EN)이 될 것입니다.
CALL FUNCTION ‘READ_TEXT‘
EXPORTING
ID = ‘GRUN’ “텍스트 ID
LANGUAGE = SY-LANGU “로그온(Logon) 언어
NAME = ‘000000007010030571’ “텍스트 식별자
OBJECT = ‘MATERIAL’ “텍스트 오브젝트
▼ 만약 자재의 기본 데이터 텍스트가 한글(KO)만 저장되어 있고, 로그온은 ‘EN’으로 했다면 언어를 찾지 못했다는 오류가 발생하게 됩니다. 그 반대도 마찬가지 입니다.
CALL FUNCTION ‘READ_TEXT‘
EXPORTING
ID = ‘GRUN’ “텍스트 ID
LANGUAGE = ‘3’ “3(KO) 한글 언어
NAME = ‘000000007010030571’ “텍스트 식별자
OBJECT = ‘MATERIAL’ “텍스트 오브젝트
마무리
READ_TEXT의 LANGUAGE가 로그온 언어를 사용할 경우(SY-LANGU) 텍스트를 가져오기 위해서는 저장된 텍스트 언어로 로그온 하면 해당 언어의 텍스트를 가져옵니다.
만약 텍스트를 여러 언어로 저장한 경우 로그온 한 언어의 텍스트를 가져오게 됩니다. 즉, 언어 마다 서로 다른 텍스트를 저장하고 해당 언어의 텍스트를 가져와서 활용할 수 있습니다.
이번 글은 텍스트의 언어를 찾지 못하는 오류에 대한 설명이지만 여기에서 조금 더 생각을 넓히면 전혀 사용할 일이 없는 여러 언어로 텍스트를 저장한 뒤에 다양하게 활용할 수 있는 방법도 생각해 볼 수 있습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.