« クロストークを減らすために | トップページ | 先週火曜日に注文した基板がもうできた »

2018.02.19

Digikeyの新しいInvoiceをインポートできるようにした

特電ではDigikeyからたくさん仕入れているので、InvoiceのPDFを自動的に解析してデータベースに登録するような仕組みを作っていました。

しかし、2月10日ごろからDigikeyのInvoiceの形式が変わってしまいました。て困っていてもしょうがないので、なんとか新しい形式のInvoiceを解析できるようにしました。

Invoice1

新しいInvoiceのPDFは、テキストにコピーすると、こうなります。

1 190 0 190 PART: 490-6470-1-ND DESC: CAP CER 10UF 6.3V X5R 0805
COO : CHINA ECCN: EAR99 HTSUS: 8532.24.0020
12.68000 2409 T
LEAD FREE ROHS COMP REACH UNAFFECTED Jun-2016
2 220 0 220 PART: 445-4112-1-ND DESC: CAP CER 10UF 6.3V X5R 0603
COO : JAPAN ECCN: EAR99 HTSUS: 8532.24.0020
7.11000 1564 T
LEAD FREE ROHS COMP REACH UNAFFECTED Jan-2017

簡単に説明すると、

数字 空白 数字 空白 数字 空白 数字 空白 PART:

の行は、注文数量や、注文したDigikey品番などを表しています。

その次のCOO:で始まる行は、生産国、ECCNなどを示しています。

その次の、数字 数字 Tの行は単価と金額、消費税の意味です。

最後は鉛フリーやRoHSのステータスを示しています。

sun

preg_match("/([0-9]+)\s([0-9]+)\s([0-9]+)\s([0-9]+)\sPART:\s(\S+)/",$line,$matches))とかで解析できるかと思ったのですが、

すべての行がこの形式で来るわけではありません。

不定期にMercury: Cert on File. For more information contact RoHS@DigiKey.comという行が来たり、CUST番号(顧客が勝手につけられる品番)を付けると、行の順序が変わってしまいます。

そこで、ある程度はどんな順序で来ても解析できるようにしておかなければなりませんが、無事に取り込むことができるようになりました。

Analyzed

これで溜まりに溜まったDigikeyから入荷した部品を仕分けることができました。Many

これ以上、DigikeyのInvoiceの形式が変わりませんように・・

|

« クロストークを減らすために | トップページ | 先週火曜日に注文した基板がもうできた »

コメント

コメントを書く



(ウェブ上には掲載しません)




« クロストークを減らすために | トップページ | 先週火曜日に注文した基板がもうできた »