İade ve geri ödeme işlemleri Veri Templateınız
İade ve geri ödeme işlemleri Veri Templateınız
- Toplanacak önerilen veri alanları
- İzlenecek temel süreç adımları
- Veri çıkarma rehberi
İade ve geri ödeme işlemleri öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| İade vakası kimliği ReturnCaseId | Müşterinin iade ve geri ödeme vakasına ait, ilgili tüm etkinlikleri birbirine bağlayan benzersiz tanımlayıcı. | ||
| Açıklama İade vakası kimliği, her benzersiz iade süreci örneğinin birincil tanımlayıcısıdır. Return Order'ın ilk oluşturulmasından son kapanışına kadar belirli bir müşterinin iadesi veya geri ödeme talebiyle ilişkili tüm etkinlikleri birbirine bağlar. Süreç analizinde bu kimlik, her iadenin uçtan uca yolculuğunu yeniden oluşturmak için temel öneme sahiptir. Tam yaşam döngüsünü izlemeyi, toplam çevrim sürelerini ölçmeyi ve farklı vakalar arasındaki değişkenlikleri analiz etmeyi sağlar. Tüm olaylar, veriler ve metrikler bu tanımlayıcı kullanılarak bir araya getirilir ve ilişkilendirilir. Neden önemli? Bu, tüm süreç adımlarını birbirine bağlayan ve her iadeyi başlangıçtan sona kadar izleyip analiz etmeyi sağlayan temel vaka tanımlayıcısıdır. Nereden alınır? Bu genellikle Return Material Authorization (RMA) numarası veya 'Sales and marketing' modülündeki 'Returned Order' türündeki Sales Order numarasıdır. 'SalesType' değerinin 'Returned Order' olduğu 'SalesTable' gibi tablolarda bulunur. Örnekler RMA-001234RMA-001235RMA-001236 | |||
| Olay zamanı EventTime | Belirli bir etkinliğin veya olayın gerçekleştiği zamanı gösteren zaman damgası. | ||
| Açıklama Olay zamanı veya zaman damgası, bir etkinliğin gerçekleştiği kesin tarih ve saati kaydeder. Olay günlüğündeki her etkinliğe karşılık gelen bir zaman damgası bulunur ve bu damga olayların kronolojik sırasını gösterir. Bu öznitelik, zamana dayalı tüm Process Mining analizleri için büyük önem taşır. Etkinlikler arasındaki çevrim sürelerini hesaplamak, bekleme sürelerini ve darboğazları belirlemek, toplam vaka süresini ölçmek ve hizmet seviyesi anlaşmalarına (SLA'lara) uyumluluğu kontrol etmek için kullanılır. Zaman damgalarının doğruluğu, performans analizinin güvenilirliğini doğrudan etkiler. Neden önemli? Bu zaman damgası, çevrim süreleri ve bekleme süreleri gibi süreye dayalı tüm metrikleri hesaplamak için gereklidir. Bu metrikler, performans analizinin temelini oluşturur. Nereden alınır? Sipariş oluşturma için 'SalesTable.createdDateTime' veya depo günlükleri için 'WMSJournalTrans.createdDateTime' gibi çeşitli tablolardaki oluşturulma ya da değiştirilme tarihi alanlarına karşılık gelir. Örnekler 2023-10-26T10:00:00Z2023-10-26T14:30:15Z2023-10-27T09:05:42Z | |||
| Etkinlik adı ActivityName | İade ve geri ödeme sürecinde gerçekleşen belirli iş olayının veya görevin adı. | ||
| Açıklama Bu öznitelik, 'Return Order Created', 'Item Received' veya 'Credit Note Posted' gibi iade ve geri ödeme yaşam döngüsündeki belirli bir adımı ya da olayı tanımlar. Her etkinlik, sistemde kaydedilen ayrı bir süreç noktasını temsil eder. Bu etkinliklerin sırasını ve sıklığını analiz etmek, Process Mining çalışmalarının temelini oluşturur. Süreç haritalarını görselleştirmeyi, adımlar arasındaki darboğazları belirlemeyi ve yaygın ya da nadir süreç varyantlarını keşfetmeyi sağlar. Etkinlik kümesi, analiz edilen sürecin kapsamını tanımlar. Neden önemli? Süreç adımlarını tanımlar; böylece süreç akışını görselleştirmeyi, darboğazları, yeniden çalışmayı ve sapmaları belirlemeyi sağlar. Nereden alınır? Bu, sistem olaylarından türetilen kavramsal bir özniteliktir. 'SalesTable' ve 'WMSJournalTable' gibi tablolardaki durum değişiklikleri veya belirli olay günlükleri, kullanıcıların kolayca anlayabileceği adlarla eşleştirilerek oluşturulabilir. Örnekler İade siparişi oluşturulduÜrün teslim alındıTasnif kodu uygulandıAlacak dekontu kaydedildi | |||
| İade kanalı ReturnChannel | Müşterinin iadeyi başlatmak için kullandığı yöntem veya kanal. | ||
| Açıklama Bu öznitelik, müşterinin iade sürecini başlatmak için kullandığı kanalı belirtir. Örnekler arasında "Çevrim içi portal", "Mağaza içi", "Müşteri hizmetleri çağrısı" veya "Posta" bulunur. İade kanalına göre süreç analizi yapmak, her kanalın performansını ve verimliliğini değerlendirmenize yardımcı olur. İşletme, en iyi uygulamaları ve yatırım ya da iyileştirme alanlarını belirlemek için kanallar arasındaki çevrim sürelerini, maliyetleri ve müşteri memnuniyetini karşılaştırabilir. Bu öznitelik, "İade kanalı kullanım performansı" Dashboardı için önemlidir. Neden önemli? Farklı iade kanallarının performansını karşılaştırmayı ve en verimli, uygun maliyetli kanalları optimize etmeyi sağlar. Nereden alınır? Bu bilgi, iade siparişi başlığında ('SalesTable') saklanabilir veya siparişi oluşturan kullanıcıdan türetilebilir. Özel mantık ya da ayrılmış bir alan gerekebilir. Örnekler Web portalıMağaza içi kioskMüşteri desteği | |||
| İade nedeni kodu ReturnReasonCode | Müşterinin ürünü iade etmek için belirttiği neden. | ||
| Açıklama İade nedeni kodu, müşterinin belirttiği iade nedenini kaydeder. Örnekler arasında 'Defective Item', 'Wrong Size', 'Not as Described' veya 'No Longer Needed' bulunur. Bu bilgi genellikle iade başlatılırken toplanır. İade nedenlerini analiz etmek, kök neden analizi için büyük önem taşır. İşletmelerin ürün kalitesi sorunlarını, ürün açıklamalarındaki eksiklikleri veya lojistik hataları belirlemesine yardımcı olur. Bu verilerden elde edilen içgörüler, gelecekteki iadeleri azaltmak için ürün tasarımında, pazarlamada ve tedarik zinciri operasyonlarında iyileştirmeler yapılmasını sağlayabilir. Neden önemli? İadelerin neden gerçekleştiği hakkında önemli içgörüler sağlar; iade oranlarını azaltmak ve müşteri memnuniyetini artırmak için kök neden analizi yapılmasına yardımcı olur. Nereden alınır? Bu bilgi genellikle iade siparişi satırı düzeyinde saklanır. İade siparişleri için 'SalesLine' tablosundaki neden kodu alanlarını inceleyin. Örnekler KUSURYANLIŞ_ÜRÜNARTIK_İSTENMİYORTAŞIMA_SIRASINDA_HASARLI | |||
| Sorumlu kullanıcı ResponsibleUser | Belirli bir etkinliği gerçekleştiren veya bu etkinlikten sorumlu olan kullanıcı ya da çalışan. | ||
| Açıklama Bu öznitelik, bir süreç adımını gerçekleştirmekten sorumlu kişiyi tanımlar. Ürünü teslim alan depo çalışanı, kalite denetçisi veya credit note kaydını oluşturan finans görevlisi olabilir. Süreci kullanıcı bazında analiz etmek, iş yükü dağılımını anlamaya, en yüksek performans gösterenleri belirlemeye ve olası eğitim ihtiyaçlarını tespit etmeye yardımcı olur. Ayrıca belirli kişiler veya ekipler tarafından yürütülen vakaları incelemek ve görevlerin uygun şekilde ayrılmasını sağlamak için kullanılabilir. Neden önemli? İş yükü dağılımını ve kişi ya da ekip bazındaki performansı analiz etmeyi, ayrıca eğitim veya kaynak tahsisi fırsatlarını belirlemeyi sağlar. Nereden alınır? 'SalesTable.createdBy' gibi işlem kayıtlarındaki 'created by' veya 'modified by' alanlarında ya da günlük tablolarındaki ilişkili kullanıcı kimliklerinde bulunur. Örnekler Alice.WBob.JChris.P | |||
| Tasfiye kodu DispositionCode | Ürün incelemesinin sonucunu ve gerçekleştirilecek sonraki işlemi gösteren kod. | ||
| Açıklama Disposition Code, iade edilen ürünün kalite incelemesi sırasında atanır. 'Credit', 'Replace', 'Scrap' veya 'Return to Customer' gibi sonraki adımı belirler. Bu öznitelik, iadeler sürecinde önemli bir karar noktasıdır. Disposition Code bazında analiz yapmak, işletmelerin iadelerin sonuçlarını anlamasına, hurdaya ayrılan ürünlerin finansal etkisini izlemesine ve değişim ile geri ödeme gibi farklı çözüm yollarının verimliliğini değerlendirmesine yardımcı olur. Neden önemli? Bu kod, iade vakasının inceleme sonrasında izleyeceği yolu belirler. Bu nedenle süreç varyantlarını ve bunların iş sonuçlarını analiz etmek için önemlidir. Nereden alınır? Bu, kalite yönetimi modülündeki temel alanlardan biridir. Quality Order veya Inspection Order işlemleriyle ilişkilidir. Örnekler CRDTREPL-DHURDAYA_AYIRRTV | |||
| Ürün kimliği ProductId | İade edilen ürüne ait benzersiz tanımlayıcı. | ||
| Açıklama Ürün kimliği, çoğu zaman Stock Keeping Unit (SKU), müşterinin iade ettiği belirli ürünü tanımlar. Her iade siparişi satırı bir ürün kimliğiyle ilişkilidir. İadeleri ürün bazında analiz etmek, iade oranı yüksek ürünleri belirlemek için gereklidir. Bu durum kalite kontrol sorunlarına, hatalı ürün açıklamalarına veya üretim kusurlarına işaret edebilir. Bu analiz, ürünle ilgili incelemelere ve iyileştirmelere öncelik verilmesine yardımcı olur. Neden önemli? İadeleri ürün bazında analiz etmeyi ve kalite sorunları ya da yüksek iade hacmi olan ürünleri belirlemeyi sağlar. Nereden alınır? İade siparişi için 'SalesLine' tablosundaki 'ItemId' alanına karşılık gelir. Örnekler SKU-A-123SKU-B-456SKU-C-789 | |||
| Bitiş zamanı EndTime | Belirli bir etkinliğin tamamlandığı zamanı gösteren zaman damgası. | ||
| Açıklama Bitiş zamanı, bir etkinliğin tamamlanma zaman damgasını gösterir. StartTime başlangıcı, EndTime ise bitişi belirtir ve böylece ilgili görevin işlem süresinin hesaplanmasını sağlar. Bu öznitelik, özellikle 'Item Inspection' gibi ölçülebilir süreye sahip görevlerde ayrıntılı performans analizi için önemlidir. Analistler StartTime ve EndTime değerlerini karşılaştırarak görevlerin etkin işlem süresini kesin biçimde ölçebilir ve bu süreyi görevler arasındaki bekleme süresinden ayırabilir. Böylece yalnızca görevler arasındaki değil, belirli etkinliklerin içindeki verimsizlikler de belirlenebilir. Neden önemli? Tek tek etkinliklerin etkin işlem süresini hesaplamayı ve bekleme süresiyle gerçek çalışma süresini birbirinden ayırmayı sağlar. Nereden alınır? Bu değer çoğu zaman türetilmelidir. Örneğin, bir etkinliği sona erdiren durum değişikliğinin 'modifiedDateTime' değeri veya sonraki etkinliğin StartTime değeri kullanılabilir. Örnekler 2023-10-26T10:15:00Z2023-10-26T14:45:20Z2023-10-27T09:55:12Z | |||
| Credit Note kimliği CreditNoteId | Geri ödeme için oluşturulan credit note belgesinin benzersiz tanımlayıcısı. | ||
| Açıklama Geri ödeme işlendiğinde credit note veya credit memo olarak bilinen bir finansal belge oluşturulur. Bu öznitelik, söz konusu belgenin benzersiz kimliğini saklar. Bu kimlik, operasyonel iade süreciyle muhasebe sistemindeki finansal kayıtlar arasında doğrudan bağlantı kurar. Denetim ve finansal farkların ayrıntılı incelenmesi için kullanışlıdır; analistin bir iade vakasını, vakayı sonuçlandıran belirli finansal işleme kadar izlemesini sağlar. Neden önemli? Operasyonel iade sürecini ilgili finansal işleme bağlar; bu bağlantı denetim ve finansal mutabakat için gereklidir. Nereden alınır? Credit note numarası genellikle işlem türünün 'Credit note' olduğu 'CustInvoiceJour' tablosundaki 'InvoiceId' alanında bulunur. Bu kayıt, iade siparişine bağlanabilir. Örnekler CN-10056CN-10057CN-10058 | |||
| Depo kimliği WarehouseId | İade edilen ürünün teslim alındığı depo veya konumun tanımlayıcısı. | ||
| Açıklama Bu öznitelik, iade edilen ürünü işleyen belirli fiziksel depoyu veya iade merkezini tanımlar. Farklı konumların süreçleri, kaynakları veya performans düzeyleri farklı olabilir. Süreci depo bazında analiz etmek, konumlar arasında performans karşılaştırması yapılmasını sağlar. Hangi tesislerin iadeleri daha verimli işlediğini belirlemeye, bölgesel darboğazları ortaya çıkarmaya ve lojistik ağı genelinde kaynak tahsisi ile süreç standardizasyonu kararlarını desteklemeye yardımcı olur. Neden önemli? Farklı depoların veya iade merkezlerinin performansını karşılaştırmayı ve bölgesel darboğazları ya da en iyi uygulamaları belirlemeyi sağlar. Nereden alınır? Bu bilgi, Varış Günlüğü ('WMSJournalTable') veya 'SalesLine' gibi stokla ilgili işlemlerdeki 'InventLocationId' alanında saklanır. Örnekler WH-EASTWH-WESTCENTRAL-DC | |||
| Gerçekleşen geri ödeme tutarı ActualRefundAmount | Müşteriye yapılan geri ödemenin nihai parasal değeri. | ||
| Açıklama Bu öznitelik, müşteriye geri ödenen nihai ve onaylanmış tutarı belirtir. Bu değer, alacak dekontu oluşturulup kaydedildiğinde tutulur. Bu öznitelik finansal analiz için önemlidir ve doğrudan "Geri ödeme tutarı fark analizi" Dashboardında ve "Geri ödeme tutarı doğruluk oranı" KPI’ında kullanılır. Bu verileri analiz etmek, iadelerin finansal etkisini ve süreç sırasında yapılan düzeltmeleri anlamanıza yardımcı olur. Neden önemli? İadenin gerçek finansal etkisini gösterir; geri ödeme doğruluğunu hesaplamak ve finansal sonuçları anlamak için gereklidir. Nereden alınır? Bu değer, kaydedilmiş credit note işlem ayrıntılarında bulunabilir. Credit note için 'CustTrans' ve 'CustInvoiceJour' tablolarıyla ilişkilidir. Örnekler 99.99135.000.00 | |||
| Geri ödeme SLA hedef tarihi RefundSlaTargetDate | İade ve geri ödeme vakasının tamamen çözüme kavuşturulması gereken hedef tarih. | ||
| Açıklama Bu öznitelik, bir iade vakasının çözülmesi için hizmet düzeyi anlaşmasında (SLA) belirtilen son tarihi tanımlar. Bu tarih, müşterinin yayımlanmış geri ödeme veya gönderilmiş değişim ürünü gibi nihai bir çözüm almasının beklendiği gündür. Bu hedef tarih, hizmet taahhütlerine göre performansı izlemek için gereklidir. "Çözüm SLA uyum oranı" KPI’ını hesaplamak ve "Geri ödeme çözümü SLA performansı" Dashboardını oluşturmak için kullanılır. Bu tarihi sürecin gerçek tamamlanma tarihiyle karşılaştırmak, işletmenin SLA ihlallerini belirlemesine ve süresi uzayan vakaları proaktif biçimde yönetmesine yardımcı olur. Neden önemli? Süreç performansının ölçüldüğü referans noktasıdır; SLA uyumluluğunun izlenmesini ve geciken vakaların belirlenmesini sağlar. Nereden alınır? Bu, standart bir alan olmayabilir. Genellikle iadenin oluşturulma tarihine önceden belirlenmiş bir SLA süresi eklenerek hesaplanır, örneğin 14 gün. Özel bir alanda saklanabilir. Örnekler 2023-11-10T23:59:59Z2023-11-15T23:59:59Z | |||
| İade siparişi durumu ReturnOrderStatus | Olayın gerçekleştiği andaki iade siparişinin genel durumu. | ||
| Açıklama Bu öznitelik, iade siparişi başlığının 'Open', 'Invoiced' veya 'Canceled' gibi mevcut durumunu gösterir. Vakanın yaşam döngüsünde hangi aşamada olduğuna dair üst düzey bir görünüm sunar. Etkinlikler ayrıntılı süreç adımlarını gösterirken genel durum, vakaları filtrelemek ve segmentlere ayırmak için kullanışlıdır. Örneğin bir analist, mevcut iş yükünü anlamak için yalnızca 'Open' vakalara odaklanabilir veya sonunda 'Canceled' durumuna gelen vakaların süreç akışını analiz edebilir. Neden önemli? Vakanın durumuna ilişkin üst düzey bir özet sunar; vakaları filtrelemek ve iptal gibi sonuçları anlamak için kullanışlıdır. Nereden alınır? Bu bilgi, 'SalesTable' tablosundaki 'SalesStatus' veya 'DocumentStatus' alanında bulunur. Örnekler Açık siparişTeslim edildiFaturalandıİptal edildi | |||
| İade türü ReturnType | İadeyi, Geri Ödeme veya Değişim gibi beklenen sonuca göre kategorilere ayırır. | ||
| Açıklama Bu öznitelik, iade vakasını müşterinin talep ettiği veya işletmenin sunduğu çözüm türüne göre sınıflandırır. Yaygın türler arasında parasal 'Refund', 'Replacement' ürünüyle değişim veya 'Repair' bulunur. Bu sınıflandırma, farklı süreç yollarını analiz etmek için kullanışlıdır. Geri ödeme yapma süreci, değişim ürününü gönderme sürecinden önemli ölçüde farklıdır. İade türüne göre segmentlere ayırmak, her çözüm yoluna özgü çevrim sürelerinin ve darboğazların daha doğru analiz edilmesini sağlar. Neden önemli? Analizi hedeflenen sonuca göre segmentlere ayırmayı sağlar; geri ödeme ve değişim süreçlerinin adımları ile çevrim süreleri farklıdır. Nereden alınır? Bu, iade siparişi başlığındaki özel bir alan olabilir veya disposition code ya da değişim satış siparişi oluşturulması gibi sonraki işlemlere göre türetilebilir. Örnekler Para iadesiÜrün değişimiMağaza kredisi | |||
| Kaynak sistem SourceSystem | Olay verilerinin çıkarıldığı bilgi sistemi. | ||
| Açıklama Bu öznitelik, verilerin geldiği kaynak bilgi sistemini tanımlar. Bu bağlamda değer çoğunlukla 'Microsoft Dynamics 365' olur. Büyük kuruluşlarda bir süreç birden fazla sisteme yayılabilir. Her olay için kaynak sistemi belirtmek, veri yönetişimi, veri çıkarma sorunlarını gidermek ve sürecin teknolojik yapısını anlamak açısından önemlidir. Analiz edilen verilerin kaynağını doğrular. Neden önemli? Verilerin kaynağı hakkında önemli bir bağlam sağlar. Bu bilgi, veri yönetişimi, doğrulama ve sürecin sistem yapısını anlamak için gereklidir. Nereden alınır? Bu genellikle verilerin kaynağını etiketlemek için veri çıkarma, dönüştürme ve yükleme (ETL) sürecinde eklenen statik bir değerdir. Örnekler Microsoft Dynamics 365 F&OD365-PROD | |||
| Müşteri kimliği CustomerId | İadeyi başlatan müşteriye ait benzersiz tanımlayıcı. | ||
| Açıklama Müşteri kimliği, iadeyle ilişkili müşteri hesabının benzersiz tanımlayıcısıdır. İade işlemini CRM veya müşteri veritabanındaki belirli bir müşteriye bağlar. İadeleri müşteri bazında analiz etmek, olağandışı derecede yüksek iade etkinliği gösteren müşterileri belirlemeyi sağlar. Bu durum sahtecilik veya kronik memnuniyetsizlik göstergesi olabilir. Ayrıca müşterileri segmentlere ayırmak, örneğin yüksek değerli müşterilere ayrıcalıklı iade hizmetleri sunmak için kullanılabilir. Neden önemli? İade sürecini belirli bir müşteriye bağlar; müşteri düzeyinde analiz yapılmasını, iade örüntülerinin ve olası sahteciliğin belirlenmesini sağlar. Nereden alınır? İade siparişine ait 'SalesTable' tablosundaki 'CustAccount' alanıdır. Örnekler CUST-00045CUST-00192CUST-00315 | |||
| Politikaya uygun mu IsPolicyAdherent | İade onayının belirlenmiş iade politikalarına uygun olup olmadığını gösteren işaret. | ||
| Açıklama Bu, bir iadenin şirketin iade politikasında tanımlanan tüm ölçütleri karşılayıp karşılamadığını gösteren hesaplanmış bir boolean özniteliğidir. Değerlendirme; iade süresi, ürünün durumu veya iade nedeni gibi faktörlere dayanabilir. Bu öznitelik doğrudan "İade onayı uyumluluk özeti" Dashboardını ve "Uyumlu iade onay oranı" KPI’ını destekler. İşletmenin politika uyumluluğunu ölçmesine, istisna olarak onaylanan vakaları belirlemesine ve bu istisnaların nedenlerini ve sıklığını analiz etmesine olanak tanır. Yönetişim ve maliyet kontrolü için büyük önem taşır. Neden önemli? İş kurallarına uyumluluğu doğrudan ölçer ve gelir kaybına yol açabilecek uyumsuz iade onaylarının belirlenip azaltılmasına yardımcı olur. Nereden alınır? Bu, türetilmiş bir özniteliktir. Mantık, iade özniteliklerinin, örneğin iade tarihi ile satın alma tarihinin ve iade nedeninin, önceden tanımlanmış iş kurallarıyla karşılaştırılmasıyla oluşturulmalıdır. Örnekler truefalse | |||
| SLA durumu SlaStatus | Vakanın Service Level Agreement hedefi içinde çözüme kavuşturulup kavuşturulmadığını gösterir. | ||
| Açıklama Bu hesaplanmış öznitelik, SLA uyumluluğunun genellikle "Zamanında" veya "Gecikmiş" şeklindeki basit durumunu sunar. Son etkinliğin zaman damgası, örneğin "İade siparişi kapatıldı", ile "RefundSlaTargetDate" karşılaştırılarak belirlenir. Bu öznitelik, "Geri ödeme çözümü SLA performansı" gibi Dashboardlarda performans raporlamasını kolaylaştırır. Kullanıcıların tarihleri karşılaştırmasını gerektirmek yerine doğrudan ve kolay anlaşılır bir durum sunar. Böylece genel "Çözüm SLA uyum oranı" değerini hesaplamak için hızlı filtreleme ve toplama yapılabilir. Neden önemli? SLA uyumluluğunu bir bakışta gösteren basit bir işaret sunar; geciken vakaların filtrelenmesini ve gecikmelerin kök nedenlerinin analiz edilmesini kolaylaştırır. Nereden alınır? Bu, nihai çözüm etkinliğinin zaman damgası ile 'RefundSlaTargetDate' özniteliğinin karşılaştırılmasıyla hesaplanan türetilmiş bir özniteliktir. Örnekler ZamanındaGeç | |||
| Son veri güncellemesi LastDataUpdate | Süreç verilerinin en son yenilendiği zamanı gösteren zaman damgası. | ||
| Açıklama Bu öznitelik, verilerin kaynak sistemden en son çıkarıldığı ve Process Mining aracında güncellendiği tarih ve saati kaydeder. Analiz edilen verilerin güncelliğini değerlendirmek için bir referans noktası sağlar. Son veri güncellemesinin ne zaman yapıldığını bilmek, analizin güncelliğini anlamak açısından önemlidir. Kullanıcıların Dashboard ve KPI'ları doğru yorumlamasına yardımcı olur; böylece gerçek zamanlı verilere mi yoksa belirli bir andaki görüntüye mi baktıklarını anlayabilirler. Bu bilgi, operasyonel izleme için önemlidir. Neden önemli? Verilerin güncelliğini gösterir ve analistlerin süreç içgörülerinin ne kadar güncel olduğunu bilmesini sağlar. Nereden alınır? Bu, veri alma hattı sırasında oluşturulan ve saklanan bir meta veri özniteliğidir. Genellikle ETL işinin tamamlandığı zamanı gösterir. Örnekler 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Talep edilen geri ödeme tutarı RequestedRefundAmount | Müşterinin talep ettiği geri ödemenin toplam parasal değeri. | ||
| Açıklama Bu öznitelik, iade sürecinin başlangıcında talep edilen veya beklenen ilk geri ödeme tutarını gösterir. Genellikle iade edilen ürünlerin ilk satın alma fiyatına dayanır. Bu değer, 'Refund Amount Discrepancy Analysis' için temel oluşturur. İşletme, talep edilen tutarı gerçek geri ödeme tutarıyla karşılaştırarak yeniden stoklama ücretleri, hasarlı ürünler için kısmi geri ödemeler veya diğer düzeltmelerden kaynaklanan farkları belirleyebilir. Bu karşılaştırma, finansal doğruluğun ve politikalara uyumun izlenmesine yardımcı olur. Neden önemli? Gerçekleşen geri ödeme tutarıyla karşılaştırarak finansal doğruluğu ölçmek için temel oluşturur. Nereden alınır? Bu genellikle iade edilen orijinal satış siparişi satırındaki satır tutarı veya toplam tutardır ve 'SalesLine.LineAmount' alanında bulunur. Örnekler 99.99150.0024.50 | |||
İade ve geri ödeme işlemleri faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Alacak dekontu kaydedildi | Alacak dekontu finansal defterlere resmi olarak kaydedilir ve alacak müşterinin kullanımına sunulur. Bu, şirket açısından geri ödeme işleminin tamamlandığını gösterir. | ||
| Neden önemli? Bu, geri ödemenin sistemde işlendiğini doğrulayan önemli bir finansal kilometre taşıdır. Geri ödeme SLA uyumluluğunu ölçmek için çoğu zaman temel faaliyetlerden biridir. Nereden alınır? İade siparişine ait fatura günlüğünün, alacak dekontunu kesinleştiren gönderim zaman damgası. İade siparişinin durumu 'Invoiced' olarak değişir. Yakalayın İade siparişinin fatura günlüğünün gönderilmesi. Olay türü explicit | |||
| İade siparişi oluşturuldu | Bu faaliyet, sistemde bir Return Material Authorization (RMA) veya iade siparişi oluşturulduğu iade sürecinin başlangıcını gösterir. Dynamics 365'te yeni bir ReturnOrder kaydı oluşturulduğunda yakalanan açık bir olaydır. | ||
| Neden önemli? Bu, tüm iade sürecinin birincil başlangıç olayıdır. Bu faaliyet ile diğer faaliyetler arasındaki süreyi analiz etmek, genel süreç çevrim süresini ortaya çıkarır ve ilk aşamalardaki darboğazları belirlemeye yardımcı olur. Nereden alınır? Bu olay, ReturnOrder başlığındaki oluşturulma zaman damgasından alınır. Genellikle SalesType değerinin 'Returned Order' olduğu SalesTable içinde bulunur. Yakalayın SalesType = 'Returned Order' olan SalesTable kaydının oluşturulma olayı. Olay türü explicit | |||
| Return Order kapatıldı | Return Order son durumuna ulaşmıştır; tüm fiziksel ve finansal işlemler tamamlanmıştır. Bu durum genellikle credit note kaydedildikten veya değiştirilecek ürün gönderildikten sonra gerçekleşir. | ||
| Neden önemli? Bu, başarıyla tamamlanan bir iade sürecinin birincil bitiş olayıdır. Oluşturulma ile bu nokta arasındaki süre, toplam vaka çevrim süresini gösterir. Nereden alınır? ReturnOrder durum alanının 'Invoiced' veya 'Closed' gibi son değerlerden birine değişmesinden çıkarılır. Bu, başka bir işlem beklenmediğini gösterir. Yakalayın SalesTable.Status veya SalesTable.DocumentStatus alanının son duruma değiştirilmesi. Olay türü inferred | |||
| Tasnif kodu uygulandı | Bu faaliyet, incelemenin tamamlandığını ve iade edilen ürünle ne yapılacağına karar verildiğini gösterir. İade satırına 'Credit', 'Scrap' veya 'Replace' gibi bir tasnif kodu atanır. | ||
| Neden önemli? Bu, sonraki süreç yolunu belirleyen önemli bir karar noktasıdır. Sonraki yol geri ödeme, değişim veya ret olabilir. Buradaki gecikmeler genel çözüm süresini önemli ölçüde etkileyebilir. Nereden alınır? Bu olay, iade siparişi satırının stok hareketinde veya ilişkili günlükteki DispositionCode alanı doldurulduğunda yakalanır. Yakalayın İade siparişi satırı için bir DispositionCode ayarlandığında gerçekleşen güncelleme olayı. Olay türü explicit | |||
| Ürün teslim alındı | İade edilen ürünün depoda veya belirlenen iade merkezinde fiziksel olarak teslim alındığını gösterir. İade siparişiyle ilişkili varış günlüğü kaydedildiğinde yakalanır. | ||
| Neden önemli? Bu, süreci müşteri işleminden kurum içi işleme taşıyan önemli bir kilometre taşıdır. İnceleme ve tasnif gibi tüm kurum içi işlem sürelerini hesaplamak için başlangıç noktasıdır. Nereden alınır? ReturnOrder satırıyla ilişkili WMS Journal veya Item Arrival Journal kaydının gönderim zaman damgası. Bu işlem, stok hareketlerinin durumunu 'Registered' veya 'Received' olarak günceller. Yakalayın İade siparişi satırına bağlı Item Arrival Journal kaydının gönderilmesi. Olay türü explicit | |||
| Alacak dekontu oluşturuldu | 'Credit' tasnifine dayanarak müşteriye geri ödeme yapılmasını onaylayan bir alacak dekontu oluşturulur. Bu, sürecin finansal mutabakat bölümünün resmi başlangıcıdır. | ||
| Neden önemli? Bu faaliyet, finansal geri ödemenin onaylandığını gösterir. Tasnif ile alacak dekontunun oluşturulması arasındaki süre, geri ödemenin başlatılmasındaki idari gecikmeleri ortaya çıkarır. Nereden alınır? Bu durum, orijinal iade siparişine bağlı, negatif değer içeren yeni bir SalesTable kaydının oluşturulmasından veya 'Create credit note' toplu işinin çalıştırılmasından anlaşılabilir. Yakalayın Genellikle iade siparişi faturasının kaydedilmesiyle oluşturulan alacak dekontu. Olay türü explicit | |||
| Değişim siparişi oluşturuldu | Müşteriye değişim ürünü göndermek için yeni bir satış siparişi oluşturulur. Bu faaliyet, tasnif işlemi 'Replace and Credit' veya 'Replace and Scrap' olduğunda gerçekleşir. | ||
| Neden önemli? Bu etkinlik, değişim süreci varyantını başlatır. Bu yolu iade yolundan ayrı olarak izlemek, değişimlerin karmaşıklığını ve maliyetlerini anlamak için gereklidir. Nereden alınır? Çoğu zaman otomatik olarak oluşturulan ve orijinal iade siparişine bağlanan, değiştirilecek ürün için yeni bir SalesTable kaydının oluşturulması. Yakalayın Disposition action aracılığıyla Return Order'a bağlı yeni bir Sales Order oluşturulması. Olay türü explicit | |||
| Değiştirilecek ürün gönderildi | Değiştirilecek ürüne ait packing slip kaydedilir ve ürünün müşteriye gönderildiğini gösterir. Bu, değişim gerçekleştirme sürecinin tamamlandığını belirtir. | ||
| Neden önemli? Bu, değişim varyantındaki önemli bir kilometre taşıdır ve şirketin müşteriye karşı yükümlülüğünü yerine getirdiğini gösterir. Değişim çevrim sürelerini izlemek için büyük önem taşır. Nereden alınır? Değiştirilecek satış siparişine ait packing slip günlüğünün kayıt tarihi. Bu işlem, sipariş durumunu 'Delivered' olarak günceller. Yakalayın Değiştirilecek satış siparişi için packing slip kaydının oluşturulması. Olay türü explicit | |||
| İade siparişi onaylandı | İade siparişinin sistem içinde resmi olarak onaylandığını ve çoğu zaman sonraki işlemleri tetiklediğini gösterir. Genellikle ReturnOrder başlığındaki açık bir işlem veya durum değişikliği olarak yakalanır. | ||
| Neden önemli? Lojistik işlemler başlamadan önce onay önemli bir adımdır. Oluşturma ile onay arasındaki gecikmeler, idari veya sistem kaynaklı birikmelere işaret edebilir. Nereden alınır? İade siparişi için 'Confirmation' günlüğü kaydedilerek veya SalesTable içindeki DocumentStatus alanı değiştirilerek belirlenebilir. Yakalayın İade siparişi için 'Confirm sales order' işlevinin yürütülmesi. Olay türü explicit | |||
| Kalite siparişi oluşturuldu | Resmi bir kalite siparişi oluşturulur. Bu, iade edilen ürünün yapılandırılmış bir inceleme sürecinden geçmesi gerektiğini gösterir. Ayrıntılı testlerin veya kalite standardı kontrollerinin gerektiği iadelerde bu işlem yaygındır. | ||
| Neden önemli? Bu etkinlik, resmi bir inceleme sürecinin başladığını gösterir. Bu noktadan itibaren geçen süreyi izlemek, kalite güvence iş akışının verimliliğini ve süresini ölçmenize yardımcı olur. Nereden alınır? İade siparişiyle ilişkili InventQualityOrderTable kaydının oluşturulma zaman damgası. Yakalayın InventQualityOrderTable kaydının oluşturulması. Olay türü explicit | |||
| Return Order iptal edildi | Return Order tamamlanmadan önce iptal edilir. Bunun nedeni müşterinin talebi olabilir veya ürün hiç iade edilmemiş olabilir. | ||
| Neden önemli? Bu, sürecin alternatif ve başarısız bir şekilde sona erdiğini gösterir. İadelerin neden iptal edildiğini analiz etmek, müşteri davranışı veya süreçteki başarısızlıklar hakkında içgörü sağlayabilir. Nereden alınır? ReturnOrder durum alanının 'Cancelled' olarak değişmesinden çıkarılır. Bu, başarıyla kapatılan siparişten farklı, ayrı bir son durumdur. Yakalayın SalesTable.Status alanının 'Cancelled' olarak değiştirilmesi. Olay türü inferred | |||
| Varış günlüğü oluşturuldu | Bu faaliyet, deponun iade edilen ürünün gelmesini beklediğini gösterir. Ürünlerin fiziksel kabulüne hazırlanmak için bir varış günlüğü oluşturulur. | ||
| Neden önemli? Bu adım, lojistik hazırlığı gerçek fiziksel kabulden ayırır. Depo hazırlığını ve gelen iadelerin planlanmasını analiz etmeye yardımcı olur. Nereden alınır? JournalType değeri 'Arrival' olan bir WMSJournalTable kaydının oluşturulması. Günlük, iade siparişi satırına bağlanır. Yakalayın İadeye ait WMSJournalTable kaydının oluşturulma zaman damgası. Olay türü explicit | |||
Veri çıkarma rehberleri
Adımlar
- Ön koşul: Azure Active Directory’de bir uygulama kaydedin. Dynamics 365 API’ına bağlanmadan önce Azure AD kiracınızda bir uygulama kaydetmeniz gerekir. Bu uygulamaya Dynamics 365 Finance & Operations erişimi için, örneğin
Financials.ReadWrite.Allveya özel bir izin olmak üzere, temsilci izinleri verin. - Dynamics 365'te uygulama kimliğini yapılandırın. Dynamics 365'te Sistem yönetimi > Kurulum > Azure Active Directory uygulamaları bölümüne gidin. Azure AD uygulama kaydındaki Uygulama (istemci) kimliğini ekleyin ve gerekli veri varlıklarını okuma yetkisine sahip güvenlik rollerini taşıyan bir kullanıcı hesabıyla ilişkilendirin.
- OAuth 2.0 erişim belirteci alın. Microsoft kimlik platformu uç noktasında kimlik doğrulamak için PowerShell veya Python ile bir betik yazın. Erişim belirteci istemek için uygulamanın kimlik bilgilerini, yani istemci kimliği ve gizli anahtarını kullanın.
- Dynamics 365 ortam URLınızı belirleyin. Dynamics 365 ortamınızın temel URLını bulun. Web API uç noktası genellikle şu biçimdedir:
https://[YourD365FinanceAndOpsURL].dynamics.com/data. - OData API isteklerini oluşturun ve yürütün. Gerekli 12 etkinliğin her biri için belirli bir OData GET istek URLı oluşturun. Yalnızca gerekli sütunları almak için
$select, tarih aralığını ve durum koşullarını belirtmek için$filterkullanın. 3. adımda alınan kimlik doğrulama belirtecini her isteğin yetkilendirme üst bilgisinde Bearer belirteci olarak gönderin. - Veri çıkarma betiği geliştirin. OData istekleri listesinde dolaşan bir betik oluşturun. Bu betik kimlik doğrulamayı yönetmeli, her GET isteğini yürütmeli ve elde edilen JSON verilerini saklamalıdır. API sınırlarına dikkat edin ve gerekirse beklemeler uygulayın.
- API sayfalandırmasını yönetin. Dynamics 365 büyük sonuç kümelerini sayfalara böler. Betiğiniz yanıtta
@odata.nextLinközelliğini kontrol etmelidir. Özellik varsa bir sonraki veri sayfasını almak için bu URLa yeni bir istek gönderin venextLinksağlanmayana kadar devam edin. - Verileri dönüştürün ve birleştirin. 12 API çağrısının her birinden gelen JSON yanıtını işleyin. Her etkinlik için
ReturnCaseId,ActivityName,EventTimeve diğer öznitelikleri içeren standart bir kayıt oluşturun. Örneğin "İade siparişi oluşturuldu" olayı içinReturnOrderNumberdeğeriniReturnCaseIdile eşleyin,ActivityNamedeğerini "İade siparişi oluşturuldu" olarak belirleyin vecreatedDateTimedeğeriniEventTimeile eşleyin. Tüm çağrılardan dönüştürülen kayıtları tek bir listede veya tabloda birleştirin. - Zaman damgalarını temizleyin ve standartlaştırın. Tüm
EventTimedeğerlerinin tercihenYYYY-MM-DDTHH:MM:SSZbiçiminde UTC kullanılarak tutarlı bir formatta olmasını sağlayın. Eksik veya geçersiz zaman damgaları içeren kayıtları gerektiği şekilde işleyin. - Nihai Event Logu dışa aktarın. Tüm veriler toplanıp tek bir birleşik veri setine dönüştürüldüğünde CSV dosyasına aktarın. Sütun başlıklarının ProcessMind gereksinimleriyle eşleştiğinden emin olun:
ReturnCaseId,ActivityName,EventTime,ResponsibleUser,DispositionCodevb. Dosya artık yüklemeye hazırdır.
Yapılandırma
- API Endpoint URL'si: Dynamics 365 Finance & Operations örneğinizin temel URL'si. Biçimi
https://[YourEnvironmentName].dynamics.com/dataşeklindedir. - Azure AD Uygulaması: Azure AD'de client ID ve secret içeren bir uygulama kaydedilmelidir. Uygulamanın Dynamics 365 veri varlıklarına erişmek için API izinleri olmalıdır.
- Tarih Aralığı Filtresi: İlgili bir tarih alanında, örneğin
createdDateTimeveyamodifiedDateTimeüzerinde OData$filterparametresini kullanarak her API çağrısında tarih aralığı filtresi uygulamanız büyük önem taşır. Çıkarma işlemini yönetilebilir tutmak için genellikle son 3 ila 6 aylık verilerle başlamak uygundur. - Şirket Filtresi: Belirli bir tüzel kişiye ait verileri çıkarmak için
cross-company=truesorgu parametresini ekleyin, ardındandataAreaIdalanında$filterkullanın. Örnek:?cross-company=true&$filter=dataAreaId eq '[YourCompanyCode]'. - Sayfalandırma Tercihi: Sayfa başına döndürülen kayıt sayısını denetlemek için isteklerinizde
Prefer: odata.maxpagesize=[value]üst bilgisini kullanın.1000ile5000arasında bir değer yaygındır. Bu, büyük varlıklarda API zaman aşımını önlemeye yardımcı olur. - API Kısıtlamaları: Dynamics 365 API hizmet koruma sınırlarını dikkate alın. Veri çıkarma script'i
429 (Too Many Requests)yanıtlarını yönetmek için genellikle üstel geri çekilme veya bekleyip yeniden deneme mekanizması içermelidir.
a Örnek sorgu graphql
/*
This is a conceptual guide representing multiple, distinct OData API calls.
You will need a script (e.g., Python, PowerShell) to execute these calls sequentially,
authenticate with a bearer token, handle pagination, and union the results into a single file.
Replace [YourD365URL], [StartDate], [EndDate], and [YourCompanyCode] with your specific values.
*/
// Base URL for all requests
const string BaseUrl = "https://[YourD365URL].dynamics.com/data";
const string CompanyFilter = "?cross-company=true&$filter=dataAreaId eq '[YourCompanyCode]' and ";
const string DateFilterCreated = "createdDateTime ge [StartDate]T00:00:00Z and createdDateTime le [EndDate]T23:59:59Z";
const string DateFilterModified = "modifiedDateTime ge [StartDate]T00:00:00Z and modifiedDateTime le [EndDate]T23:59:59Z";
// 1. Return Order Created
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}{DateFilterCreated}&$select=ReturnOrderNumber,createdDateTime,createdby,ReturnReasonCodeId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser, ReturnReasonCodeId -> ReturnReasonCode
// 2. Return Order Confirmed
// This often updates the header status. We look for a modification time on confirmed orders.
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Confirmed' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby,ReturnReasonCodeId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Confirmed' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 3. Arrival Journal Created
GET {BaseUrl}/WarehouseArrivalJournalHeaders{CompanyFilter}{DateFilterCreated}&$expand=WarehouseArrivalJournalLines($select=InventTransactionId)&$select=JournalNumber,createdDateTime,createdby
// Note: This requires post-processing to link JournalNumber to a ReturnCaseId via InventTransactionId.
// Mapping: Link via InventTrans -> ReturnCaseId, 'Arrival Journal Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 4. Item Received (Arrival Journal Posted)
GET {BaseUrl}/WarehouseArrivalJournalHeaders{CompanyFilter}JournalPosted eq 'Yes' and {DateFilterModified}&$expand=WarehouseArrivalJournalLines($select=InventTransactionId)&$select=JournalNumber,modifiedDateTime,modifiedby
// Mapping: Link via InventTrans -> ReturnCaseId, 'Item Received' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 5. Quality Order Generated
GET {BaseUrl}/InventQualityOrders{CompanyFilter}{DateFilterCreated}&$select=QualityOrderId,InventTransId,createdDateTime,CreatedByUserId,ItemId
// Mapping: Link via InventTransId -> ReturnCaseId, 'Quality Order Generated' -> ActivityName, createdDateTime -> EventTime, CreatedByUserId -> ResponsibleUser, ItemId -> ProductId
// 6. Disposition Code Applied
// This is a status change on the return line.
GET {BaseUrl}/ReturnOrderLines{CompanyFilter}ReturnDispositionCodeId ne '' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby,ReturnDispositionCodeId,ItemId
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Disposition Code Applied' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser, ReturnDispositionCodeId -> DispositionCode, ItemId -> ProductId
// 7. Credit Note Created
// Look for sales orders with type 'Returned Order' that are not yet invoiced.
GET {BaseUrl}/SalesOrderHeadersV2{CompanyFilter}SalesOrderProcessingStatus eq 'Open' and SalesOrderType eq 'ReturnedOrder' and {DateFilterCreated}&$select=SalesOrderNumber,createdDateTime,createdby
// Mapping: SalesOrderNumber -> ReturnCaseId, 'Credit Note Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 8. Credit Note Posted
// Look for posted invoice journals linked to a return order.
GET {BaseUrl}/SalesInvoiceJournalHeaders{CompanyFilter}SalesOrderType eq 'ReturnedOrder' and {DateFilterCreated}&$select=SalesOrderNumber,InvoiceDate,createdby
// Mapping: SalesOrderNumber -> ReturnCaseId, 'Credit Note Posted' -> ActivityName, InvoiceDate -> EventTime, createdby -> ResponsibleUser
// 9. Replacement Order Created
// Disposition code on the return line triggers a replacement order.
GET {BaseUrl}/SalesOrderHeadersV2{CompanyFilter}SalesOrderOriginType eq 'ReturnOrder' and {DateFilterCreated}&$select=SalesOrderNumber,createdDateTime,createdby,ReturnOrderNumber
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Replacement Order Created' -> ActivityName, createdDateTime -> EventTime, createdby -> ResponsibleUser
// 10. Replacement Item Shipped
// Check for posted packing slips related to the replacement sales order.
GET {BaseUrl}/SalesPackingSlipJournals{CompanyFilter}{DateFilterCreated}&$select=SalesOrderNumber,DeliveryDate,createdby
// Note: This requires linking SalesOrderNumber back to the original ReturnOrderNumber for the ReturnCaseId.
// Mapping: Link SalesOrderNumber -> ReturnCaseId, 'Replacement Item Shipped' -> ActivityName, DeliveryDate -> EventTime, createdby -> ResponsibleUser
// 11. Return Order Closed
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Closed' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Closed' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser
// 12. Return Order Cancelled
GET {BaseUrl}/ReturnOrderHeaders{CompanyFilter}ReturnOrderStatus eq 'Canceled' and {DateFilterModified}&$select=ReturnOrderNumber,modifiedDateTime,modifiedby
// Mapping: ReturnOrderNumber -> ReturnCaseId, 'Return Order Cancelled' -> ActivityName, modifiedDateTime -> EventTime, modifiedby -> ResponsibleUser Adımlar
- TDS uç noktasını etkinleştirin: Dynamics 365 Dataverse ortamınızda Tabular Data Stream (TDS) uç noktasının etkin olduğundan emin olun. Sistem yöneticisi, Power Platform yönetim merkezinde Ortam > Ayarlar > Özellikler bölümünden bu uç noktayı etkinleştirebilir.
- Ortam URLını belirleyin: Ortam URLınızı bulun. Genellikle
yourorg.crm.dynamics.combiçimindedir. TDS uç nokta sunucusu adı, 5558 bağlantı noktası eklenmiş bu URL olacaktır. Örneğinyourorg.crm.dynamics.com,5558. - SQL istemcisiyle bağlanın: SQL Server Management Studio (SSMS) veya Azure Data Studio gibi TDS destekleyen bir SQL istemcisi kullanın.
- Kimlik doğrulama: Dataverse ortamında genellikle Sistem Yöneticisi veya Sistem Özelleştiricisi gibi uygun izinlere sahip Azure Active Directory hesabınızı kullanarak sunucuya bağlanın.
- Sorguyu hazırlayın: Bu belgenin
querybölümünde verilen SQL sorgusunun tamamını SQL istemcinizdeki yeni sorgu penceresine kopyalayın. - Parametreleri ayarlayın: Sorgudaki yer tutucuları bulun. Çıkarma için istediğiniz tarih aralığıyla
'{StartDate}'ve'{EndDate}'değerlerini değiştirin. Örneğin'2023-01-01've'2023-12-31'kullanabilirsiniz. Durum kodları veya tasfiye kodları için yer tutucu değerleri de Dynamics 365 yapılandırmanıza uygun şekilde güncelleyin. - Sorguyu yürütün: Değiştirilmiş sorguyu Dataverse veritabanında çalıştırın. Yürütme süresi veri hacmine ve seçilen tarih aralığına göre değişir.
- Sonuçları inceleyin: Sorgu tamamlandığında döndürülen veri setini inceleyin ve beklenen sütunları içerdiğinden emin olun:
ReturnCaseId,ActivityName,EventTimeve önerilen öznitelikler. - Event Logu dışa aktarın: Sorgu sonuçlarını CSV dosyasına aktarın. Çoğu SQL istemcisinde sonuçları doğrudan dosyaya kaydetmek için yerleşik bir işlev bulunur. Dosyanın UTF-8 kodlamasıyla kaydedildiğinden emin olun.
- ProcessMind’e yükleyin: Dışa aktarılan CSV dosyası artık Process Mining analizi için ProcessMind’e yeni bir Event Log olarak yüklenmeye hazırdır.
Yapılandırma
- Ön koşullar: İlgili Dataverse tablolarına en azından okuma erişimi olan bir kullanıcı hesabınız olmalıdır. Örneğin SalesTable, SalesLine ve CustInvoiceJour tablolarına erişim gerekir. İzinler genellikle System Administrator gibi güvenlik rolleri veya yeterli tablo izinlerine sahip özel bir rolle yönetilir.
- TDS Endpoint: Dataverse TDS Endpoint'i ortam için etkinleştirilmiş olmalıdır. Bu özellik, Dataverse veritabanında doğrudan ve salt okunur SQL sorguları çalıştırmanızı sağlar.
- Tarih Aralığı: Sorguda
'{StartDate}'ve'{EndDate}'yer tutucuları bulunur. İlk analiz için performans sorunlarına yol açmadan temsili bir Veri Seti sağlamak üzere 3 ila 6 aylık tarih aralığı önerilir. - Şirket Filtresi: Sorgu, kullanıcının erişebildiği tüm tüzel kişilerde çalışır. Tek bir şirketi analiz etmek için
UNION ALLifadesinin her bölümündeDATAAREAIDalanına filtre uygulayan birWHEREkoşulunun açıklamasını kaldırıp ekleyin. Örnek:AND st.DATAAREAID = '[YourCompanyID]'. - Özel Mantık Yer Tutucuları: Sorguda tasarruf kodları için
[YourReplaceCode1]gibi yer tutucular ve ikame siparişlerini bağlamaya ilişkin notlar bulunur. Bunları kendi iş sürecinize ve Dynamics 365 kurulumunuza göre yapılandırmanız gerekir. - Performans: Büyük Veri Setleri için TDS Endpoint üzerinden doğrudan sorgular yavaş çalışabilir. Bağlantı analitik sorgular için optimize edilmiş olsa da milyonlarca satırdaki karmaşık birleştirmelerde zaman aşımı yaşanabilir. Sıkı tarih filtreleri uygulamanız önerilir.
a Örnek sorgu sql
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Created' AS ActivityName,
st.CREATEDDATETIME AS EventTime,
st.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Confirmed' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.DOCUMENTSTATUS = 1 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Arrival Journal Created' AS ActivityName,
wjt.CREATEDDATETIME AS EventTime,
wjt.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN WMSJOURNALTABLE wjt ON st.SALESID = wjt.ORDERID AND st.DATAAREAID = wjt.DATAAREAID
WHERE st.SALESTYPE = 3 AND wjt.JOURNALTYPE = 4 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Item Received' AS ActivityName,
wjt.POSTEDDATETIME AS EventTime,
wjt.POSTEDUSERID AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN WMSJOURNALTABLE wjt ON st.SALESID = wjt.ORDERID AND st.DATAAREAID = wjt.DATAAREAID
WHERE st.SALESTYPE = 3 AND wjt.JOURNALTYPE = 4 AND wjt.POSTEDDATETIME IS NOT NULL AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Quality Order Generated' AS ActivityName,
iqot.CREATEDDATETIME AS EventTime,
iqot.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
iqot.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN INVENTQUALITYORDERTABLE iqot ON sl.INVENTTRANSID = iqot.INVENTTRANSID AND sl.DATAAREAID = iqot.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Disposition Code Applied' AS ActivityName,
iqot.VALIDATEDDATETIME AS EventTime,
iqot.VALIDATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
iqot.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN INVENTQUALITYORDERTABLE iqot ON sl.INVENTTRANSID = iqot.INVENTTRANSID AND sl.DATAAREAID = iqot.DATAAREAID
WHERE st.SALESTYPE = 3 AND iqot.VALIDATEDDATETIME IS NOT NULL AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Credit Note Created' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Credit Note Posted' AS ActivityName,
cij.CREATEDDATETIME AS EventTime,
cij.CREATEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
JOIN CUSTINVOICEJOUR cij ON st.SALESID = cij.SALESID AND st.DATAAREAID = cij.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
ro.RETURNITEMNUM AS ReturnCaseId,
'Replacement Order Created' AS ActivityName,
replacement_so.CREATEDDATETIME AS EventTime,
replacement_so.CREATEDBY AS ResponsibleUser,
NULL AS DispositionCode,
NULL AS ReturnReasonCode,
replacement_so.SALESORIGINID AS ReturnChannel,
replacement_sl.ITEMID AS ProductId
FROM SALESTABLE ro
JOIN SALESLINE rol ON ro.SALESID = rol.SALESID AND ro.DATAAREAID = rol.DATAAREAID
JOIN SALESTABLE replacement_so ON ro.CUSTACCOUNT = replacement_so.CUSTACCOUNT AND ro.DATAAREAID = replacement_so.DATAAREAID
JOIN SALESLINE replacement_sl ON replacement_so.SALESID = replacement_sl.SALESID AND replacement_so.DATAAREAID = replacement_sl.DATAAREAID
WHERE ro.SALESTYPE = 3
AND rol.RETURNDISPOSITIONCODEID IN ('[YourReplaceCode1]', '[YourReplaceCode2]')
AND replacement_so.SALESTYPE = 1
AND replacement_so.CREATEDDATETIME > ro.CREATEDDATETIME
-- The join above is a basic example and must be replaced with your system's specific logic for linking returns to replacements.
AND ro.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
ro.RETURNITEMNUM AS ReturnCaseId,
'Replacement Item Shipped' AS ActivityName,
cpsj.CREATEDDATETIME AS EventTime,
cpsj.CREATEDBY AS ResponsibleUser,
NULL AS DispositionCode,
NULL AS ReturnReasonCode,
replacement_so.SALESORIGINID AS ReturnChannel,
cpsl.ITEMID AS ProductId
FROM SALESTABLE ro
JOIN SALESLINE rol ON ro.SALESID = rol.SALESID AND ro.DATAAREAID = rol.DATAAREAID
JOIN SALESTABLE replacement_so ON ro.CUSTACCOUNT = replacement_so.CUSTACCOUNT AND ro.DATAAREAID = replacement_so.DATAAREAID
JOIN CUSTPACKINGSLIPJOUR cpsj ON replacement_so.SALESID = cpsj.SALESID AND replacement_so.DATAAREAID = cpsj.DATAAREAID
JOIN CUSTPACKINGSLIPTRANS cpsl ON cpsj.PACKINGSLIPID = cpsl.PACKINGSLIPID AND cpsj.SALESID = cpsl.SALESID AND cpsj.DATAAREAID = cpsl.DATAAREAID
WHERE ro.SALESTYPE = 3
AND rol.RETURNDISPOSITIONCODEID IN ('[YourReplaceCode1]', '[YourReplaceCode2]')
AND replacement_so.SALESTYPE = 1
AND replacement_so.CREATEDDATETIME > ro.CREATEDDATETIME
-- The join above is a basic example and must be replaced with your system's specific logic for linking returns to replacements.
AND ro.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Closed' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 3 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'
UNION ALL
SELECT
st.RETURNITEMNUM AS ReturnCaseId,
'Return Order Cancelled' AS ActivityName,
st.MODIFIEDDATETIME AS EventTime,
st.MODIFIEDBY AS ResponsibleUser,
sl.RETURNDISPOSITIONCODEID AS DispositionCode,
sl.RETURNREASONCODEID AS ReturnReasonCode,
st.SALESORIGINID AS ReturnChannel,
sl.ITEMID AS ProductId
FROM SALESTABLE st
JOIN SALESLINE sl ON st.SALESID = sl.SALESID AND st.DATAAREAID = sl.DATAAREAID
WHERE st.SALESTYPE = 3 AND st.SALESSTATUS = 4 AND st.CREATEDDATETIME BETWEEN '{StartDate}' AND '{EndDate}'; Başlamaya hazır mısınız?
Veri toplama sürecinizi kolaylaştırmak ve iade ve geri ödeme sürecinizi iyileştirecek içgörüleri ortaya çıkarmaya başlamak için bu Templateı kullanın. Daha hızlı işlem ve daha yüksek müşteri memnuniyeti için bugün ilerlemeye başlayın.
İade ve geri ödeme gecikmelerini sona erdirin: Sürecinizi bugün optimize edin
Çevrim süresini %30 azaltın ve müşteri memnuniyetini artırın.
Kredi kartı gerekmez. Kurulum birkaç dakika sürer.