Component Reuse

Data: lo_cmp_usage type ref to if_wd_component_usage,
        lo_interfacecontroller type rf to ziwci_net310_comp_s2.

lo_cmp_usage = wd_this->wd_cpuse_alv_flight( ) .
if lo_cmp_usage->has_active_component( ) is initial.
lo_cmp_usage->create_component( ) .
endif.

lo_interfacecontroller = wd_this->wd_cpfic_customer_comp_usage( ) .
lo_interfacecotroller->showcustomer( 
    iv_customer_id = lv_customid ) .

by saper | 2009/10/05 20:59 | Webdynpro | 트랙백 | 덧글(0)

HR 모듈 조직관련 팁

1. 조직계획버전 복사 프로그램명: RHCOPL00
2. INACTIVE버전의 조직계획버전에서 ACTIVE 조직계획버전으로 데이타 전송: RHCOPLPT
3. PPOME의 세팅->계획버전->대체로 들어가서 서로다른 계획버전을 조회 가능
4. 조직계획 상태 변경 프로그램명: RHAKTI00    PLAN->SUBMITED->APPROVED->ACTIVE
5. 오브젝트 타입 변경로그 저장 활성화 테이블: T77CDOC_CUST 
6. 오브젝트 변경내역 조회: RHCDOC_DISPLAY 
7. 사원과 조직과의 intergration: t77s0 에서 plogi plogi 필드 값에 활성화시킬 plan verson 값을 셋팅
                                                          plogi feature(pe03)에서 intergration 시킬 그룹을 정의 가능
    인사마스터와 전체 pd와의 intergration: t77s0에서 plogi orga 의 값을 'X'로 셋팅 

by saper | 2008/10/10 12:23 | HR module | 트랙백 | 덧글(0)

get physical mac address

*"----------------------------------------------------------------------
*"*"Local interface:
*"  EXPORTING
*"     REFERENCE(MACADDRESS) TYPE  ZTMAC
*"----------------------------------------------------------------------
  DATA: gt_ipconfig TYPE TABLE OF char255,
  gs_ipconfig TYPE char255.

  DATA: wa_mac TYPE zsmac.
  DATA : BEGIN OF itab OCCURS 0,
         source TYPE string,
         END OF itab.
  itab-source = 'ipconfig /all>c:\hello.txt'.
  APPEND itab.
  itab-source = 'del c:\b.bat'.
  APPEND itab.

  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename         = 'C:\b.bat' "file name
    TABLES
      data_tab         = itab    "inner table
    EXCEPTIONS
      file_write_error = 1
      file_not_found   = 2.

  CALL METHOD cl_gui_frontend_services=>execute
    EXPORTING
      application            = 'c:\b.bat'
      synchronous            = 'WAIT'
    EXCEPTIONS
      cntl_error             = 1
      error_no_gui           = 2
      bad_parameter          = 3
      file_not_found         = 4
      path_not_found         = 5
      file_extension_unknown = 6
      error_execute_failed   = 7
      synchronous_failed     = 8
      not_supported_by_gui   = 9
      OTHERS                 = 10.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = 'C:\hello.txt'
    TABLES
      data_tab                = gt_ipconfig
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      OTHERS                  = 17.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  LOOP AT gt_ipconfig INTO gs_ipconfig.
    IF gs_ipconfig CS 'Physical Address'.
      wa_mac = gs_ipconfig+44(17).
      APPEND wa_mac TO macaddress.
    ENDIF.
  ENDLOOP.

by saper | 2008/08/19 11:49 | Tip | 트랙백 | 덧글(0)

송신자 지정 메일

*&---------------------------------------------------------------------*
*& Report  ZEXCELEMAILTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztestmail.
CONSTANTS:  con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.
DATA:    w_doc_data     LIKE    sodocchgi1,
             t_packing_list   LIKE    sopcklsti1 OCCURS 0 WITH HEADER
LINE,
             t_attachment    LIKE    solisti1 OCCURS 0 WITH HEADER LINE,

             it_message      LIKE    solisti1 OCCURS 0 WITH HEADER LINE,

             t_receivers       LIKE    somlreci1 OCCURS 0 WITH HEADER
LINE.
DATA:    BEGIN OF itab OCCURS 0, "Excel로 될 Internal Table
             name(10) TYPE c,
             sex(4)      TYPE c,
             END OF itab.
itab-name = 'Yuanhailin'.itab-sex = 'Boy'.APPEND itab.
itab-name = 'Wondergirl'.itab-sex = 'Girl'.APPEND itab.
CONCATENATE 'MANE' 'SEX ' INTO t_attachment SEPARATED BY ','.
APPEND t_attachment.
LOOP AT itab.
  CONCATENATE itab-name itab-sex INTO t_attachment SEPARATED BY ','.
  CONCATENATE con_cret t_attachment INTO t_attachment.
  APPEND t_attachment.
ENDLOOP.
it_message = '안녕하세요?'.
APPEND it_message.
it_message = '본문 내용 입니다'.
APPEND it_message.
w_doc_data-doc_size = STRLEN( t_attachment ).
w_doc_data-obj_langu  = sy-langu.
w_doc_data-obj_name   = 'SAPRPT'.
w_doc_data-obj_descr  = '메일 제목 이다. '.
w_doc_data-sensitivty = 'F'.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type   =  'CSV'.
t_packing_list-obj_descr  =  '첨부파일 이름 입니다'.
t_packing_list-doc_size   =  t_packing_list-body_num * 255.
APPEND t_packing_list.
t_receivers-receiver = 'hongbo@aspnc.com'.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
DATA : sender_type TYPE  soextreci1-adr_typ.
sender_type = 'INT'.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
  EXPORTING
    document_data       = w_doc_data   "메일 속성에관한 Structure
    put_in_outbox       = 'X'                 "발신함 저장여부
    commit_work         = 'X'                 "Process 진행여부
    sender_address      = 'hongbo@aspnc.com'
    sender_address_type = sender_type
  TABLES
    packing_list        = t_packing_list "파일 속성에관한 Internal Table
    contents_bin        = t_attachment  "첨부파일 내용으로 되는
    contents_txt        = it_message    "메일 본문 내용
    receivers           = t_receivers.    "수신자 속성에관한 Internal

by saper | 2008/08/01 13:24 | Report | 트랙백 | 핑백(2) | 덧글(0)

아무테이블이나 업로드

*&---------------------------------------------------------------------*
*& Report  ZUPLOADTABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zlghtest MESSAGE-ID at NO STANDARD PAGE HEADING.
TABLES: dd03l, " 테이블필드
dd01l, " 도메인
dd02t, " R/3-DD: SAP 테이블 텍스트
dd17s, " R/3 S_SECINDEX: 보조 인덱스, 필드
dd12t, " DD12L에 대한 텍스트 테이블
dd04t. " R/3 DD: Data element 텍스트

DATA: BEGIN OF struct OCCURS 10,
position LIKE dd03l-position,
fieldname(30),
inttype TYPE c,
intlen TYPE i,
END OF struct.

* The dynamic program source table
DATA: BEGIN OF inctabl OCCURS 10,
line(72),
END OF inctabl.
DATA: lng TYPE i,
typestring(20),
typestring2(20).

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.
PARAMETERS tab_name LIKE dd03l-tabname OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
* Dynamic internal table stucture
  PERFORM select_field_from_table.
* Create the dynamic internal table definition in the dyn. program
  PERFORM make_prg.
* Create the code processes the dynamic internal table

* Create and run the dynamic program
  INSERT REPORT 'ZDYNPRO'(001) FROM inctabl.
  SUBMIT zdynpro VIA SELECTION-SCREEN.
* Internal Table DownLoad.
* PERFORM download_result.
*&---------------------------------------------------------------------*

*& Form SELECT_FIELD_FROM_TABLE
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM select_field_from_table.
  CLEAR dd03l.
  SELECT position fieldname inttype intlen
  INTO (dd03l-position,dd03l-fieldname,
  dd03l-inttype,dd03l-intlen)
  FROM dd03l
  WHERE as4local = 'A'
  AND tabname = tab_name.
    MOVE-CORRESPONDING dd03l TO struct.
    APPEND struct.
  ENDSELECT.
  DELETE struct WHERE position = 1.
  DELETE struct WHERE fieldname = '.INCLUDE'.
  SORT struct BY position.
ENDFORM. " SELECT_FIELD_FROM_TABLE
*&---------------------------------------------------------------------*

*& Form DOWNLOAD_RESULT
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM download_result.
  CALL FUNCTION 'DOWNLOAD'
    EXPORTING
      filename = 'C:SAPworkdirZLGHTEST.txt'
      filetype = 'DAT'
    TABLES
      data_tab = inctabl.

ENDFORM. " DOWNLOAD_RESULT
*&---------------------------------------------------------------------*

*& Form MAKE_ITAB
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM make_itab.
  inctabl-line = 'data: begin of dyntab occurs 10,'.
  APPEND inctabl.
  LOOP AT struct.
    inctabl-line = struct-fieldname.
    lng = STRLEN( struct-fieldname ).
    IF NOT struct-intlen IS INITIAL .
      IF struct-inttype = 'P'.
        typestring2 = '(13),'.
        inctabl-line+lng = typestring2.
        APPEND inctabl.
      ELSEIF struct-inttype = 'D'.
        typestring2 = '(10),'.
        inctabl-line+lng = typestring2.
        APPEND inctabl.
      ELSE.
        typestring(1) = '('.
        typestring+1(4) = struct-intlen.
        typestring+10 = '),'.
        CONDENSE typestring NO-GAPS.
        inctabl-line+lng = typestring.
* inctabl-line+15 = ','.
        APPEND inctabl.
      ENDIF.
* inctabl-line+lng = TYPESTRING.
* inctabl-line+15 = ','. APPEND inctabl.
    ENDIF.
* inctabl-line+15 = 'type '.
* inctabl-line+21 = struct-inttype.
* inctabl-line+22 = ','. APPEND inctabl.
* inctabl-line+15 = ','. APPEND inctabl.
  ENDLOOP.
  inctabl-line = 'end of dyntab. '.
  APPEND inctabl.
ENDFORM. " MAKE_ITAB

*&---------------------------------------------------------------------*

*& Form MAKE_PRG
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM make_prg.
  inctabl-line = 'REPORT ZDYNPRO MESSAGE-ID ZPP1.'.
  APPEND inctabl.
  PERFORM make_itab.
  CONCATENATE 'DATA CP_TAB LIKE ' tab_name INTO inctabl-line
  SEPARATED BY space.
  CONCATENATE inctabl-line 'OCCURS 0 WITH HEADER LINE.'
  INTO inctabl-line SEPARATED BY space.
  APPEND inctabl.
  inctabl-line = 'DATA : file LIKE rlgrap-filename,CNT TYPE I.'.
  APPEND inctabl.
  inctabl-line =
  'SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.'.
  APPEND inctabl.
  inctabl-line =
'PARAMETERS p_fname(128) TYPE c LOWER CASE DEFAULT ''c:w'' OBLIGATORY.'.

  APPEND inctabl.
  inctabl-line = 'SELECTION-SCREEN END OF BLOCK b1.'. APPEND inctabl.
  inctabl-line = 'AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.'.
  APPEND inctabl.
  inctabl-line = ' PERFORM call_ws_filename_get.'. APPEND inctabl.
  inctabl-line = 'START-OF-SELECTION.'. APPEND inctabl.
  inctabl-line = 'PERFORM data_uploading.'. APPEND inctabl.
  inctabl-line = 'PERFORM insert_data_to_table.'. APPEND inctabl.
  inctabl-line = 'FORM call_ws_filename_get.'. APPEND inctabl.
  inctabl-line = 'CALL FUNCTION ''WS_FILENAME_GET'''. APPEND inctabl.
  inctabl-line = 'EXPORTING'. APPEND inctabl.
  inctabl-line = 'def_filename = file'. APPEND inctabl.
  inctabl-line = 'def_path = ''c:SAPworkdir'''.
  APPEND inctabl.
  inctabl-line = 'mask = '',*.txt,*.TXT.'''. APPEND inctabl.
  inctabl-line = 'mode = ''O'''. APPEND inctabl.
  inctabl-line = 'title = ''Upload할 파일을 선택하십시요'''.
  APPEND inctabl.
  inctabl-line = 'IMPORTING'. APPEND inctabl.
  inctabl-line = 'filename = p_fname'. APPEND inctabl.
  inctabl-line = 'EXCEPTIONS'. APPEND inctabl.
  inctabl-line = 'inv_winsys = 1'. APPEND inctabl.
  inctabl-line = 'no_batch = 2'. APPEND inctabl.
  inctabl-line = 'selection_cancel = 3'. APPEND inctabl.
  inctabl-line = 'selection_error = 4'. APPEND inctabl.
  inctabl-line = 'OTHERS = 5.'. APPEND inctabl.
  inctabl-line = 'ENDFORM.'. APPEND inctabl.
  inctabl-line = 'FORM data_uploading.'. APPEND inctabl.
  inctabl-line = 'CLEAR: dyntab,dyntab[].'. APPEND inctabl.
  inctabl-line = 'CALL FUNCTION ''WS_UPLOAD'''. APPEND inctabl.
  inctabl-line = 'EXPORTING'. APPEND inctabl.
  inctabl-line = 'codepage = '' '''. APPEND inctabl.
  inctabl-line = 'filename = p_fname'. APPEND inctabl.
  inctabl-line = 'filetype = ''DAT'''. APPEND inctabl.
  inctabl-line = 'TABLES'. APPEND inctabl.
  inctabl-line = 'data_tab = dyntab'. APPEND inctabl.
  inctabl-line = 'EXCEPTIONS'. APPEND inctabl.
  inctabl-line = 'conversion_error = 1'. APPEND inctabl.
  inctabl-line = 'file_open_error = 2'. APPEND inctabl.
  inctabl-line = 'file_read_error = 3'. APPEND inctabl.
  inctabl-line = 'invalid_type = 4'. APPEND inctabl.
  inctabl-line = 'no_batch = 5'. APPEND inctabl.
  inctabl-line = 'unknown_error = 6'. APPEND inctabl.
  inctabl-line = 'Invalid_table_width = 7'. APPEND inctabl.
  inctabl-line = 'gui_refuse_filetransfer = 8'. APPEND inctabl.
  inctabl-line = 'customer_error = 9.'.APPEND inctabl.
  inctabl-line = 'CASE sy-subrc.'. APPEND inctabl.
  inctabl-line = 'WHEN 1. MESSAGE i000 WITH ''CONVERSION ERR''.STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 2. MESSAGE i000 WITH ''FILE OPEN ERR''.STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 3. MESSAGE i000 WITH ''FILE READ ERR''.STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 4. MESSAGE i000 WITH ''INVALID TYPE ERR''.STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 5. MESSAGE i000 WITH ''NO BATCH ERROR''. STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 6. MESSAGE i000 WITH ''UNKNOWN ERROR''.STOP.'.
  APPEND inctabl.
  inctabl-line =
  'WHEN 7. MESSAGE i000 WITH ''INALID TABLE WIDTH''.STOP.'.
  APPEND inctabl.
  inctabl-line =
  'WHEN 8. MESSAGE i000 WITH ''GUI REFUSE FILETRANSFER''.STOP.'.
  APPEND inctabl.
  inctabl-line = 'WHEN 9. MESSAGE i000 WITH ''CUSTOMER ERROR''. STOP.'.
  APPEND inctabl.
  inctabl-line = ' ENDCASE.'. APPEND inctabl.
  inctabl-line = 'ENDFORM.'. APPEND inctabl.
  inctabl-line = 'FORM insert_data_to_table.'. APPEND inctabl.
  inctabl-line = 'LOOP AT dyntab.'. APPEND inctabl.
  inctabl-line = 'MOVE-CORRESPONDING dyntab TO cp_tab.'.
  APPEND inctabl.
  inctabl-line = 'append cp_tab.'. APPEND inctabl.
  inctabl-line = 'ENDLOOP.'. APPEND inctabl.
  CONCATENATE 'MODIFY' tab_name INTO inctabl-line SEPARATED BY space.
  CONCATENATE inctabl-line 'FROM TABLE CP_TAB.' INTO inctabl-line
  SEPARATED BY space.
* inctabl-line = 'MODIFY zppt003 FROM TABLE cp_tab.'.
  APPEND inctabl.
  inctabl-line = 'ENDFORM.'. APPEND inctabl.
ENDFORM. "MAKE_PRG

by saper | 2008/07/18 12:11 | Report | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶