본문 바로가기

sap

BSP - BSP에서의 RANGE변수 한 2가지 방법이 있다. 1. 전역변수로 설정해서 쓰는 방법 ( PAGE ATTRIBUTE에서 선언해서) 2. 지역변수로 쓰는방법( 각각 이벤트 핸들러 페이지마다 설정하는 방법) 1의 경우를 쓰면 '' Type Definition TYPES : RANGE_MATNR TYPE RANGE OF MARA-MATNR. 위 RANGE_MATNR타입은 테이블 타입이다. 따라서 DATA : R_MATNR TYPE RANGE_MATNR. DATA : RWA_MATNR TYPE LINE OF RANGE_MATNR. 이런식으로 써야된다. 2의 경우는 간단하다. 지역변수로 쓸 것이기때문에 DATA : R_MATNR TYPE RANGE OF MARA-MATNR. DATA : RWA_MATNR LIKE LINE OF R_MAT.. 더보기
BSP - LAYOUT MESSAGE 효과적으로 띄우기 message처리 방법. sap에서 처리하는 방법은 메세지를 화면에 그냥 뿌려주는 방법이다. 메세지라면 alert창으로 뿌려주면 낮지 않나 하는 생각에서 만들어 보았다. 일딴 message를 바생시킨부분(데이터가 없다던가 update가 성공했다거나 등등) 뒤에 사용하는 부분 PAGE->MESSAGES->ADD_MESSAGE( CONDITION = 'MESSAGE' MESSAGE = 'Set Parameter!!' SEVERITY = PAGE->MESSAGES->CO_SEVERITY_ERROR ). MESSAGE 라는 이름으로 Set Parameter!! 라는 MESSAGE를 저장 이 메세지를 화면 하단부에 messages->assert_message( 'MESSAGE' ) IS NOT INITIAL. %.. 더보기
BSP - BSP에서 모달창 쓰기 BSP에서 모달창의 띄워 봅시다. 모달창은 각 포탈 사이트에서 모달창이라고 뜨면 무슨창인지 나올겁니다. 그럼 이 모달창을 BSP에서 구현하는 방법을 소개하겠습니다. 일반 WEB페이지랑 조금 다른 BSP는 모달창 구현도 조금 달라야 합니다. 기존에 웹에서 사용하는 방법으로 모달창을 띄울경우 호출당한 모달창안에서 이벤트를 띄우면 통제가 안되는(새창을 띄우면서 그전페이지 에러 뜸) 현상이 발생합니다. 제 생각으로는 이벤트를 타면서 모달창을 인식하지 못하고 하나의 새로운 창으로 인식해서 LAYOUT부분에서 창을 다시 만들지 않나 생각됩니다만 (디버깅으로 안잡힙 '') 자세한건 모릅니다. 흐 자 이만 각설하고 본격으로 해부해 보겠습니다. LAYOUT var sUserName=''; // 공통변수로 대화창과 데이터.. 더보기
BSP - 숫자를 컨버젼하는 프로그램(3자리마다 컴마 찍자) 전에 누가 요청이 있어서 만들어둔 펑션 혹시나 쓰일일이 있을려낭 ㅡ,.ㅡ FUNCTION Z_SPLIT_3_COMMA_N. *"---------------------------------------------------------------------- *"*"Local interface: *" IMPORTING *" REFERENCE(INPUT) OPTIONAL *" VALUE(INPUT_TYPE) TYPE CHAR1 OPTIONAL *" EXPORTING *" VALUE(OUTPUT) *" EXCEPTIONS *" NO_INT_TYPE "NO INT TYPE *" INPUT_TYPE_X "X = 소수점 없음 OTHER = 소수점 있음 *"-----------------------------------.. 더보기
비동기와 동기 얼마전 우리 부장님께 꽁수라면 꽁수인 인터페이스 방법론에 관하여 들었다. 비동기와 동기의 적절한 조화가 시스템의 렉도 안걸리고 동기통신처럼 이어 준다는 꽁수!! 데이터 용량이 커지고 리턴해주는 값이 나오는게 늦어서 동기가 time out으로 끊어질때 쓰는 방법론.. 용량이 커짐은로 일딴 보내는 쪽에서는 비동기 방식으로 데이터를 쏴준다. 그다음 받는 쪽에서는 데이터를 받고 그 데이터를 저장한다.(log 관리) 저장한 다음 데이터를 가공하여 맞는 구조인지 파악하여 로직을 탄다. 그다음 동기방식으로 데이터를 보내준 쪽에 결과값을 쏴준다. 이방식으로 사용하면 비록 data가 많이 쌓이겠지만 그많큼 서버에 영향을 안주게 되고(보통 xi동기는 1분정도.) 서버도 그만큼 더 빨라진다. 로그야 원래 남기는 것에서 조금.. 더보기
BSP - 파일 업로드와 다운로드 1 3일에 걸쳐 완성한 소스 ㅡ,.ㅡ 너무 힘들었지만 성공적인 테스트 후에 그 성취감은 흠흠 서문은 짧게 하고 ㅎㅎ 일단 소스를 보기전에 알아 두어야 할 것이 있다 htmlb:fileUpload 를 쓰기 위해서는 폼에다가 아래와 같이 매쏘드와 인코딩 타입을 지정해야 한다. 여기서 문제점 메쏘드 문제인지 인코딩 타입문제인지 모르겠지만 선언하고 나면 페이지 전체가 Stateless로 변한다는 것이다. 페이지 Properties-Status 부분에 아무리 Stateful로 지정해도 막상 디버깅해보면 Stateless로 변해 있다. 그래서 더 힘들었음 ㅡ.ㅜ(두개의 차이를 모르면 대략 안습 ㅡ,.ㅡ) 기본 문제부분은 이정도로 숙지하고 일딴 Page Attributes 와 Type Definitions 부분 Page.. 더보기
BSP - 각 필드의 자동 합계 소스 다음 소스는 자동합계를 구현한 것이다.(별건 없고 자바 스크립트를 BSP에 맞게 고친것) 자세히 보면 커서가 움직일때마다 막혀있는 inputField 가 합계로 나타난다. 예제소스> 더보기
BSP - 나만의 EVENT 캐스팅 구문 DATA : EVENT TYPE REF TO IF_HTMLB_DATA. DATA : TABLE_EVENT TYPE REF TO CL_HTMLB_EVENT_TABLEVIEW. DATA : IDOFEVENT TYPE STRING. **이벤트 EVENT = CL_HTMLB_MANAGER=>GET_EVENT_EX( REQUEST ). IF EVENT_ID = CL_HTMLB_MANAGER=>EVENT_ID. IF EVENT IS NOT INITIAL AND EVENT->EVENT_NAME = HTMLB_EVENTS=>TABLEVIEW. TABLE_EVENT ?= EVENT. ENDIF. ENDIF. * Read tableview from manager. * DATA: TV TYPE REF TO CL_HTMLB_.. 더보기
BSP - 인터널 테이블의 데이터를 엑셀로 보내기. WHEN 'EXCEL_DOWN'. IF IT_DISP IS NOT INITIAL. DATA: EXCEL_OUTPUT TYPE STRING. DATA: EXCEL_OUTPUT_X TYPE XSTRING. DATA: DISPOSITION TYPE STRING. DATA: RESPONSE TYPE REF TO IF_HTTP_RESPONSE. RESPONSE = RUNTIME->SERVER->RESPONSE. CONSTANTS: CRLF TYPE STRING VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF, TAB TYPE STRING VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB. CLEAR EXCEL_OUTPUT. CONCATENATE EXCEL_OUTPUT.. 더보기