안녕하세요..다름이 아니라 프로그래밍에 동적으로 선언을하고 싶은데요.
예를들면 Import 값으로 table 명을 받구요.(어떠한 table 이던지...)
source 부분에서는..
해당 import 받은 table의 구조를 선언해야하고
머 나머지는 일반적인 로직들이들어가겠고..
마지막은 Import 받은 table에 insert,나 update등을 해주어 겠지요.
이렇게 입력받은 table 에 대해서 로직부분에 스트럭처를 구현하고 다시 insert 를 하고싶은데..
source 있으신분 공유좀 부탁드립니다.
댓글 5
-
e-abap
2008.02.14 01:05
-
윤군친구
2008.02.14 01:10
감사합니다..이거 해결했는데요..
그담문제가 선언부분은 해결이 되는데.. 인제 음..
동적인 스트럭처 <fs1> 을만들었다구 한다면 인제 로직구현에서 <fs1>-filename << 이렇게 해서 재가 코딩을 하고싶은데..
역시나 컨버팅에서 에러나드라구요.. <fs1> 과 같이 필드심볼로 구현된 스트럭처구조에서 필드들을 쓰려면 어떻게 해야하나용?
-
e-abap
2008.02.14 01:58
더 좋은 방법이 있을것 같은데, 지금 생각나는 방법은
다음 소스를 추가해서
인터널 테이블 pt_fieldcat 를 이용하면 되지 않을까요?
data : pt_fieldcat TYPE lvc_t_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = p_tname
CHANGING
ct_fieldcat = pt_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3. -
e-abap
2008.02.14 18:04
그리고 필드 심볼을 하나 더 선언해서 ~
FIELD-SYMBOLS: <fs3> TYPE ANY
loop at pt_fieldcat into wa_fieldcat.
IF lt_inspct-fname IS NOT INITIAL.
ASSIGN COMPONENT wa-fieldcat-FIELDNAME OF STRUCTURE pt_fieldcat
TO <f3>.
endloop.
-
윤군친구
2008.02.14 18:49
즉 필드들도 동적으로 선언이 되어야 한단 말인거조..재가 아무리 미리 정의해둔 필드라 하더라도..움.. 오전에 와서 보게되었내요..
감사합니다.. 적용해보도록하겠습니다.
다음 소스를 활용하면 될거 같은데요...
PARAMETERS : p_tname(30) DEFAULT 'SFLIGHT'.
DATA: dref TYPE REF TO data.
FIELD-SYMBOLS: <fs1> TYPE ANY , <fs2> TYPE ANY.
CREATE DATA dref TYPE (p_tname).
ASSIGN dref->* TO <fs1>.
SELECT * FROM (p_tname) INTO <fs1> UP TO 3 ROWS.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <fs1> TO <fs2>.
IF sy-subrc NE 0.
SKIP.
EXIT.
ENDIF.
WRITE: <fs2>.
ENDDO.
ENDSELECT.