Systemdokumentation

Systemdokumentation

Senast ändrad: 7 oktober, 2019

Följande text beskriver hur PP7 är uppbyggt och hur det samverkar och kommunicerar med databaser och övriga delar av systemet.

Utvecklingsverktyg

PP7 är utvecklat i DataFlex, ett kraftfullt verktyg designat för snabb och effektiv utveckling av transaktionskrävande, databas-kopplade affärssystem.

PP7s webbaserade produkter är även de utvecklade i DataFlex (server-delen utgörs av DataFlex-klasser som skapar klienten via en Javascript-motor. Klienten utgörs av Javascript, XHTML /HTML (5), CSS (3) samt vissa delar i klassisk ASP.

Program

De program-filer (.exe) som PP7 levererar är kompilerade binära filer utifrån den källkod som skrivs i utvecklingsverktyg enligt ovan.

Programmen är Windows-program, och kan således enbart köras på datorer installerade med Windows OS.

PP7s huvudprogram signeras alltid innan leverans med kodsigneringscertifikat utställt mot PP7 Affärssystem AB. Certifikaten införskaffas via Comodo.

Runtime

Alla program från PP7 Affärssystem AB kräver installation av DataFlex Client Engine eller DataFlex Web Application Server. Vilken av produkterna som installeras beror på om PP7 ska användas i Windows-miljö enbart eller både Windows och webb.

Installation av DataFlex runtime görs alltid av behörig PP7-konsult.

Licenser

PP7 hanterar användarlicenser via en webbservice som automatiskt anropas vid upplägg eller ändring av användarantal och behörigheter i systemet. Detta kräver en fungerande internetuppkoppling.

Till runtime-installationen krävs licensnycklar som införskaffas av PP7 Affärsystem AB. DataFlex runtime använder ett program för räkning av licenser som heter VDFDaemon.exe. En process per instans startas av VDFDaemon.exe för att räkna licenser.

Databas

PP7 jobbar mot en SQL databas av typen Microsoft SQL Server (se nedan). För varje företag som läggs upp i PP7 skapas en ny databas i SQL Servern, och varje databas behöver en mapp under PP7s installation där databas-kritisk information sparas.

Rot-databas

PP7 har också en ”rot-databas”, som sparar inställningar för användare och de olika företag som finns upplagda. Denna ”rot-databas” är av typen ISAM (indexed sequential access method) och är därför känslig för vissa inställningar på server och klient. Det är därför viktigt att både servern (där PP7 finns installerad) samt klienterna har ”Opportunistic Locking” avaktiverat.

Microsoft SQL Server

PP7 kopplar sig mot Microsoft SQL Server genom en ”connectivity kit”. Se teknisk beskrivning nedan.

“A connectivity kit from Data Access is a software driver in the form of a single DLL that implements the recognized standard call level interface for sending SQL queries to an SQL DBMS and translating between the SQL data types and Dataflex data types in a way that is completely transparent to the application, i.e. it doesn’t “know” or “care” that it is not using the embedded Dataflex database.”

“The Microsoft SQL Server Connectivity Kit uses the Call Level Interface (CLI) to connect DataFlex programs to SQL Server. CLI is an Application Programming Interface (API) in which functions are provided for applications to process dynamic SQL statements. CLI enables DataFlex to connect to SQL Server databases, issue SQL statements and return data and status information without being compiled against a specific database.”

Drivern använder sig av tabell-definitioner i form av textfiler som sparas i en mapp under PP7s installation. I dessa filer sparas även den ”connection string” som visar vilken SQL Server-instans och databas denna tabell återfinns i. Textfilerna är namnsatta efter tabellens namn med en filändelse som är .INT. Filerna innehåller både DataFlex API information och MS SQL Server API information. Det är kritiskt att dessa filer förblir orörda.

Drivern kommunicerar med SQL Servern genom den port som är uppsatt för SQL Servern. Som standard kommunicerar SQL Servern via port 1433. Detta är den inställning som vi rekommenderar. Ändras den inställningen måste även porten i brandväggen öppnas. Se tekniska krav för mer info.
Systemet ansluter mot SQL Servern över TCP/IP och använder sig av standardmetoder för nätverkskommunikation i Windows och skiljer sig således inte från andra applikationer i det avseendet.

I PP7 Systemunderhåll kan inställningar för kopplingen till SQL Servern justeras. Dessa inställningar är enbart viktiga för delar av PP7 (framförallt rapporter). Det mest kritiska för en korrekt koppling mot databasen finns i ovan nämnda .INT-filer.

Databas-strukturen i PP7 utgörs av tabeller, kolumner och index med unika nycklar. Dessa index och unika nycklar skapas ”on the fly” i SQL Servern via drivern, och är således inte definierade direkt i SQL tabellerna.

Webbtjänster

PP7s webbtjänster går via en Web Application (WebApp) Server som driftar DataFlex-kod och kopplar den mot Windows Internet Information Services (IIS). WebApp kommunicerar via den port som är specificerad i IIS (standard port 80 för http, samt 443 för https). Detta innebär att om kunden vill köra PP7 Webbtjänster via https, är det kundens ansvar att införskaffa certifikat och göra korrekta inställningar i IIS.

Kommunikation mot databas är densamma som enligt ovan.

Inställningar för IIS som krävs av PP7 återfinns i PP7 Tekniska Krav.

Säkerhet

Systemets webbtjänster använder sig av en unik krypteringsnyckel för att säkerställa att känslig data som flyttas till och från klienten är krypterad (såsom filöverföring och försök till ändring av data av extern part på klienten). Vidare registreras enbart ett antal mappar på servern som tillåtna för filöverföring, vilket innebär att alla övriga mappar på servern är skyddade. Alla lösenord för användare sparas krypterade. Överföring av övrig data sker okrypterat.

Att kryptera hela databasen är inte optimalt, då kommunikation fördröjs, databasen växer och sökning i databasen försvåras. Vid hög säkerhetsrisk är det i stället önskvärt att sätta ett starkt lösenord på SQL-databasen, kommunicera via https och eventuellt använd SQL Server Encryption.

OBS! PP7 rekommenderar alltid att använda kommunikation via https-protokollet tillsammans med URL Rewrite och HTTP Response Headers!

Klienter

Alla klienter som ska ha åtkomst till PP7 på Windows måste genomgå en Klientinstallation. Denna installation lägger upp genvägar till PP7, Crystal Reports runtime, PP7PDF (pdf-skrivare) och registrerar ett antal ActiveX-komponenter på klienten. Alla program-filer och databaser ligger alltid på servern.

Loggning

PP7 loggar alla ohanterbara programfel i en logg-fil. Filen heter PP7UnhandledErrorLog.txt och sparas i respektive mapp för den databas felen gäller.

Övriga programfel kan eventuellt återfinnas i Windows Event Log.

PP7 har möjlighet att koppla på loggning av alla transaktioner på valda tabeller i databasen.

Rapporter

Rapporter i PP7 skapas och skrivs ut med hjälp av Crystal Reports XI. Vissa äldre rapporter skrivs ut som en textfil och visas upp med programmet Jarte. Fakturor skrivs ut till PDF-format.

Microsoft Office

Integration med Microsoft Word, Excel, Outlook och Project finns också i PP7 Windows, via COM Interop. I PP7 Web skapar vi Office-filer med hjälp av tredjepartsprodukter enligt Dependencies nedan.

Dependencies

Det finns ett antal filer som PP7 är beroende av, förutom ovan nämnda runtime och rapportmotor. Dessa filer kontrollerar saker som grafiska kontroller och mail. Många av dessa filer måste vara registrerade i Windows via kommandot regsvr32, eller som .NET-kompontenter, på alla klienter som ska kunna köra PP7. PP7 använder idag Side-by-Side registration, vilket gör att nedan filer inte behöver registreras. Alla filer som krävs återfinns i mappen Programs under PP7s installation.

  • Chilkat (för e-post och zip-hantering)
  • CodeJock (för grafiska kontroller i Windows-miljö)
  • GDPicture (för bild och PDF hantering)
  • GemBox (för hantering av MS Word-filer)
  • LibXL (för hantering av MS Excel-filer)
  • amCharts (för grafer på webben)
  • DHTMLX (för GANTT på webben)