SlideShare a Scribd company logo
1 of 35
Developing Azure Functions to create
custom connectors for Microsoft Flow,
PowerApps and Nintex
Tom Castiglia
DocFluix, LLC
AboutTom Castiglia…
SharePoint / Office 365
Consultant
Speaker at various
SharePoint
Saturday
conferences
President of the
San Diego
SharePointUser
Group
Nintex vTE
(virtualTechnical
Evangelist)
@TomCastiglia
linkedin.com/in/tomcastiglia
slideshare.net/tomcastiglia
tom@docfluix.com
meetup.com/sanspug/
meetup.com/nintexSD/
https://docfluix.com
Today’s Agenda
Overview
•Azure Functions
Overview
•REST Services -
Open API /
Swagger
Development
•Visual Studio 2017
•Sample Project –
Requirements
•Example Code
•Debugging
Azure
Configuration
•Azure Function
App
•Swagger Definition
Connector
Configuration
•Flow / PowerApps
•Nintex Workflow
Cloud
QuickWorkflow
demos in Flow
& Nintex using
custom
connectors
Prerequisites
Basics of Microsoft
Flow Basics
Basic Programming
(C# or other
languages)
Visual Studio
Azure Functions - Overview
Build apps faster with a serverless architecture
Accelerate your development with an event-driven, serverless compute
experience. Scale on demand and pay only for the resources you
consume.
Manage your apps instead of infrastructure
Don’t worry about provisioning and maintaining servers, especially when
your workload grows. Functions provides a fully managed compute
platform with high reliability and security and they scale on demand.
Azure Functions - Overview
Develop your way
• Languages: JavaScript, C#, and F#, and scripting options such as
Python, PHP, Bash, Batch, and PowerShell.
• Code directly in Azure portal
-- OR --
• Code in Visual Studio 2017 15.3 or later (Still in preview)
• Install “Azure Development” workload
• Includes tooling to create Azure Function projects and classes locally and
publish
• Includes Azure CLI (Command Line Interface) which allow you to run and debug
your functional locally.
Azure Functions - Pricing
Azure Functions consumption plan is billed based on per-second resource
consumption and executions. Consumption plan pricing includes a monthly
free grant of 1 million requests and 400,000 GB-s of resource consumption
per month.
METER PRICE FREE GRANT
(PER MONTH)
ExecutionTime* $0.000016/GB-s 400,000 GB-s
Total Executions* $0.20 per million 1 million
*Free grants apply to paid, consumption subscriptions only.
Demo
Super Quick Azure
Functions Demo
OpenAPI (Swagger) Overview
•When you publish an Azure Function, it creates a
REST endpoint for your function.
•OpenAPI allows you to configure the details of
your endpoint
• URL
• HTTP Methods (GET, POST, PUT, etc.)
• Inputs
• Outputs
OpenAPI (Swagger) Overview
•It’s a JSON file
•Configured using “YAML”…
• “a human friendly data serialization standard for all
programming languages.”
• “YAML Ain't Markup Language”
•Used by MS Flow and Nintex to import your
function as a new custom connector / action
•Help available at https://swagger.io
Sample Project - Goals
Accepts
complex input
types (JSON)
Does
something
useful
Returns
complex types
(JSON)
GSA PerDiem API
• Common workflow use cases areTravel Authorization Requests and
Expense reports, where employees travel and incur expenses for Meals and
Hotels.
• The GSA publishes official “PerDiems” that dictate the maximum amounts
that are may be expensed for Hotels and Meals.
• The PerDiem amounts are updated each year.
• Each region has its own per diems (e.g. Hotels in NYC cost more than in Des Moine)
• PerDiems also vary by month, based on peak travel seasons.
• Public web site: https://www.gsa.gov/travel/plan-book/per-diem-rates
• Often Government employees are trained to manually look up their Per Diems for
each trip prior to submitting expense reports (or better yet, before booking their
hotels)
GSA PerDiem API
REST API:
https://www.gsa.gov/technology/government-it-initiatives/digital-
strategy/per-diem-apis/api-for-per-diem-rates
• FiscalYear and Zip
https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44
bc4-22ba-4386-b84c-
1494ab28964b&filters={"FiscalYear":"2017","Zip":“92131"}
• FiscalYear and County
https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44
bc4-22ba-4386-b84c-
1494ab28964b&filters={"FiscalYear":"2017","County":"Worcester"}
Sample Response (abbreviated)
• The “Records” element is nested
within a bunch of stuff that can
be ignored
• The element for each month
represents the Hotel PerDiem for
that month.
• The “Meals” element represents
the PerDiem allowed for meals
for the year.
UsingVisual Studio
• New Project>Visual
C#>Cloud>Azure
Functions
• “Azure Functions”
maps to a “Function
App”, which can
contain 1 – N individual
functions
• Right-click the project
and select Publish
• Create new Azure
Function App. Then
click Publish.
Function App
• Log into Azure Portal to
review new Function App
• Notice it does not contain
any functions yet
• InVisual Studio, Right-
Click the Project and click
Add > New Azure
Function
• Name the function and
click Add
• Select function type as
HttpTrigger and click OK
Sample “Hello,World” Function …
Republish fromVS2017
and notice your functional
app now contains the new
function
GSA Per DiemWrapper
Accept Zipcode
andTripdate in
JSON as input
(in body of
request)
Validate inputs
Format REST
call to GSA API
Format JSON
response with
GSA per diem
amounts (Hotel
and Meals)
INPUT
JSON Formatting
OUTPUT
Classes for GSA Per Diem JSON
Deserialize Input JSON
Incoming JSON
Call to GSA RESTAPI
Output JSON / HTTP Response
JSON Response
Configure HTTP Methods
Configure API Definition
Export to Flow & Power Apps
Express
• Easier
• Use this if your Function App is in the same tenant as
your Flow / Office 365 AAD
Manual
• A few extra steps
• use this if yourAzure Function App is in a separate
Azure tenant.
Export to Flow - Express
Create Connection
Configure actions in Flow
NintexWorkflow Cloud
NintexWorkflow Cloud
Configure GSA Per Diem Action in NWC
Thank You to Our Sponsors
Join us right after at The Blue Prynt
Socialize and unwind after our day of learning.
Blue Prynt Restaurant & Bar
815 11th St, Sacramento, CA 95814
bluepryntsacramento.com
Thank you for joining us today!
Don’t Forget SharePint

More Related Content

What's hot

Introduction to serverless compute with azure functions
Introduction to serverless compute with azure functionsIntroduction to serverless compute with azure functions
Introduction to serverless compute with azure functionsCallon Campbell
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsAleksandar Bozinovski
 
Serverless in Azure with Functions
Serverless in Azure with FunctionsServerless in Azure with Functions
Serverless in Azure with FunctionsChristos Matskas
 
Azure functions
Azure functionsAzure functions
Azure functionsvivek p s
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureCodePolitan
 
Forge - DevCon 2016: From Desktop to the Cloud with Forge
Forge - DevCon 2016: From Desktop to the Cloud with ForgeForge - DevCon 2016: From Desktop to the Cloud with Forge
Forge - DevCon 2016: From Desktop to the Cloud with ForgeAutodesk
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CodeOps Technologies LLP
 
Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingWeb jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingParis Polyzos
 
Forge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceForge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceAutodesk
 
Platform as a Service for Rapid Development
Platform as a Service for Rapid DevelopmentPlatform as a Service for Rapid Development
Platform as a Service for Rapid DevelopmentPuja Pramudya
 
Serverless IoT with AWS Lambda
Serverless IoT with AWS LambdaServerless IoT with AWS Lambda
Serverless IoT with AWS LambdaWayne Scarano
 
Static web apps by GitHub action
Static web apps by GitHub actionStatic web apps by GitHub action
Static web apps by GitHub actionSeven Peaks Speaks
 
Why try angularJS?
Why try angularJS?Why try angularJS?
Why try angularJS?Jergus Lejko
 
ECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft GraphECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft GraphEuropean Collaboration Summit
 
IoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan ShekarIoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan ShekarCodeOps Technologies LLP
 
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...CodeOps Technologies LLP
 
From Serverless to InterCloud
From Serverless to InterCloudFrom Serverless to InterCloud
From Serverless to InterCloudWayne Scarano
 
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...Shift Conference
 

What's hot (20)

Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Introduction to serverless compute with azure functions
Introduction to serverless compute with azure functionsIntroduction to serverless compute with azure functions
Introduction to serverless compute with azure functions
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure Functions
 
Serverless in Azure with Functions
Serverless in Azure with FunctionsServerless in Azure with Functions
Serverless in Azure with Functions
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Forge - DevCon 2016: From Desktop to the Cloud with Forge
Forge - DevCon 2016: From Desktop to the Cloud with ForgeForge - DevCon 2016: From Desktop to the Cloud with Forge
Forge - DevCon 2016: From Desktop to the Cloud with Forge
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
 
Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless ComputingWeb jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless Computing
 
Forge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceForge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery Service
 
Platform as a Service for Rapid Development
Platform as a Service for Rapid DevelopmentPlatform as a Service for Rapid Development
Platform as a Service for Rapid Development
 
Serverless IoT with AWS Lambda
Serverless IoT with AWS LambdaServerless IoT with AWS Lambda
Serverless IoT with AWS Lambda
 
Static web apps by GitHub action
Static web apps by GitHub actionStatic web apps by GitHub action
Static web apps by GitHub action
 
Why try angularJS?
Why try angularJS?Why try angularJS?
Why try angularJS?
 
ECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft GraphECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
ECS19 - Laura Kokkarinen - Introduction to Microsoft Graph
 
IoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan ShekarIoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
 
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
 
From Serverless to InterCloud
From Serverless to InterCloudFrom Serverless to InterCloud
From Serverless to InterCloud
 
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
 

Similar to Developing Azure Functions as custom connectors for Flow and Nintex

Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018DocFluix, LLC
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)Daniel Toomey
 
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conferenceXtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conferenceMichael Oryszak
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure FunctionsAnalben Mehta
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azureJasjit Chopra
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsCallon Campbell
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingSPC Adriatics
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsSPC Adriatics
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfNCCOMMS
 
How to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHow to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHansamali Gamage
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flowVincent Biret
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsBIWUG
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesEamonn Boyle
 
Azure web functions little bites of services
Azure web functions little bites of servicesAzure web functions little bites of services
Azure web functions little bites of servicesAaron Petry
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functionsBaskar rao Dsn
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API AppsBizTalk360
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure FunctionsEuropean Collaboration Summit
 

Similar to Developing Azure Functions as custom connectors for Flow and Nintex (20)

Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
 
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conferenceXtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conference
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure Functions
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azure
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile Apps
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
How to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHow to create a Function App on Cosmos DB
How to create a Function App on Cosmos DB
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
Azure web functions little bites of services
Azure web functions little bites of servicesAzure web functions little bites of services
Azure web functions little bites of services
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API Apps
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 

More from DocFluix, LLC

Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineModern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineDocFluix, LLC
 
IA& Taxonomy Planning for SharePoint Online & Office 365
IA& Taxonomy Planning for SharePoint Online & Office 365IA& Taxonomy Planning for SharePoint Online & Office 365
IA& Taxonomy Planning for SharePoint Online & Office 365DocFluix, LLC
 
Microsoft flow how, when & why
Microsoft flow   how, when & whyMicrosoft flow   how, when & why
Microsoft flow how, when & whyDocFluix, LLC
 
Using Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysUsing Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysDocFluix, LLC
 
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...DocFluix, LLC
 
14 tips for planning a ecm content migration to share point
14 tips for planning a ecm content migration to share point14 tips for planning a ecm content migration to share point
14 tips for planning a ecm content migration to share pointDocFluix, LLC
 
SPS Phoenix Optimizing SharePoint for Transactional Content Management
SPS Phoenix Optimizing SharePoint for Transactional Content ManagementSPS Phoenix Optimizing SharePoint for Transactional Content Management
SPS Phoenix Optimizing SharePoint for Transactional Content ManagementDocFluix, LLC
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projectsDocFluix, LLC
 
Optimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content ManagementOptimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content ManagementDocFluix, LLC
 

More from DocFluix, LLC (9)

Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineModern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint Online
 
IA& Taxonomy Planning for SharePoint Online & Office 365
IA& Taxonomy Planning for SharePoint Online & Office 365IA& Taxonomy Planning for SharePoint Online & Office 365
IA& Taxonomy Planning for SharePoint Online & Office 365
 
Microsoft flow how, when & why
Microsoft flow   how, when & whyMicrosoft flow   how, when & why
Microsoft flow how, when & why
 
Using Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysUsing Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveys
 
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...
Using SharePoint, Nintex & DocuSign for Employee Onboarding and Open Enrollme...
 
14 tips for planning a ecm content migration to share point
14 tips for planning a ecm content migration to share point14 tips for planning a ecm content migration to share point
14 tips for planning a ecm content migration to share point
 
SPS Phoenix Optimizing SharePoint for Transactional Content Management
SPS Phoenix Optimizing SharePoint for Transactional Content ManagementSPS Phoenix Optimizing SharePoint for Transactional Content Management
SPS Phoenix Optimizing SharePoint for Transactional Content Management
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects
 
Optimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content ManagementOptimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content Management
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Developing Azure Functions as custom connectors for Flow and Nintex

  • 1.
  • 2. Developing Azure Functions to create custom connectors for Microsoft Flow, PowerApps and Nintex Tom Castiglia DocFluix, LLC
  • 3. AboutTom Castiglia… SharePoint / Office 365 Consultant Speaker at various SharePoint Saturday conferences President of the San Diego SharePointUser Group Nintex vTE (virtualTechnical Evangelist) @TomCastiglia linkedin.com/in/tomcastiglia slideshare.net/tomcastiglia tom@docfluix.com meetup.com/sanspug/ meetup.com/nintexSD/ https://docfluix.com
  • 4. Today’s Agenda Overview •Azure Functions Overview •REST Services - Open API / Swagger Development •Visual Studio 2017 •Sample Project – Requirements •Example Code •Debugging Azure Configuration •Azure Function App •Swagger Definition Connector Configuration •Flow / PowerApps •Nintex Workflow Cloud QuickWorkflow demos in Flow & Nintex using custom connectors
  • 5. Prerequisites Basics of Microsoft Flow Basics Basic Programming (C# or other languages) Visual Studio
  • 6. Azure Functions - Overview Build apps faster with a serverless architecture Accelerate your development with an event-driven, serverless compute experience. Scale on demand and pay only for the resources you consume. Manage your apps instead of infrastructure Don’t worry about provisioning and maintaining servers, especially when your workload grows. Functions provides a fully managed compute platform with high reliability and security and they scale on demand.
  • 7. Azure Functions - Overview Develop your way • Languages: JavaScript, C#, and F#, and scripting options such as Python, PHP, Bash, Batch, and PowerShell. • Code directly in Azure portal -- OR -- • Code in Visual Studio 2017 15.3 or later (Still in preview) • Install “Azure Development” workload • Includes tooling to create Azure Function projects and classes locally and publish • Includes Azure CLI (Command Line Interface) which allow you to run and debug your functional locally.
  • 8. Azure Functions - Pricing Azure Functions consumption plan is billed based on per-second resource consumption and executions. Consumption plan pricing includes a monthly free grant of 1 million requests and 400,000 GB-s of resource consumption per month. METER PRICE FREE GRANT (PER MONTH) ExecutionTime* $0.000016/GB-s 400,000 GB-s Total Executions* $0.20 per million 1 million *Free grants apply to paid, consumption subscriptions only.
  • 10. OpenAPI (Swagger) Overview •When you publish an Azure Function, it creates a REST endpoint for your function. •OpenAPI allows you to configure the details of your endpoint • URL • HTTP Methods (GET, POST, PUT, etc.) • Inputs • Outputs
  • 11. OpenAPI (Swagger) Overview •It’s a JSON file •Configured using “YAML”… • “a human friendly data serialization standard for all programming languages.” • “YAML Ain't Markup Language” •Used by MS Flow and Nintex to import your function as a new custom connector / action •Help available at https://swagger.io
  • 12. Sample Project - Goals Accepts complex input types (JSON) Does something useful Returns complex types (JSON)
  • 13. GSA PerDiem API • Common workflow use cases areTravel Authorization Requests and Expense reports, where employees travel and incur expenses for Meals and Hotels. • The GSA publishes official “PerDiems” that dictate the maximum amounts that are may be expensed for Hotels and Meals. • The PerDiem amounts are updated each year. • Each region has its own per diems (e.g. Hotels in NYC cost more than in Des Moine) • PerDiems also vary by month, based on peak travel seasons. • Public web site: https://www.gsa.gov/travel/plan-book/per-diem-rates • Often Government employees are trained to manually look up their Per Diems for each trip prior to submitting expense reports (or better yet, before booking their hotels)
  • 14. GSA PerDiem API REST API: https://www.gsa.gov/technology/government-it-initiatives/digital- strategy/per-diem-apis/api-for-per-diem-rates • FiscalYear and Zip https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44 bc4-22ba-4386-b84c- 1494ab28964b&filters={"FiscalYear":"2017","Zip":“92131"} • FiscalYear and County https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44 bc4-22ba-4386-b84c- 1494ab28964b&filters={"FiscalYear":"2017","County":"Worcester"}
  • 15. Sample Response (abbreviated) • The “Records” element is nested within a bunch of stuff that can be ignored • The element for each month represents the Hotel PerDiem for that month. • The “Meals” element represents the PerDiem allowed for meals for the year.
  • 16. UsingVisual Studio • New Project>Visual C#>Cloud>Azure Functions • “Azure Functions” maps to a “Function App”, which can contain 1 – N individual functions • Right-click the project and select Publish • Create new Azure Function App. Then click Publish.
  • 17. Function App • Log into Azure Portal to review new Function App • Notice it does not contain any functions yet • InVisual Studio, Right- Click the Project and click Add > New Azure Function • Name the function and click Add • Select function type as HttpTrigger and click OK
  • 18. Sample “Hello,World” Function … Republish fromVS2017 and notice your functional app now contains the new function
  • 19. GSA Per DiemWrapper Accept Zipcode andTripdate in JSON as input (in body of request) Validate inputs Format REST call to GSA API Format JSON response with GSA per diem amounts (Hotel and Meals)
  • 21. Classes for GSA Per Diem JSON
  • 23. Call to GSA RESTAPI
  • 24. Output JSON / HTTP Response JSON Response
  • 27. Export to Flow & Power Apps Express • Easier • Use this if your Function App is in the same tenant as your Flow / Office 365 AAD Manual • A few extra steps • use this if yourAzure Function App is in a separate Azure tenant.
  • 28. Export to Flow - Express
  • 33. Configure GSA Per Diem Action in NWC
  • 34. Thank You to Our Sponsors
  • 35. Join us right after at The Blue Prynt Socialize and unwind after our day of learning. Blue Prynt Restaurant & Bar 815 11th St, Sacramento, CA 95814 bluepryntsacramento.com Thank you for joining us today! Don’t Forget SharePint

Editor's Notes

  1. This session will make use of these technologies, but I won’t spend much time explaining them, as I assume you’ve at least dabbled in MS Flow and have done some development in Visual Studio.
  2. Fair warning … this is the most complex part of the process. Troubleshooting is tricky. We could easily spend an hour on this alone, but we’ll have to skim over this part later. There are
  3. Fair warning … this is the most complex part of the process. Troubleshooting is tricky. We could easily spend an hour on this alone, but we’ll have to skim over this part later. There are
  4. All the Azure function tutorials that I found were really simplistic, using the GET method and passing params in the URL querystring. But systems like MS Flow, PowerApps and Nintex send and receive data in JSON format. So I needed to come up with a more realistic sample. I also wanted something that would make sense in the context of a workflow solution.
  5. Visual Studio provides excellent support for serializing / deserializing between JSON. Also can auto-generate new classes from existing JSON, using the Paste Special menu under Edit.
  6. The CreateResponse method automatically serializes the PerDiemOutput class into JSON.
  7. If we enable additional methods that aren’t needed the API definition (next step) will be more complex, so its best to limit to just POST.
  8. Select the Function App > Platform Features > API Definition Click Generate API Definition template Edit the API Definition Save
  9. Select Express Select Environment Enter friendly name for the Custom API that will be displayed in Flow / Power Apps If using API Key, enter the friendly label that shall be displayed in Flow when a user creates a unique connection using the connector. For example, provide email address for Azure admin who has the API KEYS. Click OK
  10. From Flow.Microsoft.com, click the gear icon > Custom Connectors Locate the desired connector, then click the plus (+) sign for that connector This will display a dialog to enter the API KEY Locate
  11. Click Xtensions then the Plus (+) sign Copy/Paste the API Definition Url including the key (from Azure portal). Then click Next. Accept default settings on the Security page. Then click Next. Specify a friendly Name and Description for the connector. Select an icon or upload a custom icon. Then click Save.
  12. Click Connections > Add New Select the DocFluix Demo App from the Connector list, then click Connect Give the new connection a friendly name (e.g. DocFluix Demo) and paste in the API Key, the click Connect Verify the connection is created successfully, then click Ok
  13. SharePint