Views 271
Visitors 162

Create YFM_RFC_PRACTICE_101

Home 
| Top Page | Threads |
Previous  Next

 

Membuat Structure

Buatlah Structure baru "YST_HEADER_101"

Tampilkan Langkah-langkahnya

Buka t-Code "SE11"
Masukkan Data Type dengan "YST_HEADER_101"

rfc0021

Klik "rfc0002"
Pilih "Structure"

rfc0035

Isikan Short Description dengan "Structure for RFC Report"

rfc0022

 

Tamahkan komponen seperti dibawah

rfc0023

 

Klik "rfc0007" Untuk menyimpan structure

Cttn : Anda Dapat menyimpan Package yang ada atau local objek

Klik "rfc0008" untuk mengaktifkan structure

 

Membuat Function

1.Buka t-Code "SE37"
2.Masukkan Function Baru "YFM_RFC_PRACTICE_101"

rfc0024

3.Klik "rfc0002"
4.Isikan Function group dengan "YFG_MIL" dan Short text dengan "RFC Practice 101"

rfc0025

 

5.Klik "rfc0014" untuk menyimpan function
6.Edit dan Atur  Processing type menjadi "Remote-enabled module"

rfc0026

 

7.Tambahkan variabel impor seperti gambar dibawah

rfc0027

 

8.Tambahkan variabel Tabel seperti gambar dibawah

rfc0028

 

9.Tambahkan Kode Sintak, Salin dan paste kode berikut pada tab  "Source Code"

Lihat Kode sintak tanpa menggunakan "UP TO gv_max_row ROWS"

FUNCTION yfm_rfc_practice_101.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  IMPORTING

*"     VALUE(GV_MATKL) LIKE  MARA-MATKL OPTIONAL

*"     VALUE(GV_MATNR) LIKE  MARA-MATNR OPTIONAL

*"     VALUE(GV_MAX_ROW) TYPE  I DEFAULT 0

*"  TABLES

*"      GI_HEADER STRUCTURE  YST_HEADER_101 OPTIONAL

*"----------------------------------------------------------------------

 

  DATA: gi_makt TYPE STANDARD TABLE OF makt WITH HEADER LINE,

        gi_t006a TYPE STANDARD TABLE OF t006a WITH HEADER LINE.

  DATA: lv_counter TYPE i.

 

  RANGES : lr_matkl FOR mara-matkl,

           lr_matnr FOR mara-matnr.

 

  IF gv_matkl IS NOT INITIAL.

    MOVE : gv_matkl  TO lr_matkl-low,

           space     TO lr_matkl-high,

           'EQ'      TO lr_matkl-option,

           'I'       TO lr_matkl-sign.

    APPEND lr_matkl.

  ENDIF.

 

  IF gv_matnr IS NOT INITIAL.

    MOVE : gv_matnr  TO lr_matnr-low,

           space     TO lr_matnr-high,

           'EQ'      TO lr_matnr-option,

           'I'       TO lr_matnr-sign.

    APPEND lr_matnr.

  ENDIF.

 

*  Collect Master Material

  SELECT matnr matkl bismt meins

    INTO CORRESPONDING FIELDS OF TABLE gi_header

  FROM mara

  WHERE

    matkl IN lr_matkl AND

    matnr IN lr_matnr.

 

*  Collect Material Decription

  SELECT matnr maktx

    INTO CORRESPONDING FIELDS OF TABLE gi_makt

  FROM makt

    FOR ALL ENTRIES IN gi_header

  WHERE

    matnr = gi_header-matnr AND

    spras = sy-langu.

 

*  Collect Measurement Text

  SELECT msehi mseht

    INTO CORRESPONDING FIELDS OF TABLE gi_t006a

  FROM t006a

    FOR ALL ENTRIES IN gi_header

  WHERE

    msehi = gi_header-meins AND

    spras = sy-langu.

 

*Mendapatkan informasi lain yang dibutuhkan

  LOOP AT gi_header.

*    Maksimal pengecekan row

    ADD 1 TO lv_counter.

    IF lv_counter <= gv_max_row OR gv_max_row = 0.

*    Mendapatkan deskripsi material

      READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.

      IF sy-subrc = 0.

        gi_header-maktx = gi_makt-maktx.

      ENDIF.

 

*    mendapatkan standar teks pengukuran

      READ TABLE gi_t006a WITH KEY msehi = gi_header-meins.

      IF sy-subrc = 0.

        gi_header-mseht = gi_t006a-mseht.

      ENDIF.

 

      MODIFY gi_header.

 

    ELSE.

      DELETE gi_header.

    ENDIF.

 

  ENDLOOP.

 

 

ENDFUNCTION.

Lihat kode Sintak menggunakan "UP TO gv_max_row ROWS"

 

FUNCTION yfm_rfc_practice_101.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  IMPORTING

*"     VALUE(GV_MATKL) LIKE  MARA-MATKL OPTIONAL

*"     VALUE(GV_MATNR) LIKE  MARA-MATNR OPTIONAL

*"     VALUE(GV_MAX_ROW) TYPE  I DEFAULT 100

*"  TABLES

*"      GI_HEADER STRUCTURE  YTA_HEADER_101 OPTIONAL

*"----------------------------------------------------------------------

 

  DATA: gi_makt TYPE STANDARD TABLE OF makt WITH HEADER LINE,

        gi_t006a TYPE STANDARD TABLE OF t006a WITH HEADER LINE.

*  DATA: lv_counter TYPE i.

 

  RANGES : lr_matkl FOR mara-matkl,

           lr_matnr FOR mara-matnr.

 

  IF gv_matkl IS NOT INITIAL.

    MOVE : gv_matkl  TO lr_matkl-low,

           space     TO lr_matkl-high,

           'EQ'      TO lr_matkl-option,

           'I'       TO lr_matkl-sign.

    APPEND lr_matkl.

  ENDIF.

 

  IF gv_matnr IS NOT INITIAL.

    MOVE : gv_matnr  TO lr_matnr-low,

           space     TO lr_matnr-high,

           'EQ'      TO lr_matnr-option,

           'I'       TO lr_matnr-sign.

    APPEND lr_matnr.

  ENDIF.

 

*  Seleksi Material Master

  SELECT matnr matkl bismt meins

    UP TO gv_max_row ROWS

    INTO CORRESPONDING FIELDS OF TABLE gi_header

  FROM mara

  WHERE

    matkl IN lr_matkl AND

    matnr IN lr_matnr.

 

*  Seleksi Deskripsi Material

  SELECT matnr maktx

    INTO CORRESPONDING FIELDS OF TABLE gi_makt

  FROM makt

    FOR ALL ENTRIES IN gi_header

  WHERE

    matnr = gi_header-matnr AND

    spras = sy-langu.

 

*  Seleksi Standar teks pengukuran

 

  SELECT msehi mseht

    INTO CORRESPONDING FIELDS OF TABLE gi_t006a

  FROM t006a

    FOR ALL ENTRIES IN gi_header

  WHERE

    msehi = gi_header-meins AND

    spras = sy-langu.

 

 

*Mendapatkan informasi lain yang dibutuhkan

 

  LOOP AT gi_header.

*    Mendapatkan Deskripsi Material

    READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.

    IF sy-subrc = 0.

      gi_header-maktx = gi_makt-maktx.

    ENDIF.

 

*    Mendapatkan Standar teks pengukuran

    READ TABLE gi_t006a WITH KEY msehi = gi_header-meins.

    IF sy-subrc = 0.

      gi_header-mseht = gi_t006a-mseht.

    ENDIF.

 

    MODIFY gi_header.

 

  ENDLOOP.

 

ENDFUNCTION.

10.Simpan dan aktifkan function

 

Tes Menjalankan Program

Input

rfc0032

Output

rfc0033

 

rfc0034

 

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views