A maneira como os dados CSV são processados quando são importados é especificada em um arquivo de configuração XML. O nome desse arquivo é transferido para o programa de linha de comando runcsv2ppm como um argumento.
No arquivo de configuração, pode especificar o separador ou renomear cabeçalhos de coluna.
O formato do arquivo XML é especificado pela seguinte DTD:
Elemento ou atributo XML |
Descrição |
Exemplo |
---|---|---|
csvextractor |
Configuração do processo de importação CSV |
Ver abaixo |
fieldseparator |
Separador |
, |
Máscara |
Caractere de mascaramento (os valores importados não estão mascarados) |
" |
hasheaderline |
Os arquivos CSV incluem o cabeçalho |
|
renamefield |
Renomear uma coluna de dados |
Ver abaixo |
name |
Nome de uma coluna de dados gerada a partir de arquivos CSV |
MATERIAL |
newname |
Novo nome da coluna de dados |
Designação do |
skipstartlines |
Linhas iniciais a serem ignoradas |
|
skipendlines |
Linhas finais a serem ignoradas |
|
numberoflines |
Número de linhas iniciais a serem ignoradas. A contagem começa na primeira linha. |
10 |
pattern |
Padrão de caracteres para localizar uma linha de dados a partir da qual as linhas devem ser extraídas (skipstartlines: por padrão, a linha encontrada também é extraída) ou até à qual as linhas devem ser extraídas (skipendlines: a linha encontrada, incluindo todas as linhas seguintes, não é extraída |
Por exemplo, a expressão |
ignorethisline |
Na extração, ignore (yes) ou não ignore (no) a linha de dados que contém o padrão pretendido. Valor padrão: no |
yes |
mincolumn |
Especifica um número mínimo de colunas para definir o início e/ou o final do intervalo de dados a ser extraído. skipstartlines: As linhas são extraídas de (inclusivo) a primeira linha encontrada com pelo menos o número especificado de colunas. skipendlines: As linhas são extraídas de (exclusivo) a primeira linha encontrada com menos do que o número especificado de colunas. |
4 |
Configuração de exemplo (csvconfig.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE csvextractor SYSTEM 'csvextractor.dtd'>
<csvextractor>
<fieldseparator>;</fieldseparator>
<mask>"</mask>
<hasheaderline/>
<renamefield name="FIELD_3" newname=
"Order item recorded by"/>
<renamefield name="MATERIAL" newname="Item designation"/>
<skipstartlines>
<pattern ignorethisline="yes">###*</pattern>
</skipstartlines>
<skipendlines>
<pattern>5???;*;*;*;*</pattern>
</skipendlines>
</csvextractor>
Arquivo CSV a ser importado (example.csv)
O arquivo consiste em uma linha de comentário, um cabeçalho e cinco registros de dados:
### Order data 03/25/2006 ###
ORDER NUMBER;POSITION;;MATERIAL;QUANTITY
4711;10;"Harry, ""A"" Williams";Mobile 6600;3
4811;23;"Ben, ""B"" Snyder";Mobile 6601;2
4911;15;"George, ""C"" Nyland";Mobile 6602;1
5011;6;"George, ""C"" Nyland";Mobile 5405;2
5211;23;"George, ""C"" Nyland";Mobile 5410;1
Arquivo de saída no formato do evento de sistema do PPM (event.xml)
O gerador de eventos do sistema CSV usa a configuração CSV de exemplo para gerar o seguinte arquivo de saída XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE eventlist SYSTEM "event.dtd">
<eventlist>
<event>
<attribute type="ORDER NUMBER">4711</attribute>
<attribute type="POSITION">10</attribute>
<attribute type="Order item recorded by"
>Harry, "A" Williams</attribute>
<attribute type="Item designation">Mobile 6600
</attribute>
<attribute type="QUANTITY">3</attribute>
</event>
<event>
<attribute type="ORDER NUMBER">4811</attribute>
<attribute type="POSITION">23</attribute>
<attribute type="Order item recorded by"
>Ben, "B" Snyder</attribute>
<attribute type="Item designation">Mobile 6601
</attribute>
<attribute type="QUANTITY">2</attribute>
</event>
<event>
<attribute type="ORDER NUMBER">4911</attribute>
<attribute type="POSITION">15</attribute>
<attribute type="Order item recorded by"
>George, "C" Nyland</attribute>
<attribute type="Item designation">Mobile 6602
</attribute>
<attribute type="QUANTITY">1</attribute>
</event>
</eventlist>
De acordo com as especificações do arquivo de configuração CSV, a seguinte chamada de linha de comando gera um evento de sistema no arquivo de saída XML para cada registro de dados nos dados CSV:
runcsv2ppm -i example.csv -csvconfig csvconfig.xml -outfile event -nozip
Durante a importação e para todos os eventos de sistema, o nome FIELD_3 associado à terceira coluna de dados é automaticamente substituído por Order item recorded by e a coluna de dados MATERIAL é renomeada para Designação do elemento. Os valores mascarados do tipo de atributo Order item recorded by são desmascarados. A linha de comentário é ignorada na extração conforme especificado para skipstartlines. As últimas duas linhas da área de dados são ignoradas conforme especificado para skipendlines (números de pedido 5011, 5211).