2016-09-06 45 views
0

我正在從Microsoft CRM讀取數據庫。這工作正常。我需要從數據庫(註釋庫)讀取註釋字段。就像這個截圖:加載base64編碼字段

Notes MS CRM

我對加載信息的代碼,我需要:

LIB CONNECT TO 'CRM'; 
LOAD someuninterestingfield1, 
    someuninterestingfield2, 
    someuninterestingfield3, 
    someuninterestingfield4, 
    someuninterestingfield5, 
    someuninterestingfield6, 
    BASE64ENCODEDFIELDINEED; 
SQL SELECT someuninterestingfield1, 
    someuninterestingfield2, 
    someuninterestingfield3, 
    someuninterestingfield4, 
    someuninterestingfield5, 
    someuninterestingfield6, 
    BASE64ENCODEDFIELDINEED 
FROM "CRM_DATABASE".usr.AnnotationBase; 

BASE64ENCODEDFIELDINEED有base64編碼XML的文件,我需要爲我的分析。 我不知道(在Qlik Sense中加載或加載後,我找不到解碼數據的任何內容)如何解碼內容以最終接收我的xml數據。 我正在使用Qlik Sense 3.0和MS CRM 2015(內部部署)。

有人可以幫助我嗎?

問候

回答

0

我發現解決方案: 演員是正確的方向,但不是詹姆斯伍德說的方式。

SQL-幫助你很多跟投功能,問題是,你需要投投(二進制,然後爲char):

SQL SELECT CAST(CAST("BASE64ENCODEDFIELDINEED" as XML).value('.','varbinary(max)') AS varchar(max)) as decodedField 

我的項目的另一部分是,解釋decodeField作爲XML文件。有一個在Qlik意義上被稱爲From_Field功能(+當然負載),並使用xmlsimple從Qlik解析您的結果:

LOAD * From_Field(<TABLEYOUNEEDTOLOADFROM>, decodedField)(xmlsimple, table is [<TABLEINYOURXMLFILE>]); 

我希望這將有助於有人用完全相同的問題,因爲我認爲在這裏沒有像您想象的那樣多的Qlik Sense開發人員。

最佳問候

0

你只需要到Base64編碼字符串解碼。

一個quicksearch在谷歌suggests TSQL它應該是這樣的:

cast(」 as xml).value(‘xs:base64Binary(sql:variable("@source"))’, ‘varchar(max)’) 

雖然顯然QilkSense具有內置的功能,此如utility.custom_decryptbyte.decode(base64_encoded_private_key)

+0

你沒看你自己的源: 「使用QlikView的」 ......我使用qliksense。您不能在加載語句中使用強制轉換或此函數...但感謝您的幫助。我已經發現這些帖子,他們不能幫助我。 – 0x38