Wso2发布者扩展覆盖了渲染器的创建方法后显示空白屏幕

时间:2020-11-02 01:55:37

标签: javascript wso2 handlebars.js wso2greg jaggery-js

我正在尝试在 wso2-greg发布者中用另一个名为的资产的计数器字段 currentValue 来预填充我的自定义资产的创建形式的文本字段>顺序。之后,我必须在1中增加 currentValue 的值。

为此,我在文档https://docs.wso2.com/display/ES210/asset.render+Property+Definitions之后覆盖[custom-asset] /asset.js文件中的 renderer的create方法。但是,当我加载创建表单时,它会显示一个空白屏幕,并且不会在服务器日志中显示错误。

blank screen

尝试查找问题后。我注意到评论资产管理器的更新方法可以解决黑屏问题,但是我必须更新该值,有人可以告诉我为什么会这样吗?谢谢

asset.renderer = function(ctx) {
    var assetManager = function(ctx) {
        var rxt = require('rxt');
        var type = "sequence";
        var am = rxt.asset.createUserAssetManager(ctx.session, type);
        return am;
    };

    var padLeadingZeros = function (num, size) {
        var s = num+"";
        while (s.length < size) s = "0" + s;
        return s;
    }

    var generateBusinessServiceCode = function (sequenceAsset) {
        log.info('sequenceAsset result: ' + stringify(sequenceAsset));
        var prefix = sequenceAsset.attributes.overview_prefix;
        var currentValue = sequenceAsset.attributes.overview_currentValue;
        return prefix + padLeadingZeros(currentValue, 4);
    }

    return {
        create: function(page) {
            var am = assetManager(ctx);
            var query = {};
            query.overview_name = 'BusinessServiceCode';
            var assets = am.search(query);
            var sequenceAsset = assets[0];
            var generatedCode = generateBusinessServiceCode(sequenceAsset);
            sequenceAsset.attributes.overview_currentValue = Number(sequenceAsset.attributes.overview_currentValue) + 1;
            // commenting the following line fixes the blank screen problem
            am.update(sequenceAsset);
            var tables = page.assets.tables;
            var codeAttribute = 'code';
            for (var index in tables) {
                var table = tables[index];
                if ((table.name == 'overview') && (table.fields.hasOwnProperty(codeAttribute))) {
                    table.fields[codeAttribute].value = generatedCode;
                }
            }
        }
    };
};

0 个答案:

没有答案
相关问题