Bagikan melalui


Skema Pesan untuk Operasi IDOC

Dokumen perantara (IDOCS) adalah dokumen seperti EDI standar yang didukung oleh SAP untuk berkomunikasi secara asinkron dengan sistem SAP dan non-SAP. IDOCS digunakan untuk mengirim dan menerima dokumen bisnis seperti pesanan penjualan ke atau dari sistem SAP mitra dagang atau program eksternal.

Meskipun sistem SAP mendukung sejumlah jenis port untuk mengirim dan menerima IDOCS (misalnya, port file atau port CPIC), Adapter Microsoft BizTalk untuk mySAP Business Suite mendukung pengiriman dan penerimaan IDOCS dengan menggunakan port tRFC.

  • Untuk IDOC keluar, adaptor SAP bertindak sebagai klien tRFC dan memanggil RFC untuk mengirim IDOC ke SAP.

  • Untuk IDOC masuk, adaptor SAP bertindak sebagai server tRFC dan menerima panggilan klien tRFC dari SAP untuk menerima IDOC.

    Adaptor SAP menampilkan empat operasi di bawah simpul IDOC yang dapat Anda gunakan untuk mengirim dan menerima IDOCS dengan sistem SAP.

  • SendIdoc. Mengirim IDOC ke adaptor sebagai data string. Operasi ini muncul langsung di bawah simpul akar IDOC. Operasi yang sama digunakan untuk semua IDOC.

  • Kirim. Mengirim IDOC ke adaptor sebagai data yang ditik dengan kuat. Operasi ini muncul di bawah simpul khusus untuk setiap IDOC.

  • ReceiveIdoc. Menerima IDOC dari adaptor sebagai data string. Operasi ini muncul langsung di bawah simpul akar IDOC. Operasi yang sama digunakan untuk semua IDOC.

  • Terima. Menerima IDOC dari adaptor sebagai data yang sangat ditik. Operasi ini muncul di bawah simpul khusus untuk setiap IDOC.

Catatan

Keempat operasi ini menyediakan berbagai cara untuk bertukar IDOC antara program Anda dan adaptor SAP. Adaptor selalu menggunakan RFC (seperti yang dibahas di bagian berikutnya) untuk mengirim atau menerima IDOC dengan sistem SAP.

Selain menggunakan salah satu dari empat operasi IDOC, Anda juga dapat mengirim atau menerima IDOC dengan menggunakan salah satu RFC yang digunakan secara internal oleh adaptor SAP untuk bertukar IDOC dengan sistem SAP. Untuk gambaran umum tentang bagaimana adaptor SAP mendukung IDOC, lihat Operasi pada IDOC di SAP.

Topik ini berisi informasi tentang skema pesan dan tindakan pesan yang digunakan untuk operasi IDOC.

RFC yang Digunakan oleh Adaptor SAP untuk Mengirim dan Menerima IDOC

Adaptor SAP menggunakan panggilan fungsi jarak jauh (RFC) berikut secara internal untuk bertukar IDOCS dengan sistem SAP. Di sisi keluar (adaptor ke sistem SAP), adaptor bertindak sebagai klien tRFC untuk memanggil RFC. Di sisi masuk (SAP ke adaptor), SAP memanggil RFC pada adaptor, yang bertindak sebagai server tRFC.

RFC Deskripsi
IDOC_INBOUND_ASYNCHRONOUS Modul fungsi ini digunakan dari rilis 4.0 dan yang lebih baru. Ini memproses IDOCS dalam jenis rekaman yang valid untuk rilis 4.x. Ini memastikan bahwa nama segmen IDOC yang lebih panjang didukung.

Parameter untuk RFC ini meliputi:

- idoc_control_rec_40 (struktur SAP EDI_DC40)

- idoc_data_rec_40 (struktur SAP EDI_DD40)

Rekaman kontrol IDOC terdiri dari bidang berikut:

- Mestyp. Jenis pesan logis. Menyampaikan arti bisnis dari pesan tersebut. Ini adalah bidang wajib.

- Idoctyp. Struktur dasar IDOC. Bidang ini mengidentifikasi set tata letak yang menggunakan pesan ini. Ini adalah bidang wajib.

- Cimtyp. Struktur ekstensi pelanggan. Jika struktur dasar SAP diperpanjang, pelanggan harus memberikan nama untuk struktur ekstensi. Ini adalah bidang wajib jika pelanggan telah melakukan peningkatan; jika tidak, inisial.

- Bidang mitra. Ini adalah parameter mitra sisi kirim dan terima seperti jenis mitra, nomor mitra, fungsi mitra.

Catatan data IDOC terdiri dari bidang berikut:

- Bidang header. Bidang header segmen seperti nama tabel, nomor segmen, jenis segmen. Ini adalah bidang wajib.

- Sdata. Bidang karakter 1000 byte untuk data yang digunakan oleh IDOC . Ini adalah bidang wajib.
INBOUND_IDOC_PROCESS Modul fungsi ini digunakan untuk rilis hingga 4.0. Ini memproses IDOCS dalam jenis catatan yang valid untuk rilis 3.x. Dimungkinkan juga untuk menggunakan modul fungsi ini dalam 4.x.

Parameter untuk RFC ini meliputi:

- idoc_control (struktur SAP EDI_DC)

- idoc_data (struktur SAP EDI_DD)

Operasi untuk Mengirim IDOC

Adaptor SAP mengekspos operasi Kirim dan SendIdoc bagi klien untuk mengirim IDOC ke sistem SAP. Untuk operasi Kirim, IDOC direpresentasikan sebagai data dengan jenis kuat; untuk operasi SendIdoc, IDOC direpresentasikan sebagai data string. Operasi ini menentukan bagaimana data IDOC diwakili antara adaptor dan aplikasi Anda. Adaptor selalu mengirim IDOC ke SAP dengan menggunakan IDOC_INBOUND_ASYNCHRONOUS atau IDOC_INBOUND_PROCESS (t)RFC. Untuk mengirim IDOC ke sistem SAP, Anda dapat menggunakan operasi Kirim atau SendIdoc, atau Anda dapat langsung memanggil RFC yang sesuai.

Struktur Pesan untuk Operasi Klien IDOC

Tabel berikut ini memperlihatkan struktur pesan untuk operasi Kirim dan SendIdoc.

Operasi Struktur XML Deskripsi
Kirim <Send xmlns="[MSG_VERSION]/Idoc/[VERSION]/[IDOCTYP]/ [CIMTYP]/[RELNO]/Send"> <idocData> <[EDI_DC40/EDI_DC] xmlns="/Types/Idoc/ [VERSION]/[IDOCTYP]/[CIMTYP]/[RELNO]"> <EDIDC_FIELD1>value1</ EDIDC_FIELD1> <EDIDC_FIELD2>value2</ EDIDC_FIELD2> … </EDI_DC40> <[SEGMENT_DEFN]_1> <[DATAHEADERCOLUMN_[SEGHDR_FLD1]> header_value_1 </[DATAHEADERCOLUMN_[SEGHDR_FLD1]> <[DATAHEADERCOLUMN_[SEGHDR_FLD2]> header_value_2 </[DATAHEADERCOLUMN_[SEGHDR_FLD2]> … <SEG_FIELD1>value1</SEG_FIELD1> <SEG_FIELD2>value2</SEG_FIELD2> … </[SEGMENT_DEFN]_1> <[SEGMENT_DEFN]_2> <[DATAHEADERCOLUMN_[SEGHDR_FLD1]> header_value_1 </[DATAHEADERCOLUMN_[SEGHDR_FLD1]> <[DATAHEADERCOLUMN_[SEGHDR_FLD2]> header_value_2 </[DATAHEADERCOLUMN_[SEGHDR_FLD2]> … <SEG_FIELD1>value1</SEG_FIELD1> <SEG_FIELD2>value2</SEG_FIELD2> … </[SEGMENT_DEFN]_2> … </[EDI_DC40/EDI_DC]> </idocData> <guid>guid</guid> </Send> Mengirim IDOC yang ditik dengan kuat ke SAP

- Skema IDOC sangat diketik.

- Mengekspos bidang rekaman kontrol.

- Mengekspos bidang rekaman data termasuk header segmen dan bidang segmen.

Adaptor SAP mengaitkan GUID dengan ID transaksi SAP (TID) yang digunakannya untuk mengirim IDOC. Anda dapat memilih apakah akan menentukan GUID dalam pesan permintaan. Jika GUID tidak disertakan dalam pesan permintaan, adaptor SAP akan menghasilkannya. GUID dikembalikan dalam pesan respons.
Kirim Respons <SendResponse xmlns="[MSG_VERSION]/Idoc/[VERSION]/ [IDOCTYP]/[CIMTYP]/[RELNO]/Send"> <guid>guid</guid> </SendResponse> Menunjukkan bahwa IDOC telah dikirim ke sistem SAP.

Jika properti pengikatan AutoConfirmSentIdocsbenar, adaptor SAP secara otomatis mengonfirmasi transaksi pada sistem SAP, dan Anda dapat mengabaikan GUID yang dikembalikan dalam respons. Jika properti pengikatan AutoConfirmSentIdocssalah, Anda harus memanggil operasi RfcConfirmTransID dengan GUID yang dikembalikan oleh adaptor SAP untuk menyelesaikan transaksi pada sistem SAP.

Anda dapat memanggil metode SapAdapterUtilities.ConvertGuidToTid untuk mendapatkan TID yang terkait dengan unit kerja logis (LUW).
SendIdoc <SendIdoc xmlns="[MSG_VERSION]/Idoc"> <idocData>docDataString</idocData> <guid>guid</guid> </SendIdoc> Mengirim IDOC yang dititik lemah ke SAP.

- Skema IDOC diketik lemah.

- Mengekspos IDOC sebagai bidang string tunggal yang terdiri dari rekaman kontrol dan rekaman data.

Adaptor SAP mengaitkan GUID dengan SAP TID yang digunakannya untuk mengirim IDOC. Anda dapat memilih apakah akan menentukan GUID dalam pesan permintaan. Jika GUID tidak disertakan dalam pesan permintaan, adaptor SAP akan menghasilkannya. GUID dikembalikan dalam pesan respons
Respons SendIdoc <SendIdocResponse xmlns="[MSG_VERSION]/Idoc"> <guid>guid</guid> </SendIdocResponse> Menunjukkan bahwa IDOC telah dikirim ke sistem SAP.

Jika properti pengikatan AutoConfirmSentIdocsbenar, adaptor SAP secara otomatis mengonfirmasi transaksi pada sistem SAP, dan Anda dapat mengabaikan GUID yang dikembalikan dalam respons. Jika properti pengikatan AutoConfirmSentIdocssalah, Anda harus memanggil operasi RfcConfirmTransID dengan GUID yang dikembalikan oleh adapter SAP untuk menyelesaikan transaksi pada sistem SAP.

Anda dapat memanggil metode SapAdapterUtilities.ConvertGuidToTid untuk mendapatkan TID yang terkait dengan LUW.

[MSG_VERSION] = String versi pesan; misalnya, http://Microsoft.LobServices.Sap/2007/03.

[VERSION] = versi rilis IDOC (2 atau 3).

[IDOCTYP] = tipe IDOC; misalnya, ORDERS05.

[CIMTYP] = Cimtype dari IDOC yang disesuaikan.

[RELNO] = Nomor rilis; misalnya, 620.

[EDI_DC40/EDI_DC] = EDI_DC40 untuk IDOC rilis versi 3 dan EDI_DC untuk IDOC versi rilis2.

[EDIDC_FIELD] = Bidang yang merupakan struktur rekaman kontrol EDI_DC40/EDI_DC.

[SEGMENT_DEFN] = Nama definisi segmen (nama jenis segmen NOT); misalnya, E2EDK01005. Perhatikan bahwa simpul definisi segmen juga dapat muncul di bawah simpul grup segmen, berdasarkan struktur IDOC.

[DATAHEADERCOLUMN_(SEGHDR_FLD)] = Setiap segmen memiliki header segmen yang terdiri dari sekumpulan bidang header standar diikuti oleh data segmen. Data segmen terdiri dari semua bidang dan data segmen. Simpul ini mewakili bidang header segmen; misalnya, DATAHEADERCOLUMN_SEGNAM.

[SEG_FIELD] = Nama bidang segmen yang merupakan definisi segmen tertentu [SEGMENT_DEFN].

[guid] = parameter GUID.

Tindakan Pesan untuk Operasi Klien IDOC

Tabel berikut ini memperlihatkan tindakan pesan untuk operasi Kirim dan SendIdoc.

Operasi Tindakan Contoh
Kirim [MESSAGE_VERSION]/Idoc/[VERSION] /[IDOCTYP]/[CIMTYP]/[RELNO]/Send http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send
Kirim Respons [MESSAGE_VERSION]/Idoc/[VERSION] /[IDOCTYP]/[CIMTYP]/[RELNO]/Send/response http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send/response
SendIdoc [MESSAGE_VERSION]/Idoc/SendIdoc http://Microsoft.LobServices.Sap/2007/03/Idoc/SendIdoc
Respons SendIdoc [MESSAGE_VERSION]/Idoc/SendIdoc/response http://Microsoft.LobServices.Sap/2007/03/Idoc/SendIdoc/response

[MESSAGE_VERSION] = String versi pesan; misalnya, http://Microsoft.LobServices.Sap/2007/03.

[VERSION] = versi rilis IDOC (2 atau 3).

[IDOCTYP] = tipe IDOC; misalnya, ORDERS05.

[CIMTYP] = Cimtype dari IDOC yang disesuaikan.

[RELNO] = Nomor rilis; misalnya, 620.

Operasi untuk Menerima IDOC

Adaptor SAP mengekspos operasi Receive dan ReceiveIdoc untuk aplikasi guna menerima IDOC dari sistem SAP. Untuk operasi Terima, IDOC direpresentasikan sebagai data dengan jenis kuat; untuk operasi ReceiveIdoc, IDOC direpresentasikan sebagai data string.

Operasi ini menentukan bagaimana data IDOC dipancarkan oleh adaptor ke aplikasi Anda. Adaptor selalu menerima IDOC dari sistem SAP sebagai IDOC_INBOUND_ASYNCHRONOUS atau IDOC_INBOUND_PROCESS tRFC. Anda dapat menggunakan operasi Terima atau ReceiveIdoc, atau Anda dapat menerima data IDOC dalam format RFC. Anda mengatur properti pengikatan ReceiveIdocFormat untuk menentukan format di mana adaptor memancarkan data IDOC ke aplikasi Anda. Untuk informasi selengkapnya tentang properti pengikatan adaptor SAP, lihat Membaca tentang adaptor BizTalk untuk properti pengikatan mySAP Business Suite.

Struktur Pesan untuk Operasi Penerimaan IDOC

Tabel berikut ini memperlihatkan struktur pesan untuk operasi Receive dan ReceiveIdoc.

Operasi Struktur XML Deskripsi
Terima <Receive xmlns="[MSG_VERSION]/Idoc/[VERSION]/[IDOCTYP]/ [CIMTYP]/[RELNO]/Receive"> <idocData> <[EDI_DC40/EDI_DC] xmlns="/Types/Idoc/ [VERSION]/[IDOCTYP]/[CIMTYP]/[RELNO]"> <EDIDC_FIELD1>value1</ EDIDC_FIELD1> <EDIDC_FIELD2>value2</ EDIDC_FIELD2> … </EDI_DC40> <[SEGMENT_DEFN]_1> <[DATAHEADERCOLUMN_[SEGHDR_FLD1]> header_value_1 </[DATAHEADERCOLUMN_[SEGHDR_FLD1]> <[DATAHEADERCOLUMN_[SEGHDR_FLD2]> header_value_2 </[DATAHEADERCOLUMN_[SEGHDR_FLD2]> … <SEG_FIELD1>value1</SEG_FIELD1> <SEG_FIELD2>value2</SEG_FIELD2> … </[SEGMENT_DEFN]_1> <[SEGMENT_DEFN]_2> <[DATAHEADERCOLUMN_[SEGHDR_FLD1]> header_value_1 </[DATAHEADERCOLUMN_[SEGHDR_FLD1]> <[DATAHEADERCOLUMN_[SEGHDR_FLD2]> header_value_2 </[DATAHEADERCOLUMN_[SEGHDR_FLD2]> … <SEG_FIELD1>value1</SEG_FIELD1> <SEG_FIELD2>value2</SEG_FIELD2> … </[SEGMENT_DEFN]_2> … </[EDI_DC40/EDI_DC]> </idocData> </Receive> Menerima IDOC dengan jenis kuat dari SAP

- Skema IDOC diketik dengan kuat.

- Mengekspos bidang rekaman kontrol.

- Mengekspos bidang rekaman data termasuk header segmen dan bidang segmen.
Terima Respons <ReceiveResponse xmlns="[MSG_VERSION]/Idoc/[VERSION]/[IDOCTYP]/ [CIMTYP]/[RELNO]/Receive"> </ReceiveResponse> Menunjukkan bahwa IDOC telah diterima dari sistem SAP.
ReceiveIdoc <ReceiveIdoc xmlns="[MSG_VERSION]/Idoc"> <idocData>docDataString</idocData> </ReceiveIdoc> Menerima IDOC yang dititik lemah dari SAP.

- Skema IDOC diketik lemah.

- Mengekspos IDOC sebagai bidang string tunggal yang terdiri dari rekaman kontrol dan rekaman data.
Respons ReceiveIdoc <ReceiveIdocResponse xmlns="[MSG_VERSION]/Idoc"> </ReceiveIdocResponse> Menunjukkan bahwa IDOC telah diterima dari sistem SAP.

[MSG_VERSION] = String versi pesan; misalnya, http://Microsoft.LobServices.Sap/2007/03.

[VERSION] = versi rilis IDOC (2 atau 3).

[IDOCTYP] = tipe IDOC; misalnya, ORDERS05.

[CIMTYP] = Cimtype dari IDOC yang disesuaikan.

[RELNO] = Nomor rilis; misalnya, 620.

[EDI_DC40/EDI_DC] = EDI_DC40 untuk IDOC versi rilis 3 dan EDI_DC untuk IDOC versi rilis 2.

[EDIDC_FIELD] = Bidang yang merupakan struktur rekaman kontrol EDI_DC40/EDI_DC.

[SEGMENT_DEFN] = Nama definisi segmen (nama jenis segmen NOT); misalnya, E2EDK01005. Simpul definisi segmen juga dapat muncul di bawah simpul grup segmen, berdasarkan struktur IDOC.

[DATAHEADERCOLUMN_(SEGHDR_FLD)] = Setiap segmen memiliki header segmen yang terdiri dari sekumpulan bidang header standar diikuti oleh data segmen. Data segmen terdiri dari semua bidang dan data segmen. Simpul ini mewakili bidang header segmen; misalnya, DATAHEADERCOLUMN_SEGNAM.

[SEG_FIELD] = Nama bidang segmen yang merupakan definisi segmen tertentu [SEGMENT_DEFN].

Menerima IDOC dalam Format RFC

Anda juga dapat menerima IDoc dalam format RFC. RFC yang digunakan untuk menerima IDOC dari SAP adalah:

  • IDOC_INBOUND_ASYNCHRONOUS untuk IDOC versi 3.

  • INBOUND_IDOC_PROCESS untuk IDOC versi 2.

    Kode berikut menunjukkan struktur IDOC yang diterima sebagai operasi IDOC_INBOUND_ASYNCHRONOUS.

<IDOC_INBOUND_ASYNCHRONOUS xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">  
  <IDOC_CONTROL_REC_40>  
    <EDI_DC40 xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
      <EDIDC_FIELD1>field1</EDIDC_FIELD1>  
      <EDIDC_FIELD2>field2</EDIDC_FIELD2>  
      …  
    </EDI_DC40>  
  <IDOC_DATA_REC_40>  
    <EDI_DD40 xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
      <[SEG_HEADER_FIELD1]>value1</[SEG_HEADER_FIELD1]>  
      <[SEG_HEADER_FIELD2]>value2</[SEG_HEADER_FIELD2]>  
      …  
      <SDATA>segment value</SDATA>  
    </EDI_DD40>  
    …  
  </IDOC_DATA_REC_40>  
</IDOC_INBOUND_ASYNCHRONOUS>  

[EDIDC_FIELD] = Bidang yang merupakan struktur rekaman kontrol EDI_DC40/EDI_DC

[SEG_HEADER_FIELD] = Setiap segmen memiliki header segmen yang terdiri dari sekumpulan bidang header standar diikuti oleh data segmen. Data segmen terdiri dari semua bidang dan data segmen. Simpul ini mewakili bidang header segmen; misalnya, SEGNAM, MANDT, dan DOCNUM.

Untuk informasi selengkapnya tentang format operasi tRFC, lihat Skema Pesan untuk Operasi tRFC.

Tindakan Pesan untuk Operasi Penerimaan IDOC

Tabel berikut ini memperlihatkan tindakan pesan untuk operasi Receive dan ReceiveIdoc.

Operasi Tindakan Contoh
Terima [MESSAGE_VERSION]/Idoc/[VERSION] /[IDOCTYP]/[CIMTYP]/[RELNO]/Receive http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Receive
Terima Respons [MESSAGE_VERSION]/Idoc/[VERSION] /[IDOCTYP]/[CIMTYP]/[RELNO]/Receive/response http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Receive/response
ReceiveIdoc [MESSAGE_VERSION]/Idoc/ReceiveIdoc http://Microsoft.LobServices.Sap/2007/03/Idoc/ReceiveIdoc
Respons ReceiveIdoc [MESSAGE_VERSION]/Idoc/ReceiveIdoc/response http://Microsoft.LobServices.Sap/2007/03/Idoc/ReceiveIdoc/response