beredskabsalarm api. · beredskabsalarm api. 6 beskrivelse af dataset/datatable i api’et arbjedes...

40
Beredskabsalarm API. 1 Indhold Indledning .................................................................................................................................................. 4 API beskrivelse opdateret.............................................................................................................................. 5 07-12-2015.................................................................................................................................. 5 14-12-2015.................................................................................................................................. 5 17-12-2015.................................................................................................................................. 5 22-03-2016.................................................................................................................................. 5 25-03-2016.................................................................................................................................. 5 04-08-2016.................................................................................................................................. 5 20-10-2016.................................................................................................................................. 5 08-11-2016.................................................................................................................................. 5 Beskrivelse af Dataset/Datatable .................................................................................................................. 6 Opret en reference til webservicen i Visual Studio ....................................................................................... 7 Beskrivelse af funktioner ............................................................................................................................... 7 createSmsGroup ........................................................................................................................................ 7 Eksempel 1 på brug af createSmsGroup i .NET C# (send til adresse) .............................................. 8 Eksempel 2 på brug af createSmsGroup i .NET C# (send til alle i et postnummer) ........................ 10 createSmsGroup3 .................................................................................................................................... 11 GroupProperties ....................................................................................................................... 11 Eksempel på brug af createSmsGroup3 i .NET C# (send til adresse) ............................................. 12 createSmsGroup4Benchmark .................................................................................................................. 13 prepareSmsGroup ................................................................................................................................... 13 Eksempel på brug af prepareSmsGroup i .NET C# (send til adresse) ........................................... 14 prepareSmsGroupClear ........................................................................................................................... 15 deleteDelayedSmsGroup ......................................................................................................................... 16 Klasser brugt i deleteDelayedSmsGroup: ................................................................................... 16 DeleteGroup .................................................................................................................................... 16 DeleteGroupStatus .......................................................................................................................... 16 deliveryReport ......................................................................................................................................... 17 Eksempel på brug af deliveryReport i .NET C# ............................................................................ 17 deliveryReportByGroupIdAndRefId ......................................................................................................... 17 smsGroups ............................................................................................................................................... 17

Upload: others

Post on 08-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

1

Indhold Indledning .................................................................................................................................................. 4

API beskrivelse opdateret. ............................................................................................................................. 5

07-12-2015.................................................................................................................................. 5

14-12-2015.................................................................................................................................. 5

17-12-2015.................................................................................................................................. 5

22-03-2016.................................................................................................................................. 5

25-03-2016.................................................................................................................................. 5

04-08-2016.................................................................................................................................. 5

20-10-2016.................................................................................................................................. 5

08-11-2016.................................................................................................................................. 5

Beskrivelse af Dataset/Datatable .................................................................................................................. 6

Opret en reference til webservicen i Visual Studio ....................................................................................... 7

Beskrivelse af funktioner ............................................................................................................................... 7

createSmsGroup ........................................................................................................................................ 7

Eksempel 1 på brug af createSmsGroup i .NET C# (send til adresse) .............................................. 8

Eksempel 2 på brug af createSmsGroup i .NET C# (send til alle i et postnummer) ........................ 10

createSmsGroup3 .................................................................................................................................... 11

GroupProperties ....................................................................................................................... 11

Eksempel på brug af createSmsGroup3 i .NET C# (send til adresse) ............................................. 12

createSmsGroup4Benchmark .................................................................................................................. 13

prepareSmsGroup ................................................................................................................................... 13

Eksempel på brug af prepareSmsGroup i .NET C# (send til adresse) ........................................... 14

prepareSmsGroupClear ........................................................................................................................... 15

deleteDelayedSmsGroup ......................................................................................................................... 16

Klasser brugt i deleteDelayedSmsGroup: ................................................................................... 16

DeleteGroup .................................................................................................................................... 16

DeleteGroupStatus .......................................................................................................................... 16

deliveryReport ......................................................................................................................................... 17

Eksempel på brug af deliveryReport i .NET C# ............................................................................ 17

deliveryReportByGroupIdAndRefId ......................................................................................................... 17

smsGroups ............................................................................................................................................... 17

Page 2: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

2

Eksempel på brug af smsGroups i .NET C# .................................................................................. 17

GetGroupIdsAndGroupItemsCount ......................................................................................................... 18

Eksempel på brug af GetGroupIdsAndGroupItemsCount i .NET C# .............................................. 18

Tilføj/fjern mobilnummer eller e-mail adresse på bruger. .......................................................................... 18

addEmailToAdress ................................................................................................................................... 18

addPhoneToAdress .................................................................................................................................. 18

addPhoneToAdressAuthCode.................................................................................................................. 19

addPhoneGenerateAuthCode ................................................................................................................. 19

addPhoneConfirmAuthCode ................................................................................................................... 19

Eksempel på brug af addPhoneToAddress: ................................................................................. 20

addedAddressList .................................................................................................................................... 20

AddedAdress ............................................................................................................................ 20

{ ................................................................................................................................................................ 20

Eksempel på brug afaddedAddressList: ...................................................................................... 20

findStreet ................................................................................................................................................. 22

PhoneStatistics ........................................................................................................................................ 23

Eksempel på brug af PhoneStatistics i .NET C#: ........................................................................... 23

AdressStatistics ........................................................................................................................................ 23

Eksempel på brug af AdressStatistics i .NET C#: .......................................................................... 24

Funktioner med eksternt kundenummer/reference ID .............................................................................. 25

createSingleSms ....................................................................................................................................... 25

Eksempel på createSingleSms: ................................................................................................... 25

createSingleAddressBroadcast ................................................................................................................ 26

Eksempel på createSingleAddressBroadcast:.............................................................................. 26

checkAddress ........................................................................................................................................... 27

Eksempel på checkAddress: ....................................................................................................... 27

Result ....................................................................................................................................... 27

checkAddressSumByRefId ....................................................................................................................... 28

deliveryReportByRefId ............................................................................................................................. 28

deliveryReportByUserName .................................................................................................................... 28

Eksempel på deliveryReoprtByRefId: ......................................................................................... 28

Status koder ................................................................................................................................................. 29

smsStatusList ........................................................................................................................................... 29

Page 3: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

3

Eksempel på smsStatusList: ....................................................................................................... 29

SMS 2 WEB .................................................................................................................................................. 30

smsToWebCreateMessage ...................................................................................................................... 30

smsToWebGetMessage ........................................................................................................................... 30

smsToWebGetMessageFromDateToDate ............................................................................................... 30

smsTowebMessage klassen der bruges i smsToWebGEtMessage er defineret som: ............................. 30

smsTowebMessageAddress klassen der bruges i smsTowebMessage klassen er defineret som: .......... 31

smsToWebGetTypes ................................................................................................................................ 31

smsToWebUpdateMessage ..................................................................................................................... 31

smsToWebUpdateMessage Eksempel: ....................................................................................................... 32

SMS 2 INTERNAL .......................................................................................................................................... 33

smsToInternalGetMessages .................................................................................................................... 33

smsTointernalMessage klassen der bruges i smsToInternalGetMessage er defineret som: .................. 33

SMS Skabeloner ........................................................................................................................................... 34

getSmsTemplates .................................................................................................................................... 34

SmsTemplate klassen der returneres fra getSmsTemplates er defineret som: ...................................... 34

Asynkron oprettelse af SMS udsendelse ..................................................................................................... 34

Procesbeskrivelse .................................................................................................................................... 34

Procesfil .................................................................................................................................... 34

SmsGroupItemJSON ........................................................................................................................ 35

Resultatfil ................................................................................................................................. 36

ResultJSON ....................................................................................................................................... 37

Oprydning af filer ...................................................................................................................... 37

Driftsrapportering/Benchmark .................................................................................................................... 37

Webservicen findes på følgende adresser .............................................................................................. 37

Komplekse objekter ................................................................................................................................. 37

Funktioner ............................................................................................................................................... 39

Page 4: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

4

Indledning

Via API’et på Beredskabsalarm.dk er det muligt for programmør at bygge integrationsløsninger mellem

beredskabsalarm og andre systemer. Gennem API’et er det muligt at lave en SMS udsendelse samt

efterfølgende at trække statusrapporter på SMS udsendelserne.

API’et består af en .NET webservice der benytter SOAP 1.2 hvilket understøtter de fleste moderne

programmeringssprog. Eksempler i dette dokument tager udgangspunkt i C# .NET, men der kan selvfølgelig

integreres fra stort set alle sprog der understøtter SOAP. For XML beskrivelse se webservice adressen

nedenfor.

Webservicen findes på følgende adresser:

For dansksproglag: https://beredskabsalarm.dk/services/beredskabsalarm.asmx

For svensksproglag: https://sms-direkt.se/services/beredskabsalarm.asmx

Beredskabsalarm.dk Kunde applikation API

Page 5: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

5

API beskrivelse opdateret.

07-12-2015

- SmsGroupItems indeholder nu også KVHX-nøgle og ExternalRefID. Side 6

- Funktionen checkAddress() er opdateret med Kvhx nøgle funktion side. 25

- Funktion deliveryReport side 17 ændret til også at returnere RefId i retursvar af

SmsLogQueueStauts (se side 7)

- Ny rapport mulighed ” deliveryReportByGroupIdAndRefId”, beskrevet på side 17.

14-12-2015

- Opdateret med ny funktion checkAddressSumByRefId.

17-12-2015

- Opdateret med ny funktion addedAddressList og klasse beskrivelse samt et lille eksempel.

- Opdateret med ny funktion addPhoneConfirmAuthCode.

22-03-2016

- Opdateret med ny funktion GetGroupIdsAndGroupItemsCount og klasse beskrivelse samt et lille

eksempel.

25-03-2016

- Opdateret funktionen GetGroupIdsAndGroupItemsCount med Grouppename

04-08-2016

- Oprettet sektion ang. Asynkron oprettelse af SMS udsendelse.

20-10-2016

- Tilføjet CreateSmsGroup4Benchmark.

08-11-2016

- Tilføjet Driftsrapportering/Benchmark API.

Page 6: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

6

Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup der

indeholder information som gruppe ID (SmsGroupID), afsender navn (SmsSendAs) og tekst til SMS

beskeden (Message). Dette Datatable returneres ved kald af funktionen smsGroups.

Det andet datatable er SmsGroupItems der skal bruges som parameter ved kald af funktionen

createSmsGroup3, SmsGroupItems skal indeholde alle de adresser/postnummer/KVHX-nøgler der ønskes at

lave en SMS udsendelse til.

Det tredje datatable er SmsLogQueueStatus der returneres ved kald af funktionen smsGroups.

SmsLogQueueStatus indeholder en rapport med information om fundne mobilnumre samt leveringsstatus

på SMS udsendelsen.

Det fjerde datatable er ZipAndStreet der retutneres ved kald af funktionen findStreet. Tabellen indeholder

informationer fra Beredskabsalarms vejregister der bygger på data fra CVR registreret og indeholder

postnummer, gade/vejnavn, Et ID fra CVR registeret og kommune og vejkoder.

Page 7: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

7

Opret en reference til webservicen i Visual Studio

I de efter følgende eksempler er der i Visual

Studio lavet en service reference til

Beredskabsalarm der er tildelt namespace

”sRefBeredskabsalarm”.

Beskrivelse af funktioner

createSmsGroup( String UserName, String Password,

String SmsSendAs,

String Message,

Boolean OverruleBlockedNumber,

SmsGroupItemsDataTable GroupItems,

Boolean SendToAddress = true,

Boolean SendToAdmin = false,

Boolean SendToOwner = false)

Denne funktion bruges til at oprette en SMS udsendelse. UserName og Password udfyldes med det tildelte

brugernavn og kodeord, brugeren skal være godkendt af Blue Idea til at benytte Beredskabsalarm.dk’s API.

Hvis det er større udsendelser, udsendelser med over 1000 elementer (GroupItems), så anbefaldes det at

bruge ”Asynkron oprettelse af SMS udsendelse”.

SmsSendAs er den tekst der bliver vist som afsender på den SMS der udsendes. SmsSendAs kan max være

11 karakter lang.

Message er selve SMS teksten denne tekst skal max være 1.530 karakter lang. Karakter herud over vil ikke

blive vist i SMS’en. (0 – 160 karakter svare til en SMS, 161 – 306 karakter svare til to SMS’er og 307 – 459

svare til tre SMS’er osv.)

OverruleBlockedNumber kan sættes til true, hvis man ønsker at tvinge SMS’er ud til brugere der aktiv har

frabedt sig SMS beskeder.

Page 8: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

8

GroupItems er en XML struktur (DataTable) der indeholder alle de adresser/postnummer der ønskes at lave

en SMS udsendelse til.

SendToAddress, SendToAdmin og SendToOwner er ikke påkrævede. Men de giver mulighed for, at oprette

en udsendelse der også sender til administrator eller en ejer af adressen. Man kan vælge kun at sende til

f.eks. ejeren af adressen ved at sætte SendToOwner til true, SendToAddress og SendToAdmin til false.

Medsend mobilnumre: Det er mulig via GroupItems at medsende mobilnumre der også skal have

beskeden. Dette gøres ved, at udfylde CellPhone med en semikolon adskilt tekststreng med de mobilnumre

der også skal have beskeden.

SMS’er uden adresse: Ønskes man at sende SMS’er uden adresseopslag, kan CellPhone i GrpupItems også

benyttes. Det gøres ved at undlade Zip, StreetName, FromNumber, ToNumber og blot angive en semikolon

adskilt tekststreng med mobilnumre i CellPhone.

CreateSmsGroup returner et dataset der består at to datatables, det første er SmsGroup der bl.a.

indeholder et GroupId der kan bruges til at hente en statusrapport via deliveryReport. Det andet er af typen

SmsGroupsItems, det indeholder adresser der ikke kunne findes i Beredskabsalarms adressedatabase.

Eksempel 1 på brug af createSmsGroup i .NET C# (send til adresse) //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for adresse

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable groupItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow drGroupItem;

//Generate a new datarow

drGroupItem = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow)groupItems.NewRow();

//ID's is auto generated

drGroupItem.SetGroupIdNull();

drGroupItem.SetZipAndStreetIDNull();

//Send to address

drGroupItem.Zip = Convert.ToInt16("8600");

drGroupItem.StreetName = "Viborgvej";

drGroupItem.FromNumber = Convert.ToInt32("22");

drGroupItem.ToNumber = Convert.ToInt32("24");

//Letter, Floor , Door is not requered.

drGroupItem.Letter = "B";

drGroupItem.Floor = "st";

drGroupItem.Door = "th";

//It is possible to add a semicolon separated string to a GroupItem whith cellphone numbers.

//drGroupItem.CellPhone = "2012341234;2043214321";

//We do not want to send to all in this zipcode.

drGroupItem.ZipAllIn = false;

//Both sides of the road,

//(EvenOdd = 1 left side of the road, EvenOdd = 2 right side side of the road)

drGroupItem.EvenOdd = 0;

//Adds the row to datatable

groupItems.Rows.Add(drGroupItem);

//Create dataset and datatables for returning values.

DataSet dsResult = new DataSet();

sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable groupDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable notFoundItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

try

{

bAlarm.Open();

Page 9: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

9

dsResult = bAlarm.createSmsGroup("username",

"password",

"Balarm",

"Dette er en test SMS.",

false,

groupItems,

true,

false,

false);

bAlarm.Close();

//The SmsGroup we just created

groupDt = (sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable)dsResult.Tables[0];

//Streets/Zip not found.

notFoundItems = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable)dsResult.Tables[1];

}

catch(Exception ex)

{

this.textBoxStatus.Text = ex.Message;

}

Page 10: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

10

Eksempel 2 på brug af createSmsGroup i .NET C# (send til alle i et postnummer) //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for adresse

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable groupItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow drGroupItem;

//Generate a new datarow

drGroupItem = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow)groupItems.NewRow();

//ID's is auto generated

drGroupItem.SetGroupIdNull();

drGroupItem.SetZipAndStreetIDNull();

//Send all in a zipcode

drGroupItem.Zip = Convert.ToInt16("8600");

drGroupItem.SetStreetNameNull();

drGroupItem.SetFromNumberNull();

drGroupItem.SetToNumberNull();

//We want to send to all in this zipcode.

drGroupItem.ZipAllIn = true;

//Both sides of the road,

//(EvenOdd = 1 left side of the road, EvenOdd = 2 right side side of the road)

drGroupItem.EvenOdd = 0;

//Adds the row to datatable

groupItems.Rows.Add(drGroupItem);

//Create dataset and datatables for returning values.

DataSet dsResult = new DataSet();

sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable groupDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable notFoundItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

try

{

bAlarm.Open();

dsResult = bAlarm.createSmsGroup("username",

"password",

"Balarm",

"Dette er en test SMS.",

false,

groupItems);

bAlarm.Close();

//The SmsGroup we just created

groupDt = (sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable)dsResult.Tables[0];

//Streets/Zip not found.

notFoundItems = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable)dsResult.Tables[1];

}

catch(Exception ex)

{

this.textBoxStatus.Text = ex.Message;

}

Page 11: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

11

createSmsGroup3( String UserName, String Password,

GroupProperties Group,

SmsGroupItemsDataTable GroupItems)

Denne function adskiller sig fra “createSmsGroup2” ved at den gør brug af klassen ”GroupPropperties”.

GroupProperties indeholder egenskaberne for den udsendelse man er ved at oprette.

GroupProperties { String SmsSendAs String BroadcastName String Message Boolean OverruleBlockedNumber Boolean SendToAddress Boolean SendToAdmin Boolean SendToOwner DateTime? DelayBroadcastTo Boolean SendToDefaultReciver Boolean saveBroadcast Boolean saveBroadcastUserName Boolean lookUpPrivate Boolean lookUpBusiness }

UserName og Password udfyldes med det tildelte brugernavn og kodeord, brugeren skal være godkendt af

Blue Idea til at benytte Beredskabsalarm.dk’s API.

SmsSendAs er den tekst der bliver vist som afsender på den SMS der udsendes. SmsSendAs kan max være

11 karakter lang.

BroadcastName Giver mulighed for at navngive udesendelsen, hvilket er valgfrit. Udsendelsesnavnet bliver

brugt til at navngive rapporten. (Max 100 karakter.) Hvis BroardcastName undlades bliver udsendelsen

navngivet med datatid og brugernavn.

Message er selve SMS teksten denne tekst skal max være 1.530 karakter lang. Karakter herud over vil ikke

blive vist i SMS’en. (0 – 160 karakter svare til en SMS, 161 – 306 karakter svare til to SMS’er og 307 – 459

svare til tre SMS’er osv.)

OverruleBlockedNumber kan sættes til true, hvis man ønsker at tvinge SMS’er ud til brugere der aktiv har

frabedt sig SMS beskeder.

SendToAddress, SendToAdmin og SendToOwner er ikke påkrævede. Men de giver mulighed for, at oprette

en udsendelse der også sender til administrator eller en ejer af adressen. Man kan vælge kun at sende til

f.eks. ejeren af adressen ved at sætte SendToOwner til true, SendToAddress og SendToAdmin til false.

DelayBroadcastTo giver mulighed for at forsinke en udsendelsen til den angivende dato og tid.

GroupItems er en XML struktur (DataTable) der indeholder alle de adresser/postnummer der ønskes at lave

en SMS udsendelse til.

SendToDefaultReciver giver mulighed for, at sende beskeden til for valgte standardmodtagere.

SaveBroardcast og SaveBroardcastUserName. (Det er ganske få bruger der er opsat til at kunne bruge

disse parameter og skal derfor normalt ikke bruges.) De gør det muligt at oprette en forberedt udsendelse

der skal godkendes af den bruger der er opsat til dette af Blue Idea. SaveBroardcast sættest til true og

SaveBroardcastUserName sættes til loginnavn på den bruger/profil udsendelsen skal forberedes for.

Page 12: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

12

lookUpPrivate og lookUpBusiness. Disse to parametre gøre det muligt at vælge om man vil lave

nummeropslag på henholdsvis private og/eller erhvervs registrerede mobilnumre. Sættes begge parametre

til false sendes der kun til tilmeldte mobilnumre. Disse bliver de begge default sat til true og dermed laves

der opslag på både privat og erhverv, hvis de ikke gives en værdi.

Medsend mobilnumre: Det er mulig via GroupItems at medsende mobilnumre der også skal have

beskeden. Dette gøres ved, at udfylde CellPhone med en semikolon adskilt tekststreng med de mobilnumre

der også skal have beskeden.

SMS’er uden adresse: Ønskes man at sende SMS’er uden adresseopslag, kan CellPhone i GrpupItems også

benyttes. Det gøres ved at undlade Zip, StreetName, FromNumber, ToNumber og blot angive en semikolon

adskilt tekststreng med mobilnumre i CellPhone.

CreateSmsGroup3 returner et dataset der består at to datatables, det første er SmsGroup der bl.a.

indeholder et GroupId der kan bruges til at hente en statusrapport via deliveryReport. Det andet er af typen

SmsGroupsItems, det indeholder adresser der ikke kunne findes i Beredskabsalarms adressedatabase.

Eksempel på brug af createSmsGroup3 i .NET C# (send til adresse) //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for adresse

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable groupItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow drGroupItem;

//Generate a new datarow

drGroupItem = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow)groupItems.NewRow();

//ID's is auto generated

drGroupItem.SetGroupIdNull();

drGroupItem.SetZipAndStreetIDNull();

//Send to address

drGroupItem.Zip = Convert.ToInt16("8600");

drGroupItem.StreetName = "Viborgvej";

drGroupItem.FromNumber = Convert.ToInt32("22");

drGroupItem.ToNumber = Convert.ToInt32("24");

//Letter, Floor , Door is not requered.

drGroupItem.Letter = "B";

drGroupItem.Floor = "st";

drGroupItem.Door = "th";

//It is possible to add a semicolon separated string to a GroupItem whith cellphone numbers.

//drGroupItem.CellPhone = "2012341234;2043214321";

//We do not want to send to all in this zipcode.

drGroupItem.ZipAllIn = false;

//Both sides of the road,

//(EvenOdd = 1 left side of the road, EvenOdd = 2 right side side of the road)

drGroupItem.EvenOdd = 0;

//Adds the row to datatable

groupItems.Rows.Add(drGroupItem);

//Add groupItem by KVHX key

drGroupItem = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow)groupItems.NewRow();

//ID's is auto generated

drGroupItem.SetGroupIdNull();

drGroupItem.SetZipAndStreetIDNull();

//Send to KVHX

drGroupItem.KVHX = "7516843024";

//Adds the row to datatable

groupItems.Rows.Add(drGroupItem);

//Create dataset and datatables for returning values.

Page 13: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

13

DataSet dsResult = new DataSet();

sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable groupDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable notFoundItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

//Create group propperties and set them for this broardcast.

sRefBeredskabsalarm.GroupProperties groupSetup = new sRefBeredskabsalarm.GroupProperties();

groupSetup.SmsSendAs = "Balarm";

groupSetup.Message = "Dette er en test SMS.";

groupSetup.OverruleBlockedNumber = false;

groupSetup.SendToAddress = true;

groupSetup.SendToAdmin = false;

groupSetup.SendToOwner = false;

try

{

bAlarm.Open();

dsResult = bAlarm.createSmsGroup3("username",

"password",

groupSetup,

groupItems);

bAlarm.Close();

//The SmsGroup we just created

groupDt = (sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable)dsResult.Tables[0];

//Streets/Zip not found.

notFoundItems = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable)dsResult.Tables[1];

}

catch(Exception ex)

{

this.textBoxStatus.Text = ex.Message;

}

createSmsGroup4Benchmark ( String UserName, String Password,

SmsGroupJSON SmsGroup,

BenchmarkJSON Benchmark)

Denne function adskiller sig fra “createSmsGroup3” ved at den gør brug af klassen ”SmsGroupJSON” og give

muligheden for at give en Benchmark med ved udsendelse oprettelse. Hvis der ikke ønskes at oprette en

benchmark sammen med udsendelsen, anbefaledes det at bruge ”createSmsGroup4” i sted for.

”SmsGroupJSON” samme parameter som “createSmsGroup3”, med undtagelse at From og to -number er en sting. Dette skyldes at det i Sverige er muligt at havde – med i husnummeret. ” BenchmarkJSON” indeholder disse parametre: public DateTime Start { get; set; } public DateTime EstimatedEnd { get; set; } public string Cause { get; set; } public string Category { get; set; } public string ProjectId { get; set; } public string InfoPotalCause { get; set; } public string InfoPotalComment { get; set; }

Hvor Start, EstimatedEnd og Category er påkravet. Category skal match en officiel kategori indenfor bruger typen. InfoPotalCause og InfoPotalCause bliver kun benyttet hvis brugeren har en tilknytning til InfoPotal’en.

prepareSmsGroup( String UserName, String Password,

String SmsSendAs,

String Message,

Boolean OverruleBlockedNumber,

SmsGroupItemsDataTable GroupItems,

Page 14: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

14

Boolean SendToAddress = true,

Boolean SendToAdmin = false,

Boolean SendToOwner = false)

Denne funktion bruges til at forberede en SMS udsendelse der senere færdigøres af brugeren (tilsvarende

brugte UserName) på Beredskabsalarm.dk. Der kan kun være en forberedt udsendelse i gang pr. bruger

afgangen. Når en udsendelse er forberedt kan brugere videresendes til

https://beredskabsalarm.dk/user/SendMessage.aspx hvorfra brugeren skal færdigøre udsendelsen. En

forberedt udsendelse vil blive liggende i Beredskabsalarm til den er færdiggjort eller slettet gennem API’et

via funktionen prepareSmsGroupClear.

Funktionen bruges stort set på samme måde som createSmsGroup, dog har prepareSmsGroup følgende

begrænsninger:

- Der kan ikke medsendes et mobilnummer på adressen.

- Der kan ikke sendes SMS’er uden at angive en adresse.

- Der kan kun være en forberedt udsendelse i gang af gangen.

UserName og Password udfyldes med det tildelte brugernavn og kodeord, brugeren skal være godkendt af

Blue Idea til at benytte Beredskabsalarm.dk’s API.

SmsSendAs er den tekst der bliver vist som afsender på den SMS der udsendes. SmsSendAs kan max være

11 karakter lang.

Message er selve SMS teksten denne tekst skal max være 1.530 karakter lang. Karakter herud over vil ikke

blive vist i SMS’en. (0 – 160 karakter svare til en SMS, 161 – 306 karakter svare til to SMS’er og 307 – 459

svare til tre SMS’er osv.)

OverruleBlockedNumber kan sættes til true, hvis man ønsker at tvinge SMS’er ud til brugere der aktiv har

frabedt sig SMS beskeder.

GroupItems er en XML struktur (DataTable) der indeholder alle de adresser/postnummer der ønskes at lave

en SMS udsendelse til.

SendToAddress, SendToAdmin og SendToOwner er ikke påkrævede. Men de giver mulighed for, at oprette

en udsendelse der også sender til administrator eller en ejer af adressen. Man kan vælge kun at sende til

f.eks. ejeren af adressen ved at sætte SendToOwner til true, SendToAddress og SendToAdmin til false.

prepareSmsGroup returner et dataset der består at to datatables, det første er SmsGroup. Det andet er af

typen SmsGroupsItems, det indeholder adresser der ikke kunne findes i Beredskabsalarms

adressedatabase.

Eksempel på brug af prepareSmsGroup i .NET C# (send til adresse) //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for adresse

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable groupItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow drGroupItem;

Page 15: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

15

//Generate a new datarow

drGroupItem = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsRow)groupItems.NewRow();

//ID's is auto generated

drGroupItem.SetGroupIdNull();

drGroupItem.SetZipAndStreetIDNull();

//Send to address

drGroupItem.Zip = Convert.ToInt16("8600");

drGroupItem.StreetName = "Viborgvej";

drGroupItem.FromNumber = Convert.ToInt32("22");

drGroupItem.ToNumber = Convert.ToInt32("24");

//Letter, Floor , Door is not requered.

drGroupItem.Letter = "B";

drGroupItem.Floor = "st";

drGroupItem.Door = "th";

//It is possible to add a semicolon separated string to a GroupItem whith cellphone numbers.

//drGroupItem.CellPhone = "2012341234;2043214321";

//We do not want to send to all in this zipcode.

drGroupItem.ZipAllIn = false;

//Both sides of the road,

//(EvenOdd = 1 left side of the road, EvenOdd = 2 right side side of the road)

drGroupItem.EvenOdd = 0;

//Adds the row to datatable

groupItems.Rows.Add(drGroupItem);

//Create dataset and datatables for returning values.

DataSet dsResult = new DataSet();

sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable groupDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable();

sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable notFoundItems =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable();

try

{

bAlarm.Open();

dsResult = bAlarm.prepareSmsGroup("username",

"password",

"Balarm",

"Dette er en test SMS.",

false,

groupItems,

true,

false,

false);

bAlarm.Close();

//The SmsGroup we just created

groupDt = (sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable)dsResult.Tables[0];

//Streets/Zip not found.

notFoundItems = (sRefBeredskabsalarm.ApiDataSet.SmsGroupItemsDataTable)dsResult.Tables[1];

}

catch(Exception ex)

{

this.textBoxStatus.Text = ex.Message;

}

prepareSmsGroupClear( String UserName, String Password)

Denne funktion har kun et formål, den sletter en evt. forberedt udsendelse. Den returner en tekst streng der indiker om der er fundet og slettet en udsendelse eller ej.

Page 16: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

16

deleteDelayedSmsGroup (String UserName, String Password, DeleteGroup SmsGroup)

DeleteDelayedSmsGroup bruges til at slette en tidsforsinket udsendelse (SmsGroup). Der kan kun slettes en

udsendes der endnu ikke har nået det tidspunktet hvor til udsendelsen er forsinket. Der kan også kun

slettes udsendelser der er oprettet af ”UserName”. Som svar returneres en klasse kaldet

”deleteGroupStatus”, denne indeholder Id’et der er slettet eller forsøgt slettet, en boolean værdi ”Deleted”

der indikere om noget er slettet samt en statustekst ”Status”.

Klasser brugt i deleteDelayedSmsGroup:

DeleteGroup { Int64 GroupId }

DeleteGroupStatus { Int64 GroupId Boolean Deleted String Status }

Page 17: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

17

deliveryReport(String userName, String password,

Int64 groupId)

Via deliveryRport er det muligt at hente en datatable der indeholder en statusrapport over en SMS

udsendelse (SmsGroup). Funktionen kaldes med parametrene userName, password og groupId. GroupId

kan hentes via funktionen smsGroups, eller i det retur svar der kommer fra createSmsGroup. Funktionen

returnerer en datatable af typen SmsLogQueueStatus. Koden kunne se ud som følgende:

Eksempel på brug af deliveryReport i .NET C#

//Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for report data.

sRefBeredskabsalarm.ApiDataSet.SmsLogQueueStatusDataTable reportDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsLogQueueStatusDataTable();

//Retrieveing the report from beredskabsalarm

bAlarm.Open();

reportDt = bAlarm.deliveryReport("username", "password", Convert.ToInt64("235"));

bAlarm.Close();

//Show the report in a dataGridView.

dataGridViewReport.DataSource = reportDt;

deliveryReportByGroupIdAndRefId(String userName, String password,

Int64 groupId,

Int64 refId)

Via deliveryReportByGroupIdAndRefId er det muligt at hente en datatable der indeholder statusrapporten

over en SMS udsendelse filtreret til kun at indeholde det medsendte ”refId”. (refId kan f.eks. være

medsendt via GroupItem ved udsendelse via createSmsGroup3). Funktionen virker ellers som

deliveryRpoert beskrevet ovenfor.

smsGroups(String userName, String password)

Funktionen smsGroups bruges til at hente de SMS udsendelser en bruger har lavet (SmsGroup). Funktionen

retunerer en datatable af typen SmsGroup.

Eksempel på brug af smsGroups i .NET C#

//Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for SmsGroups.

sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable groupDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsGroupDataTable();

//Retrieveing the SmsGroups from beredskabsalarm

bAlarm.Open();

groupDt = bAlarm.smsGroups("username", "password");

bAlarm.Close();

//Show the groups in a comboBox.

Page 18: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

18

comboBoxSmsGroup.DataSource = groupDt;

comboBoxSmsGroup.DisplayMember = "GroupName";

comboBoxSmsGroup.ValueMember = "SmsGroupId";

GetGroupIdsAndGroupItemsCount(String userName, String password,

DateTime from,

DateTime to)

Via GetGroupIdsAndGroupItemsCount er det muligt at hente en liste med GroupId’er/GroupName og antal

Groupitems, som systemet har registrerede. Denne list er begrænset af det tidsinterval sat i mellem from til

to, og brugeren der kalder funktionen. Det er ikke muligt at hente grupper for andre brugere.

Der returneres en list af GroupIDCount items.

GroupIDCount { long GroupID //GroupID string GroupName { get; set; } //Group navn int? Count { get; set; } //Antal GroupItems tilknyttet gruppen. Null hvis der er }

Eksempel på brug af GetGroupIdsAndGroupItemsCount i .NET C# //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

DateTime from = new DateTime(2016,1,1);

DateTime to = new DateTime(2018, 1, 1);

//Retrieveing the SmsGroups from beredskabsalarm

bAlarm.Open();

List<GroupIDCount> items = bAlarm. GetGroupIdsAndGroupItemsCount("username", "password", from, to).ToList();

bAlarm.Close();

Tilføj/fjern mobilnummer eller e-mail adresse på bruger. addEmailToAdress( String userName, String password, String email, Int16 zip, String streetName, Int32 houseNumber, String letter, String door, String floor,

Boolean removeEmail = false)

Tilføjer en e-mail adresse til adressen. Ønskes en e-mail adresse fjernet fra en adresse sættes removeEmail

= true

addPhoneToAdress(String userName, String password, Int32 number, Int16 zip, String streetName,

Page 19: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

19

Int32 houseNumber, String letter, String door, String floor, Boolean removeNumber = false)

Tilføjer et mobilnummer (number) til adressen. Hvis nummeret ønskes fjerne sættes removeNumber = true. addPhoneToAdressAuthCode(String userName, String password, Int32 number, Int16 zip, String streetName, Int32 houseNumber, String letter, String door, String floor, Boolean removeNumber = false,

String authCode) OG

addPhoneGenerateAuthCode(String userName, String password, String number, String email) OG

addPhoneConfirmAuthCode(String userName, String password, String phone,

String email, String authCode)

AddPhoneToAdressAuthCode tilføjer et mobilnummer til medsendte adresse. Hvis nummeret ønskes fjerne sættes removeNumber = true. Denne funktion skal også bruge en ”authCode”, hvilket er en bekræftelseskode der sendes pr. SMS. Bekræftelseskoden genereres med addPhoneGenerateAuthCode og sendes pr. SMS til det mobilnummer der medsendes som parameter til funktionen. Funktionen addPhoneConfirmAuthCode kan bruges, hvis man ønsker at bekræfte en authCode er valid, funktionen returner en boolean. AddPhoneConfirmAuthCode kan kun bruges EN gang da en authCode slettes efter brug. AuthCode bør bruges før f.eks. før addedAddressList eller addPhoneToAdress.

Page 20: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

20

Eksempel på brug af addPhoneToAddress: //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

bAlarm.Open();

try

{

textBoxStatus.Text =

bAlarm.addPhoneToAdress("username", "password",

20998877, 8000, "Guldsmedgade", 26, "B", null, "2", false).ToString();

}

catch (Exception ex)

{

textBoxStatus.Text = ex.Message;

}

bAlarm.Close();

addedAddressList ( String userName, String password, String cellPhone,

String email) Funktionen addedAddressList undersøger, hvilke adresser der kendes for henholdsvis et mobilnummer og/eller en e-mail adresse. Returnere en liste af klassen:

AddedAdress { String Phone

String Email

String ZipCode

String Street

String Number

String Letter

String Floor

String Door

String Country

String KVHx

Boolean Blocked

}

Parameteren Blocked sættes hvis en adresse er blokeret for modtagelse af beskeder. Så f.eks. hvis en

adresse er ”Blocked” for et givet mobilnummer vil dette mobilnummer ikke modtage en besked hvis der

sendes til den pågældende adresse (Også selv om adresse står i telefonbogs databaserne).

Eksempel på brug afaddedAddressList: //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

bAlarm.Open();

try

{

List<sRefBeredskabsalarm.AddedAdress> addedList = bAlarm.addedAddressList ("username", "password","99999999","[email protected]").ToList();

dataGridViewReport.DataSource = addedList; }

catch (Exception ex)

Page 21: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

21

{

textBoxStatus.Text = ex.Message;

}

bAlarm.Close();

Page 22: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

22

findStreet( String UserName, String Password,

Int16 Zip,

String SearchStreet)

Denne funktion kan bruges til at validere/søge en gade/vejnavn op imod Beredskabsalarmsdatabase. Søge

strengen (SearchStreet) kan angives som kun en del af et gade/vejnavn, dog returnerer funktionen max 50

resultater i form af et datatable (ZipAndStreet fra API datasettet). UserName og Password udfyldes med

det tildelte brugernavn og kodeord, brugeren skal være godkendt af Blue Idea til at benytte

Beredskabsalarm.dk’s API.

Zip skal angives som et 4 cifret postnummer.

Page 23: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

23

PhoneStatistics(String UserName, String Password, Int64? groupId, DateTime? fromDate, DateTime? toDate)

PhoneStatistics bruges til at få statistik over status af SMS pr. mobiltelefon i forbindelse med en

udsendelse. Det kan f.eks være antallet af modtaget SMS’er. Med PhoneStatistics for du returneret en liste

med klassen SmsStatistic som indeholder Status (Status af SMS’en), Count (antallet med denne status) og

Percentage (procentdelen ud fra total udsendte). Udover UserName og Password parametrene, skal

funktionen enten have et groupId eller fromDate og toDate som parametrene. Vælger du kun at fodre den

med groupId, får du statistikken for en specifik udsendelse. Vælger du derimod at fodre den med fromDate

og toDate (groupId skal være null) får du statistikken for perioden mellem de to datoer på tværs af

udsendelser. Du kan maksimalt anmode om 31 dage.

Eksempel på brug af PhoneStatistics i .NET C#:

//Reference to webservice sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Request the list

bAlarm.Open();

var list = bAlarm.PhoneStatistics("username", "password", 666);

bAlarm.Close();

//Do stuff with the data

foreach (var l in list)

{

TextBox1.Text += l.Status + ": " + l.Count + "<br />";

}

AdressStatistics(String UserName, String Password, Int64? groupId, DateTime? fromDate, DateTime? toDate)

AdressStatistics bruges til at få statistik over status af SMS pr. hustand i forbindelse med en udsendelse. Det

kan f.eks være antallet af modtaget SMS’er. Med AdressStatistics for du returneret en liste med klassen

SmsStatistic som indeholder Status (Status af SMS’en), Count (antallet med denne status) og Percentage

(procentdelen ud fra total udsendte). Udover UserName og Password parametrene, skal funktionen enten

have et groupId eller fromDate og toDate som parametrere. Vælger du kun at fodre den med groupId, får

du statistikken for en specifik udsendelse. Vælger du derimod at fodre den med fromDate og toDate

(groupId skal være null) får du statistikken for perioden mellem de to datoer på tværs af dine udsendelser.

Du kan maksimalt anmode om 31 dage. Forskellen på denne funktion og PhoneStatistics er at data fra

denne statistik kan bruges til at få overblik over hvor mange hustande man er kommet i kontakt med, hvor

PhoneStatistics giver et billede af antallet af mobiltelefoner man er kommet i kontakt med, uanset antallet

af mobiltelefoner på registrerings adressen (ejerens bopæl).

Page 24: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

24

Eksempel på brug af AdressStatistics i .NET C#:

//Reference to webservice sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Request the list

bAlarm.Open();

var list = bAlarm.AdressStatistics("username", "password", 666);

bAlarm.Close();

//Do stuff with the data

foreach (var l in list)

{

TextBox1.Text += l.Status + ": " + l.Count + "<br />";

}

Page 25: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

25

Funktioner med eksternt kundenummer/reference ID API’et er 6. februar 2012 blevet udvidet med fire nye funktioner, fælles for alle disse funktioner er, at de

alle har en large integer ”refId” som parameter. Denne integer kan bruges som eksternt referencenummer

f.eks. et kunde nummer. De nye funktioner består af en SMS-gateway ”createSingelSms” denne udsender

en enkelt SMS med refId som reference ID. En funktion der heder ”createSingleAddressBroadcast” der

opretter en udsendelse til en enkelt adresse. Tredje og fjerde funktion (deliveryReportByRefId og

deliveryReportByUserName) returnerer en udsendelsesrapporter ud fra refId og/eller fromDate (dato/tid).

createSingleSms(String UserName, String Password,

String Cellphone,

String SmsSendAs,

String Message,

Int64 refId)

CreateSingleSms udsender en SMS til mobilnummeret givet i Cellphone. Der skal angives en afsender på

maks 11 karakter (og minimum 4 karakter) i SmsSendAs og SMS-teksten medsendes hver SMS i Message.

Der skal også medsendes et reference nummer, dette nummer bruges til at trække leveringsrapporter via

funktionen deliveryReportByRefId. CreateSingleSms returnere en large integer forskelig fra 0 hvis SMS

oprettelsen gik godt.

Eksempel på createSingleSms:

//Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Int64 for return value.

Int64 logId;

//Open the webservice

bAlarm.Open();

//Create SMS

logId = bAlarm.createSingleSms("username", "password", "20777777","Api Test","Tester API funktion",

1213);

//Close the webservice connection.

bAlarm.Close();

Page 26: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

26

createSingleAddressBroadcast(String UserName, String Password,

Int16 ZipCode,

String StreetName,

Int32 fromNumber,

Int32 toNumber,

String letter,

String floor,

String door,

String SmsSendAs,

String Message,

Int64 refId)

CreateSingleAddressBroardcast opretter en udsendelse til en enkelt adresse eller en husnummerserie på samme vej/gade via fromNumber og toNumber. Ønsker man kun, at oprette en udsendels til et enkelt husnummer angives fromNumber og toNumber til samme nummer. Letter, floor og door parameterne er opligatoriske og kan angives til NULL hvis de ikke bruges. Hvis postnummer (ZipCode) og vejnavn (StreetName) kombinationen ikke kendes af vores system smider funktionen følgende Exception ("Street name: lykkevej does not exist in this zip code: 8270")

Eksempel på createSingleAddressBroadcast: //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Int64 from return value witch id the LogID.

Int64 logId;

//Open the webservice

bAlarm.Open();

//Create address broardcast

logId = bAlarm.createSingleAddressBroadcast

("username","password",8000,"Lykkevej",24,"A","","","From me","Test API Adresse funktion", 1213);

//Close the webservice connection.

bAlarm.Close();

Page 27: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

27

checkAddress(String UserName, String Password,

address[] addressList)

CheckAddress er en funktion der bruges til at validere adresser op imod Beredskabsalarm. Funktionen skal bruge brugernavn, password og et array af adresser der skal undersøges. Der kan max sendes 1000 adresser af gangen. Typen address indeholder et resultat (result) for adressen, dette resultat er en enum og kan have følgende statuser: enum CheckAddressResult{StreetNotFound = 0, NoMobile = 1, MobileExists = 2,KvhxNotFound = 4}

Eksempel på checkAddress: //Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Create address array

sRefBeredskabsalarm.address[] addressList = new sRefBeredskabsalarm.address[4];

//Add 1. address

sRefBeredskabsalarm.address address = new sRefBeredskabsalarm.address();

address.Kvhx = "7516843024";

//RefId (Int64) er ikke påkrævet og kun til eget brug.

address.RefId = 1;

addressList[0]= address;

//Add 2. address

address = new sRefBeredskabsalarm.address();

address.ZipCode = 8600;

address.StreetName = "Kvædevej";

address.Number = 25;

//RefId (Int64) er ikke påkrævet og kun til eget brug.

address.RefId = 2;

addressList[1] = address;

//Add 3. address

address = new sRefBeredskabsalarm.address();

address.ZipCode = 9999;

address.StreetName = "nowhere";

address.Number = 1;

//RefId (Int64) er ikke påkrævet og kun til eget brug.

address.RefId = 3;

addressList[2] = address;

//Add 4. address

address = new sRefBeredskabsalarm.address();

address.ZipCode = 8600;

address.StreetName = "Kvædevej";

address.Number = 300;

//RefId (Int64) er ikke påkrævet og kun til eget brug.

address.RefId = 4;

addressList[3] = address;

//Call webservice at do the lookup

addressList = bAlarm.checkAddress("brugernaven", "password", addressList);

//Shows the result in a dataGridView.

dataGridViewReport.DataSource = addressList;

Result:

Page 28: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

28

checkAddressSumByRefId (String UserName, String Password,

address[] addressList)

CheckAddressSumByRefId er en funktion der er en gruppering af resultatet fra checkAddress(). Grupperingen er via RefId, så dette er unikt og med en summering af hvor mange mobilnumre der er fundet på de adresser der har været markeret med RefId’et. Resultatet kunne være som følgende:

deliveryReportByRefId(String userName, String password,

Int64 refId,

DateTime fromDate)

deliveryReportByUserName(String userName, String password,

DateTime fromDate)

Via deliveryReportByRefId eller deliveryReportByUserName er det muligt at hente en statusrapport

(datatable) over SMS udsendelser der er lavet via udsendelser gennem funktionerne createSingleSms og

createSingleAddressBroadcast. Begge funktioner skal have en fromDate (datetime) som parameter,

rapporten der returneres er hændelser sendt senere end fromDate.

Eksempel på deliveryReoprtByRefId:

//Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

//Datatable for report data.

sRefBeredskabsalarm.ApiDataSet.SmsLogQueueStatusDataTable reportDt =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.ApiDataSet.SmsLogQueueStatusDataTable();

//Open webservice

bAlarm.Open();

//Get the report

reportDt =

bAlarm.deliveryReportByRefId("username", "password", 1213,DateTime.Now.AddDays(-1));

//Close webservice connection

bAlarm.Close();

//Show the report in a dataGridView.

dataGridViewReport.DataSource = reportDt;

Page 29: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

29

Status koder Rapporten deliveryReportByRefId levere en statusCode af typen short (Int16). Denne værdi kan oversættes

via funktionen smsStatusList der returnerer en liste over status koder brugt i Beredskabsalarm.

smsStatusList(String userName, String password)

Eksempel på smsStatusList:

//Reference to webservice

sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm =

new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient();

bAlarm.Open();

var statusList = bAlarm.smsStatusList("username", "password");

bAlarm.Close();

//Show status list in a dataGridView.

dataGridViewReport.DataSource = statusList;

Page 30: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

30

SMS 2 WEB SMS 2 WEB modulet er en mulighed for at publicere SMS udsendelser på egen hjemmeside via et iframe

der indlejres på hjemmesiden.

Gennem API’et er det muligt at publicere meddelelser til dette modul via funktionen smsToWebMessage.

Det er også muligt at hente en liste over aktive sms2web meddelelser via funktionen

smsToWebGetMessages.

smsToWebCreateMessage(String userName, String password,

DateTime fromDateTime,

DateTime toDateTime,

String Header,

String Message,

[Boolean Critical],

[Boolean Attention])

Funktionen opretter en ny besked til sms2web modulet med overskriften angivet i Header og beskeden

angivet i Message. Beskeden vil være aktive fra fromDateTime og udløbe på tidspunktet angivet i

parameteren toDateTime. Hvis beskeden bliver oprettet korrekt returneres en boolean ”true”. Skulle noget

gå galt smider funktionen en Exception med en beskrivelse af fejlen.

smsToWebGetMessage( String userName,

String password)

SmsToWebGetMessages funktionen returner en liste af typen (klassen) smsToWebMessage. Klassen

indeholder to sand/falsk værdier CriticalStatus og Attention, disse flag kan sættet, hvis beskeden er kritisk

eller der den skal have særlig opmærksomhed.

SmsTowebMessage klassen indeholder også værdierne SmsToWebType og Adderss. Disse to værdier

benyttes til bruger af et specielt indrapporteringsmodul, hvor SmsToWebType er en tekst der beskriver

typen af indrapportering og Address er adressen der tilhøre indrapporteringen. (Disse vil to værdier vil i de

fleste brugers tilfælde være NULL).

De beskeder der findes i listen er alle aktive beskeder, det vil sige beskeder hvor dagsdato (og nu værende

tidspunk) ligger mellem fromDateTime og toDateTime.

Hvis userName og password er på et kunde-login, vil funktionen returnere beskeder for alle bruger-login

under kunden. Hvor beskederne høre hjemme, kan bestemmes ud fra UserName i klassen

smsTowebMessage.

smsToWebGetMessageFromDateToDate(String userName, String password,

DateTime fromDateTime,

DateTime toDateTime)

SmsToWebGetMessageFromDateToDate fungere stort set som ovenstående og returnere samme type. Her

har man blot mulighed for at hente alle beskeder inden for et defineret datotid område.

smsTowebMessage klassen der bruges i smsToWebGEtMessage er defineret som:

public class smsTowebMessage { public Int64 Id { get; set; }

Page 31: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

31

public String UserName { get; set; } public DateTime FromDateTime { get; set; } public DateTime ToDateTime { get; set; } public String Header { get; set; } public String Message { get; set; } public String InternalMessage { get; set; } public Boolean CriticalStatus { get; set; } public Boolean Attention { get; set; } public Boolean? Completed { get; set; } public String SmsToWebType { get; set; } public smsTowebMessageAddress Address { get; set; } public Int32 TypeId { get; set; } }

smsTowebMessageAddress klassen der bruges i smsTowebMessage klassen er defineret som:

public class smsTowebMessageAddress { public String Kvhx { get; set; } public Int32 Zip { get; set; } public String City { get; set; } public String Street { get; set; } public Int16 HouseNumber { get; set; } public String Letter { get; set; } public String Floor { get; set; } public String Door { get; set; } }

smsToWebGetTypes(String userName, String password)

Funktionen smsToWebGetTypes henter en liste af smsTowebType som er defineret nedenstående. Listen bruges kun af ganske få kunder til indrapportering af gadelys fejl. Så ved du ikke, hvad det er, skal du ikke bruge listen til noget. public class smsTowebType { public Int32 Id { get; set; } public String TypeName { get; set; } }

smsToWebUpdateMessage(String userName, String password,

smsTowebMessage Message)

SmsToWebUpdateMessage bruges til at opdatere en instans af klassen smsTowebMessage. Hvis en

opdatering går godt returner funktionen ”Updated”, hvis en opdatering ikke går godt returneres ”Not

updated!...” med en efter følgende fejlbeskrivelse. Ved ukendte fejl smides en system exception.

Følgende egenskaber på en ”Message” kan opdateres via denne funktion:

Page 32: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

32

Message.Header

Message.Message

Message.InternalMessage

Message.FromDateTime

Message.ToDateTime

Message.TypeId

Message.Attention

Message.Completed

Message.CriticalStatus

smsToWebUpdateMessage Eksempel: //Reference to webservice sRefBeredskabsalarm.beredskabsalarmSoapClient bAlarm = new BeredskabsAlarmTestApi.sRefBeredskabsalarm.beredskabsalarmSoapClient(); List<sRefBeredskabsalarm.smsTowebMessage> messages = new List<sRefBeredskabsalarm.smsTowebMessage>(); bAlarm.Open(); try { var typeList = bAlarm.smsToWebGetTypes("Username", "password").ToList(); messages = bAlarm.smsToWebGetMessages("Username", "password").ToList(); if(messages.Any()) { sRefBeredskabsalarm.smsTowebMessage m = messages.First(); m.Header = m.Header + "-test"; m.Attention = true; m.Completed = true; m.CriticalStatus = true; m.FromDateTime = DateTime.Now; m.ToDateTime = DateTime.Now.AddDays(20); m.Message = m.Message + " - tester"; m.InternalMessage = "Test!"; m.TypeId = typeList[2].Id; textBoxStatus.Text = bAlarm.smsToWebUpdateMessage("Username", "password", m); } } catch (Exception ex) { textBoxStatus.Text = ex.Message; } bAlarm.Close();

Page 33: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

33

SMS 2 INTERNAL SMS 2 INTERNAL er en mulighed for via Beredskabsalarms webinterface, at publicere beskeder der kan

hentes via API’et, med henblik på intern, brug f.eks. til et Intranet. Gennem API’et er det muligt, at hente en

liste over aktive sms2internal meddelelser via funktionen smsToInternalGetMessages.

smsToInternalGetMessages (String userName, String password)

SmsToInternalGetMessages funktionen returner en liste af typen (klassen) smsToInternalMessage. De

beskeder der findes i listen er alle aktive beskeder, det vil sige beskeder hvor dagsdato (og nu værende

tidspunk) ligger mellem fromDateTime og toDateTime.

Hvis userName og password er på et kunde-login, vil funktionen returnere beskeder for alle bruger-login

under kunden. Hvor beskederne høre hjemme, kan bestemmes ud fra UserName i klassen

smsToInternalMessage.

smsTointernalMessage klassen der bruges i smsToInternalGetMessage er defineret som:

public class smsToInternalMessage { public Int64 Id { get; set; } public String UserName { get; set; } public Int64 SmsGroupId { get; set; } public DateTime FromDateTime { get; set; } public DateTime ToDateTime { get; set; } public String Header { get; set; } public String Message { get; set; } }

Page 34: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

34

SMS Skabeloner Der kan på administrations og brugerniveau oprettes SMS skabeloner der kan bruges ved udsendelser.

Disse skabeloner kan hentes via API’et ved at bruge funktionen getSmsTemplates. Funktionen henter

skabeloner der er oprettet på brugerniveau og det administrations niveau der evt. ligger over brugeren (En

bruger har ikke nødvendigvis administrationsniveauet over sig).

getSmsTemplates(String userName, String password)

getSmsTemplates funktionen returner en liste af typen (klassen) SmsTemplate.

SmsTemplate klassen der returneres fra getSmsTemplates er defineret som:

public class SmsTemplate { public Int32 TemplateId { get; set; } public String TemplateName { get; set; } public String SmsText { get; set; } }

Asynkron oprettelse af SMS udsendelse Det er muligt at oprette en SMS udsendelse asynkron. Denne metode anbefales, hvis SMS udsendelsen

indeholder mere end 1000 elementer. Et element er en adresse eller et adresseinterval. Hvis SMS

udsendelsen er mindre, så se afsnit ”Beskrivelse af funktioner” sektionen om createSmsGroup.

Den asynkrone udsendelse metode kan godt tage længere tid om at processer en SMS udsendelse end

createSmsGroup3 API kaldet, men er helt afkoblet fra klienten. Dvs. at klienten kan slukke m.m. når først

udsendelsen er afsendt, hvilket ikke vil påvirke processeringen af udsendelsen.

Procesbeskrivelse

Den asynkrone udsendelse virke via upload af en procesfil til en FTP server. Resultatet skrives ned på

samme FTP server, i en resultatfil.

Der skal gøres opmærksom på at det kan tage flere minutter, før systemet starter med at processer en fil.

Det vil dog ofte tage starte processeringen indenfor 5 minutter.

FTP adgang til den asynkrone udsendelse metode, gives pr. kunde og efter anmodning her om.

Det frarådes at brugeren sletter, eller flytter filer på FTP’seren.

Procesfil

Procesfilen indeholder SMS udsendelse. Den indeholder klassen SmsGroupItemJSON serialize til JSON

format (den er beskrevet længere nede). Navnet på file er et unikt nummer (kunne være en GUID, eller et

tidspunkt) og et procesniveau.

Der findes disse procesniveauer

Navn Beskrivelse

Page 35: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

35

Ready Filen er klar til processering. Brugeren sætter filen i dette niveau,

Processing Systemet er i gang med at processer filen. Systemet sætter automatisk filen i dette niveau.

Done Systemet er færdig med at processer filen. Systemet sætter automadisk filen i dette niveau.

Det anbefales at filer uploades uden en procesniveauangivelse. Først når filen er helt uploadede skal

”Ready” procesniveauangivelse sættes.

Et eksempel på et forløb kunne være:

1. Brugeren uploaderen procesfilen CF78B35768CF.txt til FTP serven.

2. Brugeren omdøber filen ”CF78B35768CF.txt” til ”ReadyCF78B35768CF.txt” (den er nu klar til

processering)

3. Systemet starter med at processer filen og omdøber den til ”ProcessingCF78B35768CF.txt”

4. Systemet er færdig med at processer filen og omdøber den til ”DoneCF78B35768CF.txt”

a. Systemet opretter en ny fil (resultatfil) ved navn ”ResultCF78B35768CF.txt”

SmsGroupItemJSON

Procesfilen indeholder klassen SmsGroupItemJSON serialize til JSON format.

Her er en C# version af klassen SmsGroupItemJSON (se at den indeholder en liste af SmsGroupItemJSON)

class SmsGroupJSON { public string SmsSendAs { get; set; } public string BroadcastName { get; set; } public string Message { get; set; } public bool OverruleBlockedNumber { get; set; } public bool SendToAddress { get; set; } public bool SendToAdmin { get; set; } public bool SendToOwner { get; set; } public DateTime? DelayBroadcastTo { get; set; } public bool SendToDefaultReceiver { get; set; } public bool SaveBroadcast { get; set; } public string SaveBroadcastUserName { get; set; } public bool LookupPrivate { get; set; } public bool LookupBusiness { get; set; } public List<SmsGroupItemJSON> SmsGroupItems { get; set; } } class SmsGroupItemJSON { public long? Id { get; set; } public string KVHX { get; set; } public int? Zip { get; set; } public string StreetName { get; set; } public int FromNumber { get; set; } public int ToNumber { get; set; } public string Letter { get; set; } public string Floor { get; set; } public string Door { get; set; } public short EvenOdd { get; set; } public string CellPhone { get; set; }

Page 36: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

36

public long? ExternalRefId { get; set; } public bool ZipAllIn { get; set; } } Et JSON eksempel med 10 SmsGroupItemJSON elementer:

Resultatfil

Resultatfilen indeholder resultatet af SMS udsendelsen. Den indeholder klassen ResultJSON serialize til JSON format (den er beskrevet længere nede). Filen bliver oprettet når systemet er færdig med at processer SMS udsendelsen. Filen indeholder evt. fejlbeskeder (hvis den er tom, så er de fordi at der ikke

{"SmsSendAs":"rasmusTest","BroadcastName":"","Message":"test","OverruleBlockedNumber":false,"

SendToAddress":false,"SendToAdmin":false,"SendToOwner":false,"DelayBroadcastTo":"2019-01-

01T00:00:00","SendToDefaultReceiver":false,"SaveBroadcast":false,"SaveBroadcastUserName":"","Lo

okupPrivate":false,"LookupBusiness":false,"SmsGroupItems":[{"Id":null,"KVHX":"","Zip":8600,"Street

Name":"Carl Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":"","Zip":8600,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false}]}

Page 37: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

37

har vært nogen fejlbeskeder), Sms gruppe ID’et på den SMS grupper der er oprettet til SMS udsendelsen og de SmsGroupItemJSON systemet ikke kunne finde.

ResultJSON

Resultatfilen indeholder klassen ResultJSON serialize til JSON format.

Her er en C# version af klassen ResultJSON (se at den indeholder en liste af SmsGroupItemJSON, beskrevet i

afsnit SmsGroupItemJSON)

class ResultJSON { public long? SmsGroupId { get; set; } public string ErrorMessage { get; set; } public List<SmsGroupItemJSON> NotFoundStreets { get; set; } }

Et JSON eksempel med 2 ikke funden SmsGroupItemJSON elementer

Oprydning af filer

For at sikker overskuelighed på FTP serveren, så er der indbygget oprydning af filer i forbindelsen med en

asynkron udsendelse. Oprydningen flytter/sletter filer efter disse regler.

1. Efter 2 dage bliver filer flyttet ind i en ”oldFiles” mappe.

2. Efter 100 dage bliver filer slettet.

Driftsrapportering/Benchmark På sms-service.dk er der mulighed for at liste, oprettet, slette og rediger driftsforstyrrelser (Benchmarks).

Der er også mulighed for at lise alle adresser, der er tilknyttet en række driftsforstyrrelser. Der er udviklet

en API der udstiller disse funktioner, som en web-service. Denne API dækker alle funktioner på fanebladet

”Rappotering” og Adresseoplysninger på fanebladet ”Statistik”.

Webservicen findes på følgende adresser

For dansksproglag: https://beredskabsalarm.dk/services/BenchmarkService.asmx

For svensksproglag: https://sms-direkt.se/services/BenchmarkService.asmx

Komplekse objekter Web-servicen bruger en række forskellige komplekse objekter. De er beskrevet i denne sektion

(En SMS-udsendelse)

{"SmsGroupId":183929,"ErrorMessage":null,"NotFoundStreets":[{"Id":null,"KVHX":null,"Zip":8600,"St

reetName":"Carl Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false},{"Id":null,"KVHX":null,"Zip":22220,"StreetName":"Carl

Bernlunds

Gata","FromNumber":1,"ToNumber":100,"Letter":null,"Floor":null,"Door":null,"EvenOdd":0,"CellPho

ne":null,"ExternalRefId":null,"ZipAllIn":false}]}

Page 38: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

38

public class SmsGroup { public long Id { get; set; } public string Name { get; set; } public DateTime Created { get; set; } public string Company { get; set; } public string UserName { get; set; } public DateTime? DelayTo { get; set; } }

(En driftsforstyrrelse)

(InfoPortal- felterne bliver kun brugt hvis det er en ’el’ kategori. Hvis der ikke er sat en

End date, så bliver EstimatedEnd brugt i sted for.)

public class Benchmark

{ public long id { get; set; } public int? CategoryId { get; set; } public DateTime? Start { get; set; } public DateTime? End { get; set; } public DateTime? EstimatedEnd { get; set; } public string InfoPortalCause { get; set; } public string InfoPortalComment { get; set; } public int? CauseId { get; set; } public string ProjectId { get; set; } public long SmsGroupId { get; set; } }

(En driftsforstyrrelseskategori)

(En driftsforstyrrelse kan kun være en kategori. En driftsforstyrrelse kan ikke oprettes uden en kategori.)

public class Category { public int Id { get; set; } public string Name { get; set; } public string CountryCode { get; set; } public int UserTypeId { get; set; } }

(En driftsforstyrrelsesårsag)

(En driftsforstyrrelse kan godt oprettes uden en driftsforstyrrelsesårsag)

public class Cause { public int Id { get; set; } public string Text { get; set; } public int? CauseNumber { get; set; } public int UserTypeId { get; set; } }

(En brugertype)

(en bruger kan kun være en brugertype. CountryCode kan kun være ’dk’ eller ’se’)

Page 39: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

39

public class UserType { public int Id { get; set; } public string Name { get; set; } public string CountryCode { get; set; } }

(Driftsforstyrrelseskategorier og brugertyper)

public class CategorysAndUserTypes { public List<Category> Categories { get; set; } public List<UserType> UserTypes { get; set; } }

(En adresse)

public class Addres { public string Kvhx { get; set; } public int? Zipcode { get; set; } public string Street { get; set; } public int? Number { get; set; } public string Letter { get; set; } public string Floor { get; set; } public string Door { get; set; } public long? BenchmarkMinutes { get; set; } public string CategoryName { get; set; } public int? CategoryId { get; set; } public string UserTypeName { get; set; } public DateTime? BenchmarkStart { get; set; } public DateTime? BenchmarkEnd { get; set; } public string ProjectID { get; set; } public string BenchmarkCauseName { get; set; } public int? UserTypeId { get; set; } public string UserName { get; set; } public int? BenchmarkCount { get; set; } public int? Meters { get; set; } public double? Latitude { get; set; } public double? Longitude { get; set; } public int? BenchmarkId { get; set; } }

Funktioner Denne sektion vil beskrive de forskellige funktioner i Driftsrapportering/Benchmark API’en. Alle funktioner,

undtage getCauses, kræver et login. Dette login udleveres af Blue Idea, og er særlig tilknyttet API’en. Dvs.

at et normalt bruger login, skal gives særlig adgang til API’en.

List<Benchmark> GetBenchmarksAll(String UserName, String Password, DateTime From, DateTime?

End). Henter alle driftsrapporteringer associerede med kunden, og som ligger indenfor

intervallet.

List<Benchmark> GetBenchmarksActive(String UserName, String Password, DateTime From,

DateTime? End). Henter alle aktive driftsrapporteringer associerede med kunden, og så ligger

indenfor intervallet.

Page 40: Beredskabsalarm API. · Beredskabsalarm API. 6 Beskrivelse af Dataset/Datatable I API’et arbjedes der med et dataset bestående af 4 forskellige datatables. Det første er SmsGroup

Beredskabsalarm API.

40

List<Benchmark> GetBenchmarksInactive(String UserName, String Password, DateTime From,

DateTime? End). Henter alle inaktive driftsrapporteringer associerede med kunden, og så

ligger indenfor intervallet.

bool UpdateBenchmark(String UserName, String Password, Benchmark benchmark). Opdatere en

driftsrapport. Returner og det er lykkes at opdater driftsrapporteringen. Der finder

driftsrapporteringen ud fra id’et. Den opdater kun de felter der er udfyldt i

driftsrapporteringen. Det er kun muligt at opdatere en driftsrapportering der er associerede

med kunden.

bool DeleteBenchmark(String UserName, String Password, long id). Sletter en

driftsrapporteringen med det angivet id. Returner og det er lykkes at slette

driftsrapporteringen. Det er kun muligt at slette en driftsrapportering, hvis den er

associerede med kunden.

long CreateBenchmark(String UserName, String Password, Benchmark benchmark). Oprettere en ny

driftsrapportering. Retuner ID’et på den nye driftsrapportering. En driftsrapportering skal

indeholde Start, EstimatedEnd, CategoryId og SmsGroupId. Der kan kun oprettes én

driftsrapportering pr sms udsendelse. Der kan gå op til 20 min. før at den oprettet

Benchmark kommer med i GetBenchmarks… funktionerne.

bool CompleteBenchmark(String UserName, String Password, long id, bool finishNow). Sætter en

driftsrapportering som færdig. Så kommer den på InfoPotalen og tæller med i statistik.

List<Cause> getCauses(). Henter alle valide driftsrapporteringårsager.

CategorysAndUserTypes getCategorysAndUserTypes(String UserName, String Password). Henter

alle valide driftsrapporteringskategorier og brugertyper, for kunde.

List<SmsGroup> getSmsGroups(String UserName, String Password). Henter alle SMS-udsendelser

tilknyttet kunden, som ikke også er tilknyttet en driftsrapportering.

List<Addres> GetBenchmarkAddress(String UserName, String Password, DateTime From, DateTime

End, int affectedMoreThen, int duration, bool groupedList, int? userTypeId, int?

categoryId). Henter alle adresser der er tilknyttet driftsrapporteringer indenfor det

angivet interval. Der kan filtreres på

adresser der er berørt mere end X antal gange (affectedMoreThen)

driftsrapporteringer med en minimum længde af x i minutter (duration)

brugertype af den bruger der har oprettet SMS-udsendelsen (userTypeId)

driftsrapporteringer med den angivet driftsforstyrrelseskategori (categoryId)

Det er desuden muligt at grupper adresser efter brugertyper, driftsforstyrrelseskategori og

adresse (groupedList).