2023.07.04

권영은·2023년 7월 4일
0

SAP_수업

목록 보기
2/36
post-custom-banner

elemnt, struncture, table
table 물리적 데이터 베이스 안에 데이터 베이스가 만들어지는 transparent 개념

Querry (사용자의 요청, request에 응답해서 데이터에 접근해서 가져오는 것 )

Data Modeling Overview

(p.438)
가상기업을 만들 때 기업의 flow에 대해 모두 알고 있어야 함.
sap 구축하러 들어가면 module consultant가 회사의 flow (ex.회계, 물류) 에 대해서 듣고 각각의 모듈에 관한 sap 기반의 knowledge에 양측의 언어로 이해 (background 지식 필요)

SAP Flight Data Model

flight 와 관련된 pattern 을 가지고 transparent table 구현.
SAPBC_DATAMODEL (Pakage) 에 데이터가 실습을 위해 구현되어 있음

structure같이 생겼지만 table과 혼동되기 쉽지만 Structure임.

grapic/ contents 창


contents창을 누르고 excute 클릭 시 들어가 있는 데이터를 볼 수 있음
grapic 클릭 시 연계성을 볼 수 있음.

Relational Data Model

(p.440)
데이터 모델을 만들기 전 어떤 데이터가 필요로 하는 transparent table을 먼저 만들고 transparent간의 관계를 만들어야 함. 이러한 관계는 레파지토리에 들어가있고 레파지토리는 데이터베이스 안에 들어가 있음.

Implementation Using Transparent Tables

Transparent Tables

사용자가 요구하는 화면. 화면에 필요한 데이터. 데이터를 가지고 와서 화면에 올리는 것 까지
database모델을 만들었다는 것은 작업의 반은 끝난 것과 같음.

data contents ( database안에 들어가 있는 contents가 중요함 ) --> 기업의 기밀
on-premis로 가려고 하는 이유

아밥위에 아밥 스택이 올라가는데 클라우드에 아밥 스택을 올림 => HANA

Transparent Tables in the ABAP Dictionary

  • key field가 정의되어 있음
  • DB Size, 접근률, 종류가 정의되어있음
  • 속도 증가를 위해 secondary indexes가 pk에 생성되어 있으며 buffering과 함께 AS에 존재

Struncture in the ABAP Dictionary

  • Dictionary 의 Transparent와 비교하면 키값이 없다는 것을 알 수 있음

Transparent Table as an ABAP Data Type

elementary field 안에 Transparent

Exercise 25

p.447
display 클릭
attribute부터 열어보는 습관 가지기
Data type이 master인지 transaction인지 아래는 CRUD 허용여부 key field 는 3개가 찍혀있음을 알 수 있음 길이가 20자리로 같고 나중에 외래키간 transparent간 관계를 지을 때 특정 필드간 외래키 관계가 있다면 a테이블로 b테이블을 체크할 수 있는데 이 때, 들어가는 값이 같아야한다. (DATA Element는 다르지만 domain은 같을 수 있다)


database table 내에 SPFLI 클릭 테이블이 쌓이지 않을 경우 allowed가 안되어있어 권한이 없기 때문
flight customer과 관계된 테이블 찾기

엔터 excute




미리 에러세팅 -> 에러발생하기 때문에
SE16 Standart List로 바꿔줌.

단위 통화, date format 수정

디폴트에서 수정

Data Retreoeval with Structured Query Language

p.453
SQL언어는 프로그램 정의, 수정, 데이터베이스 읽는 것이 가능

Reuse Components for Data Retrieval

p.455

  • SE36 : Logical Database
  • SE37 : Function modules
  • BAPI : BAPI
  • SE24 : Global Class

Database Read Access (Overview)

p.456

Retrieval of One Row of Data

p.457

Corresponding Target Structure for the Field List

Exercise 26

p.461

function 만들고 function module 만들기
import에서 bc_400_s_connection의 받는 값 carrid / connid와 같은 타입으로 만들어준다 .

se11 의 input 값 받는 필드만가지고 오기 총 9개의 필드를 select single 해준다.

from SPFLI table 에서 into export 하는 (into)
(where) import 하는 값으로 만들어준데 넣어준다.완성 소스코드

Data Retrival with Loops

p.468
DB에서 여러 데이터베이스를 DBI에 가지고 오고 싶을 때 DBI가 Buffer라고 볼 수 있음. 바로 접근하는게 아님.

Data Retrival Using an Array Fetch

p.475
싱글은 데이터베이스에서 한 건을 가지고 오는경우.
-> 여러번 돌릴경우 데이터베이스에 반복해서 가지고 오는 것 보다 한 번 통으로 들고 오는게 좋음 (DB잦은 접근은 좋지 않음)

transporting = modify테이블을 from structure로 한다는 것.
loop at을 쓸 때 modify from work area index xx modifying로 수정

append into overwrite
appending into 제일 끝에 붙여쓰기

Exercise 27



더블클릭


컴포넌트가 6개 있음을 알 수 있으나 PERCENTAGE는 계산해서 넣어줘야 함.

Exercise 28


만든 값을 Ctrl+, 로 커맨트 넣어주기 (없애기는 .)


loop at (반복문)이 돌면서 structure를 쌓아두는 것
loop에서는 무조건 sy-tabix인덱스를 사용해야 함.

최종코드

Data Retrieval from Client-Specific TAbles

p.484

Database Indexes

wehre 절에 키값을 적고 key로 sorting이 되어있고 key 순으로 찾는 것. 다른 값들로 찾을 수는 있지만 오래걸림.

이진법으로 데이터를 찾을 때 프라이머리키로 찾아감.

Access Through Non-key Fields

되도록이면 프라이머리키로 찾고 하려고 한다면 순차적 정렬방식으로 찾아야함 ( n개를 모두 비교해야하기 때문에 시간이 오래걸림 )

Access Through a Secondary Index

Database Optimizer 가 세컨더리 인덱스를 자동으로 생성 (속도를 높이기 위해)
제로갭 :
se11- spfli - 위 목록창 indexes 클릭

인덱스 넘버 01 더블 클릭...

왼쪽 화살표 클릭

SAP Table Buffer

결국 테이블로 접근하지 않고 DBI(SAP_Table buffer)가 가져다 주는 것
이 셋팅은 아밥딕셔너리- 테크니컬 셋팅에서 가능

테크니컬 셋팅 눌러주기
사이즈 : 트랜스패어런트 사이즈가 얼마나 확장가능한지
그 다음 버퍼링 창이 있는데 이미 엑티브 되어있어서 건들일 수 없게 되어있음.

사람들이 1만 검색하면 싱글 레코드에 체크.
제네릭은 aa라고 검색시 aa모두를 버퍼에 가져다 두는 것
fully는 aa부터 모두 갖다놓는것
젤 좋은것은 fully _ 메모리만 가능하다면 full 왜? 어플리케이션 서버에 다 갖다놓는것이 젤 빠름.
접근하는 테이블 모두 다 갖다놓는 것... 아무리 full버퍼를 찍어놔도 상태가 가득찾다면 그렇게 할 수 없음

테크니컬 셋팅을 안하면 활성화가 안됨.
그 아래 로그 데이터 체인지

db에 접근함에 따라 log를 남겨두는 것 ..
퍼포먼스는 떨어지지만 히스토리를 남겨두기위해 찍음.

한번이라도 access하면 application server 내 buffer에 갖다놓음.

Join Mechanism

Entries for Defining a Table Join

딕셔너리를 통해 만드는 방법도 있지만 코드를 통해 아밥조인을 만드는 방법도 있음.
조인 테이블 (두개의 테이블을 합칠 때) 어떤 조건으로 쓰는지
client와 carrid 가 같으면 묶겠다 (반드시는 아니고 사용자의 목적에 의해 변경가능)

Implementation Options for TAble Joins

  1. 데이터베이스뷰 - 데이터베이스 뷰 (데이터베이스 테이블을 하나처럼 보는 것)
  2. 프로젝션 뷰 _ 조인은했지만 필요없는 필드를 날리는 것, 한개의 테이블에서도 필요없는 필드를 날림
  3. 메인터넌스 뷰 - 테이블을 crud를 사용해서 관리. 데이터베이스나 프로젝션은 리드만 가능
  4. 헬프뷰 - 아우터조인을 구현.이를 위해서는 such help를 이용해 데이터베이스뷰를 만들면 헬프뷰가 됨

Write Access to the Database

CRUD를 통해 데이터를 관리

Authorization Objects and Authorizations

p.495 주어진 권한만큼 프로그램에 접근할 수 있는 것 read시에는 수정권한이 없음

Display Authorization Object

su21

더블클릭

클릭
어떤권한을 가지고 있는지 볼 수 있음.


원래 없는 권한 su01

아이디 입력 후 display

Exercise 29

p.501


import 에 입력
패턴 넣어주기
엔터


데이터 값을 못받으면


ABAP List Features

  1. screen 에서 display
  2. language-dependent text display -멀티언어를 지원
  3. formatted output according to user settings - 날짜
  4. formatted output accoding to currency, unit 화폐, 무게단위
  5. print

Standard List Functions

기본적으로 가장많이 쓰는 back / Exit / cancel 표준
scroll
print
search List
System- List

List and Column Headers

report 프로그램에서 헤더, 라인을 클래식 리스트에서 리스트헤딩으로 사용
고투_ 테스트 엘레먼츠에서 볼 수 있음.

list head 설정하는 방법



저장 후 엑티브한 뒤 실행해야 프린트 됨

Architecture and Purpose of Selection Screens

p.518
사용자의 입력을 받으면 구멍하나는 파라미터로. 두개는 셀렉트 옵션스로

Selection Screen Attributes

p.519

  • Multiple Capability
  • Variants
  • type Checks
  • Values Help / Input Help
  • Complex selections

Use of Selection Options

parameters 는 element
select-option 는 table (header line 사용)

Semantic Information of Global Types on the Selection Screen



airline 입력해주고 항상 active해주고 소스코드창에서 실행하기

업로드중..

search help.
S_CARRIER_ID 더블클릭
SCARR 더블클릭

scarr 에 있는 정보임을 알 수 있음.

  • 도메인만들기- seachhelp - input out - parameter -such help..등의 설정을 해야 가능

Selection Texts

profile
SAP/ ABAP Student
post-custom-banner

0개의 댓글