加载 base64 编码字段

Load base64 encoded field

我正在从 Microsoft CRM 读取数据库。那很好用。我需要从数据库 (annotationbase) 中读取注释字段。就像这个截图:

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(内部部署)。

有人可以帮助我吗?

此致

您只需要解码 Base64 字符串。

A quick search in Google suggests TSQL 看起来像这样:

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

虽然显然 QilkSense 已经为此内置了函数,例如 utility.custom_decryptbyte.decode(base64_encoded_private_key)

我找到了解决方案: 演员是正确的方向,但不是詹姆斯伍德所说的方式。

SQL-对 Cast 函数有很大帮助,问题是您需要进行强制转换(先转换为二进制再转换为 char):

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

我项目的另一部分是将 decodedField 解释为 XML-File。 Qlik Sense 中有一个名为 From_Field 的函数(当然是 + Load),使用 Qlik 中的 xmlsimple 解析结果:

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

我希望这对遇到完全相同问题的人有所帮助,因为我认为这里的 Qlik Sense 开发人员并不像您想象的那么多。

最诚挚的问候