Eksponering av Vipps-transaksjoner til PowerBI

Ukepenger-løsningen trenger selvfølgelig et godt rapporteringslag, og da er det naturlig å gjøre dette gjennom PowerBI

Vi bruker igjen Power Automate Cloud Flows, og lager et lite mellomlag som i grunn bare håndterer pålogging til Vipps API-et og returnerer all betalingshistorikk som JSON

Flyten som er satt opp til å trigges av HTTP itererer gjennom alle records i CRM som har en ordreId, gjør en spørring mot Vipps sitt API om transaksjonshistorikk, for så å returnere dette som en JSON Array som Power BI kan konsumere.

Vi ser nok at dette ikke er en løsning som vil skalere for veldig mange ordre, men regner med at vi ikke får tusenvis av ordre i systemet vårt akkurat før vi må levere denne demoen 😎

S

Så nå har vi all trasaskjonsdata i PowerBI, og har mulighet til å koble dette til andre data fra Dataverse og andre kilder

“Near-Time”-data fra bonden

Et gammelt indiansk ordspråk lyder som følger (ikke verfisert): “Før du rekker å få sende en lang beskjed via røyksignaler, kan det allerede være for sent”. Dagens bønder har behov for oppdaterte data fortløpende og i vår løsning for vekstkontroll har vi tatt i bruk teknologi som understøtter dette behovet.

Sentralt i løsningen finner vi en Event Hub som kan ta imot data fra IOT sensorer eller fra bildeanalyse. Event hub’en kan videre supportere mange konsumenter av data som følger strømmen i sin egen hastighet.

Som i vår løsning skissert over så inkluderer dette Stream Analytics for analyse og aggregeringsformål, arkivering til andre datalagringstjenster slik som Azure Table Storage eller en .NET Core app som direkte konsumerer og behandler strømmen av data fortløpende.

To enkle Stream Analytics Queries som går leser fra Event Hub og sender data inn i et PowerBI dataset (cowders-sensor2) og til Table Storage (cowderstreamoutput) for historikkformål

Claiming badges

“Right Now” for designet og implementasjonen av en Near-time løsning

Search, Crawl and suggest

We have created an automatic daily web search crawler for giving family kids activity suggestions.

First, we have created a Bing Search API in Azure:

This Bing Search API is consumed by a Power Automate Flow which:

  1. Runs onces every day
  2. Search the web for kids activities
  3. Select on random of the returned suggestions
  4. Create an activity suggestion in Dynamics CRM

Data is listed in Dynamics 365 with URL and description from the search:

We will claim the following badges based on this post:

  1. Data Miner – for enhancing our Dynamics CRM database with data from Bing for kids activity suggestions
  2. Crawler – For building a search Bing API and utilizing this for searching for activities

HTML5 WEB-COMPONENTS

What is HTML5 WEB-COMPONENTS aka custom components.

Custom components is a combination of several standards from the HTML standards.

  • Custom elements: A set of JavaScript APIs that allow you to define custom elements and their behavior, which can then be used as desired in your user interface.
  • Shadow DOM: A set of JavaScript APIs for attaching an encapsulated “shadow” DOM tree to an element — which is rendered separately from the main document DOM — and controlling associated functionality. In this way, you can keep an element’s features private, so they can be scripted and styled without the fear of collision with other parts of the document.
  • HTML templates: The <template> and <slot> elements enable you to write markup templates that are not displayed in the rendered page. These can then be reused multiple times as the basis of a custom element’s structure.

The thing with web-components is that they can be reused across, sites and installations by referencing the js script.

One way of using them is thinking of each component as a autonomous part/app that will not mess up anything else on the page.

You can can style things inside the a custom-element by using --css-variable

Communication between custom-elements can be done using events, setting attrubutes or calling functions on the element.

This component can be used together with anything else as long as it runs in a browser.

I have created a “super simple” demo component that counts up a number in random time and increment.

Creating a global-pushup-counter custom component using lit-element and lit-html.

Super simple, but functional
Buildt and bundled using esbuild.

https://esbuild.github.io/faq/

A new kind of bundler, written in GO to achieve extreme speed.

Embeded in an ASPNET core MVC application
And there it is..

We are claiming three badges for this:

  1. Hipster
  2. High 5
  3. Client side salsa

Ukeplaner for familien med D365 Marketing

Kundereiser er et kjent fenomen i markedsføringens verden. Vi kaller det for familiereiser, og de hjelper deg med å sende ut dagsplaner til barn og voksne, følge opp innleveringer og purre opp slike, og ikke minst kan man få avstemninger om hva fredagsmiddagen skal være. Månedlige pulsundersøkelser er også fint, så man kan ivareta hele familiens helse. Hvordan dette gir forretningsverdi i den virkelige verden håper vi er helt åpenbart, da dette er prima kunde/familie-behandling.

Det begynner med segmenter. Her har vi delt inn i tre segmenter, for barn, voksne og dommere. Det gjør at vi kan ha rett kommunikasjon mot de ulike gruppene. Her kan vi også dele inn i alderssegmenter, eller hva med et eget treningssegment for hele familien?

Selve familiereisen er en tidslinje der vi kan sette opp e-poster, påminnelser, undersøkelser eller kanskje arrangementer som familien skal gjennom. Alle får da full oversikt, og administrator får oversikt over hvem som har sett hva og gjort hva. Full kontroll der altså.

Vi har bygget opp e-postmaler som gjør det enkelt å lage nye dags-agendaer. Vi har også laget innholdsblokker, med ferdig skrevet innhold som enkelt kan tilpasses. Lekser er for eksempel et punkt på agendaen som er ganske repetivt for de fleste barn.

Eksempel på mal, selvsagt med branding, og naturligvis responsivt.

Undersøkelser og surveys sendes ut med Customer Voice, slik at vi får svarene tilbake rett i løsningen, og kan følge opp på behørig vis.

Vi finner glede i å bruke hele D365 suiten i løsningen vår, og nyter hvordan alt henger sammen gjennom Dataverse.

Følge opp IOT Alerts i Customer Service HUB og sensordata i PowerBI for Felleskjøpets fagkonsultenter

Bondens sensorer sender inn kontinuerlige målinger av jordfuktighet, lufttemperatur og luftfuktighet.

Dersom jordfuktigheten går over 70 eller under 5 vil en IOT Alert opprettes i Dynamics Customer Service HUB og knyttes til bonden via sensorens id.

På samme måte vil bilder bonden sender inn til ugressanalyse sendes videre som en IOT Alert til Customer Service HUB for mulig videre oppfølging av Felleskjøpets fagkonsulenter.

Active IOT Alerts med Soil Deviation og Anomalys for ugress

IOT Alertene opprettes i Dynamics ved hjelp av Logic Apps sin Common Data Service-Create Record action.

Logic App som oppretter IOT Alert for ugress
Logic App som oppretter IOT Alert ved uønsket fuktighetsnivå i jorda

Sensordataene sendes til PowerBI via Eventhub og Stream Analytics og fagkonsultenter vil kunne bruke dashboardet til å følge med på sensormåligene ute hos bonden.

PowerBI dashboard med sensordata ment for interne fagkonsulenter

Claiming badges

Poesihjørnet

Det er en ting som har holdt meg våken i natt,
Et Team Spirit badge jeg gjerne skulle hatt.
Vi er jo et lag som elsker hverandre høyt,
Så at dette badge mangler er nesten litt drøyt.

Det begynner med vår helt og team-leader Brage,
Han har slike clowns på laget, og det uten å klage.
Petter Ekæ er jovial som få og prekær grovt og bredt,
Men koden hans er noe av det mest rørende jeg noen gang har sett.

Trond er så blid at det ikke går an,
Gliser så bredt at vi ser mer tann enn mann.
Og når Robert herjer med APIet til Vipps,
Blir jeg så andektig at jeg vil finne frem jakke og slips.

Vår old-school gangster nerd fra Halden, Ulrikke,
Er for oss en helt uvurderlig (lego)brikke.
En tanke som nesten gjør meg litt redd:
Ho var salongberuset når ho herjet I head to head.

Når Karlsen koder på er det ingen bønn,
Vi ser hvorfor han er kjent som Varteigs store sønn.
John Magnus er en annen vi ikke må glemme,
Den kjekkeste på laget – han får min stemme!
Og helt til sist, vårt ferskeste medlem, Kai,
Han ser snill ut, men er en blodtørstig hai.

Hvis ikke det er spirit i denne flokk,
Har alt gått over stein og stokk!

Med hilsen fra Surkålspoeten S, som ønsker å claime Team Spirit Badge

Dude, where’s my dog?

Ever wondered where your dog are when there’s no food around? How about asking Cortana, Siri, Alexa, or even better Boten Anna?

We have created an integrated solution, with CI/CD in Azure Devops, Cognitive Services, Azure Functions and Power Virtual Agent.

The solution starts with an Azure Function written in Visual Studio.

When code is completed, committed and Pull Requested into the main branch, our CICD pipeline (YML) fires and pushes the solution to Azure Functions

The Azure function is running with a set of pre-captured surveillance images (Due to GDPR we are not using live video). Each folder consists of three photos, one from the kitchen, one from the hallway and one from the livingroom.

Azure Blob storage

Each of these photos will be evaluated with the cognitive service vision functionality. Each of the evaulated photos will be returned with an url for the user to check, and with a textual answer to where the dog is actually located.


Boten Anna

The evaluated images:

https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/gang.jpeg
https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/kjokken.jpeg
https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/stue.jpeg

With this solution we claim the following badges:

  1. Power User Love – for usage of the Power Virtual Agent
  2. Stairway to Heaven – For the usage of Azure Devops, Azure Functions, Cognitive Service, Azure Storage, Power Virtual Agent
  3. Power of the shell – for the CI/CD YML publishing
  4. The Existential Risk – for usage of AI through Cognitive Service Vision
Power User Love
Stairway to heaven
power of the shell
the existential risk

Koble Power Platform til Vipps sine APIer

Etter Klossmajorenes gedigne suksess med å kalle Vipps sine API-er fra Postman (https://acdc.blog/skill/vipps-payment-api-smackdown/) har vi nå videreført dette arbeidet til å understøtte ukepenger-prosessen i Dynamics 365 Customer Engagement

Tanken her er at barn skal kunne forespørre sine foreldre om betaling etter utførte oppgaver i hjemmet

Flyten for utbetaling av penger for oppgaver i hjemmet starter barnas PowerApp for oppgaver. Her kan de ta bilde av utført oppdrag, og forespørre sine foreldre om betaling

Reelt bilde om hvordan det er å sitte på Hackaton på hjemmekontor og hvorfor man trenger Dynamics 365 Family Engagement – løsning for å sysselsette ungene

Når barna trykker på “Be om penger” trigges en Power Automate Cloud Flow “Spør mamma og pappa etter-penger flyten v2❤”

Denne flyten henter ut informasjon om oppgaven som er utført, hvilket barn som sender inn oppgaven, beløp etc.

Vi henter ut telefonnummer til den foreldren som skal gjøre utbetaling, og når de får den så får forelderen forespørsel for Vipps

Forutsetninger:

Som vi kan se så har ikke Vipps noe API for å initiere person-person-betalinger, for å godta betalinger via AIP må man være registrert som en Merchant.

Så som en forutsetning for at akkurat dette skal fly hos oss vil man måtte registrere hvert enkelt barn med firmakonto hos Vipps. Dette ser vi ikke som noen hindring.

Badges og kategorier

Head2Head

Power User Love

Lego Shark Tank

Lego Power Bricks

Cameleon and Hi 5

Blazor appen vår bruker et responsivt design og god kodestandard gjennom bruk av HTML5 tags.

Viser bruk av HTML5 tags og mobilvisning.
https://youtu.be/K7h0Kq6u1Zw
Chameleon for responsivt design
Bruk av HTML5 tagger i løsningen.