Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics 365 | Integration, Dataverse...
Answered

Problem Adding Script to Form

Posted on by 235

I am working through Mastering-Dynamics-365-customization-development/ 

When I add a web resource

8244.PNG

with the script 

function suggestZipCodes() { // defined possible ZipCode ZipCodes = [ { name: '94102' }, { name: '94103' }, { name: '94104' }, { name: '94105' }, { name: '94107' }, { name: '94108' }]; var OnZipCodekeyPress = function (fld) { var ZipCodetxt = Xrm.Page.getControl(" address1_postalcode"). getValue(); resultSet = { results: new Array(), commands: { id: "ZipCodecmd", label: "Search in Bing", action: function () { window.open(" http:// bing.com"); // Open Bing URL } } }; var ZipCodetxtLowerCase = ZipCodetxt.toLowerCase(); for (i = 0; i < ZipCodes.length; i + +) { if (ZipCodetxtLowerCase = = = ZipCodes[ i]. name.substring( 0, ZipCodetxtLowerCase.length). toLowerCase()) { resultSet.results.push({ id: i, fields: [ZipCodes[ i]. name] }); } if (resultSet.results.length > = 10) { break;} } if (resultSet.results.length > 0) { fld.getEventSource(). showAutoComplete( resultSet); // Show Auto Complete } else { fld.getEventSource(). hideAutoComplete();// Hide Auto Complete } }; Xrm.Page.getControl(" address1_postalcode"). addOnKeyPress( OnZipCodekeyPress); }

and then add this to the Contacts Main Form

1780.png

 

I get the following error on opening the form:

ReferenceError: Web resource method does not exist: suggestZipCodes
at jp.execute (ghdunn1.crm11.dynamics.com/.../app.js
at Ap._executeIndividualEvent (ghdunn1.crm11.dynamics.com/.../app.js
at Ap._executeEventHandler (ghdunn1.crm11.dynamics.com/.../app.js
at Object.execute (ghdunn1.crm11.dynamics.com/.../app.js
at v._executeSyncAction (ghdunn1.crm11.dynamics.com/.../app.js
at v._executeSync (ghdunn1.crm11.dynamics.com/.../app.js
at v.executeAction (ghdunn1.crm11.dynamics.com/.../app.js
at t.dispatch (ghdunn1.crm11.dynamics.com/.../app.js
at Object.dispatch (ghdunn1.crm11.dynamics.com/.../app.js
at Object.dispatch (https://ghdunn1.crm11.dynamics.com/uclient/scripts/app.js?v=1.3.177-1911.3:563:5034)

 

Can anyone suggest where i am going wrong?

 

Thanks

  • ghdunn Profile Picture
    ghdunn 235 on at
    RE: Problem Adding Script to Form

    Thanks for the expert guidance...will be using VS Code going forwards,

  • Verified answer
    Henry J. Profile Picture
    Henry J. 5,237 on at
    RE: Problem Adding Script to Form

    Hi,

    You could probably reach out to the author of that book, Deepesh Somani on LinkedIn to get help or updates on the examples he has provided in his book.

    Firstly, the code you pasted seems to have some formatting issues.
    You should use a code editor such as Visual Studio Code  (it's free) so that it highlights what's wrong in your JavaScript code.

    I've tried to fix it:

    function suggestZipCodes() { // defined possible ZipCode 
        ZipCodes = [
            { name: '94102' },
            { name: '94103' },
            { name: '94104' },
            { name: '94105' },
            { name: '94107' },
            { name: '94108' }
        ];
        var OnZipCodekeyPress = function (fld) {
            var ZipCodetxt = Xrm.Page.getControl(" address1_postalcode").getValue();
            resultSet = {
                results: new Array(),
                commands: {
                    id: "ZipCodecmd",
                    label: "Search in Bing",
                    action: function () {
                        window.open(" http:// bing.com"); // Open Bing URL
                    }
                }
            };
            var ZipCodetxtLowerCase = ZipCodetxt.toLowerCase();
            for (i = 0; i < ZipCodes.length; i  ) {
                if (ZipCodetxtLowerCase === ZipCodes[i].name.substring(0, ZipCodetxtLowerCase.length).toLowerCase()) {
                    resultSet.results.push({
                        id: i,
                        fields: [ZipCodes[i].name]
                    });
                }
                if (resultSet.results.length >= 10) {
                    break;
                }
            }
            if (resultSet.results.length > 0) {
                fld.getEventSource().showAutoComplete(resultSet); // Show Auto Complete
            } else {
                fld.getEventSource().hideAutoComplete(); // Hide Auto Complete 
            }
        };
        Xrm.Page.getControl(" address1_postalcode").addOnKeyPress(OnZipCodekeyPress);
    }

    Secondly, the code sample isn't supposed to work on the Unified Interface, so it will ultimately not do anything.
    While the Xrm.Page method that has been deprecated might still work as of today, the addOnKeyPress method doesn't work in the Unified Interface.

    Deprecation announcements and suggested alternatives are documented here:
    https://docs.microsoft.com/en-us/power-platform/important-changes-coming#some-client-apis-are-deprecated

    Henry

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,280 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,214 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans