2016-09-06 4 views
0

Microsoft CRM에서 데이터베이스를 읽습니다. 그건 잘 작동합니다. 데이터베이스 (annotationbase)에서 메모 필드를 읽어야합니다. 이 스크린 샷처럼 : 정보를로드하기위한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

해결책을 찾았습니다. 캐스트는 올바른 방향이지만 James Wood는 말한 방식이 아닙니다.

당신에게 캐스트 기능을 많이 SQL-데 도움을줍니다 문제는 당신이 캐스트를 캐스팅해야합니다 (바이너리하고는 char)이다 :

SQL SELECT CAST(CAST("BASE64ENCODEDFIELDINEED" as XML).value('.','varbinary(max)') AS varchar(max)) as decodedField 
내 프로젝트의 또 다른 부분이었다

, 해석 XML 파일로서 decodedField. From_Field라고 클릭 테크 감각에서 함수가있다 (+ 물론로드)와 클릭 테크에서 xmlsimple를 사용하는 것은 당신에게 결과를 구문 분석 : 나는 때문에,

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

나는이 동일한 문제를 가진 사람을 위해 도움이 될 것입니다 희망을 생각만큼 많은 Qlik Sense 개발자가 없다고 생각하십시오.

최저 인사

0

Base64 문자열을 디코딩하면됩니다.

그것과 같을 것이다 구글 suggests TSQL에서 quick search :

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

분명히 QilkSenseutility.custom_decrypt 또는 byte.decode(base64_encoded_private_key)으로이 같은 대한 기능이 내장되어 하다니.

+0

당신은 당신의 자신의 소스를 읽어 보지 않았 : "는 QlikView 사용"... 나는 qliksense을 사용하고 있습니다. 로드 - 문장에서 캐스트 또는이 함수를 사용할 수는 없지만 도움을 주셔서 감사합니다. 나는 이미이 게시물을 발견하고 그들은 나를 도울 수 없었다. – 0x38