PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Web service - Nfs-e, como iniciar, só tenho o WSDL #410967

26/12/2011

0

Olá boa tarde!
Estou implentando um aplicativo para envio de Nfs-e da cidade de Promissão mas estou com alguma dificuldade de iniciar, pois só tenho o apenas o WSDL e nenhum exemplo de XML.
Já uso um Componente AcbrNfe, mas desta vez vou ter q fazer na unha o teste para depois tentar modificar o AcbrNfs-e.


Abaixo segue a URL do WSDL e do LayOut do arquivo de envio.

http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php

http://www.fgmaiss.com.br/issqn/wservice/docs/layout_wsnfe.pdf


1 - Desejaria saber como devo proceder para montar o arquivo de envio dos dados ?

2 - O que vou reber no retorno ?

Desde já meus agradecimentos a quem puder ajudar.

100+

ANT.CARLOS/SP
Antonio Jesus

Antonio Jesus

Responder

Posts

29/12/2011

Leonardo Xavier

Você vai ter que gerar o arquivo xml de acordo com as especificações do governo. Quanto ao que voce vai receer de volta será a confirmação de validade de sua nf-e, que tambem será emitida por xml, pelo menos éra...faz tempo que nao mexo com isso. Mas faça assim comece gerando o arquivo xml de acordo com as especificações se você tiver duvidas ainda posta aqui que vou tentar ajudar você da melhor forma possivel. abraços
Responder

Gostei + 0

03/01/2012

Antonio Jesus

Olá bom dia!

Fiz a importação do WSDL e gerei o Web Metodo,
agora preciso saber como enviar os dados para o metodo, pois tentei fazer desta maneira não funcionou.

Veja a implementação abaixo.


Como enviar os dados para a função EnviaNfe ?


100+

ANT.CARLOS/SP




=================================
Form de envio
=================================

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, wsnfe_teste, WB_DM;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var envia : EnvNfe;
retorno : String;

prf, usr, ctr, cnpj, cnpjn, ie, im, lgr, num, cpl : String;
bai, cid, est, cep, fon, mail, dat, f1n, f1d, f1v, f2n : String;
f2d, f2v, f3n, f3d, f3v, f4n, f4d, f4v, f5n, f5d, f5v, f6n, f6d : String;
f6v, tem1, item2, item3, aliq1, aliq2, aliq3, val1, val2, val3, loc: String;
ret, txt, val, valtrib, iss, issret, desci, desco, binss, birrf, bcsll : String;
bpis, bcofins, ainss, airrf, acsll, apis, acofins, inss, irrf, csll, pis : String;
cofins : String;



begin

envia := EnvNfe.Create;

prf := ;
usr := ;
ctr := ;
cnpj := ;
cnpjn := ;
ie := ;
im := ;
lgr := ;
num := ;
cpl := ;
bai := ;
cid := ;
est := ;
cep := ;
fon := ;
mail := ;
dat := ;
f1n := ;
f1d := ;
f1v := ;
f2n := ;
f2d := ;
f2v := ;
f3n := ;
f3d := ;
f3v := ;
f4n := ;
f4d := ;
f4v := ;
f5n := ;
f5d := ;
f5v := ;
f6n := ;
f6d := ;
f6v := ;
item1 := ;
item2 := ;
item3 := ;
aliq1 := ;
aliq2 := ;
aliq3 := ;
val1 := ;
val2 := ;
val3 := ;
loc := ;
ret := ;
txt := ;
val := ;
valtrib := ;
iss := ;
issret := ;
desci := ;
desco := ;
binss := ;
birrf := ;
bcsll := ;
bpis := ;
bcofins := ;
ainss := ;
airrf := ;
acsll := ;
apis := ;
acofins := ;
inss := ;
irrf := ;
csll := ;
pis := ;
cofins := ;



//-----------------------------------------------//
//...Como enviar os dados para o Web Metodo ?
//-----------------------------------------------//

Retorno := EnvNfe(prf, usr, ctr, cnpj, cnpjn, ie, im, lgr, num, cpl, bai, cid, est, cep, fon, mail, dat,
f1n, f1d, f1v, f2n, f2d, f2v, f3n, f3d, f3v, f4n, f4d, f4v, f5n, f5d, f5v, f6n, f6d,
f6v, item1, item2,item3, aliq1,aliq2, aliq3,val1, val2, val3, loc, ret, txt, val, valtrib,
iss, issret, desci, desco, binss, birrf, bcsll, bpis, bcofins, ainss, airrf, acsll, apis,
acofins, inss, irrf, csll, pis, cofins);





========================================
Importacao do WSDL
========================================

// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL : C:\INTERBASE\SIS_Nfeletronica_Servico\Documentos\Promissao\wsnfe_teste.php.xml
// Encoding : ISO-8859-1
// Codegen : [wfDebug,wfVerbose,wfSkipHttpBindings,wfOneOutIsReturn,wfUnwindLiteralParameters,wfMapStringsToWideStrings,wfAutoDestroyMembers,wfGenerateWarnings,wfMapArraysToClasses,wfSkipUnusedTypes,wfUseSerializerClassForAttrs,wfValidateEnumMembers,wfProcessFaults,wfProcessHeaders]
// Version : 1.0
// (3/1/2012 09:01:58 - 1.33.2.5)
// ************************************************************************ //

unit wsnfe_teste;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

EnvNfe = class;



// ************************************************************************ //
// Namespace : http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php
// ************************************************************************ //
EnvNfe = class(TRemotable)
private
Fokk: String;
published
property okk: String read Fokk write Fokk;
end;

StrEnvNfe = array of EnvNfe;

// ************************************************************************ //
// Namespace : http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php
// soapAction: http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php/EnvNfe
// transport : http://schemas.xmlsoap.org/soap/http
// style : rpc
// binding : webserviceBinding
// service : webservice
// port : webservicePort
// URL : http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php
// ************************************************************************ //
webservicePortType = interface(IInvokable)
[{F5E8C09B-C9AF-5E29-ED99-9829709C4046}]
function EnvNfe(const prf: String; const usr: String; const ctr: String; const cnpj: String; const cnpjn: String; const ie: String; const im: String; const lgr: String; const num: String; const cpl: String;
const bai: String; const cid: String; const est: String; const cep: String; const fon: String; const mail: String; const dat: String; const f1n: String; const f1d: String;
const f1v: String; const f2n: String; const f2d: String; const f2v: String; const f3n: String; const f3d: String; const f3v: String; const f4n: String; const f4d: String;
const f4v: String; const f5n: String; const f5d: String; const f5v: String; const f6n: String; const f6d: String; const f6v: String; const item1: String; const item2: String;
const item3: String; const aliq1: String; const aliq2: String; const aliq3: String; const val1: String; const val2: String; const val3: String; const loc: String; const ret: String;
const txt: String; const val: String; const valtrib: String; const iss: String; const issret: String; const desci: String; const desco: String; const binss: String; const birrf: String;
const bcsll: String; const bpis: String; const bcofins: String; const ainss: String; const airrf: String; const acsll: String; const apis: String; const acofins: String; const inss: String;
const irrf: String; const csll: String; const pis: String; const cofins: String): StrEnvNfe; stdcall;
end;

function GetwebservicePortType(UseWSDL: Boolean=System.False; Addr: string=; HTTPRIO: THTTPRIO = nil): webservicePortType;


implementation




function GetwebservicePortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): webservicePortType;
const
defWSDL = C:\INTERBASE\SIS_Nfeletronica_Servico\Documentos\Promissao\wsnfe_teste.php.xml;
defURL = http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php;
defSvc = webservice;
defPrt = webservicePort;
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = ) then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as webservicePortType);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;


initialization
InvRegistry.RegisterInterface(TypeInfo(webservicePortType), http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, ISO-8859-1);
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(webservicePortType), http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php/EnvNfe);
RemClassRegistry.RegisterXSClass(EnvNfe, http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, EnvNfe);
RemClassRegistry.RegisterXSInfo(TypeInfo(StrEnvNfe), http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, StrEnvNfe);

end.
========================================
Responder

Gostei + 0

20/01/2012

Antonio Jesus

Olá bom dia!

Consegui compilar o programa e executar, mas ao executar o metodo EnviaNfe
é gerado um erro em tempo de execução.
Too many parameters in method EnvNfe o HTTPRio.

Se alguem solber qual o problema e puder ajudar, desde
já meus agradecimentos.

100+

ANT.CARLOS/SP




============================================
ROTINA DE ENVIO
===============
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, wsnfe_teste, InvokeRegistry, Rio, SOAPHTTPClient;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var envia : webservicePortType;
retorno : StrEnvNfe;
usuario : String;
pass : string;
ok : String;
flag : Boolean;


prf, usr, ctr, cnpj, cnpjn, ie, im, lgr, num, cpl, bai, cid, est, cep, fon : WideString;
mail, dat, f1n, f1d, f1v, f2n, f2d, f2v, f3n, f3d, f3v, f4n, f4d, f4v, f5n : WideString;
f5d, f5v, f6n, f6d, f6v, item1, item2, item3, aliq1, aliq2, aliq3, val1, val2 : WideString;
val3, loc, ret, txt, val, valtrib, iss, issret, desci, desco, binss, birrf : WideString;
bcsll, bpis, bcofins, ainss, airrf, acsll, apis, acofins, inss, irrf : WideString;
csll, pis, cofins : WideString;


begin
usuario := ; //...usuario
pass := ; //...senha

prf := 44558856000152; //CNPJ da prefeitura
usr := 00653181000155; //CNPJ do usuario
ctr := 00000001; //Número de contrle do contribuinte

//...Dados do Destinatario
cnpj := 96150858804; //...CNPJ/CPF do destinatario
cnpjn := ANTONIO CARLOS; //...Nome/Razao social do destinatario
ie := ; //...Inscr. estadual ou RG
im := ; //Inscr. municipal
lgr := AV ernesto monte;
num := 898;
cpl := Complemento;
bai := Bairro;
cid := Cidade;
est := SP;
cep := 16370000;
fon := ;
mail := ;
dat := DateToStr(Date); //...data de emissao

//...Valores da Duplicata não obrigatorio
f1n := 001; //...1-numero d duplicata
f1d := 30/01/2012; //...1-Data de vencimento
f1v := 000000100.00; //...1-Valor
f2n := ;
f2d := ;
f2v := ;
f3n := ;
f3d := ;
f3v := ;
f4n := ;
f4d := ;
f4v := ;
f5n := ;
f5d := ;
f5v := ;
f6n := ; //...6-numero d duplicata
f6d := ; //...6-Data de vencimento
f6v := ; //...6-Valor

//---------------------------------------//
item1 := 01.01; //...Código do item de serviço 1 (99.99)
item2 := ;
item3 := ;

aliq1 := 02.00; //...Alíquota do item de serviço 1 (02.00) %
aliq2 := ;
aliq3 := ;

val1 := 000000100.00; //..V a l o r Item Serviço 1 (9,2)
val2 := ;
val3 := ;
//---------------------------------------//

loc := 0000; //...Código da localidade (cidade) de execução do serviço (informar 0000 para execução no local do estabelecimento prestador)
ret := NAO; //...I m p o sto retido no tomador do serviço (SIM/NAO)
txt := xxxxx---Descricao do Servico---xxxxx; //...Descrição dos servicos (720C)
val := 000000100.00; //...V a l o r da nota
valtrib := 000000100.00; //...V a l o r tributavel
iss := 000000002.00; //...valor do ISS
issret := 000000002.00; //...V a l o r do ISSQN retido
desci := 000000000.00;
desco := 000000000.00;
binss := 000000000.00;
birrf := 000000000.00;
bcsll := 000000000.00;
bpis := 000000000.00;
bcofins := 000000000.00;
ainss := 000.00;
airrf := 000.00;
acsll := 000.00;
apis := 000.00;
acofins := 000.00;
inss := 000000000.00;
irrf := 000000000.00;
csll := 000000000.00;
pis := 000000000.00;
cofins := 000000000.00;

Memo1.lines.clear;




envia := GetwebservicePortType(false,,nil);




retorno := envia.EnvNfe(prf,usr,ctr,cnpj,cnpjn,ie,im,lgr,num,cpl,bai,cid,est,cep,
fon,mail,dat,f1n,f1d,f1v,f2n,f2d,f2v,f3n,f3d,f3v,f4n,f4d,f4v,f5n,f5d,
f5v,f6n,f6d,f6v,item1,item2,item3,aliq1,aliq2,aliq3,val1,val2,val3,loc,
ret,txt,val,valtrib,iss,issret,desci,desco,binss,birrf,bcsll,bpis,bcofins,
ainss,airrf,acsll,apis,acofins,inss,irrf,csll,pis,cofins);




flag := retorno[0].ClassNameIs(prf);

Memo1.lines.Add(Retorno - +retorno[0].okk);
end;



end.



============================================
IMPORT DO WSDL
==============
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL : C:\Teste\wsnfe_teste.php.wsdl
// Encoding : ISO-8859-1
// Codegen : [wfDebug,wfUseSerializerClassForAttrs]
// Version : 1.0
// (9/1/2012 16:30:42 - 1.33.2.5)
// ************************************************************************ //

unit wsnfe_teste;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:string - http://www.w3.org/2001/XMLSchema

// [WARNINGS]************************************************************** //
// Unable to sort type StrEnvNfe due to circular reference!
// ************************************************************************ //

EnvNfe = class; { http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php }



// ************************************************************************ //
// Namespace : http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php
// ************************************************************************ //
EnvNfe = class(TRemotable)
private
Fokk: WideString;
published
property okk: WideString read Fokk write Fokk;
end;

StrEnvNfe = array of EnvNfe; { http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php }

// ************************************************************************ //
// Namespace : http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php
// soapAction: http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php/EnvNfe
// transport : http://schemas.xmlsoap.org/soap/http
// style : rpc
// binding : webserviceBinding
// service : webservice
// port : webservicePort
// URL : http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php
// ************************************************************************ //
webservicePortType = interface(IInvokable)
[{F5E8C09B-C9AF-5E29-ED99-9829709C4046}]
function EnvNfe(const prf: WideString; const usr: WideString; const ctr: WideString; const cnpj: WideString; const cnpjn: WideString; const ie: WideString; const im: WideString; const lgr: WideString; const num: WideString; const cpl: WideString;
const bai: WideString; const cid: WideString; const est: WideString; const cep: WideString; const fon: WideString; const mail: WideString; const dat: WideString; const f1n: WideString; const f1d: WideString;
const f1v: WideString; const f2n: WideString; const f2d: WideString; const f2v: WideString; const f3n: WideString; const f3d: WideString; const f3v: WideString; const f4n: WideString; const f4d: WideString;
const f4v: WideString; const f5n: WideString; const f5d: WideString; const f5v: WideString; const f6n: WideString; const f6d: WideString; const f6v: WideString; const item1: WideString; const item2: WideString;
const item3: WideString; const aliq1: WideString; const aliq2: WideString; const aliq3: WideString; const val1: WideString; const val2: WideString; const val3: WideString; const loc: WideString; const ret: WideString;
const txt: WideString; const val: WideString; const valtrib: WideString; const iss: WideString; const issret: WideString; const desci: WideString; const desco: WideString; const binss: WideString; const birrf: WideString;
const bcsll: WideString; const bpis: WideString; const bcofins: WideString; const ainss: WideString; const airrf: WideString; const acsll: WideString; const apis: WideString; const acofins: WideString; const inss: WideString;
const irrf: WideString; const csll: WideString; const pis: WideString; const cofins: WideString): StrEnvNfe; stdcall;
end;

function GetwebservicePortType(UseWSDL: Boolean=System.False; Addr: string=; HTTPRIO: THTTPRIO = nil): webservicePortType;


implementation

function GetwebservicePortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): webservicePortType;
const
defWSDL = C:\Teste\wsnfe_teste.php.wsdl;
defURL = http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php;
defSvc = webservice;
defPrt = webservicePort;
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = ) then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
//-------------------------------------------------------------------//
// Local onde exibe msg de erro //
// Too many parameters in method EnvNfe //
//-------------------------------------------------------------------//
Result := (RIO as webservicePortType);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;


initialization
InvRegistry.RegisterInterface(TypeInfo(webservicePortType), http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, ISO-8859-1);
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(webservicePortType), http://www.fgmaiss.com.br/issqn/wservice/wsnfe_teste.php/EnvNfe);
RemClassRegistry.RegisterXSClass(EnvNfe, http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, EnvNfe);
RemClassRegistry.RegisterXSInfo(TypeInfo(StrEnvNfe), http://www.fgmaiss.com.br/issqn/ws/wsnfe_teste.php, StrEnvNfe);

end.

============================================
Responder

Gostei + 0

02/02/2015

Andreza Oliveira

Olá,estou com o mesmo problema,gostaria de saber se vc conseguiu revolver
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar