Creating a message alert on AP20.1

 11 Replies
 0 Subscribed to this topic
 12 Subscribed to this forum
Sort:
Author
Messages
Eddie Smith
Advanced Member
Posts: 39
Advanced Member
    Would like to be able to create a message alert to the AP clerk whenever a vendor is selected or entered into AP20.1 in which the vendor user field 1 value on AP10.1 is equal to "Y".  In help would be appreciated. Thanks. 
    David Williams
    Veteran Member
    Posts: 1127
    Veteran Member
      Eddie - this is simply an OnBlur for the text field for Vendor number. When the OnBlur occurs you would run a DME in order to look up the User Field on the APVENMAST table and if the value equals 1 you can do an alert to the user with the information you want to give to them.

      Do you know how to do a DME?
      David Williams
      Eddie Smith
      Advanced Member
      Posts: 39
      Advanced Member
        David-we are somewhat familar with DMEs, just enough to be dangerous. I have the following script, but obviously it's incomplete or entriely wrong. What am I missing?
        function TEXT_OnBlur(_f24)
        {
        var sVen = lawForm.getFormValue ("text7")
        //alert (sVen)

        s = "http://" + window.location.host + "/servlet/Router/Data/erp?"
        s += "PROD=LPRD901&FILE=APVENMAST&INDEX=VENSET1"
        s += "&KEY=" APVENMAST.VENDOR-GROUP + sVen
        s += "&FIELD=APVENMAST.VEN-USER-NAME-01"
        s += "&OUT=CSV&DELIM=~&NOHEADER

        var objhttp = new ActiveXObject("Msxml2.XMLHTTP")
        objhttp.Open("GET", s, false)
        objhttp.Send("UserInfo")
        sReturn = objhttp.responseTEXT
        alert (sReturn)
        }
        David Williams
        Veteran Member
        Posts: 1127
        Veteran Member
          Here's a DME call to get vendor class
          **/
          var vProd = portalWnd.oUserProfile.getAttribute("productline");
          var vDmeString ="?PROD=" + vProd + "&FILE=APVENMAST&FIELD=VEN-CLASS;&INDEX=VENSET1&KEY=1=" + lawForm.getFormValue("text2") + "&XCOLS=TRUE&XKEYS=TRUE&XRELS=TRUE&XCOUNT=TRUE&XIDA=TRUE&OUT=XML"
          var vDMEInfo = portalWnd.httpRequest(portalWnd.DMEPath + vDmeString)
          var vObjDMEXML = new top.DataStorage(vDMEInfo);
          var vRecords = vObjDMEXML.document.getElementsByTagName("RECORD");
          var numRec=vRecords.length;
          var vCols = vRecords[0].getElementsByTagName("COL");
          var vClass = vCols[0].firstChild.data;
          **/
          David Williams
          David Williams
          Veteran Member
          Posts: 1127
          Veteran Member
            I don't think you can set your onblur function to run by specific object (field). I think you will have to get the id of the textbox and perform the rest of the function based upon whether or not you're in the field you want to be.

            function TEXT_OnBlur(id, row)
            {
            if (id != "text7") return true
            -- key the rest of your function
            }
            David Williams
            Eddie Smith
            Advanced Member
            Posts: 39
            Advanced Member
              Thanks David. I've never used the OnBlur function before and was getting some strange results with my code. Yours alleviated the strange results but how do I display the vendor class?
              David Williams
              Veteran Member
              Posts: 1127
              Veteran Member
                Well, you don't want to display the vendor class - that was just a sample - but you would alert the variable used to capture the data you want.

                alert ("The vendor class value is " + vClass)
                David Williams
                Eddie Smith
                Advanced Member
                Posts: 39
                Advanced Member
                  Understand the Vendor class was just an example and I added an alert like yours but nothing was displayed on the form. I must be missing something?
                  David Williams
                  Veteran Member
                  Posts: 1127
                  Veteran Member
                    What value do you get when you alert numRec?
                    David Williams
                    Eddie Smith
                    Advanced Member
                    Posts: 39
                    Advanced Member
                      No message. I added our vendor group "ULNA" to the dme, could that have something to do with it? Below is the JAVA script I'm using.

                      function TEXT_OnBlur(id, row)
                      {
                      if (id !="text7")
                      return true
                      var vProd = portalWnd.oUserProfile.getAttribute("productline");
                      var vDmeString ="?PROD=" + vProd + "&FILE=APVENMAST&FIELD=VEN-CLASS;&INDEX=VENSET1&KEY=1=" + ULNA + lawForm.getFormValue("text7") + "&XCOLS=TRUE&XKEYS=TRUE&XRELS=TRUE&XCOUNT=TRUE&XIDA=TRUE&OUT=XML"
                      var vDMEInfo = portalWnd.httpRequest(portalWnd.DMEPath + vDmeString)
                      var vObjDMEXML = new top.DataStorage(vDMEInfo);
                      var vRecords = vObjDMEXML.document.getElementsByTagName("RECORD");
                      var numRec=vRecords.length;
                      var vCols = vRecords[0].getElementsByTagName("COL");
                      var vClass = vCols[0].firstChild.data;
                      alert(numRec)
                      }
                      David Williams
                      Veteran Member
                      Posts: 1127
                      Veteran Member
                        Check all of the index key values - like company. My sample hard coded 1 so if yours is different...
                        David Williams
                        Eddie Smith
                        Advanced Member
                        Posts: 39
                        Advanced Member
                          David, dummy me... of course it's so obvious now that you pointed it out. Working perfectly now. Thanks for your help.