Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

E-posta atılınca süreç başlatılması istenen e-posta hesabı ve ilgili sürece karar verdikten sonra ilk önce olarak EBI Servis Shell config dosyasında aşağıdaki değişiklikleri uyguluyoruz.

...

5-Özellikler bölümünde detaylı olarak açıklanan alanlarla oluşturulmuş örnek konfigurasyon aşağıdadır. Burada adnanjohn.senses wick EBIFlow kullanıcısı TATLISES ECZACIBASI domainine bağlı ibrahim john.tatliseswick e-posta adresine gelmiş e-posta sonrası process bölümünde verilmiş Id ye sahip süreci wflProcess tablosundan bularak süreci başlatacak.Eğer process e süreç Id si verilmeseydi defaultProcess de bulunan süreç çalıştırılacaktı. 

Code Block
languagexml
titleÖrnek mailReader konfigürasyonu
linenumberstrue
<mailReader interval="60" sessionUser="adnanjohn.senseswick" defaultProcess="82B6D98B-D29D-4DF7-9DF5-F0A1D39C3F13">
    <servers>
      <server url="https://owa.eczacibasisirketdomain.com.tr/EWS/Exchange.asmx" autoDiscoverUrl="" type="Exchange2007_SP1" 
              user="ibrahimjohn.tatliseswick" password="epostasifresi" domain="TATLISESECZACIBASI" 
              timeout="0" process="82B6D98B-D29D-4DF7-9DF5-F0A1D39C3F13" maxitems="5" requestedHeaders="X-Originating-IP;Return-Path;X-MS-Exchange-Organization-AuthSource"/>
    </servers>
</mailReader> 

...

6-Tüm ayarları tamamladık. Örnek bir mail atıyoruz tanımladığımız e-posta adresine burada ibrahim.tatlises adresni kullandığımız için mail atmamız gereken adres bu. Image Removedmail atıyoruz 

Image Added

 

7-Atılan e-posta sonrası ilgili mailReader ygulaması uygulaması bizim belirttiğimiz değer olan 60 saniyede bir servisi kontrol edecek sonrasında atılan mail e ulaşıp süreci başlatacakbaşlatıyor.

 

Süreç içerisinde ulaşılabilecek bilgiler

  1. Alıcı ismi
  2. Alıcı ile birlikte eklenen diğer kişilerin bilgileri
  3. Gönderen bilgisi
  4. Header bilgileri
  5. Konu
  6. İçerik bilgisi de html olarak gönderilip süreç içerisinde html olarak görüntülenecek. 
  7. Ek dosya aynı isim ve formatta sisteme eklenmiş olarak görüntülenecek.

Süreç içerisine serviceData xml yolunu içersine ilgili bilgilerin geleceği yapı aşağıdaki gibidir. 

Code Block
languagexml
titleXml yapısı
linenumberstrue
 <serviceData>
  <email>
    <sender />
    <recepients>
      <recepient />
    </recepients>
    <infos/>
    <headers>
      <header>
        <name />
        <value/>
      </header>
    </headers>
    <subject />
    <body />
  </email>
  <FileUploadInfo>
    <File>
      <FileName />
      <Id />
      <WorkItemId />
      <Owner />
      <Hash />
      <Hash256 />
      <Date />
      <ContentType />
    </File>
  </FileUploadInfo>
</serviceData>

 

Dönen veri özellikleri

 AdÖzellik
 email

e-posta içerik bilgilerinin tutulduğu bölümdür.

Adözellik
sendergönderen kişi bilgisini tutar
recepientsAlıcı bilgilerini çoklu olarak tutar receipt yolu altında tutar.
infosbilgi verilerini info altında çoklu olarak tutar.
headersistediğimiz başlık bilgilerini header altında name ve value olacak şekilde çoklu olarak tutar
subjectkonu bilgisini tutar.
bodyiçerik bilgisini hmtl olarak tutar.
 FileUploadInfo

 Ek dosya bilgilerinin tutulduğu bölümdür.File yolu altında tutar.

AdÖzellik
FileNameDosya ismini tutan alandır
IdDosyanın veri tabanına bırakıldığı Id değeridir
WorkItemIdİlgili iş adımının Id değeridir
OwnerDosyayı yükleyen kişinin bilgisi burada tutulur
HashDosyanın Hash değeri
Hash256Dosyanın Hash256 değeri
DateDosya yüklenme tarihi
ContentTypeİçerik tipi

 

Kullandığımız örnek süreçte bulunan test maili için gelen veri xml aşağıdaki gibidir. 

Code Block
languagexml
linenumberstrue
<serviceData>
  <email>
    <sender>john.wick@eczacibasi.com.tr</sender>
    <recepients>
      <recepient>john.wick@eczacibasi.com.tr</recepient>
    </recepients>
    <infos/>
    <headers>
      <header>
        <name>X-Originating-IP</name>
        <value>[10.10.10.10]</value>
      </header>
      <header>
        <name>Return-Path</name>
        <value>null</value>
      </header>
      <header>
        <name>X-MS-Exchange-Organization-AuthSource</name>
        <value>TAT13MBX01.eczacibasi.com.tr</value>
      </header>
    </headers>
    <subject>Merhaba bu bir testtir</subject>
    <body>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="Generator" content="Microsoft Word 15 (filtered medium)" />
      </head>
      <body lang="TR" link="#0563C1" vlink="#954F72">
        <div class="WordSection1">
          <p class="MsoNormal">
            <span style="color:#1F497D;mso-fareast-language:TR">
              Merhaba,<o:p></o:p>
            </span>
          </p>
          <p class="MsoNormal">
            <span style="color:#1F497D;mso-fareast-language:TR">
              <o:p>&nbsp;</o:p>
            </span>
          </p>
          <p class="MsoNormal">
            <span style="color:#1F497D;mso-fareast-language:TR">
              Bu bir testtir.
              <o:p></o:p>
            </span>
          </p>
          </p>
        </div>
      </body>
    </body>
  </email>
  <FileUploadInfo>
    <File>
      <FileName>EmailMessage.eml</FileName>
      <Id>2db442cb-c4f5-44e3-9a6e-1be1a2a6a9d1</Id>
      <WorkItemId>7bdc9cb4-8496-47c7-939a-97bf34a4b5c4</WorkItemId>
      <Owner display="JOHN WICK">d93094cf-efc2-43e5-af4f-5841bd06872b</Owner>
      <Hash>m/EPDgGCWMwshiTk2aQwJ8pVTEI=</Hash>
      <Hash256>EnHpvlFTGPH7D0ECwj9VpUDwgnwf/bAoWffJ72pynDA=</Hash256>
      <Date>2017-03-11 21:16:15Z</Date>
      <ContentType>message/rfc822</ContentType>
    </File>
    <File>
      <FileName>Ekli Dsya.pptx</FileName>
      <Id>cbac7b2a-1252-41b8-a3e7-3556e63268e2</Id>
      <WorkItemId>7bdc9cb4-8496-47c7-939a-97bf34a4b5c4</WorkItemId>
      <Owner display="JOHN WICK">d93094cf-efc2-43e5-af4f-5841bd06872b</Owner>
      <Hash>40SwGiVxqA8Zx7iqMKrAs6c5z2o=</Hash>
      <Hash256>DHYsheglT+OXYzYsflHMA6ZymdpFKXDJpR6IU5vj0PI=</Hash256>
      <Date>2017-03-11 21:16:16Z</Date>
      <ContentType>application/vnd.openxmlformats-officedocument.presentationml.presentation</ContentType>
    </File>
  </FileUploadInfo>
</serviceData>

 

Gelen verileri süreç içerisinde kullanımı için hazırlanan örnek süreç scriptleri aşağıdaki gibidir. 

Code Block
languagexml
titleÖrnek süreç iş sonrası script
linenumberstrue
  <If>
    <Then>
      <Condition>
        <Not>
          <IsEmpty>
            <Value Culture="" Target="None">eval::/*/serviceData/email</Value>
          </IsEmpty>
        </Not>
      </Condition>
      <Perform>
        <Set Node="/*/Mail/From">
          <Value Culture="" Target="None">eval::/*/serviceData/email/sender</Value>
        </Set>
        <Set Node="/*/Mail/Subject">
          <Value Culture="" Target="None">eval::/*/serviceData/email/subject</Value>
        </Set>
        <Set Node="/*/Mail/Body">
          <Value Culture="" Target="None">eval::/*/serviceData/email/body</Value>
        </Set>
        <ForEach Node="/*/serviceData/email/recepients/recepient">
          <Insert Into="/*/Mail/Recepient/Data">::/*/Mail/Recepient/Template</Insert>
          <Set Node="/*/Mail/Recepient/Data/Template[last()]/email">
            <Value Culture="" Target="None">eval::.</Value>
          </Set>
        </ForEach>
        <ForEach Node="/*/serviceData/email/headers/header">
          <Insert Into="/*/Mail/Header/Data">::/*/Mail/Header/Template</Insert>
          <Set Node="/*/Mail/Header/Data/Template[last()]/Name">
            <Value Culture="" Target="None">eval::./name</Value>
          </Set>
          <Set Node="/*/Mail/Header/Data/Template[last()]/Value">
            <Value Culture="" Target="None">eval::./value</Value>
          </Set>
        </ForEach>
        <ForEach Node="/*/serviceData/FileUploadInfo/File">
          <SetVariable Name="$(Hash)">
            <Value Culture="" Target="None">eval::./Hash</Value>
          </SetVariable>
          <SetVariable Name="$(Hash256)">
            <Value Culture="" Target="None">eval::./Hash256</Value>
          </SetVariable>
          <SetVariable Name="$(FileName)">
            <Value Culture="" Target="None">eval::./FileName</Value>
          </SetVariable>
          <SetVariable Name="$(ContentType)">
            <Value Culture="" Target="None">eval::./ContentType</Value>
          </SetVariable>
          <SetVariable Name="$(Id)">
            <Value Culture="" Target="None">eval::./Id</Value>
          </SetVariable>
          <SetVariable Name="$(WorkItemId)">
            <Value Culture="" Target="None">eval::./WorkItemId</Value>
          </SetVariable>
          <SetVariable Name="$(OwnerId)">
            <Value Culture="" Target="None">eval::./Owner</Value>
          </SetVariable>
          <SetVariable Name="$(OwnerName)">
            <Value Culture="" Target="None">eval::./Owner/@display</Value>
          </SetVariable>
          <SetVariable Name="$(Date)">
            <Value Culture="" Target="None">eval::./Date</Value>
          </SetVariable>
          <SetVariable Name="$(TemplateId)">
            <Value Culture="" Target="None">NewGuid</Value>
          </SetVariable>
          <Insert Into="/*/Mail/Attachments/Details"><Template guid="$(TemplateId)">
  <WorkItemId>$(WorkItemId)</WorkItemId>
  <Owner display="$(OwnerName)">$(OwnerId)</Owner>
  <Date>$(Date)</Date>
  <FileName>$(FileName)</FileName>
  <Id>$(Id)</Id>
  <ContentType>$(ContentType)</ContentType>
  <Hash>$(Hash)</Hash>
  <Hash256>$(Hash256)</Hash256>
</Template></Insert>
        </ForEach>
      </Perform>
    </Then>
  </If>
Info

Tüm bu işlemlerin sonunda başlatma adımı Onayla aksiyonu ile ilerletilerek sonraki adıma düşecektir. Burada onayla adımından sonra bir modül tanımlanarak içerisinde farklı yollar için yönetim yapılabilir.