Javascript Bundles Documentation

Hi,

I'm trying to start developing bundles in javascript for SAGE X3, but there is a lack of documentation...

Does anyone have some documents that could be useful to me?

Best Regards

  • 0

    Has anyone managed to deploy a javascript bundle in v11?

    We have tried to follow documentation steps for deployment scenarios without success..
    So far we only have achieved a manual deployment to syracuse. Afterwards we are able to call this deployed functions sucessfully from 4GL code.

    Supporting Javascript modules development does bring great extensibility options to the platform. Would be important to have better documentation in this matter as development setup guide and some tutorials.

  • 0 in reply to jfazenda

    I have built a few node modules that are managing outbound integrations from X3 to external systems. I would love to know how to deploy these if there is a way. As far as I know the install process right now requires copy and pasting the module into the syracuse bin directory and restarting the entire service on the server. It's also very annoying to test development where we need to keep restarting syracuse to pick up the latest changes. A flush cache option would be nice.

  • 0

    Does anyone have detailed documentation on how to deploy bundle? Its still not clear...

  • 0 in reply to Vad

    Hi Vad,

    Meanwhile only way we managed to deploy was to follow examples provided in documentation and then deploy to the syracuse/bin/node_modules folder.
    After restarting service, and with the debugger assistance, you should be able to get the response (RESHEAD and RESBODY) from the EXEC_JS method which will be very helpful to get the call right in the first attempts.

    regards

  • 0 in reply to jfazenda

    Hey ifazenda!

    After calling EXEC_JS it gives error 403: "The module 'bundles/testmodule/index' is not authorized to be called from X3 in RESHEAD 

    Restarting syracuse services doesnt fix error.

    Do you know possible solution?

    Thank you

  • 0 in reply to Vad

    Hi Vad,

    Think you probably missed one step.
    In package.json file, you must declare/publish your extension.

    Should be something like this:

    (package.json file)

    {
        ( ... other content)

        "sage":
            {
                "x3":
                    {
                        "extensions":
                            {
                                "4gl-apis":
                                    [
                                        {
                                            "module": "./<path to your source from bundle root>._js"
                                        },
                                        {
                                            "module": "./<path to your source from bundle root>.js"
                                        }
                                    ]
                             }
                     }
             }
    }

    In your case you need "module": "./testmodule/index.js" (or ._js)

  • 0 in reply to jfazenda

    It works! Thank you!