SystemQ Affärssytem Inscanning av fakturor tekninsk beskrivning
Revision:2022-03-23
  1. Ankommande leverantörsfakturor via mail
  2. Bearbetning av inkommande e-fakturor
  3. Ankomsregistrera scannad faktura
  4. Matcha fakturor

Ankommande leverantörsfakturor via mail

Fakturan kommer med e-post. Mailserver tar hand om mailet.
I detta exempel skickar leverantören efakturan till faktura@190000.se som hanteras av en annan exchangeserver som skickar det vidare till SystemQ-servern med epostadressen faktura.190000@ebrev.190000.se
I DNS:n har ebrev.190000.se samma IpNr som SystemQ-servern

  1. script som startar program i SystemQ som processar mailet

    I filen /etc/aliases kan man instruera mailservern att skicka eposten till ett script

    		faktura.190000: "|/opt/SystemQ/sh/Pdf_faktura_60.sh"
    		

    		#/bin/bash
            #
            # mailet kommer att lagras i en fil. $$ gÎr att filen fÔr ett unikt nummer
            #  
            # Filen kommer att lagras i mappen /disk2/data-ml/systemq/mail
    
            FILE=/disk2/data-ml/systemq/mail/pdf_faktura.$$
    
            # mailet ligger i standard input som med cat skickas till filen 
    
            cat FILE 
    
            # chmod 777 $FILE
    
            USER=GBK
    
            # FORETAG Ìr klintens nr i SystemQ
            FORETAG=60
            DLGDRIVER=BACKGROUND
            # RULE styr vilket program som skall köras i SystemQ
            RULE=4010
            VER=83
            VOLMAIL=/disk2/data-ml/systemq/mail/
            export FILE USER DLGDRIVER FORETAG RULE VER VOLMAIL
    
            cat FILE /disk2/pdf_faktura60.copy
    
            # Starta SystemQ och bearbeta mailet
    
            /opt/eloquence/8.3/bin/eloqcore -t2 SystemQ 2>/disk4/httplogs/pdf_faktura_60.$$.trace
    
            # CALL Pdf_faktura(#1,STRUCT Global,Exit_rule)
    
            exit
          
    	    
  2. Bearbetning av inkommande e-fakturor
    1. Pdf_faktura.Faktura_ebrev
    2. Öppnar filen /disk2/data-ml/systemq/mail/pdf_faktura.$$ Global.Res$(3)=TRIM$(File$)
    3. Delar upp filen i flera filer som får samma namn och med ett löpnr
      1. Global.Res$(3)=TRIM$(File$)
      2. Part_code$(Part), ev kodning av fil
        1. "base64"
      3. Parts_lines(Part), antal rader i filen
      4. Part_char$(Part), "iso-8859-1","utf-8"
      5. Part_cont$(Part), innehåll
        1. "content-type:"
        2. "multipart/alternative"
        3. "multipart/mixed"
        4. "text/html","text/plain"
        5. "application/pdf","application/octet-stream"

          lagrar namn efter name=

      6. Scan$=FNMapvol$("SCAN",1), /disk2/data-ml/systemq/scan
      7. To_file$=FNAdd_file$(Scan$,Global.Res$(14)".txt",1)
    4. Kodar upp kodade filer typ "text/html","text/plain"

      Undersöker om From eller To var kodade, hanterar vissa specialadresser (GOSUB From)

    5. Hämtar egna kontatpersoner i ##
      1. Person_mail.Organisation.Avdelning$=VÅR-EFAKT"
      2. Person_ekonomi.Organisation.Avdelning$="EKONOMI"
      3. Person_fel.Organisation.Avdelning$="FEL-E-FAKT"
    6. Hämtar kontatpersoner i From

Ankomsregistrera scannad faktura

Klicka på filnamn Filnamn Path_scan=/disk2/data-ml/systemq/scan Web_copy: Visa pdf GOSUB Match /disk2/data-ml/systemq/scan/91826578_kundservice_malmo_duni_com.pdf Txt_file$=/disk2/data-ml/systemq/scan/91826578_kundservice_malmo_duni_com.txt CALL Efaktura(#1,STRUCT Global,STRUCT Faktura,STRUCT Faktura_tmp,Txt_file$,41) Analys GOSUB Get_match Hämta inställningar DBGET (Com.B$(4),"MATCH",7,Com.S(*),"@",Com.Buf$,Foretag.Foretagsnr$) Read_line

Matcha fakturor