<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Extension export: exception when fetching master dimension's colors in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Extension-export-exception-when-fetching-master-dimension-s/m-p/1799394#M14752</link>
    <description>&lt;P&gt;It seems during export only, `app.getObject('ColorMapModel_' + libraryId)` (where libraryId is master library dimension's id), fails with an exception "cannot read promise of undefined", which arises from qlik internals. It fails both in enterprise (June 2019) and desktop environments (November 2020). My question is how do I fix this, or what workarounds could I use to get it to work? This is how extension looks on normal sheet view:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Normal sheet" style="width: 518px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/52982iA9040D51476D6DB5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2021-04-14 142019.png" alt="Normal sheet" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Normal sheet&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This is a result of PNG export:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Exported PNG" style="width: 468px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/52983i8625147F65BA4E5A/image-size/large?v=v2&amp;amp;px=999" role="button" title="151bcfc24ab24677aadf80cc965d315f.png" alt="Exported PNG" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Exported PNG&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is full extension code:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;define(['jquery', 'qlik'], function ($, qlik) {

    function loadDimensionColors(extensionReference, layout) {
        var app = qlik.currApp(extensionReference);
        if (!app)
            return qlik.Promise.resolve('qlik.currApp(extensionReference) returned null');
        var libraryId = layout.qHyperCube.qDimensionInfo[0].qLibraryId;
        if (!libraryId)
            return qlik.Promise.resolve([]);
        try {
            return app.getObject('ColorMapModel_' + libraryId) //exception thrown here
                .then(function(colorMapObj) {
                    return colorMapObj.layout.colorMap.colors;
                });
        } catch (e) {
            return qlik.Promise.reject(e);
        }
    }

	return {
        definition : {
            type : 'items',
            component : 'accordion',
            items: {
                dims : {
                    uses : 'dimensions',
                    min : 1,
                    max : 1
                }
            }
        },
        support: {
            export: true
        },
		paint: function ($element, layout) {
            $element.html('');
            return loadDimensionColors(this, layout)
                .then(function(colorsOrError) {
                    if (Array.isArray(colorsOrError)) {
                        colorsOrError.forEach(function(c) {
                            var div = $('&amp;lt;div/&amp;gt;').text(c.value).css('background-color', c.baseColor.color);
                            $element.append(div);
                        });
                    } else {
                        var div = $('&amp;lt;div/&amp;gt;').text(colorsOrError);
                        $element.append(div);
                    }
                })
                .catch(function(e) {
                    $element.append($('&amp;lt;div/&amp;gt;').text(e.stack? e.stack : e));
                });
		}
	};
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attach zip containing extension and a sample application using it. Thanks in advance!&lt;BR /&gt;&lt;BR /&gt;Arvydas&lt;/P&gt;</description>
    <pubDate>Wed, 14 Apr 2021 12:10:05 GMT</pubDate>
    <dc:creator>Arvydas</dc:creator>
    <dc:date>2021-04-14T12:10:05Z</dc:date>
    <item>
      <title>Extension export: exception when fetching master dimension's colors</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Extension-export-exception-when-fetching-master-dimension-s/m-p/1799394#M14752</link>
      <description>&lt;P&gt;It seems during export only, `app.getObject('ColorMapModel_' + libraryId)` (where libraryId is master library dimension's id), fails with an exception "cannot read promise of undefined", which arises from qlik internals. It fails both in enterprise (June 2019) and desktop environments (November 2020). My question is how do I fix this, or what workarounds could I use to get it to work? This is how extension looks on normal sheet view:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Normal sheet" style="width: 518px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/52982iA9040D51476D6DB5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2021-04-14 142019.png" alt="Normal sheet" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Normal sheet&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This is a result of PNG export:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Exported PNG" style="width: 468px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/52983i8625147F65BA4E5A/image-size/large?v=v2&amp;amp;px=999" role="button" title="151bcfc24ab24677aadf80cc965d315f.png" alt="Exported PNG" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Exported PNG&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is full extension code:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;define(['jquery', 'qlik'], function ($, qlik) {

    function loadDimensionColors(extensionReference, layout) {
        var app = qlik.currApp(extensionReference);
        if (!app)
            return qlik.Promise.resolve('qlik.currApp(extensionReference) returned null');
        var libraryId = layout.qHyperCube.qDimensionInfo[0].qLibraryId;
        if (!libraryId)
            return qlik.Promise.resolve([]);
        try {
            return app.getObject('ColorMapModel_' + libraryId) //exception thrown here
                .then(function(colorMapObj) {
                    return colorMapObj.layout.colorMap.colors;
                });
        } catch (e) {
            return qlik.Promise.reject(e);
        }
    }

	return {
        definition : {
            type : 'items',
            component : 'accordion',
            items: {
                dims : {
                    uses : 'dimensions',
                    min : 1,
                    max : 1
                }
            }
        },
        support: {
            export: true
        },
		paint: function ($element, layout) {
            $element.html('');
            return loadDimensionColors(this, layout)
                .then(function(colorsOrError) {
                    if (Array.isArray(colorsOrError)) {
                        colorsOrError.forEach(function(c) {
                            var div = $('&amp;lt;div/&amp;gt;').text(c.value).css('background-color', c.baseColor.color);
                            $element.append(div);
                        });
                    } else {
                        var div = $('&amp;lt;div/&amp;gt;').text(colorsOrError);
                        $element.append(div);
                    }
                })
                .catch(function(e) {
                    $element.append($('&amp;lt;div/&amp;gt;').text(e.stack? e.stack : e));
                });
		}
	};
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attach zip containing extension and a sample application using it. Thanks in advance!&lt;BR /&gt;&lt;BR /&gt;Arvydas&lt;/P&gt;</description>
      <pubDate>Wed, 14 Apr 2021 12:10:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Extension-export-exception-when-fetching-master-dimension-s/m-p/1799394#M14752</guid>
      <dc:creator>Arvydas</dc:creator>
      <dc:date>2021-04-14T12:10:05Z</dc:date>
    </item>
  </channel>
</rss>

