Integração TOTVS Microsiga Protheus e Fluig ECM
|
|
- Rodrigo Philippi Amaro
- 8 Há anos
- Visualizações:
Transcrição
1 08/2013
2 Sumário Sumário Objetivo Integração manual Formulário ECM Protheus MVC Rotina Automática (Modelo 1) Processo Validação do formulário Script do evento no ECM Protheus WebService MVC Atualização do Protheus MVC Rotina Automática (Modelo 1)
3 1 Objetivo Integrar rotinas do MVC e automáticas da linha Microsiga Protheus com o Fluig ECM para criação processos permitindo ao cliente trabalhar com a rotina como uma solicitação com atribuição de responsáveis por atividade (baseada no dicionário de pastas), utilizando o workflow do Fluig ECM para controle de prazo de conslusão, acompanhamento notificação de responsável e requisitante, sendo as informações enviadas no final do processo para a linha de produtos Microsiga Protheus para persistência. 2 Integração manual 2.1 Formulário ECM 1. Criar um arquivo HTML com os campos com o mesmo nome utilizado no Protheus como o exemplo abaixo: <HTML> <HEAD> <TITLE>Exemplo - Cliente</TITLE> <LINK REL=STYLESHEET HREF="/webdesk203/wdk/global.css"> </HEAD> <BODY scroll=yes> <span class="numsecao"> <strong> Cadastro</strong></span> <HR> <br> <form> <table> <tr> <td align="right" width="150" class="labels"><b>código:</b></td> <td class="normal"><strong><input type="text" size="6" name="a1_cod"></strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>loja:</b></td> <td class="normal"><strong><input type="text" size="2" name="a1_loja"></strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>física/jurídica:</b></td> <td class="normal"><strong> <select name="a1_pessoa"> <option value="f">física</option> <option value="j">jurídica</option> </select> </strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>nome:</b></td> <td class="normal"><strong><input type="text" size="40" name="a1_nome"></strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>nome Fantasia:</b></td> <td class="normal"><strong><input type="text" size="20" name="a1_nreduz"></strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>endereço:</b></td> <td class="normal"><strong><input type="text" size="40" name="a1_end"></strong></td> </tr> 3
4 <tr> <td align="right" width="150" class="labels"><b>tipo:</b></td> <td class="normal"><strong> <select name="a1_tipo"> <option value="f">cons. Final</option> <option value="l">produtor Rural</option> <option value="r">revendedor</option> <option value="s">solidario</option> <option value="x">exportacao</option> </select> </strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>município:</b></td> <td class="normal"><strong><input type="text" size="60" name="a1_mun"></strong></td> </tr> <tr> <td align="right" width="150" class="labels"><b>estado:</b></td> <td class="normal"><strong><input type="text" size="2" name="a1_est"></strong></td> </tr> </table> </form> </BODY> </HTML> 2. Adicionar o arquivo.html como um Novo Fichário nos Documentos do ECM e verificar o Código que foi gerado que será utilizado para criar o Processo utilizará esse fichário Protheus 1. Configurar a integração para GED entre o Protheus e o ECM no Configurador na opção Ambiente > Totvs ECM > Wizard do GED 2. Utilizar a função FWECMPutCard para enviar o formulário para o ECM conforme o exemplo abaixo (o fichário sera criado na pasta ERP_MP \ <empresas> \ MP_CARDS no ECM): #include "totvs.ch" User Function FormCliente() Local cprocessid := "CLIENTE" // se informado atualiza o formulário relacionado ao processo senão cria um novo Local cdescription := "Formulário do cadastro de cliente" Local ccarddescription := "" Local ahtml := Array(1,2) // arquivos do formulario Local aevents := Array(1,2) // eventos que serão customizados para o formulario Local nformid Local aerror ahtml[1][1] := "cliente.html" // nome do arquivo ahtml[1][2] := '<HTML>'+; // conteúdo do arquivo '<HEAD>'+; ' <TITLE>Exemplo - Cliente</TITLE>'+; ' <LINK REL=STYLESHEET HREF="/webdesk203/wdk/global.css">'+; '</HEAD>'+; '<BODY scroll=yes>'+; '<span class="numsecao">'+; '<strong> Cadastro</strong></span>'+; '<HR>'+; '<br>'+; '<form>'+; '<table>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>código:</b></td>'+; ' <td class="normal"><strong><input type="text" size="6" name="a1_cod"></strong></td>'+; ' </tr>'+; ' <tr> '+; 4
5 ' <td align="right" width="150" class="labels"><b>loja:</b></td>'+; ' <td class="normal"><strong><input type="text" size="2" name="a1_loja"></strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>física/jurídica:</b></td>'+; ' <td class="normal"><strong>'+; ' <select name="a1_pessoa">'+; ' <option value="f">física</option>'+; ' <option value="j">jurídica</option>'+; ' </select>'+; ' </strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>nome:</b></td>'+; ' <td class="normal"><strong><input type="text" size="40" name="a1_nome"></strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>nome Fantasia:</b></td>'+; ' <td class="normal"><strong><input type="text" size="20" name="a1_nreduz"></strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>endereço:</b></td>'+; ' <td class="normal"><strong><input type="text" size="40" name="a1_end"></strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>tipo:</b></td>'+; ' <td class="normal"><strong>'+; ' <select name="a1_tipo">'+; ' <option value="f">cons. Final</option>'+; ' <option value="l">produtor Rural</option>'+; ' <option value="r">revendedor</option>'+; ' <option value="s">solidario</option>'+; ' <option value="x">exportacao</option>'+; ' </select>'+; ' </strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>município:</b></td>'+; ' <td class="normal"><strong><input type="text" size="60" name="a1_mun"></strong></td>'+; ' </tr>'+; ' <tr> '+; ' <td align="right" width="150" class="labels"><b>estado:</b></td>'+; ' <td class="normal"><strong><input type="text" size="2" name="a1_est"></strong></td>'+; ' </tr>'+; ' </table>'+; '</form>'+; '</BODY>'+; '</HTML>' aevents[1][1] := "setenable" // nome do evento aevents[1][2] := 'function setenable() {'+; // script na linguagem JavaScript 'log.info("teste de chamada de função");'+; '' nformid := FWECMPutCard(cProcessId,cDescription,cCardDescription,aHTML,aEvents) // retorna o codigo do fichário no ECM If FWWFIsError() aerror := FWWFGetError() MsgStop(aError[2]) Else MsgInfo("Fichário atualizado com sucesso") Return MVC 1. Configurar a integração para GED entre o Protheus e o ECM no Configurador na opção Ambiente > Totvs ECM > Wizard do GED 5
6 2. Utilizar o método GetXMLLayout do View para gerar o HTML. Somente os componentes Fields e Grid serão convertidos para HTML #include "totvs.ch" User Function FormView() Local oview := FWLoadView("MATA030_MVC") Local cprocessid := "CLIENTE" // se informado atualiza o formulário relacionado ao processo senão cria um novo Local cdescription := "Formulário do cadastro de cliente" Local ccarddescription := "" Local aevents := Array(1,2) // eventos que serão customizados para o formulario Local nformid Local aerror Local afiles Local lhtm :=.T. Local lembedded :=.F. Local ldoctype :=.T. oview:setoperation(3) afiles := oview:getxmllayout(lhtm,lembedded,ldoctype) aevents[1][1] := "setenable" // nome do evento aevents[1][2] := 'function setenable() {'+; // script na linguagem JavaScript 'log.info("teste de chamada de função");'+; '' nformid := FWECMPutCard(cProcessId,cDescription,cCardDescription,aFiles,aEvents) // retorna o codigo do fichário no ECM If FWWFIsError() aerror := FWWFGetError() MsgStop(aError[2]) Else MsgInfo("Fichário atualizado com sucesso") Return Rotina Automática (Modelo 1) Para rotinas automáticas do tipo Modelo 1 (CRUD) que usam somente campos do Dicionário de Dados pode-se utilizar o exemplo abaixo para criar o formulário: #include "totvs.ch" User Function FormTable() Local ctable := "SA1" Local cprocessid := "MATA030" Local cdescription := "Cliente (rotina automatica)" Local oview Local aevents := Array(1,2) // eventos que serão customizados para o formulario Local nformid Local aerror Local afiles Local lhtm :=.T. Local lembedded :=.F. Local ldoctype :=.T. FwAliasMVC(cTable,cProcessId,cDescription) oview := FwLoadView("PROTHEUSMVC") oview:setoperation(3) afiles := oview:getxmllayout(lhtm,lembedded,ldoctype) aevents[1][1] := "setenable" // nome do evento aevents[1][2] := 'function setenable() {'+; // script na linguagem JavaScript 'log.info("teste de chamada de função");'+; 6
7 '' nformid := FWECMPutCard(cProcessId,cDescription,cCardDescription,aFiles,aEvents) // retorna o codigo do fichário no ECM If FWWFIsError() aerror := FWWFGetError() MsgStop(aError[2]) Else MsgInfo("Fichário atualizado com sucesso") Return 2.2 Processo WF 1. Configurar a integração para workflow entre o Protheus e o ECM no Configurador na opção Ambiente > Totvs ECM > Wizard do 2. Utilizar a função FWECMProcess para criar e/ou atualizar o processo no ECM conforme o exemplo abaixo: #include "totvs.ch" User Function ProcCliente() Local cprocessid := "CLIENTE" Local cdescription := "Cadastro de cliente" Local cinstruction := "Instruções de uso do processo" Local nformid := 22 // id do fichário adicionado no ECM no passo anterior Local astates := Array(4,6) // atividades do processo em sequencia para criação automática dos fluxos Local aevents := Array(1,2) // eventos que serão customizados para o processo Local aproperties := Array(1,2) // propriedades que serão utilizadas nos scripts dos eventos do processo Local aerror astates[1][1] := "Início" // atividade astates[1][2] := "" // descrição astates[1][3] := "" // instruções astates[1][4] := 60 //prazo de conclusão em segundos astates[1][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário) astates[1][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero astates[2][1] := "Revisão" // atividade astates[2][2] := "Revisão do cadastro do cliente" // descrição astates[2][3] := "Revise as informações do cadastro" // instruções astates[2][4] := 60 //prazo de conclusão em segundos astates[2][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário) astates[2][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero astates[3][1] := "Fim" // atividade astates[3][2] := "Confirmar cadastro" // descrição astates[3][3] := "" // instruções astates[3][4] := 60 //prazo de conclusão em segundos astates[3][5] := 0 // mecanismo de atribuição (zero para nenhum, 1 para grupo ou 2 para usuário) astates[3][6] := "" // código do grupo ou usuário no ECM caso o mecanismo de atribuição seja diferente de zero aevents[1][1] := "beforetasksave" // script na linguagem JavaScript aevents[1][2] := 'function beforetasksave(colleagueid,nextsequenceid,userlist){'+; 'var A1_COD = hapi.getcardvalue("a1_cod");'+; 'if (A1_COD == ""){'+; ' throw "O campo Código é obrigatório"'+; ''+; '' aproperties[1][1] := "TABLE" // nome da propriedade aproperties[1][2] := "SA1" // valor 7
8 FWECMProcess(cProcessId, cdescription, cinstruction, nformid, astates, aevents, aproperties) If FWWFIsError() aerror := FWWFGetError() MsgStop(aError[2]) Else MsgInfo("Processo atualizado com sucesso") Return 2.3 Validação do formulário A validação do formulário dos processos no ECM é realizada através da customização dos eventos dos fichários e processos utilizando scripts na linguagem JavaScript. Os eventos podem ser implementados no próprio ECM ou enviados pelo Protheus como parâmetro das funções utilizadas nos exemplos anteriores. Para validar os campos informados pelo usuário utilizar o evento beforetasksave do processo que é executado em cada confirmação de tarefa para enviar para a próxima etapa do workflow. Para acessar o valor de um campo do formulário utilizar a API do workflow hapi. getcardvalue(<nomecampo>) e para o tratamento de exeções utilizar o comando throw <mensagem> que apresentará a mensagem para o usuário impendindo que prossiga enquanto não corrigir as informações digitadas Script do evento no ECM Validações simples podem ser realizadas no script do evento para evitar a comunicação desnecessário ao Protheus retornando imediatamente uma mensagem ao usuário. function beforetasksave(colleagueid,nextsequenceid,userlist){ var A1_COD = hapi.getcardvalue("a1_cod"); if (A1_COD == ""){ throw "O campo Código é obrigatório" Protheus A validação nos scripts dos eventos utilizando aplicações externas é realizada atraves de WebServices que devem ser cadastradas como serviço no ECM na opção Painel de Controle > Serviços > Adicionar. Quando qualquer definição do WebService for alterada ou incluída será necessário atualizar o ECM na opção Painel de Controle > Serviços > Editar > Atualizar. O WebService pode ser cadastrado através do Painel de Controle do ECM ou pelo Protheus utilizando a função FWWFPutService como no exemplo abaixo. #include "totvs.ch" User Function WSCliente() Local cname := "WSCLIENTE" Local curl := " Local cdescription := "Serviço para validação e atualização do cadastro de cliente" If FWWFPutService(cName,cUrl,cDescription) MsgInfo("Serviço cadastrado com sucesso") Return 8
9 2.3.3 WebService Exemplo de WebService do Protheus: #include "totvs.ch" #include "apwebsrv.ch" WSSERVICE WSCLIENTE DESCRIPTION "Exemplo cadastro de cliente" WSDATA A1_COD AS STRING WSDATA A1_LOJA AS STRING WSDATA XML AS Base64Binary WSDATA RETEXISTCOD AS BOOLEAN WSDATA RETINCLUIR AS BOOLEAN WSMETHOD ExistCod DESCRIPTION "Verifica se codigo do cliente ja existe" WSMETHOD Incluir DESCRIPTION "Inclui cliente" ENDWSSERVICE WSMETHOD ExistCod WSRECEIVE A1_COD,A1_LOJA WSSEND RETEXISTCOD WSSERVICE WSCLIENTE Private INCLUI :=.T. ::RETEXISTCOD := existchav("sa1",::a1_cod+::a1_loja) Return.T. WSMETHOD Incluir WSRECEIVE XML WSSEND RETINCLUIR WSSERVICE WSCLIENTE Local oxml := txmlmanager():new() Local lret :=.T. Local adadoscli := { If oxml:parse(::xml) aadd( adadoscli, { "A1_COD", oxml:xpathgetnodevalue("/sa1/a1_cod"), NIL ) aadd( adadoscli, { "A1_LOJA", oxml:xpathgetnodevalue("/sa1/a1_loja"), NIL ) aadd( adadoscli, { "A1_TIPO", oxml:xpathgetnodevalue("/sa1/a1_tipo"), NIL ) aadd( adadoscli, { "A1_PESSOA", oxml:xpathgetnodevalue("/sa1/a1_pessoa"), NIL ) aadd( adadoscli, { "A1_NOME", oxml:xpathgetnodevalue("/sa1/a1_nome"), NIL ) aadd( adadoscli, { "A1_NREDUZ", oxml:xpathgetnodevalue("/sa1/a1_nreduz"), NIL ) aadd( adadoscli, { "A1_END", oxml:xpathgetnodevalue("/sa1/a1_end"), NIL ) aadd( adadoscli, { "A1_MUN", oxml:xpathgetnodevalue("/sa1/a1_mun"), NIL ) aadd( adadoscli, { "A1_EST", oxml:xpathgetnodevalue("/sa1/a1_est"), NIL ) lmserroauto :=.F. MSExecAuto( { x, y MATA030( x, y ), adadoscli, 3 ) If lmserroauto If lsx8 RollBackSX8() ::RETINCLUIR :=.F. Else If lsx8 ConFirmSX8() ::RETINCLUIR :=.T. Else SetSoapFault("WSCLIENTE:INCLUIR",oXML:LastError()) lret :=.F. Return lret 9
10 Validação no script do evento beforetasksave: 1. Invocar a carga do serviço com o método ServiceManager.getService 2. Utilizar o método getbean para retornar o utilitário para acesso as classes do serviço através do método instantiate enviando como parâmetro a classe Locator que esta descrita no ECM em Painel de Controle > Serviços, selecionar o serviço e clicar em Visualizar 3. Invocar o método para instanciar o serviço (no exemplo getwsclientesoap) que também esta descrito na opção Painel de Controle > Serviços > Visualizar 4. Invocar o método do serviço (no exemplo ExistCod) function beforetasksave(colleagueid,nextsequenceid,userlist){ var A1_COD = hapi.getcardvalue("a1_cod"); if (A1_COD == ""){ throw "O campo Código é obrigatório" var wsservice = ServiceManager.getService("WSCLIENTE"); var servicehelper = wsservice.getbean(); var servicelocator = servicehelper.instantiate("localhost.wsclientelocator"); var service = servicelocator.getwsclientesoap(); var ret = false; try { ret = service.existcod(a1_cod); catch(erro){ throw erro.message if (!ret) { throw "Cliente já existe"; MVC A validação do processo de uma rotina MVC é realizada utilizando o WebService FWWSMODEL ( com a invocação do método GETXMLDATADETAIL que retorna o XML do model para popular os dados e do método VLDXMLDATA que validará o XML. #include "totvs.ch" User Function WSMVC() Local cname := "TOTVS_FWMVC" Local curl := " " Local cdescription := "Serviço do TOTVS MVC para integração de rotinas/programas com ECM" Local aservice := FWWFGetService(cName) If Empty(aService).and. FWWFPutService(cName,cUrl,cDescription) MsgInfo("Serviço cadastrado com sucesso") Return Validação no script do evento beforetasksave: function beforetasksave(colleagueid,nextsequenceid,userlist){ var wsservice = ServiceManager.getService("TOTVS_FWMVC"); var servicehelper = wsservice.getbean(); 10
11 var servicelocator = servicehelper.instantiate("br.com.totvs.webservices.fwwsmodel_apw.fwwsmodellocator"); var service = servicelocator.getfwwsmodelsoap(); var err = {message:"", empty:true; var ret, xml; try { ret = service.getxmldatadetail([],"mata030_mvc"); xml = new XML(new String(new java.lang.string(ret)).replace(/<\?.*\?>/g,"")); catch(erro){ throw erro.message; return; updatexmlfields(xml,err); if (err.message.length > 0){ throw err.message; else if (err.empty){ throw "Preencha o formulário"; else{ eval("xml.@operation = 3"); try{ service.vldxmldata([],"mata030_mvc",new java.lang.string(xml.toxmlstring()).getbytes()); catch(e){ throw e.message; function updatexmlfields(node,err){ var list = node.children(); var name,value; for (var i=0;i<list.length();i++){ switch (Trim(eval("list[i].@modeltype.toString()"))){ case "FIELDS": updatexmlfields(list[i],err); default: name = list[i].name().localname; value = hapi.getcardvalue(name); if (value!= null) list[i].value = convertvalue(name,list[i],value,err); if (err.message.length > 0) function convertvalue(name,struct,value,err){ var y,m,d,n,len,str,reg var setyear = new Date().getFullYear().toString().substring(0,2); var setdate = "dd/mm/yyyy"; var ycount = setdate.match(/yyyy/)? 4 : 2; var haserr = false; 11
12 value = value.trim(); switch (eval("struct.@datatype.tostring()")){ case "D": if (value.replace("/","").trim()!= ""){ len = value.length(); d = setdate.indexof("d"); m = setdate.indexof("m"); y = setdate.indexof("y"); if (d + 2 > len m + 2 > len y + ycount > len){ else{ str = value.substr(m,2) + value.substr(d,2); if (ycount == 4) str = value.substr(y,4) + str; else str = setyear + value.substr(y,2) + str; if (str.match(/((((19 20)(([02468][048]) ([13579][26]))0229)) ((19 20)[0-9][0-9])((((0[1-9]) (1[0-2]))((0[1-9]) (1\d) (2[0-8]))) ((((0[13578]) (1[02]))31) (((0[1,3-9]) (1[0-2]))(29 30)))))/g)) value = new java.lang.string(str); else if (haserr) err.message = "O campo "+eval("struct.@info")+" ("+name+") contém uma data inválida"; else case "N": len = eval("struct.@len.tostring().split(',')"); if (len[1] == "0"){ reg = new RegExp("^[0-9]{1,"+len[0]+"$"); str = value.replace(",",""); str = value.replace(".",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parseint(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) else{ reg = new RegExp("^0$ ^0\.[0-9]{1,"+len[1]+"$ ^[0-9]{0,"+len[0]+"(\.[0-9]{1,"+len[1]+")?$"); str = value.replace(".","").replace(",","."); 12
13 str = value.replace(",",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parsefloat(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) default: if (value!= "") return value; function Trim(str){return str.replace(/^\s+ \s+$/g,""); 2.4 Atualização do Protheus A atualização dos dados no Protheus também é realizada atraves de WebServices como visto na validação utilizando o evento do processo afterprocessfinish que é executado na finalização da solicitação. function afterprocessfinish(processid){ var wsservice = ServiceManager.getService("WSCLIENTE"); var servicehelper = wsservice.getbean(); var servicelocator = servicehelper.instantiate("localhost.wsclientelocator"); var service = servicelocator.getwsclientesoap(); var SA1 = new XML("<SA1/>"); SA1.A1_COD = hapi.getcardvalue("a1_cod"); SA1.A1_LOJA = hapi.getcardvalue("a1_loja"); SA1.A1_TIPO = hapi.getcardvalue("a1_tipo"); SA1.A1_PESSOA = hapi.getcardvalue("a1_pessoa"); SA1.A1_NOME = hapi.getcardvalue("a1_nome"); SA1.A1_NREDUZ = hapi.getcardvalue("a1_nreduz"); SA1.A1_END = hapi.getcardvalue("a1_end"); SA1.A1_MUN = hapi.getcardvalue("a1_mun"); SA1.A1_EST = hapi.getcardvalue("a1_est"); try { ret = service.incluir(new java.lang.string(sa1.toxmlstring()).getbytes()); catch(erro){ throw erro.message 13
14 2.4.1 MVC A validação do processo de uma rotina MVC é também é realizada utilizando o WebService FWWSMODEL ( com a invocação do método GETXMLDATADETAIL que retorna o XML do model para popular os dados e do método PUTXMLDATA que gravar o XML. function afterprocessfinish(processid){ var wsservice = ServiceManager.getService("TOTVS_FWMVC"); var servicehelper = wsservice.getbean(); var servicelocator = servicehelper.instantiate("br.com.totvs.webservices.fwwsmodel_apw.fwwsmodellocator"); var service = servicelocator.getfwwsmodelsoap(); var err = {message:"", empty:true; var ret, xml; try { ret = service.getxmldatadetail([],"mata030_mvc"); xml = new XML(new String(new java.lang.string(ret)).replace(/<\?.*\?>/g,"")); catch(erro){ throw erro.message; return; updatexmlfields(xml,err); eval("xml.@operation = 3"); try{ service.putxmldata([],"mata030_mvc",new java.lang.string(xml.toxmlstring()).getbytes()); catch(e){ throw e.message; function updatexmlfields(node,err){ var list = node.children(); var name,value; for (var i=0;i<list.length();i++){ switch (Trim(eval("list[i].@modeltype.toString()"))){ case "FIELDS": updatexmlfields(list[i],err); default: name = list[i].name().localname; value = hapi.getcardvalue(name); if (value!= null) list[i].value = convertvalue(name,list[i],value,err); if (err.message.length > 0) function convertvalue(name,struct,value,err){ var y,m,d,n,len,str,reg var setyear = new Date().getFullYear().toString().substring(0,2); 14
15 var setdate = "dd/mm/yyyy"; var ycount = setdate.match(/yyyy/)? 4 : 2; var haserr = false; value = value.trim(); switch (eval("struct.@datatype.tostring()")){ case "D": if (value.replace("/","").trim()!= ""){ len = value.length(); d = setdate.indexof("d"); m = setdate.indexof("m"); y = setdate.indexof("y"); if (d + 2 > len m + 2 > len y + ycount > len){ else{ str = value.substr(m,2) + value.substr(d,2); if (ycount == 4) str = value.substr(y,4) + str; else str = setyear + value.substr(y,2) + str; if (str.match(/((((19 20)(([02468][048]) ([13579][26]))0229)) ((19 20)[0-9][0-9])((((0[1-9]) (1[0-2]))((0[1-9]) (1\d) (2[0-8]))) ((((0[13578]) (1[02]))31) (((0[1,3-9]) (1[0-2]))(29 30)))))/g)) value = new java.lang.string(str); else if (haserr) err.message = "O campo "+eval("struct.@info")+" ("+name+") contém uma data inválida"; else case "N": len = eval("struct.@len.tostring().split(',')"); if (len[1] == "0"){ reg = new RegExp("^[0-9]{1,"+len[0]+"$"); str = value.replace(",",""); str = value.replace(".",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parseint(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) 15
16 else{ reg = new RegExp("^0$ ^0\.[0-9]{1,"+len[1]+"$ ^[0-9]{0,"+len[0]+"(\.[0-9]{1,"+len[1]+")?$"); str = value.replace(".","").replace(",","."); str = value.replace(",",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parsefloat(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) default: if (value!= "") return value; function Trim(str){return str.replace(/^\s+ \s+$/g,""); Rotina Automática (Modelo 1) Como as rotinas automáticas após validarem executam a atualização ao invés de utilizar o evento afterprocessfinish utilizar o evento beforetasksave quando o processo estiver na atividade fim. Além do WebService do MVC utilizar também o FWWSMODEL ( com a invocação do método PUTDATA. #include "totvs.ch" User Function WSMVC() Local cname := "TOTVS_FWWSECM" Local curl := " Local cdescription := "Serviço do TOTVS Microsiga Protheus para integração de rotinas automáticas com ECM" Local aservice := FWWFGetService(cName) If Empty(aService).and. FWWFPutService(cName,cUrl,cDescription) MsgInfo("Serviço cadastrado com sucesso") Return Evento beforetasksave: function beforetasksave(colleagueid,nextsequenceid,userlist){ var wsservice = ServiceManager.getService("TOTVS_FWMVC"); var servicehelper = wsservice.getbean(); var servicelocator = servicehelper.instantiate("br.com.totvs.webservices.fwwsmodel_apw.fwwsmodellocator"); var service = servicelocator.getfwwsmodelsoap(); var err = {message:"", empty:true; 16
17 var ret, xml; try { ret = service.getxmldatadetail([],"mata030_mvc"); xml = new XML(new String(new java.lang.string(ret)).replace(/<\?.*\?>/g,"")); catch(erro){ throw erro.message; return; updatexmlfields(xml,err); if (err.message.length > 0){ throw err.message; else if (err.empty){ throw "Preencha o formulário"; else{ wsservice = ServiceManager.getService("TOTVS_FWWSECM"); servicehelper = wsservice.getbean(); servicelocator = servicehelper.instantiate("br.com.totvs.webservices.fwwsecm_apw.fwwsecmlocator"); service = servicelocator.getfwwsmodelsoap(); eval("xml.@operation = 3"); try{ service.putdata([],"sa1","mata030",new java.lang.string(xml.toxmlstring()).getbytes());; catch(e){ throw e.message; function updatexmlfields(node,err){ var list = node.children(); var name,value; for (var i=0;i<list.length();i++){ switch (Trim(eval("list[i].@modeltype.toString()"))){ case "FIELDS": updatexmlfields(list[i],err); default: name = list[i].name().localname; value = hapi.getcardvalue(name); if (value!= null) list[i].value = convertvalue(name,list[i],value,err); if (err.message.length > 0) function convertvalue(name,struct,value,err){ var y,m,d,n,len,str,reg var setyear = new Date().getFullYear().toString().substring(0,2); var setdate = "dd/mm/yyyy"; var ycount = setdate.match(/yyyy/)? 4 : 2; 17
18 var haserr = false; value = value.trim(); switch (eval("struct.@datatype.tostring()")){ case "D": if (value.replace("/","").trim()!= ""){ len = value.length(); d = setdate.indexof("d"); m = setdate.indexof("m"); y = setdate.indexof("y"); if (d + 2 > len m + 2 > len y + ycount > len){ else{ str = value.substr(m,2) + value.substr(d,2); if (ycount == 4) str = value.substr(y,4) + str; else str = setyear + value.substr(y,2) + str; if (str.match(/((((19 20)(([02468][048]) ([13579][26]))0229)) ((19 20)[0-9][0-9])((((0[1-9]) (1[0-2]))((0[1-9]) (1\d) (2[0-8]))) ((((0[13578]) (1[02]))31) (((0[1,3-9]) (1[0-2]))(29 30)))))/g)) value = new java.lang.string(str); else if (haserr) err.message = "O campo "+eval("struct.@info")+" ("+name+") contém uma data inválida"; else case "N": len = eval("struct.@len.tostring().split(',')"); if (len[1] == "0"){ reg = new RegExp("^[0-9]{1,"+len[0]+"$"); str = value.replace(",",""); str = value.replace(".",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parseint(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) else{ reg = new RegExp("^0$ ^0\.[0-9]{1,"+len[1]+"$ ^[0-9]{0,"+len[0]+"(\.[0-9]{1,"+len[1]+")?$"); 18
19 str = value.replace(".","").replace(",","."); str = value.replace(",",""); err.message = "O campo "+eval("struct.@info")+" ("+name+") contém um número (valor ou tamanho) inválido" if (!haserr){ n = parsefloat(str); if (!isnan(n)){ value = new java.lang.string(str); if (n > 0) default: if (value!= "") return value; function Trim(str){return str.replace(/^\s+ \s+$/g,""); 19
Material de Apoio Configuração Auditoria Pós
Material de Apoio Configuração Auditoria Pós Julho - 2014 Índice 1. Introdução... 3 2. Ambiente... 3 3. Serviço... 4 4. Dataset... 6 5. Formulário... 6 6. Processo... 12 6.1 Importação de Processos...
Leia maisCapítulo 4. Programação em ASP
Índice: CAPÍTULO 4. PROGRAMAÇÃO EM ASP...2 4.1 REGISTRAR...2 4.1.1 Códigos para configuração do objeto...2 4.1.2 Formulário para transferir dados da impressão digital...3 4.1.3 Código Javascript para registro
Leia maisHAT Programação Auditoria Pós. 12.1.x. abril de 2015. Versão: 2.0
HAT Programação Auditoria Pós 12.1.x abril de 2015 Versão: 2.0 1 Sumário 1 Introdução... 3 2 Visão do Processo... 3 3 Serviço... 5 4 Dataset... 7 5 Formulário Principal AuditoriaPos... 9 6 Arquitetura
Leia maisBasicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados:
Livro de Visitas Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados: ID nome email mensagem data O código
Leia maisJavaScript: Validação de Formulários. Prof. Ivanilton Polato ipolato@utfpr.edu.br ipolato@gmail.com
JavaScript: Validação de Formulários Prof. Ivanilton Polato ipolato@utfpr.edu.br ipolato@gmail.com Validação de Formulários Um dos usos mais frequentes do JS é a validação de formulários. Além de garantir
Leia maisOs objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Leia maisLista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.
Lista de Revisão 1. Nos sistemas web, geralmente os usuários apresentam dois problemas típicos, a desorientação e a sobrecarga cognitiva. Discorra sobre esses problemas. 2. Apresente as principais diferenças
Leia maisPROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda
PROGRAMAÇÃO PARA INTERNET Introdução à AJAX Fonte: Raul Paradeda INTRODUÇÃO Para entender o que é o AJAX é necessário ter o prévio conhecimento de: HTML / XHTML; Javascript; CSS; XML. INTRODUÇÃO Ao pesquisar
Leia maisProf Evandro Manara Miletto. parte 2
Prof Evandro Manara Miletto parte 2 Sumário Estruturas de Controle Eventos Estruturas de controle características Estruturas de controle (ou condicionais) são executadas caso um teste seja atendido Permite
Leia maisBoletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web, 11.8.0.0
de formulário dinâmico para o módulo WEB Produto : TOTVS Web, 11.8.0.0 Chamado : P118SSTWEB\REQ168 Data da publicação : 17/10/12 País(es) : Brasil Banco(s) de Dados : Oracle Esta melhoria depende de execução
Leia maisHTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).
HTML / JAVASCRIPT Estamos iniciando o estudo do HTML através das TAGS (comandos) para construir formulários. Isso facilitará a continuidade dos nossos estudos da linguagem de programação JavaScript, a
Leia maisTecnologias para apresentação de dados - Java Script. Aécio Costa
Tecnologias para apresentação de dados - Java Script Aécio Costa Foi originalmente implementada como parte dos navegadores web para que scripts pudessem ser executados do lado do cliente e interagissem
Leia maisAuditoria Pós - Programação
Auditoria Pós - Programação Julho - 2014 Índice 1. Introdução... 3 2. Visão do Processo... 3 3. Serviço... 4 4. Dataset... 6 5. Formulário Principal AuditoriaPos... 8 6. Arquitetura do Formulário HTML
Leia maisGestão inteligente de documentos eletrônicos
Gestão inteligente de documentos eletrônicos MANUAL DE UTILIZAÇÃO VISÃO DE EMPRESAS VISÃO EMPRESAS - USUÁRIOS (OVERVIEW) No ELDOC, o perfil de EMPRESA refere-se aos usuários com papel operacional. São
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia maisMANUAL AGENDADOR DE TAREFAS LOGIX
Outubro 2011 rev. 01 MANUAL AGENDADOR DE TAREFAS LOGIX Elaboração: Rubens Dos Santos Filho Framework rubens.santos@totvs.com.br Objetivo Este documento tem como objetivo relatar a funcionalidade de agendamento
Leia maisTarget. Manual de Integração SOAP. versão 1.0 / 2007. www.virtualtarget.com.br
Manual de Integração SOAP versão 1.0 / 2007 www.virtualtarget.com.br introdução Este manual é destinado àqueles que possuem conhecimentos sólidos em linguagem de programação para integração SOAP (Simple
Leia maisConstruindo um sistema simples de cadastro de fornecedores em PHP e MySQL.
Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Procuraremos mostrar os principais procedimentos para fazer um cadastro de registros numa base de dados MySQL utilizando a linguagem
Leia maisCriação de Empresas Modelo Gestão de Empresas. Raphael Merchan DGR/SP Outubro/2010
Criação de Empresas Modelo Gestão de Empresas Raphael Merchan DGR/SP Outubro/2010 1 Criação de Empresas Modelo Gestão de Empresas ÍNDICE I) Definição II) Criação de Empresas III) Wizard de Configuração
Leia maisBI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.
16/08/2013 BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. Versão 1.0 19/12/2014 Visão Resumida Data Criação 19/12/2014 Versão Documento 1.0 Projeto
Leia maisCadastro Avaliação 2013 Manual de Instruções
Cadastro Avaliação 2013 Manual de Instruções Manual de instruções Cadastro Avaliação 2013 Caro Usuário, Este manual contém todas as instruções necessárias para preenchimento dos dados de sua escola e alunos.
Leia maisSIGECORS. Sistema de Gerenciamento de Resíduos Sólidos Industriais
SIGECORS Sistema de Gerenciamento de Resíduos Sólidos Industriais Outubro 2008 Índice 1. Registrando Usuários 2. Acesso ao Sistema 3. Logar no Sistema 4. Esquecimento de Senha 5. Alteração de Senha 6.
Leia maisIntegração Backoffice HCM x ECM
Integração Backoffice HCM x ECM Fevereiro/2015 Sumário 1. Integração HCM x ECM... 3 2. Pré-Requisitos da Integração dos Produtos... 4 3. Parametrização da Integração no Produto, Origem... 7 4. Parametrização
Leia maisIntegração SmartClientHTML x WorkSite
Maio/2015 Título do documento Sumário 1. Integração... 3 2. Mecanismo... 3 3. Campos dos anexos WorkSite... 4 4. Instalação / Atualização... 5 5. Controle de Versão... 5 6. Suporte... 5 7. Transações/Entidades/Mensagens
Leia maisConteúdo. Especificação HTTP v1.1
Conteúdo Introdução... 2 Início e comandos básicos... 2 Exemplo método GET... 3 Exemplo método POST... 3 Códigos de retorno... 4 Exemplo para envio em Cold Fusion... 4 Exemplo para envio em PHP... 5 Exemplo
Leia maisManual de Utilização ZENDESK. Instruções Básicas
Manual de Utilização ZENDESK Instruções Básicas Novembro/2013 SUMÁRIO 1 Acesso à ferramenta... 3 2 A Ferramenta... 4 3 Tickets... 8 3.1 Novo Ticket... 8 3.2 Acompanhamentos de Tickets já existentes...
Leia maisEstá apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.
1. Descrição Geral Este manual descreve as operações disponíveis no módulo VTWEB Client, cuja finalidade é gerenciar cadastros de funcionários, realização de pedidos e controle financeiro dos pedidos.
Leia maisManual de Procedimentos do novo Módulo de Atendimento Técnico HELPDESK
Manual de Procedimentos do novo Módulo de Atendimento Técnico HELPDESK Novembro/2008 Módulo de Atendimento Técnico HELPDESK 2 O acesso ao Módulo de Atendimento Técnico é feito através da internet (Mozilla)
Leia maisManual de Integração Protheus x Reserve
Novembro/2013 Sumário 1. Introdução... 3 2. Requisitos... 3 3. Dicionário de Dados... 3 4. Parâmetros... 5 5. Instalação/Atualização... 6 6. Contexto de negócio... 9 7. Escopo e Finalidade... 9 8. Como
Leia maisBoletim Técnico. Esta melhoria depende de execução do update de base UPDSGA11, conforme Procedimentos para Implementação.
Monitoramento sem Laboratório Produto : Microsiga Protheus Gestão Ambiental Versão 11 Chamado : TIERVV Data da publicação : 08/01/14 País(es) : Todos Banco(s) de Dados : Todos Esta melhoria depende de
Leia maisBoletim Técnico. A construção do relatório dentro do RM, acessando os dados do Protheus está descrita no documento fornecido pela RM.
Integração Protheus TOTVS Reports Produto : Microsiga Protheus Configurador Chamado : TEPVU3 Data da publicação : 13/09/12 País(es) : Todos Banco(s) de Dados : Todos Disponibilizado o processo de integração
Leia maisProgramação Web Prof. Wladimir
Programação Web Prof. Wladimir Linguagem PHP @wre2008 1 Sumário PHP: Tipos de dados; Manipulação de dados; Utilizando formulário. @wre2008 2 Tipos de dados As variáveis são declaradas no momento de sua
Leia maisDCIP-SC Declaração de Créditos Informados Previamente
DCIP-SC Declaração de Créditos Informados Previamente Produto : Microsiga Protheus Livros Fiscais Versão 11 Data da publicação : 16/02/2012 País(es) : Brasil Banco(s) de Dados : Todos Chamado : TEONYZ,
Leia maisProgramação para Internet I
Programação para Internet I Aula 6 PHP: Include, Require, Variáveis de ambiente Prof. Teresinha Letícia da Silva leticiasfw@yahoo.com.br Inclusão de arquivos com Include e Require no PHP Uma técnica muito
Leia maisManual Sistema Proac Editais. Dúvidas Frequentes
Manual Sistema Proac Editais Dúvidas Frequentes Conteúdo 1. Acesso ao sistema... 3 1.1. Como efetuar Login... 3 1.2. Como recuperar a Senha... 3 1.3. Como fazer um Novo Cadastro de Proponente... 4 1.4.
Leia maisNota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:
Nota de Aplicação Relatório em HTML no Vijeo Citect Versão: 1.0 Suporte Técnico Brasil Especificações técnicas Hardware: Software: Versão: Vijeo Citect 7.40 SP 2 SQL Server 2012 Suporte Técnico Brasil
Leia maisO objetivo da aula é realizar upload de arquivos com aplicação web. Será realizado o upload de duas formas:
Aula 09 FileUpload Disciplina: Programação Web Prof. Allbert Velleniche de Aquino Almeida E-mail: allbert.almeida@fatec.sp.gov.br Site: http://www.allbert.com.br /allbert.almeida Objetivo O objetivo da
Leia maisSIM Sistema de Informação Monitorada Ltda. Vise Pedidos
Vise Pedidos O Vise Pedidos é um aplicativo com fins de funcionamento paralelo ao VISERP. Nele você consegue fazer as rotinas básicas de qualquer representante que esta enloco na empresa direto em seu
Leia maisSECRETARIA DE ESTADO DA FAZENDA DIRETORIA DE FISCALIZAÇÃO PEDIDO DE USO DE ECF MANUAL DO USUÁRIO VERSÃO 1.0
SECRETARIA DE ESTADO DA FAZENDA DIRETORIA DE FISCALIZAÇÃO PEDIDO DE USO DE ECF MANUAL DO USUÁRIO VERSÃO 1.0 Belém Agosto - 2013 1 SUMÁRIO 1. Introdução... 3 2. Identificação Acesso ao Sistema... 4 3. Painel
Leia maisProgramação para a Internet II 2.13. PHP AJAX. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt
Programação para a Internet II 2.13. PHP AJAX Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Ajax não é uma tecnologia! É um conceito! Consiste no uso do objecto XMLHttpRequest que se encontra implementado
Leia maisCenários do CEL. Acessar ao sistema
Cenários do CEL Acessar ao sistema Permitir que o usuário acesse ao Sistema de Léxicos e Cenários nas seguintes condições: logando-se, quando já estiver cadastrado; ou incluindo usuário independente, quando
Leia maisManual do Usuário Cidadão SIC Serviço de informação ao cidadão
Manual do Usuário Cidadão SIC Serviço de informação ao cidadão NOVOSIS 3ª Versão Conteúdo Introdução... 3 Principais recursos:... 4 Para o cidadão:... 4 Para os órgãos públicos:... 4 Como Utilizar o SIC...
Leia maisBoletim Técnico. Solicitações de Compra - Rateio por Centro de Custo. Produto : Microsiga Protheus Compras Versão 10
Solicitações de Compra - Rateio por Centro de Custo Produto : Microsiga Protheus Compras Versão 10 Chamado : TGZL81 Data da publicação : 12/08/13 País(es) : Todos Banco(s) de Dados : Todos Esta melhoria
Leia maisCIDE Contribuição de Intervenção no Dominio Econômico
CIDE Contribuição de Intervenção no Dominio Econômico Produto : Microsiga Protheus Livros Fiscais, Versão 11 Chamado : TIDZ93 Data da publicação : 09/04/14 País(es) : Brasil Banco(s) de Dados : Todos Realizado
Leia maisETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO
ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI CRIANDO UMA AUTENTICAÇÃO DE USUÁRIO UTILIZANDO O COMPONENTE QUERY A autenticação de usuários serve para
Leia maisEventos Anulação e Retificação
MINISTÉRIO DO PLANEJAMENTO ORÇAMENTO E GESTÃO SECRETARIA DE LOGÍSTICA E TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE GESTÃO ESTRATÉGICA DA INFORMAÇÃO Portal dos Convênios SICONV Eventos Anulação e Retificação
Leia maisAgendamento para Importação de Notas Fiscais
LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2 (Orientamos aos clientes que utilizam banco de dados SQL, para efetuarem a atualização preferencialmente após o encerramento das atividades do dia, acessando
Leia maisResumo das funcionalidades
Resumo das funcionalidades Menu MENU Dados Cadastrais Atualizar Cadastro Troca Senha Grupo Usuários Incluir Atualizar Funcionários Incluir Atualizar Atualizar Uso Diário Importar Instruções Processar Status
Leia maisBoletim Técnico. Para bloquear o grupo familiar, é necessário que no tipo de bloqueio, esteja configurado o bloqueio do grupo familiar.
Bloqueio por Grupo Familiar Produto : Microsiga Protheus Planos de Saúde Versão 11 Requisito : ID_26 Data da publicação : 14/02/14 País(es) : Brasil Banco(s) de Dados : Todos Relacionais sx Esta melhoria
Leia maisMódulo Publicações Publicações On Line. Módulo Publicações
Módulo Publicações Elaborado por: Julio Cesar Cavalheiro PÁG. 1/8 Índice 1. Objetivo... 3 2. Parametrização... 3 3. Baixando as Publicações... 4 4. Atribuindo processos aos Dados Baixados... 5 5. Status
Leia maisComo funciona? SUMÁRIO
SUMÁRIO 1. Introdução... 2 2. Benefícios e Vantagens... 2 3. Como utilizar?... 2 3.1. Criar Chave / Senha de Usuário... 2 3.2. Recursos da Barra Superior... 2 3.2.1. Opções... 3 3.2.1.1. Mover Para...
Leia maisMANUAL VTWEB CLIENT URBANO
MANUAL VTWEB CLIENT URBANO A marca do melhor atendimento. Conteúdo... 2 1. Descrição... 3 2. Cadastro no sistema... 3 2.1. Pessoa Jurídica... 3 2.2. Pessoa Física... 5 2.3. Concluir o cadastro... 6 3.
Leia maisMais sobre uso de formulários Site sem Ajax
Mais sobre uso de formulários Site sem Ajax Página com busca padrão 1 Página com o resultado da busca carregada no local da anterior (o formulário está vazio) Site com Ajax 2 Site usando Ajax para preencher
Leia maisO código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.
1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente
Leia maisCATÁLOGO DE APLICAÇÕES Atualização de Preços de Tabela de Venda
CATÁLOGO DE APLICAÇÕES Atualização de Preços de Tabela de Venda Objetivo do projeto O projeto de atualização de preços de tabela de venda tem por objetivo permitir que a manutenção de preços de tabela
Leia maisPROTHEUSFUNCTIONMVC.PRX
Framework - LIB Biblioteca de Funções Produto Microsiga Protheus - Todos os módulos Versão 11 Versão 11 Data 29/08/14 A seguir apresentamos as funções implementadas na linha de produto Microsiga Protheus,
Leia maisBoletim Técnico. Empresa. Vagas. Central de Estágio. Desenvolvimento/Procedimento. Acesse Atividades Acadêmicas Estágio Empresa
Boletim Técnico Central de Estágio Produto : TOTVS Educacional 11.83.52 Processo : Central de Estágio Subprocesso : Não se aplica Data da publicação : 12/11/2013 A funcionalidade de Central de Estágio
Leia maisTOTVS Série 1 Varejo (Simples) - Módulo e-commerce
Novo Módulo disponível no TOTVS S1 Varejo: permissão de utilização através de licença específica. Mesmo não adquirindo a licença de uso do módulo ele continuará presente na tela do usuário. 1 Na opção
Leia maisJavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.
JavaScript JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos. Pode ser usada dentro do próprio arquivo HTML ou estruturada em um
Leia maisPodemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :
Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que
Leia maisCriação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments
Criação de Servlets 1. Crie um novo projeto através do Menu File New Project. 2. Acesse o Menu File New. 3. Na janela Object Gallery que surgirá, selecione a guia Web. 4. Escolha o ícone que corresponde
Leia maisLiner. Manual do Usuário
Liner Manual do Usuário Parabéns, Você acaba de adquirir o Gravador Telefônico Digital Pctel Liner. Líder em seu segmento, disponibiliza a mais alta tecnologia em gravadores telefônicos digitais, convertendo
Leia maisConteúdo. DHTML tópicos Hamilton Lima - 2002-2004
DHTML tópicos Hamilton Lima - 2002-2004 Conteúdo 1. meu primeiro script... 2 2. DOM Document Object Model...2 3. tipo de execução de scripts...2 4. resposta a um evento... 3 5. tipos de dados, variaveis
Leia maisÍndice: Nitgen do Brasil www.nitgen.com.br
Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2
Leia maise commerces DOCUMENTO DE INTEGRAÇÃO Sumário Dúvidas: 55 51 3023.2332 suporte@hookit.cc www.hookit.cc Atualizado em: 10/09/2014
DOCUMENTO DE INTEGRAÇÃO e commerces Atualizado em: 10/09/2014 Sumário 1. Cadastro e atualização de produtos 2. Exibição do botão Hookar 3. Conversão de acesso em venda 4. Status das vendas 1. Cadastro
Leia maisJavaScript (Funções, Eventos e Manipulação de Formulários)
Linguagem de Programação para Web JavaScript (Funções, Eventos e Manipulação de Formulários) Prof. Mauro Lopes 1-31 23 Objetivos Iremos avançar um pouco mais em nosso estudo sobre o JavaScript. Iremos
Leia maisCATÁLOGO DE CUSTOMIZAÇÕES Atualização de Preços de Tabela de Venda
CATÁLOGO DE CUSTOMIZAÇÕES Atualização de Preços de Tabela de Venda Índice ÍNDICE... 2 OBJETIVO DO PROJETO... 3 ESCOPO... 3 PREMISSAS... 5 LIMITAÇÕES E RESTRIÇÕES... 5 OBSERVAÇÕES... 5 POLÍTICA DA CUSTOMIZAÇÃO...
Leia maisChamado : TEXMBZ Data da publicação : 30/04/12
Campo Seq. Fam. no Check-List Padrão Produto : Microsiga Protheus Manutenção de Ativos versão 11 Chamado : TEXMBZ Data da publicação : 30/04/12 País(es) : Todos Banco(s) de Dados : Todos Aplicabilidade
Leia maisA pessoa que tenha imóvel cadastrado no Sistema Nacional de Cadastro Rural SNCR.
QUEM PODE ACESSAR A DECLARAÇÃO ELETRÔNICA. A pessoa que tenha imóvel cadastrado no Sistema Nacional de Cadastro Rural SNCR. QUAIS TIPOS DE ATUALIZAÇÕES PODERÃO SER FEITAS Alteração por Aquisição de área
Leia maisManual Importação XML
Manual Importação XML Ambiente : Compras \ Estoque Custos Data: 23/02/2011 Base de Dados: DBF \ SQL Tabelas envolvidas: ZXM (XML Fornecedor) ZXN (Tabela Auxiliar XML) SA2 (Cadastro Fornecedor) SA5 (Amarração
Leia maisManual de Integração Via Gadget. Passo a passo para realizar a integração entre websites e a plataforma Virtual Target.
Manual de Integração Via Gadget Passo a passo para realizar a integração entre websites e a plataforma Virtual Target. Manual de Integração Via Gadget 1. Introdução 1.1. O que é? Virtual Target Gadgets
Leia maisCriando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL
Leia maisTROCA E DEVOLUÇÃO E CLIENTES
TROCA E DEVOLUÇÃO E CLIENTES RMS Software S.A. - Uma Empresa TOTVS Todos os direitos reservados. A RMS Software é a maior fornecedora nacional de software de gestão corporativa para o mercado de comércio
Leia maisSCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução
SCIM 1.0 Guia Rápido Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal Introdução Nesta Edição O sistema de Controle Interno administra o questionário que será usado no chek-list
Leia maisProcesso: Vendas. Acesso. Motivação. Parâmetros. Nome do Processo: Bônus impresso para premiação do cliente
Pendências 19342 Versão 2006 Release 53 Autor Jaciara Processo: Vendas Nome do Processo: Bônus impresso para premiação do cliente Acesso VENDAS Força de Vendas Bônus Motivação Administrar a distribuição
Leia maisCall Center Sistema de Atendimento ao Cliente (CRM)
Call Center Sistema de Atendimento ao Cliente (CRM) Apresentação O software de CRM permite a gestão do relacionamento com o público, seja pessoa física ou jurídica, clientes ou não. A partir dele, é possível
Leia maisEsta melhoria depende de execução do update de base updtmk58 e atualização do TOTVS CTI LINK conforme Procedimentos para Implementação.
Senha do Agente no Listener de Ligações CTI Produto : Microsiga Protheus Call Center Versão 10 Chamado : TEENH8 Data da publicação : 02/03/12 País(es) : Todos Banco(s) de Dados : Todos Esta melhoria depende
Leia maisCAPITULO 5 COMANDO DE FLUXO IF
CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá
Leia maisSUMÁRIO Acesso ao sistema... 2 Atendente... 3
SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da
Leia maisManual NOV - PDV. Versão 1.0
Manual NOV - PDV Versão 1.0 Sumário 01 Captura de Nota Fiscal...3 02 Remessa de Entrada...6 03 Remessa de Saída......9 04 Pedido Normal...12 05 Pedido Especial...16 06 Nota Fiscal Avulsa...18 07 Controle
Leia maisPORTAL B2B USUÁRIO FORNECEDOR
PORTAL B2B USUÁRIO FORNECEDOR RMS Software S.A. - Uma Empresa TOTVS Todos os direitos reservados. A RMS Software é a maior fornecedora nacional de software de gestão corporativa para o mercado de comércio
Leia maisAltere a cor de fundo Altere a cor do texto Utilize meta tags e direcione a página para um site qualquer
Exercício A11 - Digite o código abaixo e salve-o como ex1.htm. Documento com fundo azul!! Página com fundo e texto coloridos!
Leia maisAtualização e e Backup do Protheus 10. Anotações. Nomenclaturas do Protheus 10. Build
devemos ter necessariamente o TOTVS Application Server (TotvsAppServer), iniciado na mesma máquina. Anotações Atualização e e Backup do Protheus 10 Nomenclaturas do Protheus 10 São elas: Build Versão completa
Leia maisManual do Usuário - ProJuris Web - Fila de E-mails Página 1 de 8
As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos
Leia maisBoletim Técnico. Campos obrigatórios nas guias de solicitação do Portal
s obrigatórios nas guias de solicitação do Portal Produto : Microsiga Protheus Plano de Saúde 11 Chamado/Requisito : TGQI45 Data da publicação : 27/05/13 País(es) : Brasil Banco(s) de Dados : Todos relacionais
Leia maisRelease Notes Julho/2014
Julho/2014 Título do documento Saúde e Segurança do Trabalho (11.8.0.11) Copyright 2009 TOTVS. Todos os direitos reservados. Nenhuma parte deste documento pode ser copiada, reproduzida, traduzida ou transmitida
Leia maisCotação Eletrônica. 1º Passo: Configure o e-mail em que será utilizado para envio das. cotações.
Cotação Eletrônica 1º Passo: Configure o e-mail em que será utilizado para envio das cotações. Na tela Configurações do Sistema do módulo Retaguarda selecione a opção MOURAMAIL na configuração Modo de
Leia maisMANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal
MANUAL DO ADMINISTRADOR LOCAL Entidade Municipal Abril / 2011 ÍNDICE Objetivos do Sistema de Registro de Integrado - REGIN... 3 Principais Módulos do Sistema... 4 Módulo Controle de Acesso... 5 Módulo
Leia maisManual de Instalação e Utilização do Pedido Eletrônico Gauchafarma
Manual de Instalação e Utilização do Pedido Eletrônico Gauchafarma 1. INSTALAÇÃO Antes de iniciar a instalação do pedido eletrônico, entre em contato com o suporte da distribuidora e solicite a criação
Leia maisBoletim Técnico. Esta melhoria depende de execução do update de base UPDWF002, conforme Procedimentos para Implementação.
Filas de envio de e-mail do Workflow Produto : Microsiga Protheus Workflow Versão 10 Chamado : TEUEHH Data da publicação : 05/03/12 País(es) : Todos Banco(s) de Dados : Todos Esta melhoria depende de execução
Leia maisManual NFSe - Prestadores e Tomadores de Serviço
VALPARAÍSO DE GOIÁS quarta-feira, 28 de outubro de 2014 Manual NFSe - Prestadores e Tomadores de Serviço ÍNDICE Legislação Cadastrando A Senha Eletrônica Acessando O Sistema De Nfs- E Pela Primeira Vez
Leia maisPassos para migração para o Protheus 11.5 HelpDesk Framework Protheus - Janeiro/2013
Passos para migração para o Protheus 11.5 HelpDesk Framework Protheus - Janeiro/2013 1. Preparando a versão atual para migração: 1.1. Prepare uma base teste, efetuando CÓPIA FRIA (todos os serviços parados)
Leia maisVersion Notes (Notas da versão) Versão 4.11.1.7-26-02-2013
Florianópolis, 26 de fevereiro de 2013. Abaixo você confere as características e funcionalidades da nova versão 4.11.1.7 do Channel. Para quaisquer dúvidas ou na necessidade de maiores esclarecimentos,
Leia maisEMPRESA DE SANEAMENTO DE MATO GROSSO DO SUL S.A. SUMÁRIO. Acessar o sistema MICROSIGA... 3. Elaborar Solicitação de Compra... 5
Empresa de Saneamento de Mato Grosso do Sul S.A. SANESUL MANUAL OPERACIONAL COMPRAS Gerência de Suprimentos SUP/GESU SUMÁRIO Acessar o sistema MICROSIGA... 3 Elaborar Solicitação de Compra... 5 Gerar Relatório
Leia maisValidação de formulários utilizando Javascript
Validação de formulários utilizando Javascript A validação de formulários é um dos usos mais comuns na programação Javascript. A validação de dados por meio da programação Javascript é muito fácil e rápida
Leia maisO que é o JavaScript?
JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem
Leia maisManual de digitação de contas Portal AFPERGS
Manual de digitação de contas Portal AFPERGS 1 Sumário Acesso à função digitação de contas... 3 O que é a Função digitação de contas (DC)... 4 Como proceder na função digitação de conta médica (DC)...
Leia mais1. Configuração do Portal. 1) No totvsappserver.ini deverá ser feito as seguintes modificações: Incluir os seguintes itens:
1. Configuração do Portal 1) No totvsappserver.ini deverá ser feito as seguintes modificações: Incluir os seguintes itens: DEFINIR UMA SESSÃO HTTP: Esta sessão permite ao TOTVS Application Server ser configurado
Leia maisMANUAL DO PRESTADOR WEB
MANUAL DO PRESTADOR WEB Sumário 1. Guia de Consulta... 3 2. Guia de Procedimentos Ambulatoriais... 6 3. Guia de Solicitação de Internação... 8 4. Prorrogação de internação... 8 5. Confirmação de pedido
Leia mais