Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

Værktøjet Formålet 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:

, 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:

http://test1-cnspstamdata-batch-copy-ws/service/StamdataReplication KRSoregisterOffset
Kort navnLangt navnStandard værdiBeskrivelse
-h--help
Printer hjælpeteksten med kort opsummering af alle parametre, og stopper eksekveringen derefter
-s--stsUrlhttp://test1
Kort navnLangt navnStandard værdiBeskrivelse
-h--helpPrinter 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--vaultPasswordPassword for den angivne certifikat container-a--certNameNavnet på det certifikat der skal bruges-q--certPasswordPassword for certifikatet der skal bruges-u--skrsUrl.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenServiceURL til STS for at hente en ny adgangstoken
-n--systemName0

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--destinationSti 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--verboseGiver 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:

TE-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, sorreplacedbyentities

-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:

Code Block
> java -jar skrsclient.jar -h
Usage: <main class> [-hv] [-q[=<PASSWORD>]]... [-w[=<PASSWORD>]]... [-a=<NAME>]
Code Block
> 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 [-b=<CVR>] [-c=<NAME>] [-d=PATH] [-m=<MAXRECORDS>]
                 Prints help and exits
  -m, --registerMaxRecords=<MAXRECORDS>[-n=<NAME>] [-o=<OFFSET>] [-p=<PATH>] [-s=<URL>] [-u=<URL>]
                    [-r=<REGISTER>[,<REGISTER>...]]...
  -a, --certName=<NAME>      NumberName ofthe entriescertificate to fetchuse inis each call to SKRSstored under
  -b, --companyCvr=<CVR>     Company CVR number, used when creating an ID card
               Default: 1000
  -n, --systemName=<NAME>    System name, 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
  -od, --registerOffsetdestination=<OFFSET>
PATH     Destination to print all generated files to, can
                 Date offset for when to fetch entries from, can be
     be a relative or full path
  -h, --help                 Prints ahelp unixand timestampexits
 or a date of format "yyyy-MM-dd -m, --registerMaxRecords=<MAXRECORDS>
                             Number of [[' ']['T']HH[':'mm[':'ss]]][XXX]"entries to fetch in each call to SKRS
                               Default: 01000
  -pn, --vaultPathsystemName=<PATH><NAME>    System Certificatename, vaultused towhen use,creating mustan beID incard JKSfor
 format,
                              calling usesthe aSTS
 default Capgemini certificate if none is
-o, --registerOffset=<OFFSET>
                             Date offset for when to provided
fetch entries -qfrom, --certPassword[=<PASSWORD>]can be
                             Password to unlock the certificate
  -r, --registers=<REGISTER>[,<REGISTER>...]  a unix timestamp or a date of format "yyyy-MM-dd
                             List of registers separated by comma to pull data
[[' ']['T']HH[':'mm[':'ss]]][XXX]"
                               Default: 0
  from-p, default is all registers. Available
        --vaultPath=<PATH>     Certificate vault to use, must be in JKS format,
                       registers: sorclassifications, eanlocationcode,
      uses a default Capgemini certificate if                    eanlocationcodeeditype, geolocalisation,none is
                               sorentity, sorshakmap, editypesprovided
  -sq, --stsUrl=<URL>certPassword[=<PASSWORD>]
         URL to STS
                  Password to unlock the certificate
  -r, --registers=<REGISTER>[,<REGISTER>...]
      Default: http://test1.ekstern-test.nspop.dk:
                      List of registers separated by comma to   8080/sts/services/NewSecurityTokenServicepull data
  -u, --skrsUrl=<URL>                URL to SKRS
           from, default is all registers. Available
               Default: http://test1-cnsp.ekstern-test.nspop.dk:
               registers: sorclassifications, eanlocationcode,
              8080/stamdata-batch-copy-ws/service/StamdataRepli
                 eanlocationcodeeditype, geolocalisation,
             cation
  -v, --verbose              Enable verbosesorentity, debuggingsorshakmap, loggingeditypes,
 can be specified
                            sorreplacedbyentities
   multiple times to increase verbosity (up to two
    -s, --stsUrl=<URL>         URL to STS
                               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:

Image Removed

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):

 Image Removed

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

Image Removed

Step 7: Herfra skriv: cd krs

Image Removed

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

Image Removed

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.

Image Removed

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:

Image Added


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 - 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):

 Image Added

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")

Image Added

Step 7: Herfra skriv: cd krs og tryk enter

Image Added

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): 

Image Added

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.

Image Added

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:

View file
nameskrsclient_test1_test2.jar
height250

View file
nameskrsclient_prodtest.jar
height250


Koden til denne kan også findes på Subversion:

...