Page History
Database üzerinde LOGMASTER tablosundaki INSTANCEDATA kolonu kullanılarak akış üzerindeki değişkenlerin değerlerine ulaşılabilmektedir. Akış ile ilgili değerler bu kolon üzerinde xml XML olarak tutulmaktadır ve değerlere ulaşmak için xml XML içeriği parse etmek gerekmektedir. (Aşağıdaki bölüm
Info |
---|
...
Aşağıdaki örnek akışı içeri aktarıp, |
...
SQL sorguları üzerinden verilere nasıl erişileceğine dair kullanımları görebilirsiniz. Akış: SQL Üzerinden Verilere Erişme.xnm |
...
Warning |
---|
Sorgularda kullanılan INSTANCEUNIQUEID değeri portalde başlatılan iş numarasına denk gelmektedir. Örnek olarak kullanılan işin ekran görüntüsü; |
Örnek olarak kullanılan işin INSTANCEDATA verisi;
Anchor
(Aşağıdaki bölüm yeşil olabilir)
1.Primitive Tipteki Değişkenlere Erişmek
Primitive tipteki değişkenlerin değerlerine erişmek için akış tarafında herhangi bir işlem gerekmemektedir.
*Sorgu*
<span style="color: #0000ff">SELECT</span> INSTANCEDATA<span style="color: #808080">.</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000"><ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="dd7a3cd1-9bd1-4c56-9a51-556abbd046e8"><ac:plain-text-body><![CDATA[ Wiki Markup
Sorgu
SELECT INSTANCEDATA.value('(/root//LFlow_NFormActivity1_initUser/node())\[1\]',
, 'nvarchar(max)') as \ [Baslatan Kullanıcı\],
INSTANCEDATA.value( '(/root//Toplam/node())\[1\]', 'nvarchar(max)') as \ [Masraf Tutarı\], Wiki Markup
INSTANCEDATA.value( '(/root//AlinanAvans/node())\[1\]', 'nvarchar(max)') as \ [Alınan Avans\] Wiki Markup
FROM \ [LFLOW\].\[dbo\].\[NWFLOGMASTER\]
where INSTANCEUNIQUEID ='107527' (Aşağıdaki notu uyarı tipinde gösterelim) Not: unmigrated-wiki-markup
Warning |
---|
'(/root//AlinanAvans/node()) |
...
[1 |
...
]' |
...
, 'nvarchar(max)'bu ifadedeki AlinanAvans akışta |
...
kullanılan avans değişkeninin adıdır. |
...
Sonuç
2.Tablo Değişkenindeki Verilere Erişmek
Tablo değişkenindeki verilere erişmek isteniyorsa, akış tasarlanırken tablo içeriğinin büyük metin değişkenine aktarılması gerekmektedir.
Wiki Markup
Aktarım işlemi; BuyukMetinDegiskeni.Value = Tablo.XmlSerialize(); komutu ile sağlanmaktadır. (Yukarıdaki örnek akışta kullanımı mevcuttur.) !worddavbb4235b1f17ecd6f3f383bc322563263.png|height=382,width=602! *Sorgu* <span style="color: #0000ff">select</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'RowId'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">
Sorgu
select X.query('RowId').value('.', 'varchar(250)'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[RowId\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Tarih'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">) as [RowId],
X.query('Tarih').value('.', 'varchar(250)'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Tarih\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'HarcamaNedeni'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">) as [Tarih],
X.query('HarcamaNedeni').value('.', 'varchar(250)'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[HarcamaNedeni\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Tutar'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'float'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Tutar\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Yakt'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'bit'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Yakt\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Ulasim'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'bit'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Ulasim\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Agirlama'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'bit'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Agirlama\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Otel'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'bit'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Otel\]<span style="color: #808080">,</span> X<span style="color: #808080">.</span>query<span style="color: #808080">(</span><span style="color: #ff0000">'Yemek'</span><span style="color: #808080">).</span><span style="color: #0000ff">value</span><span style="color: #808080">(</span><span style="color: #ff0000">'.'</span><span style="color: #808080">,</span> <span style="color: #ff0000">'bit'</span><span style="color: #808080">)</span> <span style="color: #0000ff">as</span> \[Yemek\] <span style="color: #0000ff">from</span> NWFLOGMASTER <span style="color: #808080">cross</span> <span style="color: #808080">apply</span> INSTANCEDATA<span style="color: #808080">.</span>nodes<span style="color: #808080">(</span><span style="color: #ff0000">) as [HarcamaNedeni],
X.query('Tutar').value('.', 'float') as [Tutar],
X.query('Yakt').value('.', 'bit') as [Yakt],
X.query('Ulasim').value('.', 'bit') as [Ulasim],
X.query('Agirlama').value('.', 'bit') as [Agirlama],
X.query('Otel').value('.', 'bit') as [Otel],
X.query('Yemek').value('.', 'bit') as [Yemek]
from NWFLOGMASTER
cross apply
INSTANCEDATA.nodes('/root/TabloIcerik/SpecialTableXmlData/HarcamaBilgileri/Row'</span><span style="color: #808080">)</span> <span style="color: #0000ff">AS</span> P<span style="color: #808080">(</span>X<span style="color: #808080">)</span> <span style="color: #0000ff">where</span> INSTANCEUNIQUEID <span style="color: #808080">=</span><span style="color: #ff0000">'107527'</span> (Aşağıdaki notu uyarı tipinde gösterelim) Not: <span style="color: #c00000">)
AS P(X)
where INSTANCEUNIQUEID ='107527'
Warning |
---|
'/root/TabloIcerik/SpecialTableXmlData/HarcamaBilgileri/Row' |
...
bu |
...
ifadedeki TabloIcerik akışta kullanılan büyük metnin adı, HarcamaBilgileri ise akışta kullanılan tablonun adıdır. |