SAP

SAP Smart Forms/Adobe Forms 개발: 맞춤형 출력 양식의 모든 것 (기본편)

디지털 현자 2025. 7. 16. 04:57
반응형

 
📄 딱 맞는 출력 양식이 필요하신가요? Smart Forms와 Adobe Forms로 자유롭게 디자인하세요!
 
안녕하세요! 오늘은 SAP 시스템에서 다양한 비즈니스 문서를 맞춤형으로 개발할 수 있는 강력한 도구인 **Smart Forms**와 **Adobe Forms**의 세계로 여러분을 안내합니다. 기본적인 개발 과정과 개념을 익혀, 기업의 요구사항에 최적화된 출력 양식을 직접 만들어 보세요!
 
SAP 시스템을 사용하다 보면, 견적서, 주문 확인서, 송장, 납품서 등 다양한 비즈니스 문서를 출력해야 하는 경우가 많습니다. SAP는 이러한 요구사항을 충족시키기 위해 사용하기 쉽고 강력한 두 가지 도구, 바로 **Smart Forms**와 **Adobe Forms (Interactive Forms)**를 제공합니다.
 
오늘은 이 두 가지 폼 개발 도구의 기본적인 개념과 개발 과정을 '기본편'으로 함께 살펴보겠습니다.
 

1. Smart Forms와 Adobe Forms, 무엇이 다를까요? (간단 비교)

두 도구 모두 SAP에서 맞춤형 출력 양식을 개발하는 데 사용되지만, 몇 가지 중요한 차이점이 있습니다.

특징 Smart Forms Adobe Forms (Interactive Forms)
기술 기반 SAP 자체 기술 Adobe PDF 기반 (PDF Forms)
디자인 도구 그래픽컬 인터페이스 (WYSIWYG 방식) Adobe LiveCycle Designer (별도 설치 필요, 더 강력한 디자인 기능)
상호작용 기능 제한적 (조건부 표시, 간단한 계산 등) 강력한 상호작용 기능 (필드 입력, 버튼, 스크립트 등)
출력 형식 주로 프린터 출력 프린터 출력, PDF 저장, 이메일 전송, 웹 기반 폼
개발 난이도 비교적 쉬움 디자인 및 스크립트 측면에서 다소 높음
라이선스 SAP 기본 라이선스에 포함 별도의 Adobe 라이선스 필요할 수 있음

일반적인 출력 양식 개발에는 Smart Forms가 많이 사용되며, 복잡한 레이아웃, 상호작용 기능, 웹 기반 폼 개발에는 Adobe Forms가 더 적합하다고 볼 수 있습니다.
 

2. Smart Forms 개발의 기초 (쉽고 빠르게!)

Smart Forms는 ABAP Workbench (트랜잭션 코드: SMARTFORMS) 내에서 그래픽컬한 인터페이스를 통해 개발할 수 있습니다. 코딩보다는 디자인 요소 배치와 속성 설정에 집중할 수 있어 비교적 쉽게 맞춤형 폼을 만들 수 있습니다.
 
Smart Forms 개발 단계:

  1. Smart Form 생성: 트랜잭션 코드 SMARTFORMS를 실행하여 새로운 Smart Form을 생성합니다. 폼 이름과 설명을 입력합니다.
  2. 글로벌 정의: 폼 전체에서 사용될 변수, 필드 심볼, 테이블 타입 등을 정의합니다. 여기서는 ABAP 프로그램에서 전달될 데이터를 받을 인터페이스 파라미터도 정의합니다.
  3. 페이지 및 윈도우 정의: 폼의 페이지 구조와 각 페이지 내에 배치될 윈도우(텍스트, 테이블, 그래픽 등을 표시하는 영역)를 정의합니다. 여러 개의 페이지를 만들고, 각 페이지에 필요한 윈도우를 자유롭게 배치할 수 있습니다.
  4. 요소 생성 및 배치: 윈도우 내에 텍스트, 필드, 테이블, 이미지, 라인 등 다양한 요소를 생성하고 원하는 위치와 크기로 배치합니다.
  5. 데이터 소스 연결: 생성한 필드나 테이블에 실제로 출력할 데이터를 연결합니다. 글로벌 정의에서 정의한 인터페이스 파라미터를 활용하여 ABAP 프로그램에서 데이터를 받아와 출력할 수 있습니다.
  6. 조건 및 루프 설정: 특정 조건에 따라 요소의 표시 여부를 결정하거나, 테이블 데이터를 반복적으로 출력하기 위한 루프를 설정할 수 있습니다.
  7. 템플릿 및 테이블 활용: 복잡한 테이블 형태의 데이터를 출력하기 위해 템플릿 기능을 사용하거나, 테이블 요소를 활용하여 헤더, 본문, 합계 등을 체계적으로 구성할 수 있습니다.
  8. 스타일 및 폰트 설정: 폼 전체 또는 특정 요소에 대해 폰트, 크기, 색상, 테두리 등 다양한 스타일을 적용하여 디자인을 꾸밀 수 있습니다.
  9. 테스트 및 활성화: 개발된 Smart Form을 테스트 기능을 통해 미리 보고, 이상이 없으면 활성화하여 실제 프로그램에서 호출하여 사용할 수 있도록 합니다.

간단한 Smart Form 예시 (텍스트 출력):

  1. SMARTFORMS 트랜잭션 실행 후 폼 이름 (예: ZSF_HELLO) 생성.
  2. 글로벌 정의 → 인터페이스에서 입력 파라미터 정의 (예: IV_TEXT TYPE STRING).
  3. 페이지와 메인 윈도우 생성.
  4. 메인 윈도우 내에 '텍스트' 요소 생성.
  5. 텍스트 요소의 텍스트 필드에 &IV_TEXT& 입력 (ABAP 프로그램에서 전달될 텍스트 변수).
  6. 폼 저장 및 활성화.

ABAP 프로그램에서 다음과 같이 호출하여 텍스트를 출력할 수 있습니다.

ABAP
 
REPORT ZSMARTFORM_CALL.

DATA: lv_text TYPE string VALUE '안녕하세요! Smart Forms 테스트입니다.'.
DATA: fm_name TYPE funcname.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'ZSF_HELLO'
  IMPORTING
    fm_name            = fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    others             = 3.

IF sy-subrc <> 0.
  WRITE: 'Smart Form 함수 모듈을 찾을 수 없습니다.'.
  EXIT.
ENDIF.

CALL FUNCTION fm_name
  EXPORTING
    control_parameters = ssfctrlop
    output_options     = ssfcompop
    iv_text            = lv_text
  EXCEPTIONS
    formatting_error   = 1
    internal_error     = 2
    send_error         = 3
    user_canceled      = 4
    others             = 5.

IF sy-subrc <> 0.
  WRITE: 'Smart Form 출력 중 오류가 발생했습니다.'.
ENDIF.

 

 

3. Adobe Forms 개발의 기초 (강력한 기능!)

Adobe Forms (Interactive Forms)는 Adobe LiveCycle Designer라는 별도의 툴을 사용하여 개발합니다. 이를 통해 픽셀 단위의 정밀한 레이아웃 디자인과 다양한 상호작용 기능을 구현할 수 있습니다.
 
Adobe Forms 개발 단계:

  1. Adobe LiveCycle Designer 설치: Adobe 웹사이트에서 Adobe LiveCycle Designer를 다운로드하여 설치합니다.
  2. Form 인터페이스 생성: ABAP Workbench (트랜잭션 코드: SFP)에서 새로운 Form 인터페이스를 생성합니다. 여기서는 ABAP 프로그램에서 전달될 데이터를 받을 필드를 정의합니다.
  3. Form 생성: SFP 트랜잭션에서 생성한 인터페이스를 기반으로 새로운 Form을 생성합니다.
  4. Adobe LiveCycle Designer 실행 및 디자인: Form 생성이 완료되면 Adobe LiveCycle Designer가 자동으로 실행됩니다. 여기서 드래그 앤 드롭 방식으로 텍스트 필드, 숫자 필드, 체크 박스, 라디오 버튼, 테이블 등 다양한 UI 요소를 배치하고 속성을 설정하여 폼 레이아웃을 디자인합니다.
  5. 데이터 바인딩: Designer에서 배치한 각 UI 요소와 SFP에서 정의한 Form 인터페이스의 필드를 연결합니다. 이를 통해 ABAP 프로그램에서 전달된 데이터가 폼에 자동으로 표시됩니다.
  6. 상호작용 기능 추가 (선택 사항): 스크립트 (JavaScript 또는 FormCalc)를 사용하여 필드 간의 계산, 유효성 검사, 버튼 클릭 이벤트 처리 등 다양한 상호작용 기능을 추가할 수 있습니다.
  7. 레이아웃 저장 및 활성화: 디자인 작업이 완료되면 레이아웃을 저장하고 ABAP 시스템으로 다시 업로드하여 Form을 활성화합니다.
  8. ABAP 프로그램에서 호출: Smart Forms와 유사한 방식으로 Function Module을 통해 Adobe Form을 호출하고 데이터를 전달하여 출력합니다.

간단한 Adobe Form 예시 (텍스트 필드 출력):

  1. SFP 트랜잭션에서 Form 인터페이스 (예: ZIF_ADOBE_HELLO) 생성 후 IV_TEXT 필드 (TYPE STRING) 정의.
  2. SFP 트랜잭션에서 Form (예: ZADOBE_HELLO) 생성 후 인터페이스로 ZIF_ADOBE_HELLO 지정.
  3. Adobe LiveCycle Designer 실행 후 텍스트 필드 추가.
  4. 텍스트 필드의 바인딩 속성을 IV_TEXT 필드로 지정.
  5. 레이아웃 저장 후 SAP 시스템에 업로드 및 Form 활성화.

ABAP 프로그램에서 다음과 같이 호출하여 텍스트를 출력할 수 있습니다.

ABAP
 
REPORT ZADOBE_CALL.

DATA: lv_text TYPE string VALUE '안녕하세요! Adobe Forms 테스트입니다.'.
DATA: fm_name TYPE funcname.

CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
    i_name              = 'ZADOBE_HELLO'
  IMPORTING
    e_funcname          = fm_name
  EXCEPTIONS
    no_form             = 1
    no_function_module  = 2
    others              = 3.

IF sy-subrc <> 0.
  WRITE: 'Adobe Form 함수 모듈을 찾을 수 없습니다.'.
  EXIT.
ENDIF.

CALL FUNCTION fm_name
  EXPORTING
    /1BCDWB/DOCPARAMS  = fp_docparams
    iv_text             = lv_text
  EXCEPTIONS
    usage_error         = 1
    internal_error      = 2
    others              = 3.

IF sy-subrc <> 0.
  WRITE: 'Adobe Form 출력 중 오류가 발생했습니다.'.
ENDIF.

 

 

마치며: 맞춤형 출력 양식 개발의 시작

오늘은 SAP Smart Forms와 Adobe Forms의 기본적인 개념과 개발 과정을 간략하게 살펴보았습니다. 이 두 도구를 통해 기업은 필요에 맞는 다양한 출력 양식을 직접 개발하고 관리할 수 있으며, 이는 업무 효율성 향상과 더 나아가 비즈니스 경쟁력 강화에 기여할 수 있습니다.
 
다음 '심화편'에서는 Smart Forms와 Adobe Forms의 더 많은 기능과 실제 개발 팁들을 다루도록 하겠습니다. 여러분의 SAP 개발 여정에 '디지털 현자'가 항상 함께하겠습니다.
 

디지털 현자 드림.

반응형