Hello!
I have a problem that I can’t solve, mainly because I don’t see the problem!
This TripleMap works fine:
<#TriplesMapGSDRB_SCHEDA_RB_TITLE> a rr:TriplesMap;
rr:logicalTable [ rr:sqlQuery """SELECT rb.ID_CATALOGO, rb.IDK, rb.CUTT, rb.CUTC,
cup.REF_CATALOGO,
CASE
WHEN CUTC IS NOT NULL AND CUPN IS NOT NULL AND CUPM IS NOT NULL THEN CONCAT(rb.CUTT, ' : ', rb.CUTC, '. ', CUPN, ', ', CUPM)
WHEN CUTC IS NOT NULL AND CUPN IS NOT NULL AND CUPM IS NULL THEN CONCAT(rb.CUTT, ' : ', rb.CUTC, '. ', CUPN)
WHEN CUTC IS NOT NULL AND CUPN IS NULL AND CUPM IS NULL THEN CONCAT(rb.CUTT, ' : ', rb.CUTC)
WHEN CUTC IS NOT NULL AND CUPN IS NULL AND CUPM IS NOT NULL THEN CONCAT(rb.CUTT, ' : ', rb.CUTC, '. ', CUPM)
WHEN CUTC IS NULL AND CUPN IS NOT NULL AND CUPM IS NOT NULL THEN CONCAT(rb.CUTT, '. ', CUPN)
WHEN CUTC IS NULL AND CUPN IS NULL AND CUPM IS NOT NULL THEN CONCAT(rb.CUTT, '. ', CUPM)
WHEN CUTC IS NULL AND CUPN IS NOT NULL AND CUPM IS NOT NULL THEN CONCAT(rb.CUTT, '. ', CUPN, ', ', CUPM)
ELSE rb.CUTT
END AS TITLE
FROM DB.RB.GSDRB_SCHEDA_RB rb
LEFT JOIN DB.RB.GSDRB_SUB_CUP cup ON rb.ID_CATALOGO = cup.REF_CATALOGO
WHERE rb.VSV = 'S' AND (rb."CAST"='L' OR rb."CAST"='B'); """ ] ;
rr:subjectMap [ rr:termType rr:IRI ; rr:template "http://localhost:8890/DB/instance/title/{ID_CATALOGO}#this"; rr:class bf:Title; rr:graph <http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:id_catalogo ] ; rr:objectMap [ rr:column "ID_CATALOGO" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:idk ] ; rr:objectMap [ rr:column "IDK" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:mainTitle ] ; rr:objectMap [ rr:column "CUTT" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:subTitle ] ; rr:objectMap [ rr:column "CUTC" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:title ] ; rr:objectMap [ rr:column "TITLE" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:title ] ; rr:objectMap [ rr:column "TITLE" ]; ] .
(the last two rows are identical because of this not solved issue: https://community.openlinksw.com/t/last-triplemap-row-is-not-visible-in-linked-data-views/3732 )
This TripleMap, instead, not works because of TITLE. (If I delete the rr:column “TITLE” works fine)
<#TriplesMapGSDRB_SUB_CUA_VARIANT_TITLE> a rr:TriplesMap;
rr:logicalTable [ rr:sqlQuery """SELECT rb.ID_CATALOGO, rb.IDK,
cua.SUBCOUNTER, cua.REF_CATALOGO, cua.CUAP, cua.CUAT, cua.CUAL, cua.CUAR, cua.CUAC,
CASE
WHEN CUAT IS NOT NULL AND CUAC IS NOT NULL THEN CONCAT(cua.CUAT, ' : ', cua.CUAC)
WHEN CUAT IS NULL THEN cua.CUAC
WHEN CUAC IS NULL THEN cua.CUAT
ELSE NULL
END AS TITLE,
li.ISO2
FROM DB.RB.GSDRB_SCHEDA_RB rb
LEFT JOIN DB.RB.GSDRB_SUB_CUA cua ON rb.ID_CATALOGO=cua.REF_CATALOGO
LEFT JOIN DB.VOC.VOC_LINGUE li ON li.ISO3=cua.CUAL
WHERE REF_CATALOGO IS NOT NULL AND rb.VSV = 'S' AND (rb."CAST"='L' OR rb."CAST"='B');""" ] ;
rr:subjectMap [ rr:termType rr:IRI ; rr:template "http://localhost:8890/DB/instance/variantTitle/{SUBCOUNTER}#this"; rr:class bf:VariantTitle; rr:graph <http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:id_catalogo ] ; rr:objectMap [ rr:column "ID_CATALOGO" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:idk ] ; rr:objectMap [ rr:column "IDK" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:subcounter ] ; rr:objectMap [ rr:column "SUBCOUNTER" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:ref_catalogo ] ; rr:objectMap [ rr:column "REF_CATALOGO" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:cuap ] ; rr:objectMap [ rr:column "CUAP" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:mainTitle ] ; rr:objectMap [ rr:column "CUAT" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:cual ] ; rr:objectMap [ rr:column "CUAL" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:cuar ] ; rr:objectMap [ rr:column "CUAR" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:subTitle ] ; rr:objectMap [ rr:column "CUAC" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:iso2 ] ; rr:objectMap [ rr:column "ISO2" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant bf:title ] ; rr:objectMap [ rr:column "TITLE" ]; ] ; #se aggiungo questa colonna non fa vedere più nulla.
rr:predicateObjectMap
[ rr:predicateMap
[ rr:constant dcterms:relation ] ;
rr:objectMap
[ rr:parentTriplesMap <#TriplesMapVOC_RB_CUAP_CONCEPT>;
rr:joinCondition
[ rr:child "CUAP" ;
rr:parent "CODE"
] ;
];
] .
I think there are no substantial differences between the two blocks of code. How come one works and the other doesn’t?