Project:
RM
Module:
Compras
Description:
Motivo
Business Objects (DataServerName):
CmpMotivoData
PrimaryKey:
CODCOLIGADA;CODMOTIVO
Objetos
Nome do Objeto:
TMOTIVO
FieldName
Description
Size
Required
Type
DefaultValue
CODCOLIGADA
Coligada
-1
true
System.Int16
1
CODMOTIVO
Código
-1
true
System.String
DSCMOTIVO
Motivo
100
true
System.String
Relacionamentos
Name
ParentTable
ChildTable
ParentColumnName
ChildColumnName
Source Code
C#
ADVPL
Fluig
ReadView
/* Programa responsável por integrar com os Webservices do RM Para executar o programa, seguir os passos abaixo: 1) Entrar no Visual Studio e criar um "Service References" apontando para http://localhost:8051/wsDataServer/MEX?wsdl Dúvidas? Consulte https://msdn.microsoft.com/pt-br/library/bb628652.aspx 1.1) Nomear o serviço como DataServer 1.2) Substituir localhost pelo nome ou IP do servidor que executa o serviço do RM.Host Em caso de dúvidas sobre como habilitar o serviço de Webservices do RM, consultar o link abaixo: http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 2) Adicionar os arquivos abaixo ao seu projeto: http://tdn.totvs.com/download/attachments/211064343/Utils.cs http://tdn.totvs.com/download/attachments/211064343/DataClient.cs 2.1) Ajustar os NameSpace da classe DataClient 3) Adicionar referencia a System.Web.HttpUtility Dúvidas? Consulte: https://msdn.microsoft.com/pt-br/library/7314433t(v=vs.90).aspx *///. public void ReadView() { // ajuste o nome o servidor e porta. Em caso de dúvidas, consulte o link abaixo: // http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 string url = "http://localhost:8051"; //importante passar no contexto o mesmo código de usuário usado para logar no webservice string contexto = "CODSISTEMA=G;CODCOLIGADA=1;CODUSUARIO=mestre"; //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que tenha permissão de //acesso ao cadastro que deseja utilizar string usuario = "mestre"; string senha = "integracao"; //o filtro pode ser qualquer campo da visão, por exemplo CODCOLIGADA=1 AND CODFILIAL = 1 string filtro = "1=1"; string recordData; // Retorna as credenciais para acesso ao WS DataClient dataclient = new DataClient(url, contexto, usuario, senha); // lê os dados da visão respeitando o filtro passado DataSet ds = dataclient.ReadView("CmpMotivoData", filtro, out recordData); // Pode utilizar o ds tipado para DataSet ou a variável recordData que possui o XML da solicitação MessageBox.Show(recordData); }
ReadRecord
/* Programa responsável por integrar com os Webservices do RM Para executar o programa, seguir os passos abaixo: 1) Entrar no Visual Studio e criar um "Service References" apontando para http://localhost:8051/wsDataServer/MEX?wsdl Dúvidas? Consulte https://msdn.microsoft.com/pt-br/library/bb628652.aspx 1.1) Nomear o serviço como DataServer 1.2) Substituir localhost pelo nome ou IP do servidor que executa o serviço do RM.Host Em caso de dúvidas sobre como habilitar o serviço de Webservices do RM, consultar o link abaixo: http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 2) Adicionar os arquivos abaixo ao seu projeto: http://tdn.totvs.com/download/attachments/211064343/Utils.cs http://tdn.totvs.com/download/attachments/211064343/DataClient.cs 2.1) Ajustar os NameSpace da classe DataClient 3) Adicionar referencia a System.Web.HttpUtility Dúvidas? Consulte: https://msdn.microsoft.com/pt-br/library/7314433t(v=vs.90).aspx */public void ReadRecord() { // ajuste o nome o servidor e porta. Em caso de dúvidas, consulte o link abaixo: // http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 string url = "http://localhost:8051"; //importante passar no contexto o mesmo código de usuário usado para logar no webservice string contexto = "CODSISTEMA=G;CODCOLIGADA=1;CODUSUARIO=mestre"; //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que tenha permissão de //acesso ao cadastro que deseja utilizar string usuario = "mestre"; string senha = "integracao"; string recordData; // Retorna as credenciais para acesso ao WS DataClient dataclient = new DataClient(url, contexto, usuario, senha); //O ReadRecord retorna o registro da edição do cadastro RM respeitando a chave primária DataSet ds = dataclient.ReadRecord("CmpMotivoData", "1;001", out recordData); // Pode utilizar o ds tipado para DataSet ou a variável recordData que possui o XML da solicitação MessageBox.Show(recordData); }
SaveRecord
/* Programa responsável por integrar com os Webservices do RM Para executar o programa, seguir os passos abaixo: 1) Entrar no Visual Studio e criar um "Service References" apontando para http://localhost:8051/wsDataServer/MEX?wsdl Dúvidas? Consulte https://msdn.microsoft.com/pt-br/library/bb628652.aspx 1.1) Nomear o serviço como DataServer 1.2) Substituir localhost pelo nome ou IP do servidor que executa o serviço do RM.Host Em caso de dúvidas sobre como habilitar o serviço de Webservices do RM, consultar o link abaixo: http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 2) Adicionar os arquivos abaixo ao seu projeto: http://tdn.totvs.com/download/attachments/211064343/Utils.cs http://tdn.totvs.com/download/attachments/211064343/DataClient.cs 2.1) Ajustar os NameSpace da classe DataClient 3) Adicionar referencia a System.Web.HttpUtility Dúvidas? Consulte: https://msdn.microsoft.com/pt-br/library/7314433t(v=vs.90).aspx */public void SaveRecord() { //pode ser o mesmo XML retornado pelo método ReadRecord, alterando os valores que deseja aplicar no BD string xml = @"<CmpMotivo > <TMOTIVO> <CODCOLIGADA>1</CODCOLIGADA> <CODMOTIVO>001</CODMOTIVO> <DSCMOTIVO>Melhor Qualidade</DSCMOTIVO> </TMOTIVO> </CmpMotivo>"; // ajuste o nome o servidor e porta. Em caso de dúvidas, consulte o link abaixo: // http://tdn.totvs.com/pages/releaseview.action?pageId=89620766 string url = "http://localhost:8051"; //importante passar no contexto o mesmo código de usuário usado para logar no webservice string contexto = "CODSISTEMA=G;CODCOLIGADA=1;CODUSUARIO=mestre"; //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que //tenha permissão de acesso ao cadastro que deseja utilizar string usuario = "mestre"; string senha = "integracao"; // Retorna as credenciais para acesso ao WS DataClient dataclient = new DataClient(url, contexto, usuario, senha); //Salva o registro na base de dados. Executará "Update" caso encontre outro registre que respeite //a chave primária do dataserver, do contrário, executará "Insert". string[] retorno = dataclient.SaveRecord("CmpMotivoData", xml); MessageBox.Show(retorno.ToString()); }
ReadView
ReadRecord
SaveRecord
ReadView
// Programa responsável por integrar com os Webservices do RM // Para executar o programa, seguir os passos abaixo: // 1) Adicionar o arquivo abaixo ao seu projeto: // http://tdn.totvs.com/download/attachments/211064343/DataClientfluig.js // 2) Inclua um serviço no Fluig com o nome WSDATASERVER apontando para // http://localhost:8051/wsDataServer/MEX?singlewsdl (substituir localhost pelo IP e Porta do servidor RM)//. function createDataset(fields, constraints, sortFields) { /* Prepararação das variaveis */ //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que tenha permissão de //acesso ao cadastro que deseja utilizar var usuario = "mestre"; var senha = "integracao"; //importante passar no contexto o mesmo código de usuário usado para logar no webservice var context = "CodUsuario=mestre;CodSistema=F;CodColigada=1" //o filtro pode ser qualquer campo da visão, por exemplo CODCOLIGADA=1 AND CODFILIAL = 1 var filtro = "1=1" ; /* Fim Prepararação das variaveis */ var retorno = dcReadView("CmpMotivoData", context, usuario, senha, filtro) //Caso deseje utilizar as contraints do formulário //var parsedConstraints = parseConstraints(constraints, true); //var retorno = authService.readView("CmpMotivoData", parsedConstraints.filter, parsedConstraints.context, senha, filtro); var xmlResultados = new XML(retorno); var dataset = DatasetBuilder.newDataset(); dataset.addColumn('CODCOLIGADA'); dataset.addColumn('CODMOTIVO'); dataset.addColumn('DSCMOTIVO'); for(var i = 0; i < xmlResultados.TMOTIVO.length(); i++) { dataset.addRow(new Array( xmlResultados.TMOTIVO[i].CODCOLIGADA.toString(), xmlResultados.TMOTIVO[i].CODMOTIVO.toString(), xmlResultados.TMOTIVO[i].DSCMOTIVO.toString() ))} // retorna... return dataset; } .
ReadRecord
// Programa responsável por integrar com os Webservices do RM // Para executar o programa, seguir os passos abaixo: // 1) Adicionar o arquivo abaixo ao seu projeto: // http://tdn.totvs.com/download/attachments/211064343/DataClientfluig.js // 2) Inclua um serviço no Fluig com o nome WSDATASERVER apontando para // http://localhost:8051/wsDataServer/MEX?singlewsdl (substituir localhost pelo IP e Porta do servidor RM)//. //Salve o dataset gerado na fução createdataset com o nome do dataserver function openZoom(){ var DATASET_ID = "CmpMotivoData"; var DATA_FIELDS = "CODCOLIGADA,CODMOTIVO,DSCMOTIVO"; var RESULT_FIELDS = "CODCOLIGADA,CODMOTIVO,DSCMOTIVO"; var TYPE = "CmpMotivoData"; var TITLE = "Motivo"; abrirPesquisa(DATASET_ID, DATA_FIELDS, RESULT_FIELDS, TYPE, TITLE); } function setSelectedZoomItem(selectedItem){ if(selectedItem.type == "CmpMotivoData"){ //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que tenha permissão de //acesso ao cadastro que deseja utilizar //LEMBRANDO QUE O ABAIXO É APENAS A TITULO DE EXEMPLO E SENHAS NÃO DEVEM FICAR NO CLIENT var usuario = "mestre"; var senha = "integracao"; var context = "CodUsuario=mestre;CodSistema=F;CodColigada=1" //Faz a leitura do registro var retorno = dcReadRecord("CmpMotivoData", context, usuario, senha, filtro) //Transforma em XML var xmlResultados = new XML(retorno); CODCOLIGADA,CODMOTIVO,DSCMOTIVO } }
SaveRecord
// Programa responsável por integrar com os Webservices do RM // Para executar o programa, seguir os passos abaixo: // 1) Adicionar o arquivo abaixo ao seu projeto: // http://tdn.totvs.com/download/attachments/211064343/DataClientfluig.js // 2) Inclua um serviço no Fluig com o nome WSDATASERVER apontando para // http://localhost:8051/wsDataServer/MEX?singlewsdl (substituir localhost pelo IP e Porta do servidor RM)//. function beforeTaskSave(colleagueId,nextSequenceId,userList){ var NOME_DATASERVER = "CmpMotivoData"; /* Prepararação das variaveis */ //usuário e senha do aplicativo RM. O mesmo utilizado para logar no sistema e que tenha permissão de //acesso ao cadastro que deseja utilizar var usuario = "mestre"; var senha = "integracao"; //importante passar no contexto o mesmo código de usuário usado para logar no webservice var context = "CodUsuario=mestre;CodSistema=F;CodColigada=1" /* Fim Prepararação das variaveis */ try{ if (isEmpty(hAPI.getCardValue("CODCOLIGADA")) || isEmpty(hAPI.getCardValue("CODMOTIVO"))) return var primaryKey = hAPI.getCardValue("CODCOLIGADA") + ";" + hAPI.getCardValue("CODMOTIVO"); // carrega o webservice... var authService = getWebService(usuario, senha); // define o contexto... var context = "CodUsuario=mestre;CodSistema=F;CodColigada=1" // faz a leitura... var text = new String(authService.readRecord(NOME_DATASERVER, primaryKey, context)); if (!ChekExist(text)) text = GetXml(); // atualiza o valor... text = replaceValue(text, "CODCOLIGADA" , hAPI.getCardValue("CODCOLIGADA")); text = replaceValue(text, "CODMOTIVO" , hAPI.getCardValue("CODMOTIVO")); text = replaceValue(text, "DSCMOTIVO" , hAPI.getCardValue("DSCMOTIVO")); var result = new String(authService.saveRecord(NOME_DATASERVER, text, context)); // se retornou a chave, salvou ok... checkIsPK(result, 2); } catch (e) { if (e == null) e = "Erro desconhecido!"; var mensagemErro = "Ocorreu um erro ao salvar dados no RM: " + e; throw mensagemErro; } } function GetXml() { return "<CmpMotivo >" + " <TMOTIVO>" + " <CODCOLIGADA>1</CODCOLIGADA>" + " <CODMOTIVO>001</CODMOTIVO>" + " <DSCMOTIVO>Melhor Qualidade</DSCMOTIVO>" + " </TMOTIVO>" + "</CmpMotivo>"; }