Saltar ligações

Receber facturas electrónicas com FileMaker

Dicas e instruções da FileMaker

Facturas electrónicas com FileMaker

A implementação de facturas electrónicas em soluções FileMaker existentes é um tópico cada vez mais importante no mundo dos negócios digitais. Em particular, a crescente obrigação legal de utilizar facturas electrónicas para determinados processos comerciais e os benefícios resultantes, tais como a eficiência de custos e a automatização de processos, tornam essencial para as empresas o desenvolvimento de soluções eficientes para o processamento de tais facturas. Neste contexto, estão disponíveis várias normas para facturas electrónicas, incluindo a XRechnung e a ZUGFeRD/Factur-X. Estas normas apresentam diferentes desafios técnicos, nomeadamente no que diz respeito à leitura e ao tratamento dos dados que contêm.

Desafios na importação de facturas electrónicas

Um dos maiores desafios na importação de facturas electrónicas é a variedade de formatos e tipos de dados que têm de ser processados. Enquanto a estrutura do XRechnung é relativamente clara e só é necessário analisar um documento XML, o processamento de uma fatura ZUGFeRD ou Factur-X representa um desafio maior. Trata-se de documentos híbridos que contêm um documento PDF e dados XML incorporados.

Diferença entre XRechnung e ZUGFeRD/Factur-X

XRechnung: Esta norma contém todos os dados relevantes da fatura num ficheiro XML puro. A leitura destes dados exige que o documento XML seja analisado para extrair a informação necessária. O principal desafio reside na complexidade do formato XML e na necessidade de garantir que todos os campos de dados relevantes são lidos e interpretados corretamente.

ZUGFeRD/Factur-X: Neste formato, os dados XML estão incorporados num ficheiro PDF. Isto significa que o PDF tem de ser primeiro extraído e analisado para se poder aceder aos dados XML. Este processo requer ferramentas especiais ou plugins para extrair de forma fiável a informação incorporada do documento PDF.

Opções para processar PDFs na FileMaker

Um dos principais desafios na importação de facturas ZUGFeRD/Factur-X é extrair os dados XML do PDF. Existem várias abordagens e ferramentas que podem ser integradas na FileMaker:

Plug-in MBS (MonkeyBread Software)O plugin MBS é uma poderosa extensão para FileMaker que oferece uma variedade de recursos, incluindo capacidades abrangentes de processamento de PDF. Com este plugin, o FileMaker pode ler e analisar PDFs para extrair dados XML incorporados. Ele também fornece acesso aos metadados do PDF e suporta a análise e o processamento do conteúdo que ele contém. O plugin MBS é particularmente útil para programadores que necessitam de uma solução flexível e abrangente para processar PDFs nos seus fluxos de trabalho FileMaker.

Plugin DynaPDFO plugin DynaPDF é outra ferramenta poderosa para o processamento de PDFs no FileMaker. Oferece funções para criar, modificar e ler ficheiros PDF e é ideal para aceder a dados XML incorporados em facturas ZUGFeRD/Factur-X. Com o DynaPDF, os dados XML podem ser extraídos de forma segura e disponibilizados para processamento posterior no FileMaker. Além disso, o plugin oferece funções para analisar e extrair texto e imagens de PDFs, tornando-o uma solução versátil para requisitos abrangentes de processamento de PDFs.

Requisitos e considerações técnicas

Há vários aspectos técnicos a ter em conta quando se utilizam esses plugins e ferramentas. Por um lado, isso inclui o licenciamento dos plugins, já que muitas dessas ferramentas estão sujeitas a uma taxa e oferecem diferentes modelos de licença, dependendo da gama de funções. Por outro lado, é necessário um planeamento cuidadoso da integração nas soluções FileMaker existentes para garantir que os plugins funcionem sem problemas e que não ocorram problemas de compatibilidade.

Outro ponto importante é o desempenho da solução. A leitura e o processamento de dados XML a partir de PDFs podem ser computacionalmente intensivos, especialmente se tiverem de ser processadas grandes quantidades de facturas em simultâneo. Por conseguinte, é aconselhável conceber a solução de forma a funcionar eficazmente com os recursos disponíveis e a garantir uma elevada velocidade de processamento.

Software FileMaker ERP com processamento integrado de facturas electrónicas.

Mais informações
Software ERP profissional

Importar e processar XRechnung na FileMaker

Uma implementação abrangente da importação de um XRechnung para uma solução FileMaker inclui, para além dos campos obrigatórios gerais da fatura, o processamento de itens de documento (itens de linha) e uma validação dos dados para garantir a integridade da informação importada. O processo é descrito em pormenor abaixo.

Plugin BaseElements para análise de XML

O plugin BaseElements simplifica significativamente o processamento de dados XML na FileMaker. O plugin oferece uma variedade de funções para alargar a funcionalidade da FileMaker, incluindo a análise de dados XML. Uma das funções mais frequentemente utilizadas para este fim é BE_XPath, que pode ser utilizada para extrair dados XML de um ficheiro ou de uma variável.

Descrição geral do plugin BaseElements

O plugin BaseElements é um plugin gratuito concebido especificamente para a FileMaker para fornecer funcionalidades adicionais. É particularmente útil para trabalhar com XML, JSON, gestão de ficheiros e outros requisitos especiais que a FileMaker não suporta nativamente. Com a função BE_XPath, os dados XML podem ser extraídos de forma rápida e precisa, utilizando expressões XPath para ler partes específicas do documento XML.

Instruções passo a passo para importar um XRechnung

1. preparações no FileMaker

Certifique-se de que a sua base de dados FileMaker contém as tabelas e campos necessários, tal como descrito acima:

Quadro principal "Facturas":

  • Número da fatura
  • Data da fatura
  • Nome do comprador
  • Endereço do comprador
  • Nome do vendedor
  • Endereço do vendedor
  • Montante total
  • Montante do imposto sobre o valor acrescentado
  • Moeda
  • Condições de pagamento

Tabela ligada "Itens de faturação":

  • Descrição do artigo
  • Quantidade
  • Preço unitário
  • Montante total do item
  • Taxa de IVA

Curso rápido de FileMaker

FileMaker rápido e eficaz
aprendizagem em 20 capítulos.

Participar gratuitamente
2. importar ficheiro XML

Carregue o conteúdo do ficheiro XML para uma variável, por exemplo, com a função Importar dados ou lendo o conteúdo diretamente de um ficheiro.

Definir variável [$xmlPath; Valor: "Path/to/the/XInvoice.xml"]

Definir variável [$xmlContent; Valor: BE_ReadTextFromFile($xmlPath)]

--- Importação de campos obrigatórios com BE_XPath ---

Definir variável [$Rechnchnchnchnumber; Value: BE_XPath($xmlContent; "//cbc:ID"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]

Definir variável [$Rechnungsdatum; Value: DateTimeMySQLToFMDate ( BE_XPath($xmlContent; "//cbc:IssueDate"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]]

Definir variável [$CustomerName; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PartyName']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável [$CustomerAddress; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='StreetName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2") & ", " & BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='CityName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável [1TP4VendorName; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PartyName']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável [1TP4VendorAddress; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='StreetName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2") & ", " & BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='CityName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável [$TotalAmount; Value: BE_XPath($xmlContent; "//cac:LegalMonetaryTotal/cbc:PayableAmount"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável [$axTotal; Value: BE_XPath($xmlContent; "//cac:TaxTotal/cbc:TaxAmount"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]
Definir variável [$Currency; Value: BE_XPath($xmlContent; "cbc:DocumentCurrencyCode")]
Definir variável [$PaymentTerms; Value: BE_XPath($xmlContent; "//cac:PaymentTerms/cbc:Note"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

--- Criar um novo registo de dados na tabela principal ---

Novo registo de dados/consulta

Definir valor do campo [Facturas::Número da fatura; $Rnúmero da fatura]
Definir valor do campo [Facturas::Data da fatura; $RInvoice date]
Definir valor do campo [Facturas::Nome do comprador; $Buyer name]
Definir valor do campo [Facturas::Endereço do comprador; endereço $Buyer]
Definir valor do campo [Facturas::Nome do fornecedor; 1TP4Nome do fornecedor]
Definir valor do campo [Facturas::Endereço do fornecedor; endereço 1TP4Vendor]
Definir valor do campo [Facturas::Montante total; $Total montante]
Definir valor do campo [Facturas::Montante do IVA; montante $MVAT]
Definir valor do campo [Facturas::Moeda; $Currency]
Definir valor do campo [Facturas::Condições de pagamento; $Termos de pagamento]

--- Importação de rubricas ---

Definir variável [$PositionenAnzahl; Value: BE_XPath($xmlContent; "count(//cac:InvoiceLine)")]

Definir variável [$Counter; valor: 1]

Início do ciclo

Definir variável [$ArticleDescription; Value: BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Item']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]

Definir variável
[$Menge; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='InvoicedQuantity']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Definir variável
[$EInvoiceLine; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Price']/*[local-name()='PriceAmount']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Definir variável
[$TotalAmountDerPosition; Value: BE_XPath($xmlContent; "//cac:InvoiceLine[" & $Counter & "]/cbc:LineExtensionAmount")]

Definir variável [$MwStStatz; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Item']/*[local-name()='ClassifiedTaxCategory']/*[local-name()='Percent']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Ir para o Layout "Itens da fatura"

Novo registo de dados/consulta

Definir valor do campo [Elementos de faturação::Descrição do artigo; $Adescrição do artigo]
Definir valor do campo [Elementos de faturação::Quantidade; $Quantidade]
Definir valor do campo [Elementos de faturação::Preço unitário; 1TP4Preço unitário]
Definir valor do campo [InvoiceItems::TotalAmountOfItem; $TotalAmountOfItem]
Definir valor do campo [Elementos da fatura::Taxa de IVA; $Mtaxa de IVA]

Sair do ciclo Quando $PositionsNumber = $Counter

Definir variável [$Counter; valor: $Counter + 1]

Fim do ciclo

3. validação dos dados importados

Verificar se todos os campos obrigatórios estão presentes e se não faltam dados. Isto pode ser feito utilizando um script que assegure que todas as variáveis necessárias contêm valores.

Quando [ActualVoid(Facturas::Número da fatura)]
Apresentar a sua própria caixa de diálogo ["Erro: O número da fatura está em falta."].
Sair do script atual
Fim quando

Quando [ActualVoid(Facturas::Data da fatura)]
Apresentar a sua própria caixa de diálogo ["Erro: A data da fatura está em falta."].
Sair do script atual
Fim quando

--- Efetuar verificações de validação adicionais para todos os campos obrigatórios

Quando [Soma dos itens da fatura::Montante total do item ≠ Facturas::Montante total]
Apresentar a sua própria caixa de diálogo ["Erro: A soma das rubricas não corresponde ao montante total"].
Sair do script atual
Fim quando

Outros campos e dados das facturas electrónicas

No nosso guia, concentrámo-nos na importação dos campos obrigatórios mais importantes, de modo a fornecer uma visão geral básica da integração de facturas electrónicas na FileMaker. No entanto, é importante mencionar que as facturas electrónicas podem conter muitos mais campos e informações que são importantes, dependendo do caso de utilização.

Por exemplo, o ID do encaminhamento, que é utilizado principalmente no sector público para identificar unidades administrativas, pode desempenhar um papel decisivo na determinação do destinatário correto. Campos adicionais, como números de referência específicos, informações de pagamento e detalhes fiscais, também são relevantes para melhorar o processamento de facturas e cumprir os requisitos legais e as necessidades individuais da empresa. Uma implementação completa deve, portanto, ser cuidadosamente verificada e, se necessário, complementada com estes campos adicionais para garantir uma solução abrangente. Utilizar o documentação oficial.

Quatro plataformas FileMaker ERP para processos operacionais optimizados.

Pedir informações
Software ERP profissional

ZUGFeRD e muito mais com o plugin MBS e DynaPDF

O MBS FileMaker Plugin é um plugin altamente versátil para FileMaker que fornece funcionalidades avançadas, incluindo a capacidade de ler e gerar facturas electrónicas. Com o plugin MBS, os programadores podem implementar soluções de automação abrangentes para lidar com dados XML e informações de facturas incorporadas. Uma caraterística particularmente valiosa é a integração de DynaPDFuma poderosa biblioteca PDF que permite criar e manipular documentos PDF, incluindo os que suportam o formato ZUGFeRD/Factur-X. Isto significa que o plugin não só é capaz de ler os dados de PDFs e importá-los para a FileMaker, mas também de gerar novas facturas electrónicas que cumprem as normas actuais.

O plugin MBS é fornecido com uma extensa coleção de ficheiros de exemplo que cobrem vários casos de utilização, incluindo a criação e importação de facturas ZUGFeRD. Estes exemplos constituem uma excelente base para se familiarizar rapidamente com o funcionamento do plugin. O fabricante também fornece instruções detalhadas no seu sítio Web que descrevem passo a passo como criar facturas electrónicas utilizando o plugin MBS e o DynaPDF. As instruções mais recentes estão disponíveis em esta ligação que também contém links para download de exemplos de ficheiros de facturas electrónicas. Este recurso é particularmente útil para programadores que pretendam aprofundar a automatização dos processos de faturação na FileMaker e criar facturas electrónicas legalmente compatíveis com as normas ZUGFeRD/Factur-X. 

Publicação no fórum sobre a integração das facturas electrónicas

Publicámos um novo post no nosso fórum dedicado à discussão sobre a integração e o processamento de facturas electrónicas na FileMaker. Neste post, convidamos todas as partes interessadas a colocar questões pessoais e a partilhar as suas experiências. Quer se trate da utilização de plugins como o plugin MBS ou o plugin BaseElements, da implementação de scripts ou da otimização de fluxos de trabalho - esta publicação no fórum é o local perfeito para trocar ideias e beneficiar da experiência da comunidade. Queremos encorajar uma discussão animada onde soluções, desafios e melhores práticas possam ser discutidos. Apareça e faça parte da conversa!

Resumo

A integração da leitura de facturas electrónicas em soluções FileMaker existentes coloca vários desafios, especialmente no processamento de facturas ZUGFeRD/Factur-X. Enquanto o XRechnung é principalmente um desafio baseado em XML, o processamento de ZUGFeRD/Factur-X requer o uso de ferramentas e plugins especiais para PDF, como MBS e DynaPDF. Um planeamento cuidadoso, a consideração dos requisitos técnicos e a seleção dos plugins certos são cruciais para a implementação bem sucedida de uma solução eficiente e fiável.

O plugin gratuito BaseElements e o comando BE_XPath tornam possível o processamento de dados XML na FileMaker e a importação de dados de forma fiável. A utilização de XPath permite uma extração precisa da informação relevante e uma adaptação flexível a diferentes estruturas XML.

Se os ficheiros ZUGFeRD ou Factur-X também tiverem de ser importados e lidos, recomendamos a utilização do plugin MBS em conjunto com o plugin DynaPDF, que também é fornecido com os ficheiros de amostra correspondentes.

Facturas electrónicas com FileMaker

Partilhar esta página:

Um software ERP tão flexível como a sua empresa.
Teremos todo o prazer em o aconselhar.

Software ERP personalizável para Mac, Windows e iOS.

Está aqui: Receber e importar facturas electrónicas com a FileMaker