Views 274
Visitors 166

Pengaturan Outbound

Home 
| Top Page | Threads |
Previous  Next

Definisikan Sistem Logika dan Tempatkan Client ke Sistem Logika – Transaksi SALE

SALE-4

 

Masuk ke "Define Logical System "(Lihat gambar diatas)
Definisikan logika sistem yang baru untuk mengidentifikasi sistem lokal dan Simpan

       SALE-1

 

Sekarang, masuk ke  "Assign Client to Logical System" (Lihat Gambar paling atas)
Tambahkan entri baru
Spesifikasikan Client, yang sebelumnya telah dibuat sistem logika dan atribut lainnya.
Simpan dan entrikan(masukkan)

       SALE-2

 

Definisikan logika sistem yang baru untuk mengidentifikasi sistem partner dan Simpan

       SALE-3

 

Memaintenance Tujuan RFC – Transaksi SM59

Buat sebuah tujuan RFC baru untuk Tipe koneksi R/3
Spesifikasikan Host target pada Tab 'Technical settings'.

       SM59-1

Sediakan Logon credentials pada tab "Logon/Security".

       SM59-2

Simpan pengaturan
Untuk memferivikasi Pengaturan, Klik pada ''Test connection" atau "Remote logon''

 

Definisikan Port Transaksi WE21

Kita perlu mendefinisikan Port RFC untuk sistem partner.
Klik pada "Transactional RFC"
Buat Port Baru.

       WE21-1

Isikan sebuh deskripsi
Spesifikasikan nama target tujuan RFC

       WE21-2

Simpan Objek

 

Memaintenan Model Distribusi – Transaksi BD64

Klik pada "Change" BD64-1
Buat model view baru BD64-2
Isikan "Short text" dan "Technical name"  pada Model View

       BD64-3

       Cttn : Technical Name sebaiknya namanya sesuai dengan RFC Destinations. Selain itu Technical Name adalah Case Sensitive.

 

Tambahkan Tipe Pesan BD64-5
Spesifikasikan sistem pengirim dan penerima.
Juga, spesifikasikan tipe pesan yang telah kita buat sebelumnya

       BD64-4

Simpan Model Distribusi

Cttn : Setelah Add message type sebaiknya disave dulu, jangan jalankan langkah di bawah ini (Generate/Create Partner Profile) karena akan muncul message "No messages have been defined for the selection conditions in the model".

Buat "Partner Profile" Transaksi BD82/WE20

Untuk menghasilkan 'Partner profile' secra otomatis, anda dapat menggunakan BD82 atau BD64 dan gunakan path menu Environment -> Generate partner profiles
oSelain itu, anda dapat menggunakan transaksi WE20 untuk membuat sebuah "partner profile"

       BD64-6

Pada "selection screen", spesifikasikan view model, sistem taraget dan Eksekusi
Hasilnya akan ditampilkan pada layar berikutnya

       BD82-1

Untuk memverifikasi "partner profile" masuk ke WE20
Cek"partner profile" Sistem target

       WE20-1

 

View Model Terdistribusi (Distribute Model View) – Transaski BD64

Seleksi Model View
Masuk ke path menu Edit -> Model View -> DistributeBD64-7
Hasil Log akan ditampilkan pada screen berikutnya.

       BD64-8

 

Program untuk menghasilkan 'Outbound IDoc'

Buat program 'executable' ZRZ_ORDER_IDOC di SE38. Dibawah, telah saya diskripsikan logika program :

Ambil data dari DDic Tabel ZCUSTOMERS, ZSOHEADERS dan ZSOITEMS sebagai kriteria seleksi.
Isikan Struktur record Kontrol dari tipe EDIDC
oRincikan Tipe Pesan, Tipe IDoc basic, Port tRFC, nomor Partner, dan Tipe Partner Penerima
Isikan record data
oDefinisikan struktur seperti 'IDoc Segment'
oIsikan struktur dengan data yang telah diambil
oLewati nama segment dan striuktur diatas dengan field yang cocok dari Tipe Struktur EDIDD
oTempatkan struktur EDIDD ke Tabel Internal tipe EDIDD
Sekarang, panggil "function module" MASTER_IDOC_DISTRIBUTE dan lewati Struktur Record Kontrol IDoc dan tabel record data.
Sistem bekerja dengan baik jika nilai kembali adalah nol
Function module memberikan nilai kembali sebuah tabel Tipe EDIDC untuk memberikan detail tentang meggenerate/menghasilkan IDoc
Tampilkan Log yang sesuai

Kode Sintak

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

*& Report  ZYZ_ORDER_IDOC                                              *

*&                                                                     *

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

*&                                                                     *

*&                                                                     *

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

 

REPORT  zyz_order_idoc                          .

 

PARAMETERS : p_logsys TYPE tbdlst-logsys.

 

DATA : gen_segment1 LIKE edidd-segnam VALUE 'ZYZSEG1',

       gen_segment2 LIKE edidd-segnam VALUE 'ZYZSEG2',

       gen_segment3 LIKE edidd-segnam VALUE 'ZYZSEG3'.

 

DATA : control_dat LIKE edidc,

        gen_data1 LIKE zcustomers,

        gen_data2 LIKE zsoheaders,

        gen_data3 LIKE zsoitems.

 

TABLES : zcustomers, zsoheaders, zsoitems.

 

DATA : BEGIN OF intab1 OCCURS 0.

        INCLUDE STRUCTURE zcustomers.

DATA : END OF intab1.

 

DATA : BEGIN OF intab2 OCCURS 0.

        INCLUDE STRUCTURE zsoheaders.

DATA : END OF intab2.

 

DATA : BEGIN OF intab3 OCCURS 0.

        INCLUDE STRUCTURE zsoitems.

DATA :  netwr LIKE vbap-netwr,

        zmeng LIKE vbap-zmeng.

data : END OF intab3.

 

DATA : int_edidd LIKE edidd OCCURS 0 WITH HEADER LINE,

        int_edidc LIKE edidc OCCURS 0 WITH HEADER LINE.

 

SELECT vbeln kunnr

  INTO CORRESPONDING FIELDS OF TABLE intab2

FROM vbak

WHERE vbeln = '0000005016'.

IF sy-subrc NE 0.

  MESSAGE 'no data' TYPE 'l'.

  EXIT.

ENDIF.

 

 

SELECT kunnr name1 ort01 land1

  INTO CORRESPONDING FIELDS OF TABLE intab1

FROM kna1

  FOR ALL ENTRIES IN intab2

WHERE kunnr = intab2-kunnr.

IF sy-subrc NE 0.

  MESSAGE 'no data' TYPE 'l'.

  EXIT.

ENDIF.

 

 

SELECT vbeln posnr matnr netwr zmeng waerk zieme

  INTO CORRESPONDING FIELDS OF TABLE intab3

FROM vbap

  FOR ALL ENTRIES IN intab2

WHERE vbeln = intab2-vbeln.

IF sy-subrc NE 0.

  MESSAGE 'no data' TYPE 'l'.

  EXIT.

ENDIF.

 

LOOP AT intab3.

  WRITE intab3-netwr TO intab3-netwr_d.

  WRITE intab3-zmeng TO intab3-zmeng_d.

  MODIFY intab3.

ENDLOOP.

 

control_dat-mestyp = 'ZYZSO_MT'.

control_dat-idoctp = 'ZYZORDER'.

control_dat-rcvpor = '810'.

control_dat-rcvprt = 'LS'.

control_dat-rcvprn = p_logsys.

 

 

LOOP AT intab1.

  MOVE-CORRESPONDING intab1 TO gen_data1.

  int_edidd-segnam = gen_segment1.

  int_edidd-sdata = gen_data1.

  APPEND int_edidd.

  CLEAR intab1.

ENDLOOP.

 

LOOP AT intab2.

  MOVE-CORRESPONDING intab2 TO gen_data2.

  int_edidd-segnam = gen_segment2.

  int_edidd-sdata = gen_data2.

  APPEND int_edidd.

  CLEAR intab2.

ENDLOOP.

 

 

LOOP AT intab3.

  gen_data3-vbeln = intab3-vbeln.

  gen_data3-posnr = intab3-posnr.

  gen_data3-matnr = intab3-matnr.

  gen_data3-netwr_d = intab3-netwr_d.

  gen_data3-zmeng_d = intab3-zmeng_d.

  gen_data3-waerk = intab3-waerk.

  gen_data3-zieme = intab3-zieme.

 

  int_edidd-segnam = gen_segment3.

  int_edidd-sdata = gen_data3.

  APPEND int_edidd.

  CLEAR intab3.

ENDLOOP.

 

CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

  EXPORTING

    master_idoc_control                  = control_dat

*   OBJ_TYPE                             = ''

*   CHNUM                                = ''

  TABLES

    communication_idoc_control           = int_edidc

    master_idoc_data                     = int_edidd

EXCEPTIONS

   error_in_idoc_control                = 1

   error_writing_idoc_status            = 2

   error_in_idoc_data                   = 3

   sending_logical_system_unknown       = 4

   OTHERS                               = 5

          .

IF sy-subrc <> 0.

  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.

ELSE.

  LOOP AT int_edidc.

    WRITE :/ 'IDOC GENERATED',int_edidc-docnum.

  ENDLOOP.

  COMMIT WORK.

ENDIF.

 

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views