SAP de BAPI, IDOC Nedir?

IDOC Nedir?
IDoc bir SAP nesnesidir. Bir SAP baÅŸka bir SAP sistemine veya SAP sisteminden SAP olmayan baÅŸka bir sisteme veri taşımak veya tersi için kullanılan elektronik message dır. IDoc Intermediate Document’nin kısaltılmış halidir.  SAP sisteminden SAP olmayan bir systeme taşıma iÅŸlemi EDI (Electronic Data Interchange) alt sistemi aracılığı ile olurken, iki SAP sistemi arasındaki taşıma iÅŸlemi ALE ile gerçekleÅŸir. IDoc SAP sisteminde veya EDI alt sisteminde baÅŸlatılır. Bu IDOC’un gönderileceÄŸi yöne gore deÄŸiÅŸir, ve Inbound IDoc ve Outbound IDoc olarak adlandırılır.  Outbound akışındaki durumda, IDoc SAP sistemine doÄŸru message control dokümanını yönlendirmek için baÅŸlatılır, ve  EDI alt sistemine gönderilir. EDI veriyi IDoc formatından XML formatına veya XML benzeri bir formata dönüştürür, ve Internet yoluyla istenen sisteme aktarılır. Inbound akışında ise, EDI yardımcı dataya dönüştürülür ve IDoc SAP nin içinde yaratılır. IDoc’un baÅŸarılı gönderilmesi sonrasında, SAP sistemine Application Document gönderilir.



EDI STANDARDS AND IDOC


“EDI (Electronic Data Interchange) , yakın bilgisayar sistemleri arasında bir elektronik deÄŸiÅŸim dokümanıdır. Bu iÅŸlemi standart formatta bir kominikasyon ağı kullanarak yapar.

Elektronik olarak bilgi aktarımı için, ANSI ASC X12 ve  EDIFACT yaygın olarak kullanılan iki tiptir. ANSI ASC X12, büyük organizasyonlar, resmi kurumlar ve EDI yazılım firmaları tarafından kullanılan formattır. UN/EDIFACT ise,  uluslar arası EDI ticari ve taşıma alanında, kullanılır, ve 1985 de ANSI X12 ve UNTDI (United Nations Trade Data interchange) temel standart alınarak ÅŸekillendirilmiÅŸtir. ANSI X12, business dokümanı document transaction olarak tanımlanmıştır. Herbir transaction ise, 3 haneli sayı ile temsil edilir, örneÄŸin; 850 – Purchase Order, 855 - Purchase Order Acknowledgement. EDIFACT, business dokümanını mesaj olarak tanımlar, ve standart isimlerle gösterilir, örneÄŸin; purchase order için ORDERS.

IDOC TERMINOLOGIES 
IDOC (BASIC) TYPE
IDoc tipleri genelde EDI standartlarına ama çoğunlukla EDIFACT standartlarına dayanır.

Basic Types (or IDoc Type), bir standart IDoc record yapısıdır. Her temel tip, standart IDoc segmentini, veri alanlarının formatını ve onların boyutunu tanımlar.  Basic Types ayrıca, bir IDoc içindeki alanların ve segmentlerin sayılarını da tutur. Bir mesajın gönderilmesi için gerekli bütün alanlar ayrı segmentlere atanır. Ayrıca Basic Types structure yapısını tanımlar ve IDoc segmentlerinin zorunlu yada optional olanları arasındaki iliÅŸkiyi belirler.




STRUCTURE
Bir IDoc yapısı 3 ana bölüme ayrılır; Control Record, Data Records and Status records.




Bu yapılar, 3 transparent tabloda tutulur, bunlar; EDIDC, EDID4 and EDIDS.

CONTROL RECORD (EDIDC)
Bu tabloda ÅŸu bilgiler tutulur;  IDoc number, direction, IDoc Status, Temel Tip, Message tipi, Partner (Sender/Receiver), yaratma/deÄŸiÅŸtirme zaman  bilgisi, Interchange File yada ISA numarası vb.






DATA RECORD (EDID4)
Bu yapı IDoc segmentinin ayrıntılarını içerir.

IDoc segment, gönderilecek dokümanın gerekli veri alanlarını (data field) içerir.






STATUS RECORDS (EDIDS)
IDoc Status alanı, iÅŸlemin durum bilgisini içerir. IDoc durumları IDoc’u takip etmek için kullanılır ve process durumuna gore çeÅŸitlilik gösterir. Status Sayısı IDoc statüsünü gösterir. O andaki IDoc status, control record içinde yeralır.


Başlangıç status numarası inbound için 64, outbound için 03 dür. Başarılı status, inbound için 53 outbound için 16dır.


RRC1_IDOC_SET_STATUS program, IDoc statüsünü deÄŸiÅŸtirmek için kullanılır. Status deÄŸiÅŸtirme ihtiyacı genellikle 68 den  bir daha çalışmama statüsüne deÄŸiÅŸtirmek için kullanılır.



EÄŸer IDoc veride bir hata içerirse, WE02 or WE05 kullanarak hatanın içeriÄŸine bakılabilir. Bir IDoc görüntülendiÄŸinde, orjinal IDoc bilgileri status 70 (inbound için) / 33 (outbound için) in altına yazılır. Bu IDoc sadece referans olarak system içinde bulunur,iÅŸletilemez. DeÄŸiÅŸtirilebilen IDoc durumu 69 (inbound) ve 32 (outbound) altına yerleÅŸtirilir. Bu IDoc’lar daha sonar BD87 kodu kullanılarak veya batch job’lar ile iÅŸletilebilir.

WE19 ile IDOC’lar debug edilebilir. WE19, IDoc iÅŸlenmesi için bir test aracıdır. WE19 hazır olan IDoc’u kopyalar ve test aÅŸamasının ihtiyaçlarına gore deÄŸiÅŸtirilebilecek yeni bir IDoc yaratır. Yine BD87 ile yeni yaratılan IDoc çalıştırılabilir.



AUTOMATIC/IMMEDIATE PROCESSING
Gerçek samanlı bilgi aktarımı gerekli olduÄŸu durumlarda kullanılan bir yöntemdir. IDoc iÅŸletilirken sisteme eklendiÄŸinde veya oluÅŸturulduÄŸunda hemen iÅŸlenmesi anlamına gelir. Outbound özelliklerinde “Transfer IDoc immediately” özelliÄŸi seçilirse, bu özellik active edilmiÅŸ olur.


TCODE WE02/WE05: GENERAL SEARCH
IDocs, WE02 ve WE05 transaction kodları ile görüntülenir. EÄŸer IDoc numarası ile arama yapılamıyorsa IDoc Date, Direction, BASIC TYPE, MESSAGE TYPE, ve  PARTNER NUMBER.Partner  numarası kullanılarak da output mesajları bulunabilir.




MANUAL PROCESSING
BD87 kullanılarak, IDocs elle baÅŸlatılabilir. Sadece hatalı IDoclar burden baÅŸlatılır. EÄŸer IDoc’u yeniden baÅŸlatmak istiyorsanız, BD87 kullanmalısınız.
WE19 içinde baÅŸarılı bir IDoc’u process edebilirsiniz. Ama BD87’de edemezsiniz.


PROCESSING VIA BACKGROUND JOB
IDoc’u arkaplanda çalıştırmak genelde en çok tercih edilen yöntemdir. AÅŸağıdaki programlar IDoc lara arka planda çalıştırmak için kullanılır.

RBDAPP01 - Inbound IDocs
RSEOUT00 - Outbound IDocs



TRIGGERING AN OUTBOUND IDOC
BaÅŸarılı bir outbound IDoc aÅŸağıdaki statülerden ters sırayla geçer. Herbir statü IDoc’un aÅŸamasını gösterir. EÄŸer bir IDoc bütün aÅŸamaları geçerse en son 16 statüsüne ulaşır. Statülerin açıklamaları aÅŸağıdaki gibidir.
01: IDoc başarıyla oluşturuldu.
30: IDoc, IDoc process işleri tarafından işlenmeye hazırdır
03: IDoc verisi Port’a gönderildi.

18: IDoc, EDI alt sisteminde başarıyla başlatıldı.
06: IDoc, EDI formatına dönüştürüldü.
12: IDoc, partnere başarıyla eşleştirildi.
16: Partner, IDoc’u baÅŸarıyla teslim aldı.

RECEIVING AN INBOUND IDOC
Inbound IDoc için baÅŸlangıç durumu 64’dür, baÅŸarılı status 53dür.
 Inbound IDoc  için farklı statülerin açıklamaları aÅŸağıdaki gibidir;
50: IDoc; sisteme başarıyla alındı.
64: IDoc, IDoc processing job tarafından işlenmeye hazır.
53: Application document yaratıldı ve başarıyla kaydedildi. Doküman numarası status 53 nodu açılarak görülebilir.


Önemli  Transaction Kodları;:
SALE - IMG ALE Configuration root
WE20 - Manually maintain partner profiles
BD64 - Maintain customer distribution model
BD71 - Distribute customer distribution model
SM59 - Create RFC Destinations
BDM5 - Consistency check (Transaction scenarios)
BD82 - Generate Partner Profiles
BD61 - Activate Change Pointers - Globally
BD50 - Activate Change Pointer for Msg Type
BD52 - Activate change pointer per change.doc object
BD59 - Allocation object type -> IDOC type
BD56 - Maintain IDOC Segment Filters
BD53 - Reduction of Message Types
BD21 - Select Change Pointer
BD87 - Status Monitor for ALE Messages
BDM5 - Consistency check (Transaction scenarios)
BD62 - Define rules
BD79 - Maintain rules
BD55 - Defining settings for IDoc conversion

WEDI - ALE IDoc Administration
WE21 - Ports in Idoc processing
WE60 - IDoc documentation
SARA - IDoc archiving (Object type IDOC)
WE47 - IDoc status maintenance
WE07 - IDoc statistics

BALE - ALE Distribution Administration
WE05 - IDoc overview
BD87 - Inbound IDoc reprocessing
BD88 - Outbound IDoc reprocessing
BDM2 - IDoc Trace
BDM7 - IDoc Audit Analysis
BD21 - Create IDocs from change pointers
SM58 - Schedule RFC Failures


Distributed data için basit kodlar:
BD64: Maintain a Distributed Model
BD82: Generate Partner Profile
BD64: Distribute the distribution Model

IDoc’lar için kullanılan Programlar;
RBDMIDOC u2013 Creating IDoc Type from Change Pointers
RSEOUT00 u2013 Process all selected IDocs (EDI)
RBDAPP01 - Inbound Processing of IDocs Ready for Transfer
RSARFCEX - Execute Calls Not Yet Executed
RBDMOIND - Status Conversion with Successful tRFC Execution
RBDMANIN - Start error handling for non-posted IDocs
RBDSTATE - Send Audit Confirmations
WE19 : IDOC Test etmek için.

WHAT is RFC in SAP

RFC SAP sistemleri ve SAP ile SAP olmayan sistemler arasında TCP/IP protocolunu kullanarak bağlantısını sağlar. SM59 Transaction kodu ile tanımlanır. 4 tip RFC vardır;
Asenkron RFC,
Senkron RFC,
Transactional RFC,
Queue RFC.

*******************************************************
Konu ile ilgili detaylı içerik ve örnek ABAP Kodları,daha sonra eklenecektir.

SAP ve ABAP ile ilgili tüm sorularınızı
serkurumsal@yandex.com
E-Mail adresi ile bize ulaÅŸarak sorabilirsiniz.

Serkan AKKAVAK
Bilgisayar Mühendisi