{"id":3495,"date":"2019-03-25T17:44:34","date_gmt":"2019-03-25T20:44:34","guid":{"rendered":"http:\/\/xexeu.elipse.com.br\/pt\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/"},"modified":"2024-03-28T15:00:52","modified_gmt":"2024-03-28T18:00:52","slug":"conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/","title":{"rendered":"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript."},"content":{"rendered":"<div align=\"justify\">\n<p><u><b>NOTAS GERAIS:<\/b><\/u><\/p>\n<ol>\n<li>Este artigo se aplica ao <b>Elipse E3<\/b>, vers\u00f5es <b>4.5<\/b> ou superior.<\/li>\n<li>Para maiores detalhes sobre a biblioteca E3DataAccess, recomendamos a leitura dos seguintes artigos: <b><a href=\"http:\/\/kb.elipse.com.br\/pt-br\/questions\/59\/Conectando+uma+aplica%C3%A7%C3%A3o+VBA+a+um+E3Server+com+a+biblioteca+de+comunica%C3%A7%C3%A3o+E3DataAccess.\" target=\"_blank\" rel=\"noopener noreferrer\">Conectando uma aplica\u00e7\u00e3o VBA a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess<\/a><\/b> e <a href=\"http:\/\/kb.elipse.com.br\/pt-br\/questions\/5164\/BUG-0013588%3A+Tipos+incompat%C3%ADveis+ao+chamar+m%C3%A9todos+GetValue%7B47%7DSetValue+do+componente+E3DataAccess.\" target=\"_blank\" rel=\"noopener noreferrer\"><b>BUG-0013588: Tipos incompat\u00edveis ao chamar m\u00e9todos GetValue\/SetValue do componente E3DataAccess<\/b><\/a>.<\/li>\n<\/ol>\n<p><strong><u>Introdu\u00e7\u00e3<\/u><\/strong><strong><u>o<\/u><\/strong><\/p>\n<p>Neste artigo, s\u00e3o utilizadas as linguagens JavaScript e VBScript para demonstrar o uso da biblioteca <b>E3DataAccess<\/b>. No exemplo, os scripts foram usados em uma p\u00e1gina HTML, e como cliente foi utilizado o browser Internet Explorer vers\u00e3o 11.<\/p>\n<p>Linguagens como o JavaScript n\u00e3o oferecem suporte a passagem de par\u00e2metros por refer\u00eancia, por isso o JavaScript foi utilizado em conjunto com VBScript para utiliza\u00e7\u00e3o de alguns dos m\u00e9todos da biblioteca E3DataAccess.<\/p>\n<p>A partir da vers\u00e3o 11 do Internet Explorer, o VBScript tem suporte limitado. Para maiores informa\u00e7\u00f5es, acesse a <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ie\/dn384057%28v=vs.85%29.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">documenta\u00e7\u00e3o da Microsoft<\/a>. Para permitir uso do VBScript, o seguinte trecho foi adicionado \u00e0 p\u00e1gina.<br \/>\n<span style=\"font-family: Courier New;\"><br \/>\n< meta http-equiv=\"x-ua-compatible\" content=\"IE=10\"\/ ><br \/>\n<\/span><\/p>\n<p>Como o JavaScript n\u00e3o suporta a passagem de par\u00e2metros por refer\u00eancia, a classe <i>E3Item <\/i>foi criada em VBScript para a utiliza\u00e7\u00e3o dos m\u00e9todos <i>ReadValue <\/i>e <i>WriteValue<\/i>. Esta classe cont\u00e9m duas fun\u00e7\u00f5es: <i>Read(ItemName)<\/i>, que recebe como par\u00e2metro o nome do tag do servidor e ent\u00e3o utiliza a fun\u00e7\u00e3o <i>ReadValue <\/i>para realizar a leitura desse tag; e <i>Write(ItemName, vTimestamp, vQuality, vValue)<\/i>, que recebe como par\u00e2metros o nome do tag do servidor onde ser\u00e3o salvos os demais par\u00e2metros <i>Timestamp<\/i>, <i>Qualidade <\/i>e <i>Valor<\/i>, e escreve esses dados no servidor atrav\u00e9s\u00a0 da fun\u00e7\u00e3o <i>WriteValue<\/i>.<\/p>\n<div align=\"left\">\n<pre><span style=\"font-family: Courier New;\">Class E3Item<\/span>\r\n\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 Public Value <\/span>\r\n\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 Public Timestamp<\/span>\r\n\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 Public Quality<\/span>\r\n\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 Public Function Read(ItemName)<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Read = E3DataAccess.ReadValue(ItemName, Timestamp, Quality, Value) <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 End Function<\/span>\r\n\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 Public Function Write(ItemName, vTimestamp, vQuality, vValue)<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Write = E3DataAccess.WriteValue(ItemName, vTimestamp, vQuality, vValue) <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 If Write Then<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Timestamp = vTimestamp<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Quality = vQuality <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Value = vValue <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 End If <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 End Function <\/span>\r\n<span style=\"font-family: Courier New;\">End Class<\/span><\/pre>\n<\/div>\n<p><u><b>M\u00e9todos da Biblioteca E3DataAccess<\/b><\/u><\/p>\n<p><b>1. M\u00e9todo <i>ReadValue<\/i><\/b><\/p>\n<p>Para realizar a leitura, foi criada a fun\u00e7\u00e3o <i>Read()<\/i> em JavaScript:<\/p>\n<pre><span style=\"font-family: Courier New;\">function Read()<\/span>\r\n<span style=\"font-family: Courier New;\">{ <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 E3DataAccess.Server = document.E3Config.editServer.value;<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var msg; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 \/\/Cria instancia\r\nvar da = createNewE3Item(); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 if (da.Read(document.E3Config.editTag.value))<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 document.E3Config.editValue.value = da.Value; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 msg = document.E3Config.editTag.value + \": \" + da.Timestamp + \", \" + da.Quality + \", \" + da.Value;<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 } <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 else<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 msg = \"Error in reading value from server: \" + E3DataAccess.Server + \" for item: \" + document.E3Config.editTag.value; } WriteText(msg); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 }<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 WriteText(msg); <\/span>\r\n<span style=\"font-family: Courier New;\">}<\/span><\/pre>\n<p>Esta fun\u00e7\u00e3o cria uma inst\u00e2ncia da classe <i>E3Item<\/i>, envia para a fun\u00e7\u00e3o <i>Read <\/i>da classe o nome do tag configurado pelo usu\u00e1rio no HTML, e ent\u00e3o conecta-se ao E3Server, realizando a leitura dos par\u00e2metros <i>Value<\/i>, <i>TimeStamp <\/i>e <i>Quality <\/i>atrav\u00e9s do m\u00e9todo <i>ReadValue <\/i>da biblioteca E3DataAccess. Feito isso, os valores est\u00e3o prontos para serem utilizados no JavaScript e s\u00e3o disponibilizados para o usu\u00e1rio.<\/p>\n<p><b>2. M\u00e9todo <i>WriteValue<\/i><\/b><\/p>\n<p>Semelhantemente ao procedimento de leitura, a escrita utiliza a fun\u00e7\u00e3o <i>Write<\/i>, criada em JavaScript:<\/p>\n<pre><span style=\"font-family: Courier New;\">function Write() <\/span>\r\n<span style=\"font-family: Courier New;\">{ <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 E3DataAccess.Server = document.E3Config.editServer.value;<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var msg; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 \/\/Cria instancia<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var da = createNewE3Item();<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 \/\/Formata data para salvar<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var date = new Date(); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var month = date.getMonth()+ 1; var dateString = month + \"\/\" + date.getDate() + \"\/\" <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 + date.getFullYear() + \" \" + date.getHours() + \":\" + date.getMinutes() + \":\" + date.getSeconds(); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 if (da.Write(document.E3Config.editTag.value, dateString, 192,document.E3Config.editValue.value))<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 {<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 msg = \"Writing to server: '\" + E3DataAccess.Server + \"' for item: '\" + document.E3Config.editTag.value + \"' succeeded\"; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 }<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 else<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 msg = \"Error in writing value to server: '\" + E3DataAccess.Server + \"' for item: '\" + document.E3Config.editTag.value + \"' = \" <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 + document.E3Config.editValue.value; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 }<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 WriteText(msg); <\/span>\r\n<span style=\"font-family: Courier New;\">}<\/span><\/pre>\n<p>Esta fun\u00e7\u00e3o tamb\u00e9m cria uma inst\u00e2ncia da classe <i>E3Item<\/i>, passa os par\u00e2metros informados pelo usu\u00e1rio para a fun\u00e7\u00e3o <i>Write <\/i>da classe, e utiliza o m\u00e9todo <i>WriteValue <\/i>da biblioteca E3DataAccess para realizar escrita no tag, passando assim os par\u00e2metros para o E3Server.<\/p>\n<p><b>3. M\u00e9todo <i>ExecuteQuery<\/i><br \/>\n<\/b><br \/>\nTamb\u00e9m \u00e9 poss\u00edvel realizar consultas utilizando o m\u00e9todo <i>ExecuteQuery <\/i>da biblioteca E3DataAccess. Para isso, foi criada a fun\u00e7\u00e3o <i>GetQueryValues()<\/i> em JavaScript:<\/p>\n<pre><span style=\"font-family: Courier New;\">function GetQueryValues() <\/span>\r\n<span style=\"font-family: Courier New;\">{ <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 E3DataAccess.Server = document.E3Config.editServer.value; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 var da = createNewE3Query(); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 if (document.E3Config.editQuery.value != \"\")<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 da.ProcessQuery(document.E3Config.editQuery.value, \"dvTableRended\"); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 document.getElementById(\"dvTableRended\").innerHTML = da.Content; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 } <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 else<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 {<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 document.getElementById(\"dvTableRended\").innerHTML = Date() + \" - Error empty query.\"; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 }<\/span>\r\n<span style=\"font-family: Courier New;\">}<\/span><\/pre>\n<p>Esta fun\u00e7\u00e3o cria uma inst\u00e2ncia da classe E3Query, criada em VBScript conforme exemplo acima, utilizando a fun\u00e7\u00e3o <i>ProcessQuery<\/i>. Atrav\u00e9s desta outra fun\u00e7\u00e3o, ela ir\u00e1 utilizar o m\u00e9todo <i>ExecuteQuery <\/i>da biblioteca para realizar a consulta no E3Server.<\/p>\n<pre><span style=\"font-family: Courier New;\"><span style=\"font-family: Courier New;\">Class E3Query\r\nPublic Content<\/span><\/span>Public Function ProcessQuery(queryName, tablePlacement)\r\nIf queryName <> \"\" Then\r\nDim vNames, vValues, arrResult\r\nIf E3DataAccess.ExecuteQuery(queryName, vNames, vValues, arrResult) Then\r\nCall RenderTable(arrResult, tablePlacement)\r\nElse\r\nDocument.getElementById(tablePlacement).innerHTML = Now & \" - Error in the query result.\"\r\nEnd If\r\nElse\r\nDocument.getElementById(tablePlacement).innerHTML = Now & \" - Error empty query.\"\r\nEnd If\r\nEnd Function<\/pre>\n<p><b><br \/>\n4. M\u00e9todos <i>RegisterCallBack <\/i>e <i>UnregisterCallBack<\/i><\/b><\/p>\n<p>Para a utiliza\u00e7\u00e3o destes m\u00e9todos, foi criada a fun\u00e7\u00e3o <i>RegisterCallback()<\/i> em JavaScript. Ao contr\u00e1rio das fun\u00e7\u00f5es anteriormente criadas, esta fun\u00e7\u00e3o n\u00e3o precisa fazer nenhuma chamada a m\u00e9todos desenvolvidos em VBScript, utilizando diretamente o m\u00e9todo <i>RegisterCallBack <\/i>da biblioteca E3DataAccess via JavaScript.<\/p>\n<pre>\u00a0<span style=\"font-family: Courier New;\">function RegisterCallback() <\/span>\r\n<span style=\"font-family: Courier New;\">{ <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 E3DataAccess.Server = document.E3Config.editServer.value;<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 if (document.E3Config.editTag.value != \"\") <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var result; <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 result = E3DataAccess.RegisterCallback(document.E3Config.editTag.value); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WriteText(\"Register tag: \" + document.E3Config.editTag.value + \" result: \" + result); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0 } <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0 else<\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0 { <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 window.alert(\"Error! There is no tag item for register. Type one before proceed.\"); <\/span>\r\n<span style=\"font-family: Courier New;\">\u00a0\u00a0\u00a0\u00a0 }<\/span><\/pre>\n<p>Assim como o m\u00e9todo <i>RegisterCallback<\/i>, tamb\u00e9m foi criada a fun\u00e7\u00e3o <i>UnregisterCallback<\/i>, em JavaScript, conforme visto abaixo.<\/p>\n<pre><span style=\"font-family: Courier New;\">\u00a0function UnregisterCallback()\r\n{\r\nif (document.E3Config.editTag.value != \"\")\u00a0\u00a0\u00a0 if (document.E3Config.editTag.value != \"\")\r\n{\r\nvar result;\r\nresult = E3DataAccess.UnregisterCallback(document.E3Config.editTag.value);\r\nWriteText(\"Unregister tag: \" + document.E3Config.editTag.value + \" result: \" + result);\r\n}\r\nelse\r\n{\r\nwindow.alert(\"Error! There is no tag item for unregister. Type one before proceed.\");\r\n}\r\n}\r\n<\/span><\/pre>\n<p><u><b>Testando a Aplica\u00e7\u00e3o<\/b><\/u><\/p>\n<p>Para testar a aplica\u00e7\u00e3o, primeiramente deve-se executar o dom\u00ednio com a aplica\u00e7\u00e3o E3, abrir a p\u00e1gina HTML no Internet Explorer (como Administrador), e permitir acesso do ActiveX.<\/p>\n<p>Feito isso, na p\u00e1gina HTML aberta, basta informar o caminho do tag do E3Server que deseja ler\/escrever.<\/p>\n<div align=\"center\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5190\/readTest.png\" alt=\"\" width=\"500\" height=\"330\" align=\"baseline\" border=\"0\" \/><br \/>\n<span style=\"font-size: xx-small;\"><b>Figura 1.<\/b> Leitura do tag do servidor <\/span><\/div>\n<p>Para realizar a consulta, basta inserir (em <b>Session Query<\/b>) o caminho desta no servidor.<\/p>\n<div align=\"center\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5190\/queryTest.png\" alt=\"\" width=\"500\" height=\"516\" align=\"baseline\" border=\"0\" \/><br \/>\n<span style=\"font-size: xx-small;\"><b>Figura 2<\/b>. Consulta do servidor.<\/span><\/div>\n<p>Finalmente, para utilizar os m\u00e9todos <i>RegisterCallBack <\/i>e <i>UnregisterCallBack<\/i>, basta inserir o caminho do tag no servidor e clicar em <b>Register <\/b>ou <b>Unregister<\/b>; assim, sempre que houver um evento com este tag, ele ser\u00e1 mostrado na tela.<\/p>\n<div align=\"center\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5190\/registerRest.png\" alt=\"\" width=\"500\" height=\"329\" align=\"baseline\" border=\"0\" \/><br \/>\n<span style=\"font-size: xx-small;\"><b>Figura 3.<\/b> RegisterCallBack no Tag2 do servidor. <\/span><\/div>\n<p>Para maiores detalhes da implementa\u00e7\u00e3o, a aplica\u00e7\u00e3o exemplo E3 e a p\u00e1gina HTML utilizada est\u00e3o em anexo a este artigo.<\/p>\n<\/div>\n<h3>Artigos Relacionados<\/h3>\n<hr \/>\n<div align=\"justify\">\n<ul>\n<li><a href=\"https:\/\/kb.elipse.com.br\/en-us\/questions\/59\/Conectando+uma+aplica%C3%A7%C3%A3o+VBA+a+um+E3Server+com+a+biblioteca+de+comunica%C3%A7%C3%A3o+E3DataAccess.\">Conectando uma aplica\u00e7\u00e3o VBA a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess.<\/a><\/li>\n<li><a href=\"https:\/\/kb.elipse.com.br\/en-us\/questions\/5164\/BUG-0013588%3A+Tipos+incompat%C3%ADveis+ao+chamar+m%C3%A9todos+GetValue%7B47%7DSetValue+do+componente+E3DataAccess.\">BUG-0013588: Tipos incompat\u00edveis ao chamar m\u00e9todos GetValue\/SetValue do componente E3DataAccess.<\/a><\/li>\n<\/ul>\n<h3>Anexos:<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2019\/03\/AppE3_HTML.zip\">AppE3_HTML.zip<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>NOTAS GERAIS: Este artigo se aplica ao Elipse E3, vers\u00f5es 4.5 ou superior. Para maiores detalhes sobre a biblioteca E3DataAccess, recomendamos a leitura dos seguintes artigos: Conectando uma aplica\u00e7\u00e3o VBA&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[688],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript. - Elipse Knowledgebase<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.\" \/>\n<meta property=\"og:description\" content=\"NOTAS GERAIS: Este artigo se aplica ao Elipse E3, vers\u00f5es 4.5 ou superior. Para maiores detalhes sobre a biblioteca E3DataAccess, recomendamos a leitura dos seguintes artigos: Conectando uma aplica\u00e7\u00e3o VBA&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-25T20:44:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-28T18:00:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5190\/readTest.png\" \/>\n<meta name=\"author\" content=\"Elipse Software\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elipse Software\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\"},\"author\":{\"name\":\"Elipse Software\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\"},\"headline\":\"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.\",\"datePublished\":\"2019-03-25T20:44:34+00:00\",\"dateModified\":\"2024-03-28T18:00:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\"},\"wordCount\":807,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"E3DataAccess\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\",\"url\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\",\"name\":\"[:pt]Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.[:] - Elipse Knowledgebase\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2019-03-25T20:44:34+00:00\",\"dateModified\":\"2024-03-28T18:00:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\",\"name\":\"Elipse Software\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"caption\":\"Elipse Software\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript. - Elipse Knowledgebase","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/","og_locale":"en_US","og_type":"article","og_title":"[:pt]Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.[:] - Elipse Knowledgebase","og_description":"NOTAS GERAIS: Este artigo se aplica ao Elipse E3, vers\u00f5es 4.5 ou superior. Para maiores detalhes sobre a biblioteca E3DataAccess, recomendamos a leitura dos seguintes artigos: Conectando uma aplica\u00e7\u00e3o VBA&hellip;","og_url":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2019-03-25T20:44:34+00:00","article_modified_time":"2024-03-28T18:00:52+00:00","og_image":[{"url":"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5190\/readTest.png"}],"author":"Elipse Software","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elipse Software","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/"},"author":{"name":"Elipse Software","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87"},"headline":"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.","datePublished":"2019-03-25T20:44:34+00:00","dateModified":"2024-03-28T18:00:52+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/"},"wordCount":807,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["E3DataAccess"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/","url":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/","name":"[:pt]Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript.[:] - Elipse Knowledgebase","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2019-03-25T20:44:34+00:00","dateModified":"2024-03-28T18:00:52+00:00","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/conectando-uma-pagina-html-a-um-e3server-com-a-biblioteca-de-comunicacao-e3dataaccess-utilizando-javascript-e-vbscript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Conectando uma p\u00e1gina HTML a um E3Server com a biblioteca de comunica\u00e7\u00e3o E3DataAccess utilizando JavaScript e VBScript."}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87","name":"Elipse Software","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","caption":"Elipse Software"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3495"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=3495"}],"version-history":[{"count":9,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3495\/revisions"}],"predecessor-version":[{"id":16167,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3495\/revisions\/16167"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=3495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=3495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=3495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}