Indholdsfortegnelse

Testudtræksværktøj

Der er udviklet et testværktøj, til at trække data for samtlige SOR2 registre ud af KRS, og gemmer dem lokalt på disken i CSV format. Dette gør test på data i KRS lettere at kontrollere.

Formålet er, at kommende brugere vil kunne teste de udtræk der generes fra KRS servicen. Det kræver, at IT-kyndige fagfolk downloader Java, og generere udtrækkene til forretningsbrugerne, der skal teste data.

KRS-testværktøjet vil være i stand til følgende udtræk (og varianter af disse), som konverteres til .csv-format:

  • Fulde KRS-udtræk til dags dato
  • Deltaudtræk (udtræk fra en given dato til dags dato); disse bruges i produktion til opdatering af et register

Værktøjet køres fra lokal maskine og et deltaudtræk vil forudsætte medsendelse af en "token" (datostempel for seneste udtræk) der oprettes ved udtræk.


Værktøjet er sat op, så mindst mulig opsætning fra brugerens side er nødvendigt. Det kan startes uden at angive nogen parametre overhovedet, og den vil hente alt data fra samtlige registre.

Java er nødvendigt at have installeret og sat op på forhånd (https://www.java.com/en/download/). Værktøjet er udviklet til at blive brugt fra commandline (cmd, powershell, terminal, eller anden implementation af denne type interaktion), men kan også dobbelklikkes; hvis Java er sat op korrekt, så vil download af data starte som normalt, men man kan ikke tydeligt se hvor langt den er nået eller om den eventuelt er afsluttet. I Windows vil den kunne findes i Task Manageren som en javaw.exe proces.

Parametre

Følgende er en liste over alle parametre værktøjet kan tage, deres beskrivelser, samt vigtige noter:

Kort navnLangt navnStandard værdiBeskrivelse
-h--help
Printer hjælpeteksten med kort opsummering af alle parametre, og stopper eksekveringen derefter
-s--stsUrlhttp://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenServiceURL til STS for at hente en ny adgangstoken
-n--systemNameTE-STSNavn på kaldeststemet, bruges i forbindelse med at hente adgangstoken
-c--companyNameCAPGEMINI DANMARK A/SNavn på virksomheden som henter adgangstoken
-b--companyCvr25606965CVR for virksomheden som henter adgangstoken
-p--vaultPath

Sti til certifikat container, bruges til autentificering mod både STS og KRS. Skal være i JKS format. Sættes ingen, benyttes et medfølgende certifikat fra Capgemini.

Konverter fra PKCS12 til JKS format kan gøres ved brug af keytool værktøjet medfølgende i alle Java installationer (se eventuelt hjælp ved at sætte -h til kommandoen for at se yderligere parametre):

keytool -importkeystore -srckeystore <source.p12> -srcstoretype pkcs12 -srcalias <soureAlias> -destkeystore <destination.jks> -deststoretype jks -deststorepass <destinationPassword> -destalias <destinationAlias>

-w--vaultPassword
Password for den angivne certifikat container
-a--certName
Navnet på det certifikat der skal bruges
-q--certPassword
Password for certifikatet der skal bruges
-u--skrsUrlhttp://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-batch-copy-ws/service/StamdataReplicationURL til KRS
-o--registerOffset0

Offset værktøjet skal begynde at hente data fra, 0 angiver fra begyndelsen af (alt data).

Parametren kan angives på to forskellige måder, UNIX timestamp i sekunder (UTC) eller i et format der matcher "yyyy-MM-dd[[' ']['T']HH[':'mm[':'ss]]][XXX]". Formatet lægger sig op af ISO-8601, men fuld forklaring på alt i formatet kan findes her: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

-m--registerMaxRecords1000Antallet af rækker der skal returneres fra KRS ved hvert kald. Værktøjet kalder kontinuert indtil alt data er hentet ned, dette påvirker bare hvor mange kald den kommer til at lave før at det sker - højere tal giver færre kald til KRS, men også længere ventetid mellem hvert kald, og længere tid før yderligere data skrives til de genererede filer.
-r--registers

Hvilke registre som skal hentes fra KRS separeret med komma. Angives ingen, hentes data for alle registre.

Tilgængelige registre: sorclassifications, eanlocationcode, eanlocationcodeeditype, geolocalisation, sorentity, sorshakmap, editypes

-d--destination
Sti til hvor alle genererede filer skal skrives til disken, kan være relativ eller fuld sti. Sættes ingen, bruges nuværende lokation som destination.
-v--verbose
Giver mere information i konsollen undervejs i eksekveringen. Kan specificeres op til to gange, for mest muligt output (samtlige requests/responses printes).

Eksempel på hvordan output kan set ud, hvis help teksten printes:

> java -jar skrsclient.jar -h
Usage: <main class> [-hv] [-q[=<PASSWORD>]]... [-w[=<PASSWORD>]]... [-a=<NAME>]
                    [-b=<CVR>] [-c=<NAME>] [-d=PATH] [-m=<MAXRECORDS>]
                    [-n=<NAME>] [-o=<OFFSET>] [-p=<PATH>] [-s=<URL>] [-u=<URL>]
                    [-r=<REGISTER>[,<REGISTER>...]]...
  -a, --certName=<NAME>      Name the certificate to use is stored under
  -b, --companyCvr=<CVR>     Company CVR number, used when creating an ID card
                               for calling the STS
  -c, --companyName=<NAME>   Company name, used when creating an ID card for
                               calling the STS
  -d, --destination=PATH     Destination to print all generated files to, can
                               be a relative or full path
  -h, --help                 Prints help and exits
  -m, --registerMaxRecords=<MAXRECORDS>
                             Number of entries to fetch in each call to SKRS
                               Default: 1000
  -n, --systemName=<NAME>    System name, used when creating an ID card for
                               calling the STS
  -o, --registerOffset=<OFFSET>
                             Date offset for when to fetch entries from, can be
                               a unix timestamp or a date of format "yyyy-MM-dd
                               [[' ']['T']HH[':'mm[':'ss]]][XXX]"
                               Default: 0
  -p, --vaultPath=<PATH>     Certificate vault to use, must be in JKS format,
                               uses a default Capgemini certificate if none is
                               provided
  -q, --certPassword[=<PASSWORD>]
                             Password to unlock the certificate
  -r, --registers=<REGISTER>[,<REGISTER>...]
                             List of registers separated by comma to pull data
                               from, default is all registers. Available
                               registers: sorclassifications, eanlocationcode,
                               eanlocationcodeeditype, geolocalisation,
                               sorentity, sorshakmap, editypes
  -s, --stsUrl=<URL>         URL to STS
                               Default: http://test1.ekstern-test.nspop.dk:
                               8080/sts/services/NewSecurityTokenService
  -u, --skrsUrl=<URL>        URL to SKRS
                               Default: http://test1-cnsp.ekstern-test.nspop.dk:
                               8080/stamdata-batch-copy-ws/service/StamdataRepli
                               cation
  -v, --verbose              Enable verbose debugging logging, can be specified
                               multiple times to increase verbosity (up to two
                               times)
  -w, --vaultPassword[=<PASSWORD>]
                             Password to unlock the certificate vault

Det lange og det korte navn for hver parametre kan bruges uafhængigt af hvad der ellers bliver brugt.

Eksempler

Den simpleste usecase, er at hente alt data for samtlige registre i test1 miljøet. Dette gøres ved at køre følgende kommando:

java -jar skrsclient.jar

Det vil give et resultat der ligner dette:


Alternativt, hvis man gerne vil hente et delta udtræk fra en bestemt dato og til nu, kan det gøres på en af følgende måder:

java -jar skrsclient.jar -o 1587986772

eller

java -jar skrsclient.jar -o 2020-04-27T13:26:12+02:00

eller måske lidt mere simpelt

java -jar skrsclient.jar -o 2020-04-27


I et lidt mere kompliceret eksempel, således kan kommandoen se ud hvis et andet certifikat benyttes til udtrækkene:

java -jar skrsclient.jar -p vault.jks -w "password123" -a "foces"


Opsætning og første kørsel; step-by-step

Step 1: Download- og installér Java; Link til Java

Step 2: Download skrsclient.jar; Nederst på siden eller fra dette link;ved eventuel fejlmeddelelse, click "Behold"

Step 3: Åbn stifinder og lav en mappe ny mappe ved navn "KRS", på C-drevet (Denne Computer → C: → Højre-click og opret ny mappe) *et andet drev kan bruges, men i de fleste tilfælde vil C være standarden

Step 4: Find den downloadede skrsclient.jar og flyt den til den nye mappe KRS.

Step 5: Åbn command-line/kommandoprompt (Gøres nemmest ved at trykke "Windows-tast" og så skriv "cmd"; dette virker uafhængigt af sprog)

Step 6: Nu skal vi finde KRS-clienten - kommandoprompten ser formodentlig sådan ud (eller lignende):

 

Uafhængigt af den nuværende lokation, skriv "cd C:\" og tryk enter, for at komme til roden af C-drevet (cd er kort for "Change Directory")

Step 7: Herfra skriv: cd krs og tryk enter

Step 8: Nu er vi i den folder hvor vi har placeret vores KRS-client. For at verificere før kørsel skriv "dir" og tryk enter (dir er kort for "Directory"): her skal vi gerne kunne se vores downloadede client (skrsclient.jar): 

Step 9: Vi kan nu lave en test kørsel: Skriv "java -jar skrsclient.jar -r editypes" for at lave et historisk udtræk fra editype-registeret. Dette ligger nu i KRS-mappen.

Afsluttende noter: 

  • For at kunne følge afviklingen af- og se fremdrift på udtræk, kan man med fordel tilføje "-v", for at øge "verbosity", i sin kommando; dette lader clienten vise mere information om processen; her er et eksempel: "java -jar skrsclient.jar -v" (vil give fuldt udtræk med lidt status på afvikling)
  • Fuldt historisk udtræk tager gerne et par timer.
  • Filer i KRS-mappen bliver overskrevet hvis de ikke flyttes før næste kørsel; enten brug -d til at lave udtræk i en specifik mappe, eller flyt filerne efter udtræk.
  • "java -jar skrsclient.jar -v -o 2020-04-28" giver et deltaudtræk (opdateringsoverblik) af alle registre, fra 28.april 2020


Download

JAR filen for klienten kan hentes her:

skrsclient.jar

Koden til denne kan også findes på Subversion:

https://svn.nspop.dk/svn/capgemini/SORServices/NSP/skrsclient/trunk



  • No labels