Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Mude em direção ao Escritório sem Papéis com Imagens Prontas para Auditorias Contábeis

Melhore a documentação contábil com XML e PHP

Colin Beckingham, Writer and Researcher, Freelance
Colin Beckingham is a freelance researcher, writer, and programmer who lives in eastern Ontario, Canada. Holding degrees from Queen's University, Kingston, and the University of Windsor, he has worked in a rich variety of fields including banking, horticulture, horse racing, teaching, civil service, retail, and travel and tourism. The author of database applications and numerous newspaper, magazine, and online articles, his research interests include open source programming, VoIP, and voice-control applications on Linux. You can reach Colin at colbec@start.ca.

Resumo:  Os gerentes regularmente fornecem aos auditores uma documentação de suporte. Em um escritório baseado em papel, essa tarefa pode se tornar inconveniente e difícil. Veja como o XML, juntamente com o PHP e as funções de imagem, ajuda nos processos de auditoria e também fornece um suporte à indexação eficiente e abrangente para vários gerentes.

Data:  05/Jul/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  838 visualizações
Comentários:  


Suponha que o auditor da empresa aborde o seu escritório baseado em papel e solicite a documentação de suporte referente a uma transação mostrada nas suas contas. Essa solicitação não é um problema quando os documentos são poucos e podem ser encontrados facilmente nos seus registros em papel. No entanto, as auditorias tendem a ser completas, e as transações que justificam uma auditoria costumam ser complicadas, envolvendo muitos documentos, cujo rastreamento leva tempo. A probabilidade de perder algum testemunhal aumenta com essa complexidade. Se um único documento não for rastreável, todo o processo será colocado em dúvida.

Acrônimos usados frequentemente

  • HTML: Hypertext Markup Language
  • PDF: Portable Document Format
  • XML: Extensible Markup Language

Os sistemas de indexação complicados e competitivos são um motivo pelo qual os documentos se tornam impossíveis de rastrear em um escritório baseado em papel. Um gerente quer armazenar um documento em um arquivo, e outro gerente quer armazená-lo em outro. As duplicatas físicas para satisfazer a ambos aumentam o requisito de armazenamento de grande volume. Surgem discussões sobre qual deles é o documento original e confiável.

Um sistema contábil totalmente profissional permite que detalhes sobre documentos relacionados sejam armazenados no sistema junto com os detalhes da transação, para que a recuperação seja rápida e fácil. A tecnologia pode fornecer uma solução alternativa até mesmo nos casos em que esse recurso não é fornecido. Este artigo mostra como o XML e o PHP podem fornecer a estrutura e o mecanismo de recuperação para oferecer esse tipo de suporte para a auditoria.

Um exemplo de transação do ponto de vista da auditoria

Documentos associados a uma transação contábil podem seguir este padrão:

  • Resolução da diretoria contendo a decisão de contratar
  • Rascunho e discussão do contrato
  • Um ou mais destes documentos:
    • Justificativa do gerente para a contratação única
    • Várias cotações obtidas de fornecedores qualificados
    • Justificativa do gerente em relação à escolha a partir das cotações enviadas
  • Assinatura do contrato com o vencedor da licitação, juntamente com acordos complementares
  • Faturas — e para cada uma delas:
    • Certificação do trabalho concluído
    • Cheque cancelado ou outra certificação de pagamento e recibo
  • Certificação final do trabalho concluído
  • Documentos relacionados a impostos pagos

Nesse caso, a filial executiva toma a decisão de gastar fundos. O gerente elabora um contrato que cumpre os requisitos e inicia um processo de licitação, convocando interessados. O fornecedor é escolhido de acordo com as regras de contratação da diretoria, e o contrato é assinado. Os pagamentos para os contratados — cada um dois quais provavelmente requer a sua própria transação nas contas — exigem uma certificação do trabalho concluído e do pagamento efetuado. Cada estágio requer um documento físico ou substituto confiável que o gerente pode apresentar ao auditor.

um livro escrito à mão ou arquivo contendo detalhes dos documentos é bastante viável em escritórios pequenos. Entretanto, em um contexto de auditoria, a tecnologia tem a vantagem de ser rápida e escalável.


Banco de dados de documentos XML

Não é obrigatório usar XML como backend, mas um documento XML é simplesmente um arquivo de texto — portanto, é totalmente transparente e legível em pequenas quantidades. Considere o código da Listagem 1.


Listagem 1. O backend em XML

<?xml version="1.0" encoding="UTF-8"?>
<auditList>
  <projects>
    <project projid="xyz987">
      <boardMinute>2011-04-07-xxxx</boardMinute>
      <draftContractA>2011-04-07-xxxx</draftContractA>
      <contractA>2011-04-07-xxxx</contractA>
      <contractB>2011-04-08-xxxx</contractB>
      <contractC>2011-04-09-xxxx</contractC>
      <workCertA>2011-04-11-xxxx</workCertA>
      <workCertB>2011-04-11-xxxx</workCertB>
      <workCertC>2011-04-11-xxxx</workCertC>
    </project>
  </projects>
  <transactions>
    <transaction accid="abc123" projid="xyz987">
      <soleSourceAuth></soleSourceAuth>
      <invoice>2011-04-11-xxxx</invoice>
      <cheque>2011-04-21-xxxx</cheque>
    </transaction>
    <transaction accid="def123" projid="xyz987">
      <sourceAuth>2011-04-07-xxxx</sourceAuth>
      <invoice>2011-04-11-xxxx</invoice>
      <cheque>2011-04-21-xxxx</cheque>
    </transaction>
    <transaction accid="ghi123" projid="xyz987">
      <sourceAuth>2011-04-07-xxxx</sourceAuth>
      <invoice>2011-04-11-xxxx</invoice>
      <cheque>2011-04-21-xxxx</cheque>
    </transaction>
  </transactions>
</auditList>

A marcação da Listagem 1 descreve um sistema básico que é útil para o departamento de contabilidade e para o gerente de projeto. O elemento auditList é a raiz e tem dois elementos filho —projects e transactions— Cada um deles é um contêiner para os detalhes relevantes ao departamento que lhe deu o nome. Os documentos físicos originais ficam armazenados em uma pasta, com uma pasta separada para cada dia. Conforme os documentos são incluídos na pasta, recebem um número exclusivo consecutivo. Com base na data e no número, é possível encontrar facilmente qualquer documento. O trabalho desse projeto requer três contratados separados — um tem contratação única, e os outros foram contratados de forma competitiva. O gerente do projeto considera todos os contratos como parte do mesmo registro, porque pensa no projeto como um todo. O gerente de contabilidade precisa de uma lista baseada em transações, para que esses registros se refiram a apenas um pagamento. O atributo accid será o número exclusivo de ID de transação que o sistema de contabilidade atribui a essa transação. Esse ID fornece uma ligação positiva entre os sistemas de contabilidade e arquivamento. As transações também contêm um atributo que está relacionado à lista do gerente do projeto (projid), e isso também funciona no sentido inverso, permitindo ligar registros de projetos a transações.

Observação: A autorização de contratação única referente ao contrato A está faltando — essa omissão será um sinal de advertência para o auditor. Essa autorização é deixada em branco deliberadamente, como uma "armadilha" para uma verificação.

Esse arquivo pode ser lido e interpretado visualmente sem necessidade de outras tecnologias, desde que a lista seja curta. Em listas mais extensas, é necessário contar com alguma forma de recuperar as informações com eficiência. Há várias formas de fazer isso — uma das formas é com o PHP e a biblioteca de funções SimpleXML.


Recuperação de documentos PHP

Do ponto de vista contábil, a chave para a lista é o ID exclusivo que o sistema de contabilidade atribui à transação. O código na Listagem 2 se destina a obter a partir da lista todas as transações, caso nenhum filtro seja especificado, ou uma única transação juntamente com as informações relacionadas do projeto.


Listagem 2. Consulta contábil

<?php
$transFilter = $argv[1];
$xml = simplexml_load_file("backend.xml");
echo "=====\nSummary for accounts section\n";
if (isset($transFilter)) {
  echo "=====\nTransaction filter $transFilter\n=====\n";
} else {
  echo "=====\nNo filter - showing all transactions\n=====\n";
}
foreach ($xml->transactions->transaction as $t) {
  if (!$transFilter or $t['accid'] == $transFilter) {
    if ($t['accid'] == $transFilter) {
      $projectFilter = trim($t['projid']);
    }
    echo "Detail for transaction ".$t['accid']."\n";
    foreach ($t->children() as $tc) {
      echo $tc->getName()." : ".$tc."\n";
    }
  }
}
if (isset($projectFilter)) {
  echo "=====\nAssociated project $projectFilter\n=====\n";
  foreach ($xml->projects->project as $p) {
    if ($p['projid'] == trim($projectFilter)) {
      echo "Detail for project ".$p['projid']."\n";
      foreach ($p->children() as $pc) {
          echo $pc->getName()." : ".$pc."\n";
      }
    }
  }
}
echo "=====\nEnd of search\n=====\n";
?>

O código na Listagem 2 primeiro procura um parâmetro passado no array $argv . Esse parâmetro pode existir ou não. Em seguida, o XML da A Listagem 1 é carregada em um objeto para passar por mais processamentos. Como a consulta é enviada para a parte de contabilidade, vai diretamente para a parte de transações e, dependendo da presença ou ausência de um filtro, faz um loop em todas as transações ou procura a transação correspondente ao identificador solicitado. Se o accid correto é encontrado, o projid ou atributo de projeto associado é salvo em uma variável para referência posterior. Se uma transação específica foi solicitada, o segundo loop entra em ação, examinando os detalhes associados ao projeto e imprimindo-os.

Esse script é chamado da seguinte forma na linha de comando, onde acct.php é o nome do script e def123 é o ID da transação obtida a partir do sistema de contabilidade:

> php acct.php def123

A Listagem 3 mostra o resultado dessa consulta executada com relação aos dados na Listagem 1.


Listagem 3. Saída

=====
Summary for accounts section
=====
Transaction filter def123
=====
Detail for transaction def123
sourceAuth : 2011-04-07-xxxx
invoice : 2011-04-11-xxxx
cheque : 2011-04-21-xxxx
=====
Associated project xyz987
=====
Detail for project xyz987
boardMinute : 2011-04-07-xxxx
draftContractA : 2011-04-07-xxxx
contractA : 2011-04-07-xxxx
contractB : 2011-04-08-xxxx
contractC : 2011-04-09-xxxx
workCertA : 2011-04-11-xxxx
workCertB : 2011-04-11-xxxx
workCertC : 2011-04-11-xxxx
=====
End of search
=====

Essa saída fornece as informações necessárias para recuperar as cópias físicas dos documentos que estão armazenadas. Retorna tanto as chaves detalhadas referentes à transação específica e também o contexto do projeto. Em seguida, o auditor tem acesso à resolução da diretoria, ao contrato, à autorização da contratação, à fatura, à certificação do trabalho e ao cheque cancelado. Se todos os documentos estão onde devem estar, a história termina aqui — todos ficam felizes e o auditor vai embora impressionado com a sua eficiência e organização.


Verificação da integridade do PHP

Um script pode recuperar informações de documento e também avisar quando a documentação está incompleta. Conforme o mencionado anteriormente, é importante para a conformidade com as regras da diretoria que exista uma justificativa para a contratação única ou que seja selecionada uma opção adequada a partir de várias propostas enviadas. O código na A Listagem 4 faz uma verificação desse tipo.


Listagem 4. Verificação de integridade

<?php
$xml = simplexml_load_file("backend.xml");
echo "=====\nIntegrity check\n=====\n";
$i = 0;
foreach ($xml->transactions->transaction as $t) {
  if ($t['accid'] == "" or !$t['accid']) {
    $accid = "# $i #";
    echo "Transaction accid missing at transaction $accid\n";
  } else {
    $accid = $t['accid'];
  }
  if (!$t['projid']) echo "Project id missing at transaction $accid\n";
  if ($t->soleSourceAuth=="" and $t->sourceAuth=="") 
      echo "Authorization problem at $accid\n";
  $i++;
}
echo "=====\nEnd of search\n=====\n";
?>

O script na Listagem 4 começa carregando o backend de XML em um objeto. Em seguida, procura cada transação para determinar se um atributo accid está presente. Se esse atributo está faltando, o script imprime uma advertência junto com uma contagem do registro examinado. Em seguida, procura um número de ID de projeto e imprime uma advertência caso este esteja ausente. Finalmente, o código se certifica de que um elemento soleSourceAuth ou sourceAuth esteja presente e tenha um valor válido que, nesse caso, não é uma sequência vazia. Em caso de reprovação nesse teste, o script imprime uma advertência. É possível realizar esse tipo de verificação de integridade verificando de outras formas, mas o SimpleXML oferece um método programático rápido e fácil.

Chame esse script da seguinte forma, sem argumentos, porque o código verifica a lista inteira:

> php integrity.php

O resultado dessa chamada é a advertência fornecida na Listagem 5 porque você está verificando os dados da Listagem 1, na qual sabemos que falta uma referência de documento.


Listagem 5. Saída da Listagem 4

=====
Integrity check
=====
Authorization problem at abc123
=====
End of search
=====


Documentos como imagens

Agora que você tem acesso básico às suas informações de auditoria, outro passo rentável é garantir que todos os documentos estejam disponíveis como imagens. Em seguida, quando um auditor solicita as informações, você envia rapidamente a ele um link para a coleção online de documentos originais, com um educado convite para que ele entre em contato com você se houver necessidade de mais detalhes, e continua com o trabalho muito mais importante de manter os seus registros atualizados.

Aqui está a Listagem 1 novamente, dessa vez com informações de imagens (consulte a Listagem 6).


Listagem 6. Backend de XML com atributos de imagem

<?xml version="1.0" encoding="UTF-8"?>
<auditList>
  <projects>
    <project projid="xyz987">
      <boardMinute image="minute987.pdf">2011-04-07-xxxx</boardMinute>
      <draftContractA image="contractdraft987.pdf">2011-04-07-xxxx</draftContractA>
      <contractA image="contract987A.jpg">2011-04-07-xxxx</contractA>
      <contractB image="contract987B.jpg">2011-04-08-xxxx</contractB>
      <contractC image="contract987C.jpg">2011-04-09-xxxx</contractC>
      <workCertA image="workcert987A.pdf">2011-04-11-xxxx</workCertA>
      <workCertB image="workcert987B.pdf">2011-04-11-xxxx</workCertB>
      <workCertC image="workcert987C.pdf">2011-04-11-xxxx</workCertC>
    </project>
  </projects>
  <transactions>
    <transaction accid="abc123" projid="xyz987">
      <soleSourceAuth image="ssauth987A.odt"></soleSourceAuth>
      <invoice image="invoice987A.png">2011-04-11-xxxx</invoice>
      <cheque image="cheque987A.jpg"></cheque>
    </transaction>
    <transaction accid="def123" projid="xyz987">
      <sourceAuth image="sourceauth987B.odt">2011-04-07-xxxx</sourceAuth>
      <invoice image="invoice987B.png">2011-04-11-xxxx</invoice>
      <cheque image="cheque987B.jpg"></cheque>
    </transaction>
    <transaction accid="ghi123" projid="xyz987">
      <sourceAuth image="sourceauth987C.odt">2011-04-07-xxxx</sourceAuth>
      <invoice image="invoice987C.png">2011-04-11-xxxx</invoice>
      <cheque image="cheque987C.jpg"></cheque>
    </transaction>
  </transactions>
</auditList>

A Listagem 6 é basicamente igual à Listagem 1 com mais detalhes. Agora alguns elementos têm um atributo image, que contém o nome de uma imagem ou documento armazenado como PDF, JPG, ODT ou PNG. Note que, nesse caso, o banco não retorna cheques físicos, mas fornece imagens JPG online após a passagem dos cheques pelo sistema de compensação. Portanto, as imagens estão disponíveis, mas não são armazenados documentos físicos.

A disponibilidade de imagens exige que o departamento de contabilidade faça modificações na consulta para o benefício do auditor. A listagem 7 mostra a consulta atualizada.


Listagem 7. Consulta em PHP com imagens

<?php
$transFilter = $argv[1];
if (!$transFilter) die ('No transaction specified\n');
$path2images = "/path/to/images/";
echo "=====\nAudit response HTML\n=====\n";
$xml = simplexml_load_file("backend2.xml");
echo "=====\nTransaction $transFilter\n=====\n";
foreach ($xml->transactions->transaction as $t) {
  if ($t['accid'] == $transFilter) {
    $projectFilter = trim($t['projid']);
    echo "Detail for accounting transaction '".$t['accid']."'\n";
    foreach ($t->children() as $tc) {
      echo $tc->getName()." : ".$tc." image "
	."<a href='$path2images".$tc['image']."'>".$tc['image']."</a>\n";
    }
  }
}
foreach ($xml->projects->project as $p) {
  if ($p['projid'] == $projectFilter) {
    echo "Detail for project ".$p['projid']."\n";
    foreach ($p->children() as $pc) {
      echo $pc->getName()." : ".$pc." image "
	."<a href='$path2images".$pc['image']."'>".$pc['image']."</a>\n";
    }
  }
}
echo "=====\nEnd of list\n=====\n";
?>

A Listagem 7 começa esperando que a busca seja de uma transação específica. Se nenhum ID de contabilidade é especificado como parâmetro, o script para com uma advertência. Do contrário, ele carrega o backend modificado em um objeto SimpleXML e procura as transações referentes ao ID de contabilidade. Quando a transação é encontrada, o ID de projeto associado é armazenado para uso posterior. Em seguida, o script imprime as informações referentes a documentos associados. Agora, a saída contém uma referência ao documento físico (quando ele existe) e um link incorporado a tags HTML para a imagem armazenada em algum lugar na rede.

O comando de interface de linha de comando a seguir:

> php auditresponsehtml.php def123

produz a saída da Listagem 8.


Listagem 8. Consulta em PHP com imagens

=====
Audit response HTML
=====
=====
Transaction def123
=====
Detail for accounting transaction 'def123'
sourceAuth : 2011-04-07-xxxx image 
  <a href='/path/to/images/sourceauth987B.odt'>sourceauth987B.odt</a>
invoice : 2011-04-11-xxxx image 
  <a href='/path/to/images/invoice987B.png'>invoice987B.png</a>
cheque :  image 
  <a href='/path/to/images/cheque987B.jpg'>cheque987B.jpg</a>
Detail for project xyz987
boardMinute : 2011-04-07-xxxx image
  <a href='/path/to/images/minute987.pdf'>minute987.pdf</a>
draftContractA : 2011-04-07-xxxx image
  <a href='/path/to/images/contractdraft987.pdf'>contractdraft987.pdf</a>
contractA : 2011-04-07-xxxx image
  <a href='/path/to/images/contract987A.jpg'>contract987A.jpg</a>
contractB : 2011-04-08-xxxx image
  <a href='/path/to/images/contract987B.jpg'>contract987B.jpg</a>
contractC : 2011-04-09-xxxx image
  <a href='/path/to/images/contract987C.jpg'>contract987C.jpg</a>
workCertA : 2011-04-11-xxxx image
  <a href='/path/to/images/workcert987A.pdf'>workcert987A.pdf</a>
workCertB : 2011-04-11-xxxx image
  <a href='/path/to/images/workcert987B.pdf'>workcert987B.pdf</a>
workCertC : 2011-04-11-xxxx image
  <a href='/path/to/images/workcert987C.pdf'>workcert987C.pdf</a>
=====
End of list
=====

São feitas várias pressuposições aqui para manter a simplicidade. Primeiro, o script pressupõe que todos os arquivos estão lá e que seus nomes estão corretos; em segundo lugar, pressupõe que o auditor entende o sistema de indexação. Em terceiro lugar, pressupõe que o navegador do auditor pode tratar o tipo de documento — talvez como um download, como um complemento ou aberto por um aplicativo.


PHP e funções de imagem

Também é possível manipular imagens de alguma forma antes da entrega ao leitor. Suponha que a imagem precise ser marcada para que, caso seja impressa, não possa ser confundida com a cópia de archive original. O PHP oferece várias funções de imagem que podem, por exemplo, imprimir em letras grandes a palavra "NULO" no documento ou, talvez, o ID de transação em um canto.

A Listagem 9 fornece um exemplo de fragmento de PHP para incluir uma cadeia de caracteres em um documento antes de realizar o stream para o navegador.


Listagem 9. Incluir detalhes nas imagens

<?php
$im = imagecreatefromjpeg("/path/to/images/contract987C.jpg");
$textcolor = imagecolorallocate($im, 0, 0, 100);
imagestring($im, 5, 55, 55, 'Archive: 2011-04-11-XXXX', $textcolor);
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Nesse código, a imagem é criada a partir do documento original, a cor do texto sobreposto é definida e, em seguida, a cadeia de caracteres Archive: 2011-04-11-XXXX é impressa no canto superior esquerdo como parte da imagem, imprimindo por cima de qualquer coisa que estivesse antes naquele local, 55 pixels abaixo e de um lado a outro. O ideal é que a cor do texto leve em conta a cor do fundo sobre o qual ele aparecerá, para que fique bem legível. Em seguida, a imagem final é entregue ao navegador.

Outras funções de imagem de PHP incluem testar a imagem para ver o tamanho da mesma e, se o tamanho ultrapassa um limite recomendado, escalá-la para um tamanho mais razoável para a tela do auditor.


Indexando para outros departamentos

Considerando que os exemplos neste artigo tentam possibilitar que os departamentos de contabilidade e de projeto indexem um conjunto de arquivos físicos, deve ser simples fazer com que outras seções do backend em XML sejam filhas do elemento raiz, para atuar como contêineres para outros departamentos. Desde que se mantenha a boa formação do documento geral, os scripts em PHP podem incluir ou ignorar outras seções com facilidade.

Se o novo gerente da diretoria quiser manter os seus documentos da diretoria separados, essa abordagem exigirá algumas mudanças na Listagem 1 e na Listagem 6. Tomando como exemplo a Listagem 1, consulte a Listagem 10.


Listagem 10. Backend em XML com a seção incluída

<?xml version="1.0" encoding="UTF-8"?>
<auditList>
  <boardMinutes>
      <boardMinute boardMin="bm1234">2011-04-07-xxxx</boardMinute>
    ...
  </boardMinutes>
  <projects>
    <project projid="xyz987" boardMin="bm1234">
      <draftContractA>2011-04-07-xxxx</draftContractA>
      <contractA>2011-04-07-xxxx</contractA>
      ...
    </project>
  </projects>
  <transactions>
    ...
  </transactions>
  
</auditList>

Nessa modificação da Listagem 1, a entrada de minutas da diretoria que estava na seção projects passou para um novo contêiner boardMinutes , onde foi incluído um índice boardMin em um novo elemento boardMinute no novo contêiner e o mesmo índice foi incluído como atributo no elemento project relacionado. Agora a seção projects pode encontrar as informações relacionadas da diretoria e vice-versa. Dessa forma, suprir as necessidades de diversos gerentes é só uma questão de ter elementos de contêiner adequados e atributos de indexação.


Conclusão

Neste artigo, você explorou algumas ferramentas para lidar com a solicitação de documentação de suporte por parte de um auditor. Claramente, o PHP usado em conjunto com uma lista de documentos organizada como um arquivo XML pode ajudar a garantir que você possa localizar e apresentar os documentos necessários com o mínimo de atraso. A organização das informações dessa forma ajuda a transformar o trabalho realizado quando ocorre uma solicitação de auditoria. Esse trabalho deixa de ser uma situação estressante e com tempo limitado e passa a ser uma tarefa contínua de classificação cuidadosa e recuperação de documentos.

A configuração descrita neste artigo pode ficar mais complicada com a introdução de esquemas XML e tipos de documento para controlar a inclusão e a entrada de itens e para procurar elementos faltantes. As funções de PHP e SimpleXML são muito sensíveis à boa formação do XML — portanto, a edição dos arquivos à mão com um editor simples não é tão efetivo quanto o uso de um aplicativo especializado como o Eclipse (consulte Recursos), que atua para garantir que o documento resultante, depois da edição, seja bem formado.

O escritório totalmente sem papel ainda é uma raridade no mundo dos negócios. Um dos motivos disso é que os escritórios com participação ativa precisam executar softwares compatíveis. Quando todos os elementos desse tipo de sistema forem software livre e grátis, os obstáculos à adoção total serão o treinamento dos funcionários e a resistência dos gerentes à mudança.


Recursos

Aprender

  • PHP e SimpleXML: leia mais sobre esse conjunto de ferramentas que converte o XML para um objeto que pode ser processado com seletores de propriedade normais e iteradores de array.

  • SimpleXML processing with PHP (Elliotte Rusty Harold, developerWorks, outubro de 2006): descubra a extensão SimpleXML, que vem no pacote do PHP versão 5 e permite que páginas em PHP consultem, procurem, modifiquem e republiquem XML em uma sintaxe conveniente para o PHP.

  • Get started with the Eclipse Platform (Chris Aniszczyk e David Gallardo, developerWorks, julho de 2007): saiba mais sobre o desenvolvimento em Eclipse.

  • Getting started with Eclipse, da série de livros DB2 on Campus: confira o e-book grátis. Descubra o que é o Eclipse e pratique por meio de exercícios práticos.

  • Introduction to XML (Doug Tidwell, developerWorks, agosto de 2002): conheça os fundamentos do XML — o que é, por que foi desenvolvido e muito mais nesse tutorial.

  • Thinking XML: Analyze financial reporting using XBRL (Uche Ogbuji, developerWorks, janeiro de 2009): leia sobre usos mais avançados do XML na contabilidade e saiba a interpretar Extensible Business Reporting Language suficientemente bem para entender os arquivamentos financeiros.

  • XML development with Eclipse (Pawel Leszek, developerWorks, abril de 2003): confira ideias sobre a edição de XML em um editor robusto e utilize o poder do XML com o Eclipse.

  • Scripts em PHP: saiba mais sobre essa linguagem de script amplamente utilizada e de uso geral, especialmente adequada para o desenvolvimento na Web, que pode ser incorporada ao HTML.

  • Mais artigos desse autor (Colin Beckingham, developerWorks, março de 2009 - presente): Leia artigos sobre XML, reconhecimento de voz, XHTML, PHP, SMIL e outras tecnologias.

  • Iniciante em XML? Obtenha os recursos necessários para aprender XML.

  • Área de XML do developerWorks: localize os recursos necessários para melhorar as suas qualificações na área de XML. Consulte a Biblioteca técnica de XML para ver uma ampla variedade de artigos técnicos e dicas, tutoriais, padrões e IBM Redbooks

  • Certificação XML da IBM: Descubra como se tornar um Desenvolvedor Certificado pela IBM em XML e tecnologias relacionadas.

  • eventos técnicos e webcasts do developerWorks: Mantenha-se atualizado em relação à tecnologia nessas sessões.

  • o developerWorks no Twitter: Inscreva-se hoje para seguir os tweets do developerWorks.

  • Podcasts do developerWorks: Ouça entrevistas e discussões interessantes para desenvolvedores de software.

  • Demos on demand do developerWorks: Acompanhe demos que abrangem desde a instalação de produto e configuração para iniciantes até funcionalidade avançada para desenvolvedores experientes.

Obter produtos e tecnologias

Discutir

Sobre o autor

Colin Beckingham is a freelance researcher, writer, and programmer who lives in eastern Ontario, Canada. Holding degrees from Queen's University, Kingston, and the University of Windsor, he has worked in a rich variety of fields including banking, horticulture, horse racing, teaching, civil service, retail, and travel and tourism. The author of database applications and numerous newspaper, magazine, and online articles, his research interests include open source programming, VoIP, and voice-control applications on Linux. You can reach Colin at colbec@start.ca.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Industries, Software livre
ArticleID=697431
ArticleTitle=Mude em direção ao Escritório sem Papéis com Imagens Prontas para Auditorias Contábeis
publish-date=07052011
author1-email=colbec@start.ca
author1-email-cc=nancy_hannigan@us.ibm.com

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).