Sap CAI Chatbot ve Robotic Process Automation ile R3 Corda Blockchain Entegrasyonu-1.Bölüm

UMUT
11 min readSep 1, 2020

Geçenlerde opensap üzerinden aldığım Sap Conversational AI ve Robotic Process Automation eğitiminden sonra böyle bir uygulama yapmaya karar verdim. Uygulaması kolay ve çok zevkli bir entegrasyon oldu. Yine diğer makalelerimde olduğu gibi konu yazılım bilgisi olmayanlara da hitap ediyor. Konuya ilgisi olan herkesin uygulama alanlarını daha rahat anlayabilmesi ve yeni caseler oluşturulabilmesine yardımcı olacak şekilde yazmaya çalıştım, iyi okumalar.

Giriş:

R3 Corda Blockchain platformu Hyperledger Fabric ile beraber en çok kullanılan Private Blockchain çözümlerinden bir tanesi. Biz de bu makalede bir Corda ağı üzerinde “Açık Arttırma” uygulaması kuracağız ve daha sonra bu ağa dışarıdan ulaşabilmek için API oluşturacağız. Daha sonra ise SAP CAI ve RPA(Robotic Process Automation) tarafında kurulumlarımızı yapıp bu yarattığımız Corda Client API’yi kullanarak “Corda Auction Network“ uygulamamızdaki işlemleri “Sap Chatbot” ve “Robotic Process Automation” kullanarak tetikleyeceğiz.

Önemli Not: Bu uygulama içeriği tamamen öğrenim amaçlı olup ek güvenlik mekanizmaları içeren karmaşık bazı süreçler konunun bütünlüğünün kaybolmaması ve herkes tarafından anlaşılabilir olması için bertaraf edilmiştir. Yalnızca fikir oluşturması ve yol göstermek amacıyla kurgulanmıştır. Canlı kullanım için uygun değildir.

1. Neden “Sap Robotic Process “ kullanmalıyım?

“Sap Robotic Process Servisi” karmaşık son kullanıcı hareketlerindeki iş gücü maliyetini mükemmel bir şekilde azaltıyor. Mesela SAP ERP sistemimizde Sipariş ve Teslimat süreçlerinde yapılan son kullanıcı işlemlerini düşünün. Süreçlerin tamamlanması, Excel ve dış servislerle entegrasyonlarına kadar monotonlaşmış tüm son kullanıcı süreçlerini çok fazla kodlama yapmadan bir kaç tıkla yapılabilir hale getiriyor. Bu özelliğiyle devrim niteliğinde olduğunu söyleyebiliriz.

Biz de örneğimizde oldukça karmaşık görünen R3 Corda Ağı içerisinde yarattığımız bir Blockchain uygulamasını Sap Robotic Process kullanarak kolay bir şekilde yöneteceğiz, Blockchain ağında yaratılan işlemlerin SAP RPA kullanarak bir excel dosyasına tek bir dokunuş ile aktarılmasını sağlayacağız.

Buna ek olarak SAP RPA ürününü SAP nin bir diğer yenilikçi ürünü olan Sap AI Chatbot ile de kullanmamız mümkün. Yarattığımız bir RPA sürecini kendimize özel olarak yarattığımız bir Chatbot’a entegre edip oradan bütün süreçleri basitçe sohbet eder gibi tetikleyebiliyoruz.

Not: Bu makalede iki süreci birbirinden kopararak anlatacağım. Çünkü trial sürümde Chatbot ve RPA ürünün haberleşmesini sağlayamıyoruz. Sap Global Cloud hesabı olanlar için nasıl yapıldığını göstereceğim, bu yöntemi de kendileri deneyebilirler.

Yani bu durumda makale bittiğinde elimizde iki örnek olacak.

1- SAP RPA ve R3 Corda Entegrasyonu

2- SAP AI Chatbot ve R3 Corda Entegrasyonu

Dediğim gibi bu iki örneği de çok kolay bir şekilde zincirleme birbirine bağlama imkanımız da var fakat elimizdeki trial sürümle bunu yapmak mümkün olmadı.

Bu örnekleri bu makalede ayırmamız belki de konunun rahat anlaşılması açısından olumlu olacaktır.

Fakat bu ürünlerden tam performans alabilmek için yarattığınız bir RPA sürecini, SAP AI Chatbot ile entegre ederek kullanmayı denemenizi öneririm.

1.1 Süreci Kafanızda Basitleştirmek İçin Kendinize Case oluşturun!

1- SAP S/4 HANA yada klasik ERP gibi ürünler içerisinde son kullanıcıların karmaşık hareketlerinin analizini yapın.

2- Çıkardığınız analizi kullanarak Desktop Studio aracılığı ile süreci otomatikleştirin.

3- Varsa bu sürece bağlı olan dış servislerle ilişkisini RPA’ya entegre edin.

4- Daha sonra RPA uygulamanızı Chatbot ile yönetin.

Sonuç olarak kullandığınız Sap ürünleri içerisinde hayal ettiğiniz bütün son kullanıcı işlemlerine uygulayabileceğiniz muazzam bir ürün ortaya çıkarmış olacaksınız. Üstelik bunu yaratmak için harcayacağınız iş gücü sandığınızdan çok az olacak.

2. SAP Kurulumları

2.1 Sap Cloud Platform Trial Account Kurulumu

Burada ana kurulum işlemi için daha önce yazılmış makalelere referans vereceğiz. Böyle yapmazsak makale çok uzayacak ve ana konumuzdan uzaklaşmış olacağız.

Sap Cloud Platform Trial Account Kurulumu adımları için bu kaynaktan yararlanabilirsiniz.

Trial Account üyeliğimizi aldıktan sonra aşağıdaki adımdan devam edebiliriz.

2.2 Sap Robotic Process Automation On-Premise Kurulumu

İlk olarak https://tools.hana.ondemand.com/#cloud adresine gidip aşağıdaki listeden uygun paketi indiriyoruz.

Sap RPA On-Premise Paketi indirdikten sonra Desktop Studio ve Desktop Agent olarak iki ayrı uygulama kurmamız gerekiyor.

Desktop Studio: Bu uygulamayı süreçlerimizi tasarlamak ve yönetmek için kullanacağız.
Desktop Agent: Bu uygulamayı ise Studio ‘da yarattığımız süreçleri çalıştırmak ve test etmek için kullanacağız.

İndirme tamamlandıktan sonra aşağıda görünen ekranda ikinci seçenek olan “Desktop Studio” kapalı geliyor(X) hemen sonundaki küçük ok a tıklayıp bunu local olarak kaydetme seçeneğini işaretleyip yüklemeyi başlatmamız gerekiyor.

Yükleme tamamlandıktan sonra Desktop Studio ve Agent kurulumları tamamlanmış olacak. Fakat bu uygulamaların düzgün bir şekilde çalışması için SAP Cloud Platform hesabımızın olması ve Cloud üzerinde bazı yetkilendirmeler yapmamız gerekiyor. Bunu da buradan yardım alarak yapabilirsiniz.

Önemli Not: SAP RPA bir Sap Cloud ürünü ve kullanmak için Cloud yapısına ihtiyaç duyuyor. On-Premise olarak kurduğumuz Desktop Agent ve Studio bu anlamda sizleri yanıltmasın. Burdaki Agent ımız aslında bir cloud connector görevi görüyor ve local cihazımızdan Sap Cloud hesabımıza erişip oradaki Cloud içerisindeki Robotic Process servislerimizi kullanmamıza olanak sağlıyor. Yani indirdiğimiz bu paketler başlı başına birer servis ürünü değiller yalnızca birer aracılar.

Ayrıca şu anda RPA Desktop Studio ve Agent yalnızca Windows üzerinde çalışıyor biz de SAP RPA Kurulumları için Windows , R3 Corda için ise MacOSX işletim sistemlerini kullanacağız.

3. R3 Corda Kurulumları

R3 Corda son zamanlarda önemli oranda vakit ayırdığım bir platform ve Private Blockchain kulvarında özellikle finansal caselerde etkileyici çözümler sunuyor. Bu yüzden SAP RPA üzerinde çalışırken ilk olarak aklıma Corda ve SAP RPA çözümlerini entegre etmek geldi. Daha önce Hyperledger Fabric ve SAP ERP entegrasyonu üzerine başarılı çalışmalar yapmıştık burada da aynı mantığı kullanarak ilerlemeye çalıştım.

Bu makalede R3 Corda’nın teknik detaylarına girersek makale çok uzayacağı için direkt olarak örnek üzerinden gideceğiz. Detaya inmek isteyenler buradan başlayabilirler.

SAP RPA servisimizle konuşturacağımız R3 Corda örneğimizi kurmak ve kolayca yönetmek için öncelikle ilk sistem gereksinimlerini eksiksiz tamamlamamız gerekiyor. Kurulumları Macosx üzerinde yapacağız fakat Ubuntu üzerinde de aynı adımları uygulayabilirsiniz.

1- İlk olarak Corda geliştirmelerimizi yapmamızı çok kolaylaştıran VSCode son sürümü ile birlikte R3 Corda çözümünü çalıştırmamız için ihtiyacımız olan altyapıları aşağıdaki linklerden kuruyoruz.

JAVA 8 SDK

VSCODE

Git Kurulum

Gradle

2- VSCode kurulumunu yaptıktan sonra Corda ağımızı yönetirken bize çok yardımcı olacak bir eklenti olan aşağıdaki eklentiyi kuruyoruz.

3- Daha sonra mac terminal çalıştırıp, ana dizinimize corda örnekleri paketimizi indiriyoruz.

$ git clone https://github.com/corda/samples-java.git

Artık R3 Corda ağımızı harekete geçirmek ve onun üzerinde Auction uygulamamızı çalıştırmak için hazırız.

İndirdiğimiz samples-java klasörü içerisinde Advanced içerisinde Auction-App klasörünü buluyoruz.

Önemli Not: VSCode içerisinde Corda eklentisinin bu paketin bir Corda uygulaması olduğunu anlaması için içerisinde uygun paketleri barındıran doğru seçimi yapmanız gerekiyor. VSCode içerisinde Open Folder diyerek Samples Java klasörünü gösterip daha sonra onun içerisinden Auction kırılımına gitmeye çalışırsanız eklentiyi kullanmakta problem yaşarsınız. Aşağıdaki gibi yapalım.

Paketi açtıktan sonra eğer Java eklentilerini ve Gradle ı düzgün kuramadıysanız size bazı uyarılar verecek ve VSCode size bu eklentileri kurmanız için yol gösterecek. Bu şekilde de Gradle kurulumunu yapabilirsiniz. Eğer VSCode Corda eklentisini düzgün kurduysanız ve Auction-Cordapp klasörünü doğru gösterebildiyseniz aşağıda yeşil ile işaretlediğim Corda-Project atamasını görmüş olmalısınız. Bu her şeyin yolunda gittiğini size gösterecek.

Bundan sonra bu örneği çalıştırmak için yapacaklarınız şaşırtıcı derecede basit olacak.

R3 Corda örneğimiz içerisinde önceden hazırlanmış 3 ana bileşen var.

  • Corda Ağı Altyapısı
  • Corda Ağı üzerinde koşacak Contract ve İş Akışları
  • Corda Ağı üzerinde koşan iş akışlarımıza ve akıllı kontratlarımıza dışardan bağlanmamızı sağlayacak Client uygulamamız ve bunun Angular ile yazılmış UI tarafı.(Biz SAP RPA ile entegrasyonumuzda UI tarafı ile aslında ilgilenmeyeceğiz ama denemek isteyenlere nasıl çalıştıracaklarını göstereceğim.)

Paketimizi Visual Studio Code içerisinde açtıktan sonra

Shift + Command + P tuşlarına basarak Corda Extension’ın bize sunduğu özellikleri görüntüleyeceğiz.

1- Corda ağımızı harekete geçirmek ve nodelarımızı deploy etmek için Corda Deploy Nodes seçip işlemleri bitirmesini bekliyoruz.

İşlem başarılı olursa aşağıdaki gibi bir ekran göreceksiniz. A,B,C ve Notary Node ları başarılı bir şekilde oluşturuldu.

“Auction” Ağımızda işlem yapacak taraflar Part A, Party B ve Party C olarak temsil ediliyorlar. Notary ise Hyperledger Fabric çözümünde de Ordering servis olarak karşımıza çıkan ağımızın consensus mekanizmasını içinde barındıran ve işlemlerin onaylanması ve sıraya koyulmasından sorumlu node. Onun da .gradlew DeployNodes komutunu Extension aracılığı ile çalıştırdığımızda otomatik olarak kurulduğunu gördük.

2- Bir sonraki adım Deploy ettiğimiz bu node ları çalıştırmak ve bunun için yine extensiondan yaralanalım.

Shift + Command + P yapıp bu sefer Corda Run Nodes seçiyoruz.

Çalıştırdıktan sonra aşağıdaki VsCode terminal ekranındaki gibi her bir node için ayrı terminal ekranı açıldığını ve node ların her birinin birbirlerinden bağımsız şekilde çalıştığını ve işlem yapmaya hazır hale geldiğini göreceksiniz.

Her bir node için aşağıdaki ekranı görmeniz gerekiyor.

Buraya kadar ne yapmış olduk?

  • Node kurulumlarını yaptık ve nodelarımızı çalıştırdık.
  • Şimdi Corda ağımızın altyapısı hazır. Sırada Client API aracılığı ile Corda ağı içerisinde işlemleri tetiklemek var. Bunun içinde projemiz içerisinde daha önce yaratılmış Client alt projemizden yararlanacağız.

Not: Corda projemizin detaylarına daha öncede söylediğim gibi burada değinmiyorum, zaten makale yeterince uzun olduğu için ana hatları kaçırmamıza sebep olacaktır. Detaya girmek isteyenler yönlendirdiğim linklerden çalışmalara başlayabilirler. Corda veya SAP RPA üzerinde daha detaylı çalışmak isteyenler, sertifikasyon sınavlarına katılacak olanlar benimle LinkedIn üzerinden de iletişime geçebilirler.

3- SAP RPA üzerinde Corda ağı içerisindeki işlemleri tetiklemek için Corda Client API linklerimizi kullanacağız.

Not: Normalde Cloud Connector ve Sap Cloud Platform Destinations aracılığı ile oluşturduğumuz bu local apimizi Sap Cloud Platfrom üzerinde tetikleyebiliyoruz. Ama bu sefer farklı bir yol izledim. Geliştirme yapanların çoğu zaman test için ihtiyaç duyacağı bir çözümü bize sağlayan NGROK kullanarak local apimizi dışarıya kolayca açıp SAP RPA tarafında bu API linkini kullanarak işlemleri yürüteceğiz.

İlk başta api mizi http://localhost:8085 de yayınlayacağız. Bundan sonra Ngrok ile dışarıya açacağız ve Corda ağı içerisinde bulunan akışlarla(flows) dışarıdan iletişim kurma yeteneğine sahip olacağız.

Client API mizi çalıştırmak ve Angular ile yazılmış arayüzümüzü http://localhost:8085 üzerinden görüntülemek için aşağıdaki adımları uygulayalım.

Yeni bir terminal ekranı açıp aşağıdaki komutu kullanarak Client API’yi çalışır hale getireceğiz.

Mac:auction-cordapp umtyzc$ ./gradlew runAuctionClient

%94 de takılması önemli değil. Aşağıdaki ekranı görüyorsanız. Artık http://localhost:8085 e gidip Demo Data ları sisteme yükleyebilirsiniz ve arayüz üzerinden Corda Auction ağınızı yönetebilirsiniz.

Setup Demo Data basarak “Açık Arttırma” için kullanılacak örnek verilerimizi ağa yükleyebiliriz.

Bundan sonra isteyenler bu arayüz ile Corda ağı üzerinde denemeler yapabilir ve VSCode üzerinde yaptığı işemlerin loglarını ve bazı önemli bilgileri derli toplu şekilde Extension daki Show Node Explorer seçeneğini kullanarak aşağıdaki gibi görüntüleyebilirler.

Shift + Command + P ->Show Node Explorer

Son olarak local ağımızda yarattığımız Corda API mizi dışarıya açmak için Ngrok kurulumu yapalım ve public linkimizi alıp Corda sürecini tamamlayalım.

Ngrok çözümünü bu linkten indirip kuralım.

Kurulum bittikten sonra aşağıdaki komutla daha önce 8085 localinde yayınladığımız API mizi dışarıya açalım.

Mac:~ umtyzc$ ./ngrok http 8085

Yeni linkimiz aşağıdaki gibi oluştu. Artık apimize dışarıdan erişebiliriz.

SAP Robotic Process Automation Desktop Süreç Tasarımı

İlk olarak yeni bir proje yaratıyoruz ve aşağıdaki gibi isimlendiriyoruz.

Daha sonra soldaki menüden script kısmına gelip boş bir alana sağ tıklayıp include library script tıklayıp oradan aşağıdaki gibi “Excel Integration” paketini seçiyoruz.

Bu işlemi de tamamladıktan sonra yine soldaki menüden bu sefer workflow kısmına tıklıyoruz ve açılan menüde GLOBAL sekmesine sağ klik yapıp yeni bir workflow yaratıyoruz. İsmini aşağıdaki gibi tanımladım.

Şimdi süreci kurgularken yaptığımız işlemleri adım adım düşüneceğiz.

1- Bir harici servise bağlanılıp oradaki verilerin çekilmesi(CordaAPI)

2- Excel programının çalıştırılması,

3- API’den gelen verilerin oluşturulan yeni dosyaya eklenmesi

4- İşlemler bittikten sonra dosyanın yeni bir isimle kaydedilmesi

5- Son olarak release edilip excelin kapatılması

sürecini Desktop Studio üzerinden aşağıdaki şekilde tasarlayalım.

Aktiviteleri iş akışımıza eklemek için basit bir şekilde sağdaki menüden seçip sürükle bırak yapmamız yeterli olacak.

İlk olarak API mizi çağıracak kodu yazacağımız Custom activity aşağıdaki gibi oluşturalım ve content kısmına sağ klik yapıp Create New Item diyerek CordaAPI Data isminde bir context yaratalım. Daha sonra bu contexti excel içerisinde kullanacağız. Bu adımda Custom activity için yalnızca tanımlamalar yaptık. İçerisine kodumuzu en son entegre edeceğiz.

Bu işlemi tamamladıktan sonra aşağıdaki gibi iş akışımızı daha önce düşündüğümüz kurguya göre alt alta ekleyeceğiz. Sağ tarafta görülen activity kısmından uygun aktiviteleri bulalım ve sürükleyelim.

Şimdi sıra set values, save as excel gibi aktivitelerimiz içerisinde ihtiyaç duyduğumuz tanımlamaları yapmaya geldi.

Aşağıdaki gibi tanımlamaları yapalım.

Data kısmına daha önce context olarak oluşturduğumuz CordaAPIData giriyoruz.

Start Row = 2(çünkü api response umuz da1. satır başlıklar olacak)

Start Column = ‘A’ .

Bu bilgiler kullanacağız veri kaynağınıza göre değişiklik gösterebilir. Biz Corda APImizden dönen response a göre yapılandırdık.

Kaydederken de Desktop içerisine CordaExcel isminde bir dosya yaratmasını söyledik. — “C:\\Users\\dlkconsultancy\\Desktop\\CordaExcel”

Yukarıdaki işlemleri tamamladıktan sonra aşağıdaki sarı ile işaretli tuşa tıklayıp Build yapıyoruz. Arka planda script lerimiz generate edilecek ve program çalışmaya uygun hale gelecek.

Custom activity ve daha önce generate ettiğimiz excel scriptlerinin olduğu kod bloklarına ulaşmak için aşağıdaki tuşa basıyoruz.

Son olarak yukarıda sarı ile belirttiğimiz Custom activity içerisine aşağıdaki kod bloğunu ekliyoruz. Bu kod bloğu CordaAPI’ye ulaşıp Corda ağımızda açık arttırmaya çıkan ürünlerin bilgilerini excel dosyamıza basmamızı sağlayacak.


GLOBAL.step({ Custom: function(ev, sc, st) {
var rootData = sc.data;
ctx.workflow(‘ExcelWorkflowCordaAPI’, ‘e30ce5ce-fa1b-409a-a08d-01860629a73d’) ;
// Custom

ctx.ajax.call({
//daha önce Corda Apimizi dışarı açıp aldığımız url ve uzantısını //url kısmına ekliyoruz url:”http://90a840d20449.ngrok.io/api/auction/list",
header:
{
“Accepts”:”Application/JSON”
},
async:false,
success:function(res,status,xhr){
rootData.cordaAPIData=res;
ctx.log(“success”);
},
error:function(res){
ctx.log(“error”);
}
})
sc.endStep(); // Initialize_Excel
return;
}});

Tekrar build alıp projeyi çalıştırıyoruz. Proje çalıştıktan sonra Desktop Agent devreye girecek. Windows sağ altta bulunan uygulama araç çubuğunda bulunan Desktop Agent simgesine tıklayıp projemizi seçtikten sonra olan biteni artık izlemeye koyulabiliriz.

Özet/Sonuç: İlk olarak yarattığımız Corda ağımıza dışardan ulaşmak için oluşturduğumuz ve ngrok aracılığı ile dışarıya açtığımız API’miz den gelen “Auction List” verileri otomatik olarak sistemimizdeki excel dosyasına tek harekette kaydedilmiş oldu.

Not: Bu şekilde istediğiniz gibi servisler oluşturup ister UI5 programınıza isterseniz de yine Word, Excel ve Outlook gibi sık kullandığınız programlarınıza ve süreçlerinize entegre edebilirsiniz, bunları zincirleme bir şekilde birbirine bağlayıp yalnızca Chatbot kullanarak RPA akışlarınızı tetikleyebilir, son kullanıcılarınızın boşa zaman harcadıkları tekrarlayan işlere entegrasyonunu sağlayabilirsiniz.

Uygulaması kolay, hayal etmesi sınırsız. Bu mantıkla birçok farklı proje ortaya çıkarabilirsiniz.

Bu makale çok uzadığı için R3 Corda ve SAP AI Chatbot ile entegrasyon kısmını bu makalenin 2.Bölümünde anlatmaya karar verdim.

İrtibatta olalım. Sağlıcakla kalın… :)

Kaynaklar

1- https://corda-certification.myshopify.com/products/corda-standard-certification-test

2- https://open.sap.com/courses/rpa4

3-https://github.com/corda/samples-java.git

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

UMUT
UMUT

Written by UMUT

SAP ABAP Developer/DLT&Blockchain Consultant

No responses yet

Write a response