ConvertToDocument Fonksiyonu ile Örnek Süreç
Bu içerik Linkedin’de yer alan E-Flow Designers grubundan gelen talep üzerine hazırlandı.
LineItemTable’a eklenen dosyaların ConvertToDocument metodu ile bir dokuman veri kaynağına nasıl dosya olarak eklenir örnek süreç aşağıda mevcuttur.
ConvertToDocument Metodu ile Web Servis yada Rest Servis ile aldığınız Base64 veriyide dokumana çevirebilirsiniz. Mesela Rest Servis ile E-Logo'dan e-İrsaliye görselini Base64 olarak alarak ConvertToDocument Metodu ile dokuman veri elementine eşleyebilirsiniz.
Bu örnek de talep üzerine LineItemTable kullanılmıştır.
ConvertToDocument metodu üç parametre almakdatır.
| baseData | mimeType | filename |
| Base64 veridir. Bu veri LineItemTable XML'inde yer alsada ben INST_DATA_ATTACHMENT tablosundan ilerlemenin daha saglıklı oldugunu düşünüyorum. | Dosyanın tipidir. Bu veri de INST_DATA_ATTACHMENT tablosunda yer almaktadır. | Oluşacak dosyanın ismidir. Burada "dosyaadı" da deseniz çalışacaktır. Veri bütünlüğünü korumak adına LineItemTable’da yer alan dosya ismi olması için ben sorguda lineitemtable XML’ini kullandım. |
Burayı tıklayarak örnek süreci indirebilirsiniz. Bu süreç E-Flow 3.05 ve 3.06 da test edilmiştir. 🚀
Sadece sorguyu görmek isteyenler içinde aşağıda paylaşıyorum. 🖐
DECLARE @CIID INT = 92466
DECLARE @DID INT = 12579
DECLARE @SYC INT = 1
DECLARE @XML XML = (SELECT CONVERT(XML,VALUE) AS VALUE FROM eflow.dbo.INST_DATA_MEMO WITH(NOLOCK) WHERE DID =@DID AND CIID=@CIID)
SELECT CAST('' as xml).value('xs:base64Binary(sql:column("ATT.VALUE"))', 'varchar(max)') AS VALUEbase64
,ATT.MIMETYPE
,GZDKRM.[DOSYA_Adi]
FROM
(
SELECT CASE WHEN DMR.Rec.query('.').value('(//@row)[1]', 'INT') IS NULL THEN DMR.Rec.query('.').value('(//@Row)[1]', 'INT') else DMR.Rec.query('.').value('(//@row)[1]', 'INT') END RowNo
,DMR.Rec.query('./ColumnData[2]').value('(//@datatext)[1]', 'nvarchar(MAX)') AS [DOSYA_Adi]
FROM @XML.nodes('/LineItemTable/TableData/Data') as DMR(Rec)
) GZDKRM
LEFT JOIN [eflow].[dbo].[INST_DATA_ATTACHMENT] ATT WITH(NOLOCK) ON (ATT.CIID=@CIID AND ATT.DID=@DID AND ATT.ROW_ID=GZDKRM.RowNo)
WHERE ATT.ROW_ID=@SYC