►
From YouTube: Office Add-ins community call-December 2020
Description
November’s call, hosted by David Chesnut, featured topics including updates on the addFromBase64 AP, Excel APIs, Office Add-in usage reports, PnP web worker sample.
Speakers: Raymond Lu, Nisarg Kinariwala, David Chesnut
Resources are in the blog https://aka.ms/M365DevBlog
Stay connected
Twitter https://twitter.com/microsoft365dev
YouTube https://aka.ms/M365DevYouTube
Blogs https://aka.ms/M365DevBlog
A
Hello:
everyone,
my
name
is
david
chestnut,
I'm
the
host
for
the
call
today
this
is
the
microsoft
office.
Add-Ins
community
call
welcome
to
the
call,
let's
take
a
look
at
the
agenda
and
our
presenters
for
today
joining
us
today
is
raymond
liu
who's
going
to
talk
about
some
updates
to
the
ad
from
base64
api.
Also
joining
us
is
the
sarg
keynote
walla
who's
going
to
talk
about
the
office
ad
and
usage
report,
and
then
I
will
be
doing
a
demo
of
a
new
patterns
and
practices
sample.
A
We
have
for
web
workers
for
excel
custom
functions
and
then,
as
usual,
we
have
our
q
a
at
the
end.
As
per
all
of
our
calls,
if
you
have
any
questions
as
we
go
along
just
post
them
into
the
chat
and
we'll
answer
those
questions
as
we
go
through
the
call,
if
there's
any
questions,
we're
unable
to
get
to
we
post
a
blog
summary
a
few
days
after
the
call
and
we'll
be
sure
we
get
the
answers
there.
A
B
So
this
sp
api
has
been
in
preview
for
a
few
years
and
we
glad
that
in
the
past
few
quarters
we
have
done
some
investigation
and
also
invest
on
this,
what
this
area
and
is
almost
there,
but
we
would
like
to
ask
your
help
to
do
some
validation
once
we
have
put
in
the
preview
so
today
I
would
like
to
show
you
some
update
on
this
about
the
first
one
is
the
the
design
improvements
and
we
these
api.
We
have
improved
three
area.
First
is
the
name
change.
B
We
learned
that
from
basics
four
and
we
changed
it
to
insert
worksheet
from
basic
four.
The
reason
is
insert
may
tells
you
that
you
can
insert
any
position
you
like,
but
add,
is
more
like
you
added
at
the
end
of
this
workbook.
B
Another
thing
is
the
discoverability
improvements
before
we
called
in
the
iphone
basis
for
under
workbook
and
worksheets
collection,
but
now
we
feel
that
it's
better
to
put
it
under
workbook,
so
you
can
use
the
workbook
dot.
Insta
worksheets
from
base64
to
get
that
api
to
use
that
directly
and
beside
that
we
also
improved
in
on
the
parameter.
B
Therefore,
we
make
it
a
optional
options,
so
you
can
use
this
to
put
your
information
and
then
make
it
easier,
so
paste
a
string
and
then
option
okay
and
here's
the
sample
code.
Let
me
give
introduce
a
little
bit
on
this
and
this
is
under
a
workbook
and
you
can
use
that
the
workbook
stream,
which
is
a
base,
64
string
the
option
here
we
have
a
three
options
which
sheet
name
you
want
to
insert
here.
Example.
I
want
to
I'm
care
about
sheet
one
I
put
the
shape
one.
B
You
also
can
add
multiple
sheets.
If
you
keep
num,
it
will
insert
everything
of
that
workbook
for
position
type
you
can.
You
can
put
where
of
this
position,
be
it
it
can
be
begin.
It
can
be
end
of
this
workbook
or
you
can
do
a
before
before
which
specific
worksheets.
So
we
can
put
this
worksheet
in
before
sheet2
or
after
sheet2,
so
this
is
option
that
we
use
okay.
So
now
I
would
like
to
give
you
a
demo
for
this
api,
so
this
actually
is
a
dev
environment.
B
So
it's
not
yet
ready
for
the
preview,
but
will
be
very
soon
so
so
let
me
let
me
show
you
my
first
film
in
the
code.
The
code
is
very
simple,
like
what
I
described
so
first,
I
this
is
actually
two
parameters.
One
is
the
the
base64
string
and
second
one
is
option.
So
option
is,
is,
is
an
optional,
so
I
can
ignore
that.
Therefore
it
can
insert
everything.
Let
me
try
it.
B
So
this
example
is
to
show
you
there's
two
steps.
So
first
I
need
to
select
a
work
book
so,
for
example,
I
select
the
workbook
here
mars
fha,
so
I
click
ok,
open
and
then
this
workbook
will
be
converted
to
the
base64
string,
and
then
I
can
use
this
api,
which
I
should
demo
you
this
december
code.
It
can
insert
everything
of
this
workbook.
Let
me
show
you
what
is
the
this
workbook
looks
like
it's
over
here
yeah.
It's
like
this.
I
have
a
two
sheet.
One
sheet
is
application
form
another
one?
B
Is
the
results?
Okay,
so
let's
see
how
how
it
work
to,
if
I
click
insert
yeah,
just
wait
for
a
while
yeah,
so
it
will
insert
okay.
So
so
you
can
see
that
these
two
sheets
are
successfully
inserted
to
the
to
my
workbook
yeah
yeah.
This
is
this
is
the
things
that
we
already
here.
Okay,
so
I
use
I
ignore
the
option,
but
also
I
can
put
the
option
here
if
I
customize
this
option,
so
I
want
to
insert
the
next
workbook,
for
example,
I
want
to
insert
this
one.
B
Let
me
show
you
real
quick,
so
this
is
what
I'm
talking
about.
I
would
like
to
insert.
There
is
a
two
sheet,
so
I
would
like
to
insert
first
one
sheet
name,
so
I
put
a
name
here
and
then
I
want
to
relevant
to,
for
example,
relevant
to
this,
and
I
want
to
insert
say
after
after
this
okay-
and
let
me
show
so-
they
will
insert
only
one
worksheet
and
this
worksheet
will
be
positioned
between
okay
and
it
will
convert
it
to
the
base6
evo
stream,
and
then
I
click
this
button.
B
It
will
call
this
api
to
insert
yeah.
It's
correctly
put
it
here
yeah.
This
is
the
the
the
exactly
same
worksheet
that
you
have
seen
here
yeah.
B
So
this
is
the
the
capability
to
insert
basic
c4
and
in
excel
online,
but
also
due
to
the
fact
that
we
are
using
the
copy
paste,
the
feature
so
there's
some
of
the
limitation.
So
I'd
like
to
demo
you
another
implementation
that
we
have
in
our
solution,
which
is
this
workbook.
This
workbook
has
a
charts.
B
So
far
the
copy
and
paste
doesn't
support
charts,
so
it
will
not
success.
I
will
show
you
the
unsuccessful
experience.
So
if
I
click
the
here-
and
I
now
turn
here
and
then
it
will
convert
to
the
basics
level
screen
and
then
I
click
insert
sheet,
it
will
tell
you
that
there's
a
so
this
arrow
type,
this
arrow.
Actually
we
have
a
new
error
message
to
tell
you
that
this
is
unsupported
features,
so
it
will
show
you
what
what
is
the
feature
that
is
unsupported,
so
you
will
need
to
do
some
customization
on
this
workbook.
B
Okay,
so
go
back
to
my
presentation,
so
I
would
like
to
share
some
important
notice
of
this
api
because
info
insert
from
basics.
4
is
actually
leverage
move
and
copy
feature,
so
in
win32
you
can
use
that
you
would
double
or
you
will
right
click
your
sheet.
You
can
have
this
menu
and
you
click
this
menu.
You
can
you'll
be
able
to
ins.
You
know,
move
your
sheet
or
copy
your
sheet
to
another
workbook.
B
However,
right
now
the
excel
online
do
not
support
this
feature.
That's
this
reason
that
this
api
are
high
demanded,
but
will
not
be
able
to
release
because
of
excel
online
is
not
yet
support.
Therefore,
our
team
are
doing
some
investment
to
leverage
the
copy
and
paste.
So
if
you
control
c
and
and
then
control
v
the
feature
and
then
it
will
copy
the
source
workbook
to
the
target
workbook
source
worksheet
to
target
worksheet.
B
So,
however,
you
know
copy
and
paste
in
excel
online
has
some
limitation
because
of
some
of
the
the
elements
not
be
able
to
copy
like,
for
example,
chart
pivot
table
comments
and
slicers
and
those
one
are
not
be
able
to
copy.
This
is
non-gaap
and
beside
that.
We
also
learned
that
there's
an
external
link.
For
example,
you
were,
if
you
are
referenced
to
another
workbook,
then
this
one
will
not
be
able
to
copy
correctly
and
beside
that.
B
We
also
learned
that
name
range
and
structure
reference
in
the
formula
is
also
not
supported
in
the
copy
paste
feature.
Therefore,
if
you
have
this
information
might
not
copy
correctly.
Therefore,
you
might
need
to
pay
attention
to
the
source
data
information
and
avoid
using
these
if
you
are
using
insert
from
basis
for
api.
B
So
we
would
like
to
ask
your
help
to
support
us
to
do
some
analyze
of
your
workbook
that
you
would
like
to
insert
from
using
this
api
to
insert
to
your
workbook
to
understand.
What's
the
priority
of
the
future
gap,
therefore,
we
can
ask
the
copy
feature
copy
and
the
paste
feature
team
to
prioritize
on
that
feature
gap.
B
So
the
action
would
like
to
call
for
today
is
that
you'll
be
great.
I
I
we
learned
that
this
is
a
very
high
demand
api
that
a
lot
of
customers
are
requesting
for
it.
So
if
we
grade
that
you
can
send
us
your
sample
workbook,
therefore
we
can
do
some
analyze
and
to
understand
what
or
the
content
of
your
workbook
you
you
would
like
to
copy.
B
So,
together
with
insert
from
big
64,
we
have
other
candidates
for
1.13
and
the
range
we
have
get
direct
precedence.
Api
you
can
can
get
the
the
the
president's
cells
of
this
range
and
also
this
is
also
very
high,
demanded
api,
which
is
merge
area
and
then
the
get
a
wrench
edge
and
extended
wrench
and
also
be
able
to
support
table
resize,
and
we
have
a
bunch
of
api
related
to
paid
pivot
level
layout.
And
besides
that,
we
have
two
group
of
events.
B
One
is
in
related
to
the
workbook
on
activated
another
one
is
worksheet
on
formula
change
events.
So
if
you
have
requests-
or
you
have
asked
for
the
api,
please
do
let
us
know-
okay,
I
think
that's
all
for
my
site.
Thank
you.
A
Cool.
Thank
you
raymond.
It's
really
great
to
see
that
coming
along
so
switching
over
to
office,
add-in
usage
reports
with
nisarg
nissar.
Do
you
want
to
take
over
the
presentation.
C
Yes,
yeah
thanks
david,
hello,
everyone
I
am
nisar
kunariwala
and
I'm
a
program
manager
in
office
platform
team.
Before
I
start,
I
would
like
to
thank
all
of
you
for
developing
all
the
awesome
applications
on
our
office
ecosystem
to
empower
our
customers
to
achieve
more.
I'm
here
today
to
talk
about
the
adding
usage
data
that
we
provide
on
microsoft,
partner
center,
which
you
can
leverage
on
to
get
meaningful
insight
and
try
to
improve
your
product
over
the
time.
C
So,
as
you
build
this
add-ins
on
what
excel
powerpoint
outlook
and
other
applications
oftentimes,
you
might
be
interested
to
see
like
what's,
the
usage
of
your
add-in
looks
like
how
many
customers
that
you
attract
on
daily
basis
over
the
time.
Apart
from
that,
you
also
might
be
interested
to
see
like
what's
the
stickiness
of
a
user,
meaning
in
in
within
one
period
of
time,
the
number
of
users
who
use
your
application
out
of
them,
how
many
of
them
come
back
in
the
next
interval
and
and
and
in
further
intervals
as
well.
C
So,
what's
your
redemption
story
looks
like
and
based
on
that,
probably
you
can
learn
and
you
can
try
to
add
more
features
to
your
product
and
make
it
more
powerful
other
than
that.
You
also
might
be
interested
to
see
like
what's
your
geographical
footprint,
so
in
which
regions
your
adding
is
more
popular
and
where,
where
are
the
opportunities
for
you
to
grow
and
expand.
So
these
are
like
some
of
the
basic
and
interesting
questions
that
all
adding
developers
might
be
having
now
and
the
answer
resides
in
microsoft,
partner
center.
C
So
probably
some
of
you
might
have
already
seen
that
but
yeah
it's
a
right.
Now
it's
a
good
forum
to
get
a
look
at
it,
and
then
I
can
provide
some
of
the
logistic
information.
Those
you
are
not
aware
of.
So,
as
you
can
see
here,
this
is
the
sneak
peek
of
microsoft,
partner
sender.
So
once
you
log
in
in
the
left
pane,
you
would
see
office
store
and
under
analyze
you
will
see
a
usage
tab.
C
So
when
you
click
on
it,
you
will
be
able
to
see
the
the
data
that
microsoft
is
providing
on
microsoft
partner
center.
In
the
most
compliant
manner,
so
this
is
the
sample
data
that
I
am
showing
you
right
now,
but
in
the
top
section
you
will
be
able
to
see
like
what's
the
daily
active
usage
of
your
add-in
looks
like
and-
and
you
can
go
up
to
90
days,
so
that's
the
maximum
data
that
we
are
exposing
on
partner
center.
C
And
apart
from
that,
you
will
also
be
able
to
know
like
how
many
new
users
you
are
attracting
on
daily
basis.
So
the
red
line
that
you
see
here,
that's
a
trend
line
of
the
daily
new
users
and
the
blue
line
is
all
the
users,
including
the
new
users.
So
for
this
specific
example
that
you
see
some
dips,
which
is
basically
showing
the
impact
of
weekend
down
below,
we
have
this
green
color
grid.
That's
the
retention
which
I
was
talking
about.
C
So
in
this
specific
example,
you
can
see
like
in
the
week
of
september
14th
there
were
around
12
000
users
who
tried
to
launch
this
specific
add-in
out
of
this
12
000
users.
15
percent
did
come
back
in
then
subsequent
week
and
out
of
12
000,
nine
percent
came
back
in
the
in
the
week
seven,
so
the
seven
week
window
is
the
maximum
window
that
we
are
showing
in
terms
of
retention.
C
So
this
way
you
can
like
measure
like
no.
What's
your
retention
story,
how
many
customers
you
can
retain
and
for
how
long
and
based
on
that,
you
can
take
some
smart
decisions
to
improve
your
product
and
the
third
piece
that
we
have
is
the
geographical
map
view.
So
here
the
darker,
the
blue,
shade,
meaning
more
customers
that
you
have
from
that
region
and
you
have
an
option
to
choose
between
map
and
table
view.
C
So
for
this
specific
example,
as
you
can
see
here,
it's
like
this
particular
add-in
is
very
popular
in
japan,
germany,
us
and
apart
from
this
main
three
pivots.
We
also
have
some
filter
capability,
so
can
slice
the
everything
all
your
usage
and
retention
for
a
spec,
specific
region
or
specific
office
applications.
Sometimes
you
have
the
same
add-in,
which
is
available
on
word
excel
and
powerpoint,
and
if
you
are
interested
to
filter
only
for
excel,
you
can
certainly
do
it
here.
C
You
can
also
slice
your
data
by
a
different
platform,
so
this
is
a
good
way
to
understand
overall
footprint
of
your
add-in,
a
couple
of
call-outs,
so
the
data
that
we
are
exposing
here
is
it
with
four
days
latency,
meaning
today
is
december
9th.
So
you
should
be
able
to
see
the
data
until
december.
5Th.
C
Second
thing
is
sometimes
you
might
be
the
owner
of
multiple
add-ins,
and
in
that
case,
what
will
happen
is
in
this
interface
in
the
top
left
corner.
You
would
see
a
drop
down,
so
you
can
choose
a
different
add-in
and
then
you
can
see
the
the
usage
pattern
for
that
specific
add-in
and
the
the
data
that
we
are
exposing.
So
microsoft
collects
the
the
telemetry
in
the
most
compliant
way,
and
then
we
are
exposing
this
information
on
partner
center,
which
has
been
approved
by
our
compliance
and
legal
team.
C
So
I
just
wanted
to
call
that
out.
So
so
that's
pretty
much
from
the
demo
side.
Some
of
you
might
be
aware
of
it,
but
for
those
this
is
a
great
way
to
understand
your
product.
So
and
then
these
are
like
some
of
the
the
logistics
so
again
like
those
who
are
not
aware.
So
this
is
the
documentation
link
where
you
can
create
an
account
in
the
partner
center
and
there
are
like
a
great
sort
of
information
which
you
can
go
through
at
your
time.
C
This
link
talks
about
like
how
you
can
publish
your
solution
to
microsoft,
app
source
via
partner
center,
and
the
third
link
that
I
have
is.
This
is
the
usage.
So
this
is
basically
whatever
I
was
showing
here
in
the
in
the
demo.
So
you
in
this
interface,
you
might
be
referring
different
terms
and
whatever
I
explained,
and
it
actually
it's
more
documented
in
this
reference.
C
So
you
can
see
like
you
know
how
you
can
choose
different
filters
and
like
now,
what
does
it
actually
tell,
and
it
explains
all
the
different
taxonomy
in
detail
apart
from
usage,
you
can
also
see
a
tab
called
acquisition,
so
a
lot
of
people
like
now
they
acquire
your
ad
in
so
sometimes
adding
acquisition
can
happen
through
centralized
deployment,
meaning
id
admin
can
deploy
the
add-in
within
their
tenant
and
sometimes
the
user
themselves
they
acquire
on
their
own.
C
So
both
type
of
acquisition
refrain
the
the
look
and
feel
is
pretty
much
same
as
the
usage,
and
you
can
understand
your
acquisition
footprint
as
well.
Our
peer
team
takes
care
of
exposing
that
data,
and
for
that
we
have
this
documentation
which
you
can
go
through
and
understand.
So
that's
pretty
much
it
from
my
side.
I
hope
all
of
you
will
get
a
chance
to
edit
understand
your
application
and
and
try
to
take
actions
accordingly
to
create
more
impact
on
our
customers.
C
A
All
right
thanks,
nisarg,
that's
great!
So
I'm
going
to
talk
about
a
new
patterns
and
practices
sample
that
we're
about
to
release
which
shows
using
webworkers
for
excel
custom
functions.
Let's
see,
let
me
pull
up,
let's
start
with
okay,
so
I
just
want
to
kind
of
walk
through
the
scenario.
What's
what
this
sample
is
about,
so
here
I've
loaded
up
the
sample
and
you
can
see,
there's
a
task
pane
with
a
bouncing
ball
in
it.
A
A
And
then
you
can
see
like
as
it's
calculating
all
these.
The
bouncing
ball
stops
while
that's
going
on
and
then
each
time
we
update
do
some
kind
of
recalculation,
you'll
see
like
it's
interrupting
the
ui.
A
A
So
let's
go
take
a
look
at
the
code
behind
that.
What's
going
on
here,
bring
this
up
all
right.
So
this
is
our
project.
We
have
our
functions,
js
with
which
has
the
custom
function
code,
and
then
this
is
functions
worker,
which
is
where
the
threads
will
run.
Let's
start
with
functions
js
this
and
I'm
going
to
go
to
the
bottom
and
work
my
way
up,
because
this
is
the
order
of
entry.
A
So
first
we
want
to
associate
all
of
our
custom
functions
with
their
name,
so
that
excel
knows
what
javascript
to
call.
So
you
know
if
the
user
types
in
the
test
function
then
excel
is
going
to
call
this
function
here
and
you
notice
that
each
of
them
is
just
calling
this
dispatch
calculation
job,
which
basically
is
saying,
let's
go
hand
it
off
to
the
web
worker
we're
not
going
to
do
the
actual
math
stuff.
Here
we
do
the
same
thing
for
the
test.
Promise
the
test
error.
A
A
A
So
it
gets
past
the
function
name
and
its
parameters.
We
have
a
global
variable
which
tracks
our
job
ids,
and
it
just
continues
to
increment.
So
we
get
a
unique
id
for
each
job
and
then
we're
going
to
return
back
to
excel
a
promise
that
we'll
get
back
to
later
and
we'll
have
a
function
with
the
resolve
and
reject,
and
what
we
want
to
do
is
just
store
that
resolve
reject.
A
So
we
have
this
global
job
id
to
promise
info
map
which
just
maps
each
job
to
a
promise,
and
all
we
do
is
create
a
little
json
object.
That
has
our
resolve
function
or
reject
function
so
that
later,
when
the
web
worker
returns,
we
can
go
resolve
or
reject
back
to
excel
and
we're
going
to
call
this
helper
method
or
helper
function
to
get
or
create
a
web
worker.
A
Once
we
have
our
web
worker,
we're
going
to
post
a
message
to
it,
passing
the
job
id
the
function
name
and
the
parameters
and
after
that
it's
off
and
running,
and
our
ui
thread
is
freed
up
so
last
part
of
this
stuff.
Writing
on
the
task.
Pane
thread:
we're
gonna
have
our
get
a
crate
webworker.
So
let's
see
how
that
works
by
the
way.
Here's
our
globals
at
the
top.
So
we've
set
our
maximum
web
workers
to
four
so
we're
gonna
have
up
to
four
threads
running
here.
A
We're
gonna
keep
track
of
the
web
workers
in
this
array
and
our
job
id
global,
as
well
as
our
map,
which
starts
off
empty,
where
we
keep
track
of
all
the
promises
for
the
jobs
all
right.
So
when
we
get
our
creator
webworker,
we
take
a
look
at
the
job
id
and
we're
gonna.
Do
a
modulus
operation
on
that
to
figure
out
which
of
the
four
threads
to
put
it
on.
We
then
see
if
that
webworker
already
exists
in
our
array.
If
it
does,
we
just
return
it
and
we're
done
if
it
doesn't
exist.
A
We
need
to
go,
create
it
so
we'll
go
down
here
and
we'll
say:
let's
create
a
new
worker
and
let's
use
our
functions
worker.js.
So
we're
going
to
pass
in
this
javascript
here
for
that
worker
thread
to
be
running
that
code
on
different
thread,
then
we're
going
to
add
an
event
listener
so
that
when
a
job
gets
completed
and
that
worker
thread
posts
back
to
us
we'll
receive
a
function
with
the
event
information
and
so
we're
going
to
pull
the
data
out
of
that
and
then
from
that
data
we're
going
to
parse
it.
A
I'm
just
going
to
simplify.
What's
going
on
here,
parse
that
data
down
into
a
job
result,
and
in
that
job
result
we
will
have
a
job
id,
and
so
that
way
we
can
go
back
to
that
promise
map.
We
had
we
look
up
that
job
id,
so
we
can
pull
out
the
reject
or
the
resolve
for
it
and
then
we're
going
to
actually,
you
know,
resolve
back
to
excel.
So
we
check
if
there
was
an
error.
We
go
ahead
and
reject
back
to
excel
passing
an
error.
A
So
what
we're
going
to
do
is
say
all
right:
let's
go
invoke
the
function
and
we're
going
to
pass
the
name
and
the
parameters.
So
we
invoke
the
correct
function
because
we
had
a
test.
We
had
a
test
with
an
error.
We
had
a
test
promise,
so,
whichever
one
it
is
we're
going
to
invoke
it
now
after
it's
invoked
and
it
comes
back,
we
don't
know
you
know
if
we
ran
a
test
or
a
test
with
a
promise.
So
we
got
to
check
what
came
back.
A
If
this
invoke
function
did
not
return
a
promise,
it
just
gave
us
a
value,
then
we'll
just
post
that
result
back
so
we'll
say
postmessage
job
id
and
that
numerical
result
and
then
there's
a
catch-all
in
case
any
kind
of
error
occurred
from
our
try
catch
block,
and
in
that
case
we
would
also
post
back
an
error.
So
the
invoke
function.
A
Basically,
it
gets
the
name
which
could
be
test
or
test
prompts
test
error
and
the
parameters
in
each
case
we're
just
mapping
the
string
name
to
an
actual
function.
So
test
goes
to
test
test.
Promise
goes
to
test
promise
and
in
each
case
we
pass
the
parameters
to
it
and
all
those
functions
are
down
here
at
the
bottom.
A
Math
operation
that
takes
up
some
time
depending
on
how
large
the
value
n
is.
A
If
we
call
test
promise,
then
we
create
a
new
promise,
that's
going
to
resolve
in
about
a
second
because
it
runs
a
set
timeout,
and
then
it
just
calls
test.
Writing
the
math
and
then
returns
the
value.
So
each
time
you
see
this
in
excel,
you'll
see
it
takes
about
a
second.
Before
it
comes
back,
we
can
also
run
test
error,
which
just
throws
an
error
which
will
send
back
to
excel
or
test
an
error
with
a
promise.
A
Now
the
reason
for
these
four
different
ways
of
doing
this
is
is
these
are
stereos.
You
can
counter
on
your
thread.
You
know,
like
you
might
be
running
with
a
promise
because
you're
making
a
network
call
you
might
need
to
test.
How
would
you
deal
with
an
error
that
might
pop
up
when
you're,
you
know
doing
your
calculation?
So
that's
why
these
are
all
here:
they're,
like
four
little
mini
patterns,
that
you
can
look
at,
that
you
can
reuse,
depending
on
the
type
of
scenario
you're
running
in
your
calculations
with
your
web
worker.
A
One
more
thing
to
talk
about
here
is
that
you'll
notice
in
this
left
pane,
where
I
have
this
open
there's
only
like
these
javascript
files
or
html
file,
some
manifest
files.
There
isn't
an
actual
like
we
didn't
build
this
with
eo
office.
This
isn't
running
like
a
webpack
config
file
and
all
those
extra
little
things
you
get
with
dependencies
and
the
node
modules
folder.
A
So
we're
trying
a
new
approach
with
some
samples
on
the
pmp
repo,
where
we're
trying
to
reduce
some
of
the
overhead,
because
if
you
have
a
office
project,
we
have
to
maintain
it,
and
you
know
every
time
there's
some
security
update
to
one
of
the
dependencies
we
have
to.
You
know
like
run
npm
audit
and
update
things.
So
what
this
is
doing
is
we're
just
making
a
really
simple
static
website.
It's
going
to
get
gets
back
to
in
our
docs.
A
So
the
way
this
loads
like
right
now,
I'm
running
this-
I
have
a
localhost
server
that
I
started
up
so
you'll
see
like
all
these
are
referring
to
localhost
to
load
the
functions.
A
Js
file,
our
json
file,
the
home
html,
there's
also,
I
should
say
online,
I
gotta
fix
that's
a
bug,
so
the
online
one
you'll
see
is
referring
to
github.
So
what
we're
doing
is
we're
publishing
these
files
as
github
pages
so
and
this
will
be
updated.
This
will
point
to
the
pnp
repo
testing
assets
is
the
repo
where
we
originally
or
xiaofei
actually
put
this
all
this
code
together,
he
was
putting
it
on
the
testing
assets
repo.
A
So
that's
why
this
point's
there,
but
basically
the
manifest,
can
just
load
directly
from
github,
which
is
pretty
cool.
It's
like
a
clever
way
to
not
have
to
have
your
own
server
and
then
what
you
do
is
you
can
load
this
manifest.
You
can
sideload
it
into
excel
and
it'll
just
go
out
to
the
github
pages
and
grab
all
these
different
assets
and
run
so
you
don't
have
to
start
up
your
own
server,
so
we're
hoping
this
would
be
a
little
simpler
for
people,
so
you
don't
have
to
deal
with.
You
know
doing.
A
A
A
Let
us
know
what
you
think,
or
you
know,
post
an
issue.
If
you
have
some
feedback
on
it
and
let's
see
who's
with,
I
think
that
pretty
much
covers
it
so
yeah.
Let
us
know
what
you
think.
Oh
one
more
thing
to
mention
so
about
a
year
ago,
lance
austin
did
a
customer
presentation.
He
was
a
guest
presenter
for
us
and
he
actually
created
a
repo.
I
just
wanted
to
show
you.
This
is
kind
of
the
inspiration
for
this.
It
was,
I
think,
may
of
2019.
It
looks
like
the
may
office
and
community
call.
A
I
will
include
a
link
to
this
street,
though,
because
he
also
had
he
was
showing
web
workers
at
that
time.
He
also
had
some
other
things
in
there
about
indexeddb
websocket
service
worker,
so
in
our
blog
post
afterwards.
I'll
include
a
link
to
this,
so
folks
want
to
check
that
out.
That's
also
a
good
source
of
information.
A
All
right
talk
about
community
spotlight.
So
once
again,
thank
you
to
martin
van
stamm,
mvp
who's
been
helping
us
with
issues
and
prs
on
the
pmp
repo
really
appreciate
the
help.
There's
a
link
to
his
twitter
feed
at
the
bottom
there-
and
you
know
it
would
be
great
to
see
other
folks
on
this
community
spotlight
as
well.
So
I
just
want
to
remind
folks
you
know
if
you
want
to
help
out
on
open
source
and
community,
we
have
these
different
repos.
A
A
If
you
have,
if
you
can
help
out
there,
that's
great
one
thing
to
point
out
related
to
this,
so
in
the
pmp
repo
I'm
starting
to
add,
like
we
have
the
sample
requests
which
are
labeled
as
good.
First
issues
help
wanted.
So
if
you
want
to
jump
in
and
just
help
out
on
open
source,
these
are
good
ways
to
get
started.
They
have
descriptions
in
them
of
what
to
do.
I'm
also
going
to
be
adding
some
new
requests
here
soon.
A
For
you
know,
we
need
help
recording
demo
videos
for
youtube
on
all
these
samples,
so
I'll
be
posting.
Those
here
too,
if
folks
want
to
jump
in
on
that,
so
I'm
just
trying
to
help
people
with
more
ideas
of
how
to
help
on
the
community.
If
you
want
all
right,
so
let's
do
some
q
and
a
these
are
some
questions
that
came
in
on
our
q,
a
form
that
we
have,
and
so
I
check
in
with
the
various
teams
to
try
to
get
answers.
A
There
were
three
that
we
had
this
time
and
the
first
one
that's
listed
here.
Unfortunately,
I
don't
have
an
answer
yet
from
the
team.
I
have
a
request
out
on
that,
so
I'm
gonna
have
to
post
an
answer
in
the
blog
summary
that
we
post,
as
someone
was
asking
what
the
expected
timeline
is
for
resolving
an
instability
on
the
android
platform.
A
There's
a
backlog
issue,
it's
hard
to
see
it's
blue
on
blue,
but
it's
in
the
office,
js
repo,
there's
an
issue
tracking
this
the
outlook
team
would
say
and
put
it
on
the
backlog,
but
there's
no
timeline
yet
on
when
that
will
be
addressed.
So
I
have
a
quick
update
information
in
the
blog
summary.
A
A
Here
next
question
was:
there
are
two
open
entries
on
user
voice,
asking
for
a
solution
to
sending
an
email
outlook
and
pose
view
using
the
officejs
api
specifically
to
handle
outlook
on
windows,
cache
mode,
causing
delays
of
more
than
60
seconds
in
some
cases,
when
trying
to
use
ews
or
rest
to
send
an
email,
are
there
any
plans
or
advice
workarounds
to
help
developers
improve
the
stereo
for
end
users?
A
So
we
went
out
on
uservoice
and
tried
to
find
these
requests,
and
I
think
you
know
we're
just
getting
lost
into
how
many
requests
there
are
to
try
to
find
the
specific
ones.
So
the
team
asked,
if
you
know
you,
can
give
us
some
links
to
those
requests
or
more
details
about
it.
We'll
definitely
go.
Take
a
look
because
this
looks
like
a
problem.
Folks
are
having
it
sort
of
sounds
like
an
issue
too.
A
A
The
last
question
was,
with
the
deprecation
of
the
outlook,
rest
api
v2
to
be
decommissioned
in
november
2022.
Are
there
plans
to
provide
a
similar,
seamless
usage
api
option
in
the
admin
api?
Seamless,
as
in
requires
no
user
mac
interaction
eg
via
pop-up,
to
obtain
a
usable
token
client
side,
as
there
is
today
with
get
callback
token
ac?
A
A
This
article,
which
I'll
put
the
link
to
that
article
in
the
blog
post,
and
so
hopefully
that
helps
now
moving
along
if
you're
interested
in
presenting
an
upcoming
call,
we
have
a
forum
you
can
fill
out
and
reach
out
to
us.
That's
slash
office
dash
ad
dash
ins,
dash,
engage
just
put
some
information
about
what
you'd
like
to
talk
about
and
some
contact
info,
and
we
will
reach
out
to
you
and
work
to
set
something
up
if
you're
new
to
office
add-ins
take
a
look
at
our
documentation.
A
There's
an
ms
link
here
to
office
dash
add-ins
docs,
there's
also
a
lot
of
five-minute
quick
starts,
depending
on
the
host
you're
interested
in
like
excel
onenote
outlook
and
so
on.
We
can
get
started
with
things
if
you're
looking
to
automate
excel
tasks,
you
can
also
check
out
our
office
scripts
documentation
at
the
aka
dot,
ms
link
to
office
scripts
dash
docs,
and
then
we
have
additional
developer
resources
as
well.
A
There's
the
microsoft
365
developer
program,
which
gives
you
a
free
tenant
to
develop
and
test
your
office
add-ins,
which
is
a
great
way
to
get
started
as
well
as
just
to
continue
your
development
efforts
with
office
add-ins.
You
can
also
take
a
look
at
script
lab,
which
is
a
great
way
to
try
out
some
samples
without
having
to
set
up
a
dev
environment.
A
We
also
have
a
link
to
our
office,
add-ins
documentation
and
the
custom
functions
documentation
for
excel.
If
you
want
to
engage
with
us,
the
best
place
to
ask
questions
if
you're,
if
you're
running
into
any
problems,
is
to
go
to
stack
overflow
and
use
one
of
these
tags.
There's
office,
js,
outlook
scripts.
A
Also
on
github,
we
have
an
office
js
repo
office
js,
where
you
can
go,
and
basically
let
us
know
if
you're
seeing
a
bug,
that's
where
we
try
to
track
product
bugs,
but
not
on
uservoice.
You
can
ask
future
requests
if
you're
looking
for
new
things
or
you
can
go
upvote
future
requests
that
others
have
proposed
which
helps
us
for
planning
purposes.
And,
finally,
you
can
send
a
smiler
found
on
inside
office.
A
This
isn't
the
only
community
call.
We
have
other
ones
as
well
on
different
technologies
and
platforms.
So
if
you're
interested
in
any
of
these
areas
definitely
go
take
a
look
at
these
calls
and
jump
on.
There's
also
a
link
at
the
bottom
to
aka.ns,
slash,
m365,
dev
calls,
which
has
a
list
of
all
the
calls
that
we
have
every
month
and
then
finally,
just
want
to
say.
Thank
you,
everyone
for
attending.
We
will
post
a
recording
of
this
to
our
youtube
developer
channel.
A
In
a
few
days,
a
that's
at
the
aka
dot,
ms
slash
m365
dev
youtube
link.
You
can
also
follow
us
on
twitter
at
microsoft,
365
dev.
The
next
call
will
be
coming
up
next
year.
Next
year
is
here
now
january:
13th
at
8
a.m,
pacific
daylight
time.
So
please
join
us,
have
a
new
agenda
new
year
more
stuff
to
go
through.