PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 08/07/2020 5:05 PM by  Ragu Raghavan
results from AGS call
 7 Replies
Sort:
You are not authorized to post a reply.
Author Messages
Ragu Raghavan
Private
Private
Veteran Member
(1141 points)
Veteran Member
Posts:397


Send Message:

--
10/05/2017 11:31 AM

    For years I have been using this syntax to get the results from an AGS call:

     var sMsgNbr  = sAGSInfo.selectSingleNode("//MsgNbr").text;

    This seems to work only in IE. Gets an 'undefined' in Chrome and Firefox.

    This workaround seems to work on all 3 browsers.

     var vNew1 = sAGSInfo.getElementsByTagName("MsgNbr")[0];
     var vNew2 = vNew1.childNodes[0];
     var vNewMsg = vNew2.nodeValue;

    Joe O'Toole
    Private
    Private
    Veteran Member
    (802 points)
    Veteran Member
    Posts:312


    Send Message:

    --
    10/10/2017 5:11 PM

    Does anyone have sample DME and AGS call syntax that will work both in IE and Chrome?

    We just finished getting a custom form working in V10 on IE working around the JS and object behavior changes only to find that the DME and AGS calls are not working when users try to use it in Chrome.

     

    Thanks.

    Zachary Dever
    Infor/Lawson Consultant
    Southeast ERP
    New Member
    (4 points)
    New Member
    Posts:2


    Send Message:

    --
    10/11/2017 7:13 AM

    I recently ran into this same issue with a client.  The DME and AGS calls are working but IE11 stores the return data in a different spot than Chrome and FireFox.  

    The solution I used was to check the browser userAgent for IE and then pull from the correct location.  One thing we ran into with this was that the data from Chrome and Firefox needed to be trimmed of character-return/line feeds.

     

    var ua = navigator.userAgent; //ZD032717 - Update userAgent check to IE11(Trident)
    var trident = ua.indexOf('Trident/');

    if (trident > 0)
    {   
    vELcommentArray = vCols[0].firstChild.data;
    }
    else
    {
    var stringToReplace = vCols[0].firstChild.wholeText;
    vELcommentArray= stringToReplace.replace(/[\n\r]+/g, '');
    }

    Ragu Raghavan
    Private
    Private
    Veteran Member
    (1141 points)
    Veteran Member
    Posts:397


    Send Message:

    --
    07/30/2020 6:54 PM
    Zachary's post confirmed what I saw today: DME results different in IE Vs Chrome. Has anybody found a different solution? Thanks.
    John Henley
    Private
    Private
    Senior Member
    (9803 points)
    Senior Member
    Posts:3285


    Send Message:

    --
    08/07/2020 11:46 AM

    I have found that Chrome returns the columns as a huge array. So my solution is to increment a column index by the number of columns in the returned result set.

    Thanks for using the LawsonGuru.com forums!
    John
    Attachments
    ShawnV
    Private
    Private
    Advanced Member
    (78 points)
    Advanced Member
    Posts:36


    Send Message:

    --
    08/07/2020 4:00 PM

    Regarding DME conversion from IE to Chrome:

    Per an Infor post, you can store the individual 'record' in a new portalWnd.DataStorage and then pull off the individual columns using the .getElementCDataValue('COL', ).  I have attached a sample of before & after code for the DME data.

    However - going back to the original request, has anyone been able to fix the Design Studio code surrounding the .selectSingleNode("//MsgNbr" return from the AGS call to work in Chrome?

    Thanks - Shawn

    Attachments
    ShawnV
    Private
    Private
    Advanced Member
    (78 points)
    Advanced Member
    Posts:36


    Send Message:

    --
    08/07/2020 4:17 PM

    Sorry - I re-read the original post and found that RaguRagu had already found a solution for the sAGSInfor.selectSingleNode("//MsgNbr".text;

    Below is the before/after code I am using to get the results from the AGS call.  Before code works in IE only & After code works in both IE & Chrome.

    var sMsgNbr = sAGSInfo.selectSingleNode("//MsgNbr".text;

    var sMsgNbr = sAGSInfo.getElementsByTagName("MsgNbr"[0].childNodes[0].nodeValue;

    Is anyone doing this differently?  Is there there a better solution?

    Thanks - Shawn

    Ragu Raghavan
    Private
    Private
    Veteran Member
    (1141 points)
    Veteran Member
    Posts:397


    Send Message:

    --
    08/07/2020 5:05 PM
    Yes, the new AGS syntax works consistently with IE11, Edge. Chrome, Safari and Firefox. Bear in mind that if the nodeValue is null, the script just freezes.
    FldNbr, MsgNbr and Messsage are always populated, so not at issue. For instance MsgNbr will come across as
    219. Or if no error
    000

    I was interrogating a PA52 screen to see what the user entered value was: they had entered none, since there was no change to the field. The results came back as



    I had to put in some if/then logic to check for null, to bypass this.
    You are not authorized to post a reply.