You are on page 1of 44

1.

Power Apps is a collection of services, apps, and connectors that work together
to let you do much more than just view your data. You can act on your data and
update it anywhere and from any device.
2. By using Power Apps, you can quickly build custom business apps that connect to
your business data that is stored either in the underlying data platform (Microsoft
Dataverse) or in various online and on-premises data sources (SharePoint, Excel,
Office 365, Dynamics 365, SQL Server, and so on).
3. Web stranice koje koristiš prilikom izrade i rukovanje Power aplikacije:
Power Apps Home Page - Apps start here, whether you build them from data, a
sample app, or a blank screen.
Power Apps Studio (pise samo i Canvas) - Develop your apps further by
connecting to data, adding and arranging user interface (UI) elements (known as
controls), and building formulas.
Power Apps Mobile - Run your apps on Microsoft Windows, Apple iOS, and Google
Android devices.
Power Apps Admin Center - Manage Power Apps environments and other
components.
4. Power Apps Mobile: Platforma sa koje možeš da pokreneš Power Apps aplikacije na
mobilnom telefonu
5. For data that's stored on-premises instead of in the cloud, you can use a
gateway to provide a reliable connection between Power Apps and your data source.
The gateway sits on an on-premises computer and communicates with Power Apps.
6. Standard and custom tables within Dataverse provide a cloud-based storage option
for your data. Tables let you create a business-focused definition of your
organization's data for use within apps. If you're unsure if tables are your best
option, consider the following benefits:

-Simple to manage - Both the metadata and data are stored in the cloud. You
don't need to worry about the details of how they're stored.
-Helps to secure data - Data is stored so that users can see it only if you
grant them access. Role-based security allows you to control access to tables for
different users within your organization.
-Access your Dynamics 365 Data - Data from your Dynamics 365 applications is
also stored within the Dataverse, which allows you to quickly build apps that use
your Dynamics 365 data and extend your apps by using Power Apps.
-Rich metadata - Data types and relationships are used directly within Power
Apps.
-Logic and validation - Define calculated columns, business rules, workflows,
and business process flows to ensure data quality and drive business processes.
-Productivity tools - Tables are available within the add-ins for Microsoft
Excel to increase productivity and ensure data accessibility.

7. Microsoft Power Apps works with other technologies to help you build powerful
apps for your organization, including:

-Power Automate - Allows you to build automated workflows to receive


notifications, run processes, collect data, and more.

-Power BI - Allows you to connect data from multiple sources and transform
the data into graphical visualizations to gain insights.
8. You can use Power Automate to create logic that performs one or more tasks when
an event occurs in a canvas app. For example, configure a button to execute a flow
to do one of the following: create an item in a SharePoint list, send an email or
meeting request, or add a file to OneDrive.
9. By embedding a Power BI tile in a Power Apps solution, you are able to bring
valuable visualizations into the app to allow the user to consume that data within
the context of the app.
10. Another integration between these two applications, is to embed a Power Apps
app in your Power BI report. This allows the user to act on data while never
leaving the dashboard resulting in a better user experience (znaci power app može u
power bi i obratno)
11. Power Apps is great for performing simple solutions with minimal steps but as
your solutions become more complex and requires multiple steps, Power Automate
would be the better solution.
12. When deciding whether to use the basic charts, graphs, and visuals that come
with Power Apps out of the box or to utilize a more powerful software like Power BI
it really depends on your business solution and requirements.
13. Certain data sources like the Microsoft Dataverse or SQL are considered a
"premium data source". A premium data source will require each user who uses the
app to have a Power Apps Per App Plan or a Power Apps Per User Plan. For more
information about licensing, see Power Apps pricing
14. Power Apps automatically creates three screens for you when you build an app
from a data source. Which of the following is not one of the screens created?
(A Browse Screen, Edit Screen, and Details Screen are all created.)
15. Unlike canvas apps, where you build out an app screen-by-screen by adding logic
and code as you go, model-driven apps can be created with a few simple steps.
Model-driven apps use a component-focused approach to develop the app. When
developing canvas apps, you have complete control over the appearance and behavior
of your app, whereas with model-driven apps, the layout is mainly based on the
components that you add to the app.
(zato imas i Soultionu Web Apps koji imaju slican razvojni interfejs kao Site
Map i onda su ti to Dynamics 365 apps a u stvari ispadne ti model driven app. Zato
je jedna od feature: Apps can be distributed as a solution)

16. Mislim da MODEL DRIVEN APP samo može sa DATAVERSE kao data source.

17. The benefits of building a model-driven app are component-focused design, no


code required, complex responsiveness with similar UI across multiple devices, and
apps can be distributed as solutions. (akcenat je na component-focused)

18. Which of the following sample apps (Misli se na Dynamics 365 Model Driven App)
is not created in your environment when you toggle “Include sample apps and data”
to true? (Customer Survey)

19. Dynamics 365 applications, such as Dynamics 365 Sales, Service, and Marketing,
use Dataverse to store and secure data used by the applications. This means you can
build apps using Power Apps and Dataverse directly against your core business data
already used within Dynamics 365 without the need for manual integration.
20. Entities within Dataverse can leverage rich server-side logic and validation to
ensure data quality. You can also reduce repetitive code in each app that creates
and uses data within a table.

-Business rules (gore pise da je server side logic): Business rules validate
data across multiple columns in a table, and provide warning and error messages,
regardless of the app that's used to create the data.
-Business process flows: Business process flows guide users to ensure they
enter data consistently and follow the same steps every time. Business process
flows are currently supported only for model-driven apps.
-Workflows: Workflows automate business processes without requiring user
interaction.
-Business logic with code: Business logic supports advanced developer
scenarios that extend the application directly through code. (plugin, wf activity)

21. Data in Dataverse is securely stored so that users can see it only if you grant
them access. Role-based security, based on the Dynamics 365 system allows you to
control access to entities for different users within your organization. (priča
koja važi za CRM jer se i on oslanja na istu bazu)
22. You can't delete standard tables, but you can hide them. To hide a standard
table, change the security role privileges for your organization to remove the Read
privilege for that table. This will remove the table from most parts of the
application.
23. When you create a custom table, the options for ownership are User or team
owned, or Organization-owned. After a table is created, you can’t change the
ownership.
-User or team owned: Actions that can be performed on these records can be
controlled at the user level.
-Organization-owned: Access to the data is controlled at the organization
level.
24. An activity is an action that a calendar entry can be made for. Activities have
these characteristics:

-They have time dimensions (start time, stop time, due date, and duration)
that help define when the action occurred or will occur.
-They have data (like a subject and description) that helps define the action
that the activity represents.
-They can be opened, canceled, or completed. Several sub-status values will
be associated with the Completed status of an activity to clarify how the activity
was completed.
-Activity tables can be owned only by a user or team. They can't be owned by
an organization.

25. The following default activity tables are available: Appointment, Email, Fax,
Letter, Phone Call, Recurring Appointment, Task
26. By combining conditions and actions, you can do any of the following with
business rules:

-Set column values


-Clear column values
-Set column requirement levels
-Show or hide columns
-Enable or disable columns
-Validate data and show error messages
-Create business recommendations based on business intelligence.

27. Model-driven apps can use all actions available on business rules, however not
all business rule actions are available for canvas apps at this time. The following
actions are not available on Canvas apps:

-Show or hide columns


-Enable or disable columns
-Create business recommendations based on business intelligence.

28. How many apps can use the same Table? (Unlimited)
29. Model-driven app design is an approach that focuses on quickly adding
components to your apps. These components include dashboards, forms, views, and
charts. With little or no code, you can make apps that are simple or complex.
30. In canvas apps, the app maker has total control over the app layout. In model-
driven apps, on the other hand, much of the layout is determined by the components
you add. The emphasis is more on quickly viewing your business data and making
decisions instead of on intricate app design. A site map specifies the navigation
for your app.
(Ovo se uglavnom misli na front-end deo ali ovde je ukljucen i backend deo kao
sto su plugin-i, wf , br itd.)

31. To access the classic Solution Explorer, you must first select a Solution then
select Switch to classic. (ovo je način kako u okviru Power Apps Platforme da
pristupiš CRM-ovskom solution explorer)
32. MODEL DRIVE APP se radi u : App Designer (čisto zbog terminologije)
33. U okviru App Designer ti je Site Map Designer.
34. Microsoft Power Apps uses role-based security for sharing. A security role
includes privileges that define a set of actions that can be performed in the app.
All app users must be assigned to one or more predefined or custom security roles
35. Microsoft Power Apps uses role-based security for sharing. (jedan od primera je
da bi user mogao da koristi odredjenu MODEL DRIVEN APP (npr. u CRM-u) mora da ima
određenu rolu. Na taj način APP share-uješ na osnovu role)
36. The following predefined roles are available with a PowerApps environment.
Unless otherwise noted, all the privileges have global scope:
-Environment Maker (nema privilegije već može: Users who have this role can
create new resources that are associated with an environment, including apps,
connections, custom application programming interfaces (APIs), gateways, and flows
that use Microsoft Flow. But these users can't access the data in an environment)
-System Administrator
-System Customizer
-Basic
-Delegate

37. You can use a business process flow for a single table or to span multiple
tables. For example, you may have a process that begins with an opportunity, then
continues to a quote, an order, and then an invoice, before finally returning to
close the opportunity. You can design business process flows that tie together the
rows for up to five different tables into a single process so that people using the
app can focus on the flow of their process rather than on which table they are
working in.
38. Not every user in an organization may follow the same process and different
conditions may require that a different process be applied. You can have up to 10
active business process flows per table to provide appropriate processes for
different situations.
39. If you wanted to create a standard procedure or process for handling service
requests what type of logic would be best to implement? (Business process flow,
zato što se radi na unošenju podataka sledeći tačno specifične korake)
40. Tri vrste formi: Main, Quick View Form (samo read only, forma u okviru forme),
Quick Create (samo za unos informacija(Upsert)), Card (za Dashboard ili related
record)
41. Forms are organized into header, body and footer, each capable of containing
form elements like columns. The body of the form is further structured with areas
called tabs that contain sections. Tabs and sections can be configured to support
columns of form elements giving further structure to the content.
42. Custom controls let you transform columns that traditionally contain text into
visualizations. Similarly, you can use custom controls to transform datasets, such
as a view, to display in a more visual rendering rather than a list of rows.
43. An event handler consists of a reference to a JavaScript web resource and a
function defined within that web resource that will execute when the event occurs.
Each element can have up to 50 separate event handlers configured.
44. AutoSave is the default behavior on main forms but can be disabled by
administrators.
45. The table definition must allow for Quick Create before you will be able to
configure a Quick Create form.
46. Card - A card form is used in interactive dashboards and placed on forms of
related tables. It is configured to show key columns at a glance in the table feed.
There are several options available to configure including color coding based on
criteria such as row status.
47. Each table must have a designated fallback form. This is the form that all
users would see if they do not have a security role assigned that matches your role
tailored forms.
48. Only Main forms can be assigned to security roles.
49. You can designate a main form as inactive. This will make it not visible to all
users, regardless of security roles. This feature was included primarily to manage
new forms included when organizations upgrade but you can use it to prevent people
from being able to use any main form.
50. A reference panel is a specialized section that can be added to main forms that
offers interaction with related data in the context of the hosting table row. It
can contain sub-grids of related tables and display related data without having to
navigate to a different form. To get the full value of a reference panel you must
also have Quick View forms configured.
51. Bing Maps can be displayed on a form for the account, contact, lead, quote,
order, invoice, competitor, and system user tables. (specialized form components)
52. Use a timer control with forms where rows need to meet a specific time-based
milestone. A timer control shows how much time is available to complete an action
in the resolution of an active row or how much time has passed since the time to
complete the action has passed. (specialized form components)
53. The Timeline control provides a combined place to view customer interactions
including activities and notes all in one location. (specialized form components)
54. Editable sub-grids can be added to forms in much the same way that other custom
controls can be added. (specialized form components)
55. Custom controls, iFrame, Quick view control (specialized form components)
56. View koristiš za pravljenje subgrid-a. Takođe na ribbon-u view imaš opcije kao
što su export, filter, search itd.
57. Editable Grids are special controls for editing select columns from a view
without needing to open the specific row.
58. You cannot create new rows via the editable grid; you may only use it to update
existing rows. These controls use the custom control framework.
59. In order to use editable grids, you will need to explicitly enable the feature
for each table and enable each subgrid on a form.
60. To enable an editable subgrid on a form, you must start from the form where the
subgrid is located. (krećeš od subrida i onda dodaš custom kontrolu na taj subgrid
da bi dobio editable grid)
61. Public views are automatically created for custom tables and can be modified
but not deleted. More public views can be created and deleted.
62. Users view data on rows from the host table but can also view related tables.
When selected these related data tables load on the host form in a new tab. Each
table can have more than one associated view.
63. The first three columns of the lookup view are visible when a user clicks on
the magnifying glass icon on the related lookup column. (to ti je fora kada odeš na
search lookup-a pa ti za rekord prikaže tri dodatna polja kao informaciju)
64. Charts can only include data from single entity. Imaš System charts ili
Personal (njih možeš da deliš). Verovatno se definuš na osnovu View-a. Personal
charts canot be included in solution (can be exported as xml definition)
65. Dashboards are usually designed for specific role or department. (menadžeri i
ti fazonu, znači overview stvari da zna gde gori itd.)
66. System i User dashboards (verovatno kao za charts mogu da rade share). All
Dashboards are interactive. Svaka od ovih interaktivnih može da bude single stream
or multistream (svaki stream (tj. data) može biti zasnovan na jednom entitetu)
67. Na Dashboard može da postavljaš Chart-ove, View-e (u obliku lista), IFrame, Web
resource, Social insight, Organization insight, Relationship assistents (podaci
mogu da budu predstavljeni i u vidu TILE-ova)
68. The interactive experience dashboards come in two forms: multi-stream and
single-stream. A stream can be summarized as a real-time view of table data. They
are based on a table’s view or queue, and as such a stream can only be based on one
table.
69. Tile view which can be activated by selecting the Switch to Tile View button.
This option toggles stream data into being displayed as interactive summary tiles
that display the count of rows within each stream.
70. Single-stream dashboards display data in real time over a single stream. They
enable a more detailed view of a given table, and as such are good for monitoring
fewer but more complex data
71. Interactive tiles provide an aggregated view of the information in the streams,
across queues or views that interest you most. They help you monitor the volume of
cases and quickly drill down to a particular row. (akkcenat je na agregatnim
funkcijama)
72. Any table supported in Unified Interface can be enabled for interactive
experience dashboards.
73. The interactive dashboards are solution aware and can be exported and then
imported into a different environment as part of a solution. However, the QUEUES
that the streams and tiles are based on aren’t solution aware. Before importing the
dashboard solution into the target system, the queues have to be manually created
in the target system. If you create them in the target system with the same ID, no
further editing is required. This would require use of a data import tool that can
create rows with the same ID, or a developer using the platform API.
(to je onih 100% što je Viki pokidala na ispitu a ovo nije imala pojma pa sam
ja morao na teži način da zaključujem kada sam prebacivao solution)
(Znači queue se ne prenose sa solution)
74. If you need to display form data on a dashboard, what form type should you use?
(CARD jer jedino to može od formi da ide na DASHBOARD)
75. The Microsoft Power Platform is a high-productivity application development
platform from Microsoft. The platform is used by Microsoft to build their own first
party applications Dynamics 365 for Sales, Service, Field Service, Marketing, and
Talent. This means these applications are built natively on the platform.
Enterprise customers can also build their own custom line-of-business applications
using the same technology.
76. Individual users and teams within your organization can also build personal or
team productivity applications with no-code or low-code.
77. Your data is securely protected because the business application platform is
built on Microsoft Azure. This means that they benefit from the Azure platform's
powerful security technologies. Encryption of data, at rest and in transit, also
preserves confidentiality. In addition, business application platform services use
separate front-end and back-end clusters, the Gateway role, and secure data storage
architecture. This helps protect your information and allows your organization's
data to be unified whether in the cloud or on premises.
(Izgleda da se cela ova logika na kojoj je podignuta Power Platforma vrti na
Azure)
78. Now you can make sure that user access to your data is secure and controlled.
The business application platform uses Azure Active Directory (AzureAD) identity
and access management mechanisms to help ensure that only authorized users can
access the environment, data, and reports.
(Ovo si znao za CRM ali i sad u širem kontekstu to se prvenstveno odnosi na
Power Platformu)
79. Data transferred through the on-premises data gateway is encrypted. Data that
users upload is typically sent to Azure Blob storage, and all metadata and
artifacts for the system itself are stored in an Azure SQL database and Azure Table
storage.
80. Administrators can configure Data Loss Prevention policies to control the flow
of data between different services in their flows and apps. These policies can
block data from being sent to non-compliant systems even if the end user would have
access to send this information manually.
81. Each Microsoft Dynamics 365 tenant will include 1 Production Instance and 1
Non-Production Instance (Ovaj Instance bi trebalo da bude jedan ENVIRONMENT).
Depending on your Application Lifecycle Management (ALM) process, you might require
additional subscription capacity (such as additional instances or storage), you can
include these optional add-on licenses with your subscription. Subscription add-ons
apply across tenant; they are not tied to a specific user.
82. Microsoft Dynamics 365 CE Online is a Software as a service (SaaS) solution
with great flexibility in terms of deployment models. Each User Subscription
License (USL) for Microsoft Dynamics 365 CE Online allows Dual-Use Rights which
allows customers the option to deploy the server software either in Microsoft's
cloud or in a private on-premises or partner-hosted cloud.
83. Power Apps and Flow use rights are determined based on the Dynamics 365
application or plan that the user is licensed for. Please see Licensing overview
for more information. (ako imaš CRM pretplatu uglavnom u nekom opsegu možeš da
kreiraš i FLOW i POWER APPS)
84. An authentication process that enables a user to access multiple systems or
services through a single set of sign-on credentials. For example, implementing
single sign-on in an organization's network environment means that after a user
signs in to the network, that user does not have to enter credentials again.
85. For Microsoft 365 subscribers, the Dynamics 365 Customer Engagement apps
instance must be in the same tenant as your Microsoft 365 subscription. A user
account in Active Directory can only sync with one tenant.
86. Mislim da je fora da u jednom TENANT-u možeš imati više ENVIRONMENT-a a da USER
iz AD može biti u relaciji samo sa jednim TENANT-om.
87. You can add Production and non-Production (Sandbox) instances to a Dynamics 365
Customer Engagement apps subscription. Each new instance creates a separate
organization that can be used by different departments, locations, or for non-
production purposes such as development.
(You must be an Microsoft 365 Global administrator to do these tasks.)
88. A Sandbox instance is any non-production instance of Dynamics 365 Customer
Engagement apps. Isolated from production, a Sandbox instance is the place to
safely develop and test application changes with low risk. A tenant can have up to
75 non-Production instances.
89. A tenant can have up to 50 Production instances.
90. The Dataverse allows you to securely store and manage data used in your Power
Apps environments. As of March 21, 2018, Power Apps environments provisioned with a
Dataverse database are displayed as instances in the Dynamics 365 admin center.
There you can view and do some management of your Dataverse instances.
91. Dynamics 365 admin center:
- Add or remove a user or group from either the Environment Admin or
Environment Maker role
- Provision a Dataverse database for the environment.
- Set Data Loss Prevention policies.
- Set database security policies (as open or restricted by database roles).
- Members of the Azure AD tenant Global administrator role (includes
Microsoft 365 Global admins) can also manage all environments that have been
created in their tenant and set tenant-wide policies from the Power Apps admin
center.

92. Ovaj Dynamics 365 Admin Center je ono čudo gde se instalirao MANAGED sales
solution itd. što si se zezao za TELESIGN i zameniće ga POWER PLATFORM ADMINT
CENTAR (gde si već mogao dosta lakše da menjaš ENVIROMENT-e i da se krećeš kroz
navigaciju)
93. Multiple instances can share users among instances; multiple tenants cannot.
(To ti je fora da imaš GREGOR.HOJNIK na DVADEV i npr. na DVATEMP jer su oba
okruženja u okviru istog TENANTA)
94. For Dynamics 365 Customer Engagement apps, a tenant is the account you create
in the Microsoft Online Services environment when you sign up for a subscription. A
tenant contains uniquely identified domains, users, security groups, and
subscriptions and can contain multiple instances. The tenant created for you has a
domain name of < account >.onmicrosoft.com. For example, contoso.onmicrosoft.com.
95. When you sign up for a trial or purchase a subscription, a Production instance
is created. Each additional Production or non-Production (Sandbox) instance you add
creates a separate and isolated organization on the same tenant. An instance has
the URL format: https://< URL name >.crm.dynamics.com. For example,
https://contososales.crm.dynamics.com
96. A subscription consists of the licenses and add-ons included with the trial or
paid service you signed up for in your account. Subscriptions can vary in license
type, price, and end date. For example, a subscription might be 100 licenses of
Dynamics 365 Customer Engagement apps Professional and 10 licenses of Dynamics 365
Customer Engagement apps Enterprise
97. The user account used to sign in. You can also use this identity to access
other Microsoft Online services, such as Microsoft 365 or SharePoint Online.
Administrators can decide if they want to federate user identity management between
Dynamics 365 Customer Engagement apps and on-premises Active Directory.
(verovatno USER ACCOUNT kome su dodeljene određene role)
98. A user account assigned by an organization (work, school, non-profit) to one of
their constituents (an employee, student, customer) that provides sign-in access to
one or more of the organization's Microsoft cloud service subscriptions, such as
Exchange Online or Dynamics 365 Customer Engagement apps. Access to an online
service is controlled by the license assigned to the user account. User accounts
are stored in an organization's cloud directory within Azure Active Directory, and
are typically deleted when the user leaves the organization. Organizational
accounts differ from Microsoft accounts in that they are created and managed by
admins in the organization, not by the user.
99. Each instance within the tenant receives its own SQL database. Data is not
shared across instances. Storage is shared across the primary instance and any
additional instances. (STORAGE a ne DATA!)
100. User accounts, identities, security groups, subscriptions, licenses, and
storage cannot be shared among tenants.
101. https://docs.microsoft.com/en-us/learn/modules/designing-power-platform-
deployments/4-multi-tenant-multi-instance-deployments
(ovde imaš detaljnije o svemu prethodnom rečenom)
102. A Microsoft Online Services environment administrator manages the Dynamics 365
Customer Engagement apps subscription, including billing and payments, user
licenses, accounts and registration. You do these tasks in the Microsoft 365 admin
center.
103 The Microsoft 365 admin center is a portal site rich in features for the
administrator. Dynamics 365 Customer Engagement apps takes advantage of the
features on this site to simplify and consolidate management of user accounts,
billing, licensing, and more.
104. The tenant subscriptions include by default 10-GB database storage as long at
least one instance of the tenant is on v8.2. (+ 5gb na svakih 20 user-a max 30tb)
105. Storage usage is displayed on the Microsoft Dynamics 365 Admin Center within
the Service Health tab:
106. The non-interactive user is not a 'user' in the typical sense -- it is not a
person but an access mode that is created with a user account. It is used for
programmatic access to and from Dynamics 365 Customer Engagement apps between
applications. A non-interactive user account lets these applications or tools
authenticate and access Dynamics 365 Customer Engagement apps (online), without
requiring a Dynamics 365 Customer Engagement apps (online) license. For each
instance of Dynamics 365 Customer Engagement apps (online), you can create up to
five non-interactive user accounts.
(to su ti ovi USER-i koje koristiš za pozivanje SDK-a i API-ja)
107. You need to have the System Administrator security role or equivalent
permissions in Dynamics 365 Customer Engagement apps to create a non-interactive
user. First, you'll create a user account in Microsoft 365 and then in Dynamics 365
Customer Engagement apps, select the non-interactive access mode for the account.
108. You can choose from three main identity models in Microsoft 365 when you set
up and manage user accounts:
- Cloud identity: Manage your user accounts in Microsoft 365 only. No on-
premises servers are required to manage users; it's all done in the cloud.
- Synchronized identity: Synchronize on-premises directory objects with
Microsoft 365 and manage your users on-premises. You can also synchronize passwords
so that the users have the same password on-premises and in the cloud, but they
will have to sign in again to use Microsoft 365.
- Federated identity: Synchronize on-premises directory objects with
Microsoft 365 and manage your users on-premises. The users have the same password
on-premises and in the cloud, and they do not have to sign in again to use
Microsoft 365. This is often referred to as single sign-on.
109. Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO)
automatically signs users in when they are on their corporate devices connected to
your corporate network. When enabled, users don't need to type in their passwords
to sign in to Azure AD, and usually, even type in their usernames. This feature
provides your users easy access to your cloud-based applications without needing
any additional on-premises components.
110. Seamless SSO can be combined with either the Password Hash Synchronization or
Pass-through Authentication sign-in methods. Seamless SSO is not applicable to
Active Directory Federation Services (ADFS).
111. Storage is shared across the primary instance and any additional instances.
All instances for a single customer tenant will be set up in the geography where
they initially signed up for their account. Storage consumption is totaled and
tracked across all the instances attached to a customer tenant. (Available storage)
112. Administration mode lets you make changes to a Sandbox that does not affect
the work of your users.
113. Many organizations implementing Dynamics 365 Customer Engagement apps on
Microsoft Power Platform are unaware of the amazing capabilities included with
their subscription. By default, your subscription includes Microsoft Portals,
Gamification, and Voice of the Customer surveys, in addition to technical
capabilities like backup and restore, and integrated planning for updates and
upgrades.
114. In addition to registration with the online service, the user account must be
assigned a license in order for the user to have access to the service.
Note that when you assign a user the global administrator or the service
administrator role in the Microsoft Online Services environment, it automatically
assigns the user the System Administrator security role in Dynamics 365 Customer
Engagement apps.
115. When you create a user and assign a license in the Microsoft 365 Admin Center,
the user is also created in Dynamics 365 Customer Engagement apps.
(hoce verovatno da kaze da kada ga kreiras u admin centru onda se kreira i
user rekord u CRM-u)
116. Global Admin: Accesses all administrative features in the Microsoft 365 suite
of services in your plan, including Skype for Business. By default the person who
signs up to buy Microsoft 365 becomes a global admin. Global admins are the only
admins who can assign other admin roles, and only global admins can manage the
accounts of other global admins. You can have more than one global admin in your
organization. As a best practice we recommend that only a few people in your
company have this role. It reduces the risk to your business.
117. From all of the roles we can assign to users, there are a few that relate to
Microsoft Dynamics 365:
- Global Admin
- Billing Administrator
- User Management Administrator
- Dynamics 365 service administrator
(imaš detaljnije
https://docs.microsoft.com/en-us/learn/modules/administrating-power-platform-
subscriptions/1-manage-users-admin-portal)
118. In order for users to access Dynamics 365 Customer Engagement apps, they must
have a User Subscription License (klasika moraš da imaš licencu za USER-a zato i
ide 100 dolara mesečno) assigned to their user account.
119. When you place a Sandbox instance in administration mode only users with
Dynamics 365 Customer Engagement apps System Administrator or System Customizer
security roles will be able to sign in to that instance (ovo važi samo za Sand Box)
120. You can use Copy instance in the Dynamics 365 admin center to copy the
Dynamics 365 Customer Engagement apps and all data from any instance to a Sandbox
instance. You can do either a full or minimal copy.
(ovo ti je još jedan mogućnost Admin Centra ono što je u suštini Gregor uradio
za DVATEMP environment)
A Minimal copy only includes users, customizations, and schema from the
source instance and is suitable for
121. COPY uvek radiš na okruženje koje je SandBox nikad ne može na produkciono
122.In Dynamics 365 Business Central, a sandbox is an environment totally isolated
from a production instance, where you can develop, test, run demos, and play with
the service, without affecting the real production data.
123. To ensure the newly created copy (target) instance does not impact your
Production instance, once the copy operation is complete, two things happen:
- The newly created copy instance is placed in administration mode.
- Background operations are disabled in the copy instance. Disabled
operations include workflows and synchronization with Microsoft Exchange.
124. It is important to note that all instances are backed up automatically and
daily. These backups do not count against your storage limits and are retained for
3 days
(Automated system backups are great, but you will want to be able to make your
own backups before making some significant customization change or applying a
version update. You can do this with on-demand Customer Engagement apps managed
backups. On-demand backups do not count against your storage limits and just like
automatic backups are retained for 3 days.)
125. You can only restore to Sandbox instances. To restore to a Production
instance, first switch it to a Sandbox instance, restore to it, and then switch it
back to a Production instance
(Okruženje može da bude jedan od dva tipa a to je PRODUCTION i SANDBOX
(Bukvalno kada odeš u Admin Centar bilo stari (365 Admin) ili novi (Power Platform
Admin) i odeš na okruženja imaš dugme: CONVERT TO PRODUCTION. Zato oni pričaju u
kontekstu TO SWITCH))
126. The type of subscription you purchase determines the amount of storage
initially allocated to your organization. If you run out of storage, you can add
more.
(verovatno se misli na osnovu broja USER-a?)(I količina STORAGE se proverava u
Admin Centru. Storage može da se takođe dokupljuje preko određenog Subscription-a
(npr. zove se Dynamics Additional Storage))
127. Update organizacije se takođe radi preko ADMIN centra.
128. ou should take the time before your update to verify that customizations are
compatible. You should do this early enough that you have time to fix any
identified issues. Additionally, Microsoft will run several automated tests, and if
any of those tests fail in your instance, we will email the administrator a list of
potential issues we have identified.
129. U ADMIN centru možeš takođe da uradiš instalaciju DYNAMICS aplikacija (čitaj
SOLUTION-a. Fora je da neke solution tj. aplikacije je verovatno jedini način da
instaliraš)
(Takođe ti pruža uvid koje su ostala aplikacije/solution dostupni za tu
organizaciju)
130. Neke aplikacije/solutione ćeš instalirati preko APP SOURCE (Apliakcije-> Get
More Apps (deonji levi ugao))
131. Portals are websites that you can customize to provide a more personalized
experience to your customers, partners, or internal employees. Portals integrate
with Dynamics 365 Customer Engagement apps to show data from Dynamics 365 Customer
Engagement apps on the portal. By using portals, you can create a variety of
experiences where portal users can perform several tasks. For example:
- Customers can submit cases and find knowledge articles.
- Partners can see and manage sales opportunities.
- Internal employees can create and see best practices.
(Znači veb sajt koji se konfiguriše u CRM-u. Verovatno se svi podaci
bukvalno povlače sa DATA VERSE a CRM je samo interfejs za konfiguraciju)
132. To provision a portal, you must be assigned to the System Administrator role
of the organization selected for the portal.
(Treba posebna licenca za portal. NARAVNO sa svime rečeno i PORTAL ti dođe tip
solutiona)
133. Sample data is only provided in one language, so choosing a default language
will also decide how the sample data is translated. Arabic and Hebrew are not
supported and will not appear in the list.
134. In the Portal Audience section, choose the type of audience who will visit the
new portal. This will determine what options of portals you will be given. You can
choose:

-Partner
Customer Self Service Portal
Custom Portal
Partner Portal
Partner Project Service (Optional, requires solutions installed)
Partner Field Service (Optional, requires solutions installed)
Community Portal
-Customer
Customer Self Service Portal
Custom Portal
Community Portal
-Employee
Employee Self Service Portal
135. Mislim da si instalirao pre ovaj VOICE OF THE CUSTOMER APP (makar TRIAL) preko
ADMIN centra
136. The major updates will be deployed similar to our Minor Service Update
experience we are delivering today and won't require you to schedule downtime. And
also Microsoft will deliver two major updates per year, in April and October,
offering new capabilities and functionality. These updates will be backward
compatible, so your apps and customizations will continue to work post-update.
137. You can place sandbox and production instances in Administration Mode so only
users with System Administrator or System Customizer security roles will be able to
sign in to that instance. (proveri ovo jer pre toga je pisalo samo SANDBOX!!!!)
138. Imaš i aplikacije za CRM (kao neka vrsta klijenta koja ti omogućava ograničenu
interakciju sa CRM-u)
139. CRM Outlook App (iz outlook-a imaš interakciju sa CRM-om. Dynamics 365 App for
Outlook):
- View information about contacts and leads while you're working in Outlook
- Link email messages, meetings, and appointments to a record with a single
click
- Open records directly to find or enter more detailed information.
- Add a phone call, task, or appointment activity.
- Create a new record for any entity (record type).
- Add email templates, knowledge articles, and sales literature when you
create an email message or set up a meeting.
- Track Outlook contacts.
140. Imaš requirements da bi mogao da koristiš Outlook app:
https://docs.microsoft.com/en-us/learn/modules/manage-clients/2-outlook-add-in
141. Dynamics 365 Customer Engagement apps provides access to Dynamics 365 App for
Outlook through the Use Dynamics 365 App for Outlook privilege. If a user doesn't
have this privilege, they'll receive the following error:

"You haven't been authorized to use this app. Check with your system administrator
to update your settings.

142. Dynamics 365 for phones and Dynamics 365 for tablets apps for sales, customer
service, field service, and other tasks when they're on the go. (znači imaš i
aplikacije za telefone i tablete)
(With a single download from the app store, users will automatically have
access to all the apps that they need for their role.)
- Dynamics 365 for phones
- Dynamics 365 for tablets
143. Možeš da pokreneš ove aplikacije iz web pregledača na svakom uređaju koji
podržava Windows 10.
(Ima čak i app za Windows Ipad)
144. Dosta ovih fora sa mobile se ce customization rade tako što na formama imaš
opciju AVAIABLE FOR PHONE
145. Dynamics 365 Customer Engagement apps use a security privilege, Dynamics 365
for mobile, to provide access to Dynamics 365 for phones and Dynamics 365 for
tablets. The privilege is pre-configured for Sales roles, but not other security
roles, so you may want to add to other roles for your teams.
(znači nije ROLA već PRIVILEGIJA u okviru role)
146. Kada instaliraš (mislie se na MOBILE) onda imaš pristup svim DYNAMICS
aplikacijam sa rolom koju poseduješ.
147. Also, one of the best features of Dynamics 365 for phones and Dynamics 365 for
tablets is the ability to provide users with enhanced offline access to Dynamics
365 Customer Engagement apps. When offline synchronization is turned on, mobile
users can seamlessly work in offline mode on their mobile device when they don't
have an internet connection.
(This offline experience uses Azure services to periodically synchronize
entities with the Dynamics 365 Customer Engagement apps for phones and tablets apps
so synchronized records are available when users' mobile devices are disconnected.)
148. The Field Service MOBILE(verovatno ima i klasična DYNAMICS) app gives field
technicians the information they need to get to a customer location and complete
work orders quickly.
(Before field technicians can use the Field Service Mobile app, an
administrator needs to install the Field Service Mobile configuration tool and
related mobile project.)
(In order to use Field Service Mobile, the bookable resource (field
technician) record must have Enabled for Field Service Mobile set to Yes.)
149. Field Service Mobile (mobile) lets users work online or offline. Online mode
requires an Internet connection; offline mode does not.
(za listu potencijalnih problema sa app:
https://docs.microsoft.com/en-us/learn/modules/manage-clients/4-install-field-
service-mobile-app)

150. In a portal application, an authenticated portal user is associated with


either a Dynamics 365 Customer Engagement apps contact or system user.
151. The default portals configuration is contact based. This means that to sign
in, a contact must have the appropriate web authentication information configured.
152. Portal users must be assigned to a web role to gain permissions beyond
unauthenticated users. To configure permissions for a web role, you need to
configure the webpage access and website access control rules.
153. The latest portal authentication experience allows portal users to sign in
with their choice of a local contact membership provider-based account or an
external account based on ASP.NET Identity:
- Local authentication - This common forms-based authentication uses the
contact records of a Dynamics 365 for Customer Engagement organization for
authentication. To build custom authentication experiences, developers can use the
ASP.Net Identity API to create custom login pages and tools.
(na osnovu CONTACT rekorda)
- External authentication - This is provided by the ASP.NET Identity API. In
this case, account credentials and password management are handled by a third-party
identity provider. This includes OpenID based providers such as Yahoo, Google, and
OAuth 2.0-based providers such as Twitter, Facebook, and Microsoft. Users sign in
to the portal by selecting an external identity to register with the portal.
(ovo na osnovu account od nekog drugog provajdera)
154. Portal administrators have several options for controlling account sign-up
behavior. Open registration is the least restrictive sign-up configuration where
the portal allows a user account to be registered by simply providing a user
identity. Alternative configurations can require users to provide an invitation
code or valid email address to register with the portal.
155. Use the portals invitation feature to invite contacts to your portal through
automated email(s) created in your system. The people that you invite receive an
email, fully customizable by you, with a link to your portal and an invitation
code. This code can be used to gain special access configured by you.
(takođe može da vršiš i verifikaciju korisnika PORTAL-a tako što ćeš im
poslati email da utvrdiš da li su stvarni tj. da user koji pristupa stvarno
poseduje tu email adresu)
(The invitation is sent only to the primary email (emailaddress1) of the
contact. The invitation will not be sent to the secondary email (emailaddress2) or
alternate email (emailaddress3) of the contact record.)
(imaš na Contact-u SEND INVITATIOn dugme za trigerovanje FLOW-a)
156. After a contact has been configured to use the portal, it must be given one or
more web roles to perform any special actions or access any protected content on
the portal. For example, to access a restricted page, the contact must be assigned
to a role to which read for that page is restricted to. To publish new content, the
contact must be placed in a role which is given content publishing permissions.
(trebaju ti specifičena ROLE (ove roles se zovu WEB ROLES) da bi čitao sadržaj
sa portala, kreirao CASE (npr. želiš da uloiš žalbu kao klijent itd.))
157. Svaka od rola može imati i specifične atribute: Authenticated Users Role i
Anonymous Users Role (da budu default role u zavisnosti od PORTAL user-a)
158. Za više o WEB ROLE-ama, PERMISSION i SCOPE na : https://docs.microsoft.com/en-
us/learn/modules/manage-clients/5-access-portals
159. Unified Service Desk controls the call center agent's view by manipulating
windows, injecting JavaScript, and so on. If major changes occur to the environment
after Unified Service Desk is deployed, it might cause your Unified Service Desk
configuration to no longer work as required.
(ovo čak mislim da je DEPRICATED)
160. Ovde možeš da vidiš kako da konfigurišeš neke od stvair koje su potrebne da bi
radio app Dynamics For Outlook za pojedinačnog usera
(https://docs.microsoft.com/en-us/learn/modules/manage-clients/7-enable-outlook-
add-in)
161. The Dynamics 365 App for Outlook is the only client that can track from
Outlook for MAC.
162. Dynamics 365 Customer Engagement apps use a security privilege, Dynamics 365
for mobile, to provide access to Dynamics 365 for phones and Dynamics 365 for
tablets. The privilege is pre-configured for Sales roles, but not other security
roles, so you might want to add other roles for your teams.
163. Consider the following when planning security for Dynamics 365 for tablets:
- Data transmission - Dynamics 365 for tablets requires an internet-facing
deployment (IFD), so when your organization's mobile devices synchronize data with
your online Microsoft Dynamics Customer Engagement apps, the data is encrypted with
Transport Layer Security (TLS) or Secure Sockets Layer (SSL).
- Cached data - Dynamics 365 for phones and Dynamics 365 for tablets only
cache records and lists that you've recently accessed in the app. To clear cached
data, users can either sign out or reconfigure.
- Encrypting cached data - Cached data is not encrypted. You can use
BitLocker to encrypt the entire hard drive on a Windows 8 or later device. For
Apple and Android devices, consider Windows Intune or a product from another
company to encrypt the hard drive on the mobile device.
164. Seamlessly work offline with mobile (izgleda ne važi za tablete) offline
synchronization. You can work with the mobile app in offline mode when the device
is disconnected from the internet
165. Before field technicians can use the Field Service Mobile app, an
administrator needs to install the Field Service Mobile configuration tool and
related mobile project.
166. Any table that is enabled for mobile can also be enabled for mobile offline.
167. The user can move from Dynamics 365 to Outlook, from Outlook to SharePoint,
and then back to Dynamics 365 all within the same workflow. (Deep app linking ili
Deep Integration)
(smisao je da iz jedne mobilne aplikacije npr. Outlook for mobile možeš
direktno da odeš u CRM (putem mobilne aplikacije za CRM) a odatle npr. na
SharePoint da pogledaš Note. Time se stvara osećaj da se sva interakcija vrši u
okviru jedne mobilne aplikacije)
168. Use task flows to complete common set of tasks. For example, if you need to
perform a series of follow-up steps on a regular basis then tap the Start Task Flow
button on the nav bar. This will lead you through the entire task from start to
finish, so,you don't forget an important step.
(Izgleda ima isti dizajner kao BPF)
169. Further, apps built using Power Apps have a responsive design, and can run
seamlessly in a browser or on mobile devices (phone or tablet)
170. Model-driven apps use the Unified Interface that provides a responsive and
accessible design.
171. Model-driven apps DONT'T run in the POWER APPS mobile app. Instead, you run a
model-driven app on a mobile device using either the Dynamics 365 mobile app or in
the phone's web browser.
(Što je i logično jer i na WEB BROWSER ti koristiš u okviru CRM)
172. Izgleda da na ROLI moraš da omogućiš da bi bilo enable-ovano za mobile:
Dynamics 365 for mobile
(Entitete uklanjaš tako što u META data imaš opciju ENABLE FOR MOBILE)
173. Dynamics 365 for tablets can show multiple dashboards (personal, and system)
but the dashboards will only appear if they are enabled for mobile.
174. Power Automate is an online workflow service that automates actions across the
most common apps and services. For example, you can create a flow that adds a lead
to Microsoft Dynamics 365 and a record in MailChimp whenever someone with more than
100 followers tweets about your company.
(You can connect to more than 220 services, and can manage data either
in the cloud or in on-premises sources like SharePoint and Microsoft SQL Server.
The list of applications you can use with Power Automate grows constantly.)
175. You can use Power Automate to automate workflows between your favorite
applications and services, sync files, get notifications, collect data, and much
more:
- Instantly respond to high-priority notifications or emails.
- Capture, track, and follow up with new sales leads.
- Copy all email attachments to your OneDrive for Business account.
- Collect data about your business, and share that information with your
team.
- Automate approval workflows
176. Imaš ovde primere za šta se koristi MS flows: https://docs.microsoft.com/en-
us/learn/modules/get-started-flows/1-introduction?ns-enrollment-
type=LearningPath&ns-enrollment-id=learn-bizapps.automate-process-using-flow
177. Power Flow servis omogućava da koristiš sledeće FLOW: Cloud FLows (mislis se
na MS flows sa kojima si ti upoznat samo sa različtim triggerom (schedule, on
demand itd.)), Desktop Flows (Power Automated Desctop (bukvalno izvršava određene
korake na tvom kompu, Selenium IDE i Windows Recorder)) i BP flow (čisto da znaš da
nije samo fora o MS Flow)
(Kad odeš na Power Automate -> My Flows ovo ti je lepo ispisano i podeljeno)
178. Imaš TEMPLATE za flow-e.
179. Keep these concepts in mind when building flows:
- Every flow has two main parts: a trigger, and one or more actions.
- You can think of the trigger as the starting action for the flow. The
trigger can be something like a new email arriving in your inbox or a new item
being added to a SharePoint list.
- Actions are what you want to happen when a trigger is invoked. For example,
the new email trigger will start the action of creating a new file on OneDrive for
Business. Other examples of actions include sending an email, posting a tweet, and
starting an approval.
180. Izgleda kao što si imao Power Apps Mobile imaš i POWER AUTOMATE APP
(sa ovim app-om možeš da kreiraš i menjaš FLOW, da pokrećeš (imaš dugme za
pokretanje), da gledaš aktivnosti vezano za flow )
181. Multiple people can own and manage a flow together (Team Flow)
182. To create a team flow, you must have a paid Power Automate plan. Also, to add
more owners to a team flow or remove owners from it, you must be the creator or an
owner.
183. Da bi video šta nije uredu sa FLOW: Settings -> Activity -> nadješ svoj flow
184. Flows sometimes fail if a setting in one of the flow's actions doesn't work as
expected. In this case, the error message includes the phrase "Bad request" or "Not
found," or an error code 400 or 404 appears. (verovatno što je online pa svaki
action može da bude i neki http request)
185. Your plan determines how often your flows run. For example, your flows might
run every 15 minutes if you're on the free plan. If a flow is triggered less than
15 minutes after its last run, it's queued until 15 minutes have passed.
186. Each account can have up to:
- 250 flows.
- 15 custom connectors.
- 20 connections per application programming interface (API) and 100
connections total

You can install a gateway only in the default environment.


Some external connectors, like Twitter, implement connection throttling to
control the quality of service. Your flows might fail when throttling is in effect.
If your flows are failing, review the details of the run that failed in the flow's
run history.

187. Trigger tokens are data points that are known and available to the device that
a button flow is running on (vezano za MS Flow)
(You can build button flows that use information like Global Positioning
System (GPS) data, date information, or email. This information is available as
trigger tokens.)
188. You can use these trigger tokens to build useful flows that minimize
repetitive tasks like providing your location to someone or tracking how much time
you spent on a particular job/service call.
189. You can create a button flow either on the Power Automate website or in the
mobile app for Power Automate.
200. https://docs.microsoft.com/en-us/learn/modules/build-more-flows/ (ovde imaš
primere različitih flow-a)
201. Ovo je za Flow schedule tipa: The advanced options vary, depending on the
value of the Interval and Frequency fields
202. To invoke a flow trigger, the Microsoft Dataverse customer engagement table
that's used with the flow must have change tracking turned on.
203. Triggers like When a record is created, When a record is updated, and When a
record is deleted will start your flow within a few minutes after the event occurs.
In rare cases, it might take up to two hours for your flow to be triggered.
(When the trigger occurs, the flow receives a notification, but the flow runs
on the data that exists when the action runs.)
204. Power Apps and Power Automate share a common connector framework that lets you
weave in dozens of data sources that are located on premises or in the cloud. These
data sources include Microsoft Exchange, Microsoft SQL Server, Microsoft Dataverse,
Salesforce, Google, MailChimp, Twitter, and Wunderlist.
205. BPF može da obuhvata više entitet ali samo jedan max po STAGE (ovi stage-ovi
verovatno moraju da budu definisani postojećim relacijama među entitetima)
206. U SR imaš da definišeš i privilegije za svaki od pojedinačnig BPF
207. Set Process Flow Order: If you have more than one business process flow for a
table, you must specify which process is automatically assigned to new records.
208. Enable Security Roles: A user's access to a business process flow depends on
the privileges that are defined for the business process flow in the security role
that's assigned to the user. By default, only the System Administrator and System
Customizer security roles can view a new business process flow.
209. Keep the following points in mind when you design a business process flow that
has branches:
- A process can span a maximum of five unique entities.
- You can use a maximum of 30 stages per process and a maximum of 30 steps
per stage.
- Each branch can be no more than five levels deep.
- You can combine multiple conditions in a rule by using the AND operator or
the OR operator, but not both.
- When you define a process flow, you can optionally select a table
relationship. This table relationship must a one-to-many (1:N) relationship.
- More than one active process can run concurrently on the same data record.
- A table that's used in the process can be revisited multiple times (that
is, there can be multiple closed table loops).
210. Phone number is not an available trigger token.
211. The Admin center is the central location where tenant admins and environment
admins manage an organization's data policies and environments. Any changes that
you make in the Admin center are immediately available to users in the
organization.
212. An environment is a space where you can store, manage, and share your
organization's business data, apps, and flows. It also serves as a container to
separate apps that might have different roles, security requirements, or target
audiences:
- You can create separate environments to group the test and production
versions of your apps.
- You can create separate environments that correspond to specific teams or
departments in your company. Each environment holds the relevant data and apps for
each team/department.
- You can build all your apps in a single environment.
213. When you use Power Automate, the data is automatically protected with whatever
security roles your organization already has in place. It isn't possible to use
Power Automate to get access to information that the user doesn't already have
access to in the organization.
214. Power Automate allows you to export and then import a flow so that others can
use it. (dobiješ ZIP fajl koji možeš da importuješ preko Power Automate stranice.
Nisam siguran da li funkcioniše identično kao CRM solution)
215. In the Power Automate mobile app, you can share button flows with other users
or groups in your organization. The users or groups with whom you share a button
can then run it the same way they run their own buttons. You can also share a link
to buttons that another person shared with you. You can stop sharing your buttons
at any time.
216. Microsoft Power Automate is a great way to automate AI Builder usage and
exploit AI model results at scale.
(Izgleda da ima neki feature Power Platform-e koji se zove AI Builder i može
da se koristi kao Action u Power Automate)
217. AI Builder is licensed as an add-on to your Power Apps, Power Automate, or
Dynamics 365 license. This means you can start your AI Builder trial after you have
a Power Apps, Power Automate, or Dynamics 365 license that allows you to create a
Microsoft Dataverse environment.
218. AI Builder is a Microsoft Power Platform capability that provides AI models
that are designed to optimize your business processes. AI Builder enables your
business to use AI to automate processes and glean insights from your data in Power
Apps and Power Automate
219. With AI Builder, you can build custom models tailored to your needs, or choose
a prebuilt model that is ready to use for many common business scenarios.
220. Izgleda da ovaj AI Builder jeste klasičan model napravljen kroz matematičko
učenje i u suštini služi za generisanje korisnih podataka.
Zamisao je da se korisniku ponudi na fazon template koji može da iskonfiguriše
i poveže na neku bazu (mogu da budu podaci (klasični tabelarni), slike, dokumenta
itd.). Na ovaj način ima matematički model koji može da istrenira nad setom
podataka i onda koristi. Znači zamisao da ti ne treba znanje iz mašinskog učenja
kao što je zamisao da ti ne trebaju FRONT END skill za POWER APPS ili BACKEND skill
za Power Automate.
Znači:
- Power Apps: Front End
- Power Automate: Back End
- AI Builder: Machine Learning
221. Tako da imaš različite modele: Detektovanje objekata na slici, izvlačenje
podataka iz teksta i smeštanja u tabelu, kategorisanje teksta itd. (Power Automate
-> Build (ovde možeš naći modele))
- Checks for the language of a received email by using the AI Builder
language detection model.
- Routes the email into the mailbox of the team in charge, depending on the
language that is detected.
- A Power Automate flow processes all new pictures in the folder, sends them
to your AI Builder text recognition model to extract the forms' information, and
then saves them in the centralized tool. (text sa slike)
- Evo još jednog primera:
https://docs.microsoft.com/en-us/learn/modules/ai-builder-power-automate/3-ai-
builder-actions
222. From AI Builder studio, you can launch the creation of a flow by using your
favorite model.
223. You can find preconfigured AI Builder flows in templates. AI Builder logic is
incorporated by adding a new step to your flow and searching for the AI Builder
action name.
224. Microsoft Power Automate Desktop allows you to record actions that you perform
on your computer, while Microsoft Dataverse stores the information from your
processes. As a result, you will need to have access to these technologies, from a
licensing and security perspective, to take advantage of process advisor.
225. Ovaj Microsoft Power Automate Desktop mislim da ti bukvalno služi da
isprogramiraš koji set akcija će se desiti na kompu. Znači može biti akcija idi na
taj WEB SITE i popuni određenu formu i pošalji.
Interfejs za kreiranja ovog FLOW-a (u prenesenom značenju) je u Power
Platformi na sličan fazon kao i sve ostalo.
226. As you record, make sure that you go slowly and wait several seconds between
actions. A red outline will appear on a control before selecting and a blue
highlight will appear after. If these outlines and highlights do not appear, your
actions might not be recorded properly.
(možeš o da snimaš akcije koje radiš na računaru pa ti on izgeneriše korake)
227. Zbog toga ovaj PROCESS ADVISOR (imaš tab u Power Automate) ima mnogo više
smisla kad može da prođe kroz ovaj "FLOW" koji si kreirao sa ovim Power Automate
Desktop. Zato se i nazova process advisor jer analizira BUSINESS PROCESS-e koje si
ti prethodno digitalizovao.
228. Ovaj PROCESS ADVISOR izgleda radi samo na procesima koje dobiješ kroz PROCESS
ADVISOR.
229. Activities will also allow Power Automate to understand variations in the
process between users and recordings.
(Izgleda da je fora da kreiraš proces preko dizajnera i da snimiš taj isti
proces koji radiš sam na kompu. Onda PROCESS ADVISOR može da uporedi ta dva procesa
i predloži šta korisnik može da radi drugačije)
(Znači još jednom poenta je da sam dizajniraš proces preko editora (kao što bi
npr. BPF u CRM-u) gde dobiješ niz koraka. Onda snimiš taj isti proces na računaru i
opet ti izgeneriše (Microsoft Power Automate Desktop) te korake. Nakon čega PROCESS
ADVISOR može da uporedi )
230. Editing personal information and deleting screenshots can be important for
keeping anonymous data anonymous because it's shared with any owners of the
process. You can also delete sensitive steps or modify data input while recording,
and you can pause the recording, perform actions regarding sensitive data, and then
resume recording.
(ovo za Microsoft Power Automate Desktop kada snimaš pa dobiješ korake )
231. Within your process map, you might see blue icons on various activities, as
shown in the following screenshot. These blue icons are recommendations for
automation. Power Automate assessed the information, such as time and applications
that are involved in this activity, and has recommended further action.
(nakon upoređivanja recordings od više USER-a ti dobije izgenerisan dijagram
process-a zajedno sa analitikom vezano za taj proces i za neke korake dobije i
RECOMMENDATIONS)
232. A variant is a deviation in the process where users take different paths,
which is called out in the process map.
233. Contributors or co-owners can add recordings, but contributors can only edit
or delete their own recordings, while co-owners can edit or delete any recordings
in the process.
234. You only need two recordings, but the more recordings you have, the greater
your insights will be.
235. Recommendations include all connectors that are relevant to your process,
including Power Automate Desktop to automate legacy applications.
(vezano za predloge PROCESS ADVISOR)
236. Microsoft Power BI is a collection of software services, apps, and connectors
that work together to turn your unrelated sources of data into coherent, visually
immersive, and interactive insights. Whether your data is a simple Microsoft Excel
workbook, or a collection of cloud-based and on-premises hybrid data warehouses,
Power BI lets you easily connect to your data sources, visualize (or discover)
what's important, and share that with anyone or everyone you want.
237. Power BI consists of a Microsoft Windows desktop application called Power BI
Desktop, an online SaaS (Software as a Service) service called the Power BI
service, and mobile Power BI apps that are available on any device, with native
mobile BI apps for Windows, iOS, and Android.
(Znači kao što imaš mobilnu aplikaciju za Power Apps i Power Automate tako
imaš i za Power BI)
238. The activities and analyses that you'll learn with Power BI generally follow a
common flow. The common flow of activity looks like this:

- Bring data into Power BI Desktop, and create a report.


- Publish to the Power BI service, where you can create new visualizations or
build dashboards.
- Share dashboards with others, especially people who are on the go.
- View and interact with shared dashboards and reports in Power BI Mobile
apps.

239. Here are the basic building blocks in Power BI:

- Visualizations
- Datasets
- Reports
- Dashboards
- Tiles
240. A visualization (sometimes also referred to as a visual) is a visual
representation of data, like a chart, a color-coded map, or other interesting
things you can create to represent your data visually.
Visualizations can be simple, like a single number that represents something
significant, or they can be visually complex, like a gradient-colored map that
shows voter sentiment about a certain social issue or concern.
241. A dataset is a collection of data that Power BI uses to create its
visualizations. You can have a simple dataset that's based on a single table from a
Microsoft Excel workbook
Datasets can also be a combination of many different sources, which you can
filter and combine to provide a unique collection of data (a dataset) for use in
Power BI.
For example, you can create a dataset from three database fields, one website
table, an Excel table, and online results of an email marketing campaign. That
unique combination is still considered a single dataset, even though it was pulled
together from many different sources.
242. An important and enabling part of Power BI is the multitude of data connectors
that are included. Whether the data you want is in Excel or a Microsoft SQL Server
database, in Azure or Oracle, or in a service like Facebook, Salesforce, or
MailChimp, Power BI has built-in data connectors that let you easily connect to
that data, filter it if necessary, and bring it into your dataset.
243. In Power BI, a report is a collection of visualizations that appear together
on one or more pages. (bukvalno imaš više stranica kao u excel-u gde imaš različite
shart-ove, grafikeone itd.)
(Znači više vizuelizacija jedan report)
244. When you're ready to share a report, or a collection of visualizations, you
create a dashboard. Much like the dashboard in a car, a Power BI dashboard is a
collection of visuals from a single page that you can share with others. Often,
it's a selected group of visuals that provide quick insight into the data or story
you're trying to present.
(Mora da sve stane na jedan PAGE! Baš kao u CRM-u, samo što u CRM nemaš REPORT
koji ima više PAGE-a pa nema poente naglašavati da treba da stane na jednu stranu)
245. In Power BI, a tile is a single visualization on a dashboard. It's the
rectangular box that holds an individual visual.
(bukvalno jedan odeljak tj. kvadrat (polje). Može da bude pojedinačan
grafikon, neki broj itd.)
(When you're creating a dashboard in Power BI, you can move or arrange tiles
however you want. You can make them bigger, change their height or width, and
snuggle them up to other tiles.(ne važi ako nisi OWNER))
246. For these software services, the Power BI service provides a collection of
ready-made visuals that are pre-arranged on dashboards and reports for your
organization. This collection of visuals is called an app. Apps get you up and
running quickly, with data and dashboards that your organization has created for
you. For example, when you use the GitHub app, Power BI connects to your GitHub
account (after you provide your credentials) and then populates a predefined
collection of visuals and dashboards in Power BI.
(Power BI App ti nije ništa drugo nego gotov solution i App koji je po
principu isto dizajniran kao CRM-u. Znači unapred već pripremljen SET komponenti i
ti samo treba da se nakačiš na neku bazu a sve vezano za prikaz i procese je već
definisano)
(Ovo u prevodu znači da su ti već iskonfigurisani REPORT-ovi, DASHBOARD-ovi
itd. I na ovaj fazon imaš APP za facebook, twiter itd. a on ti onda predstavljaisti
tip analitike za jedan APP)

247. Power BI Desktop and the Power BI Service work together. You can create your
reports and dashboards in Power BI Desktop, and then publish them to the Power BI
Service for others to consume.
248. Glavna uloga koliko vidim Power BI jeste vizuelizacija i tumačenje podataka
(zato ti je osnovni element VISUALIZATION) a ne toliko transformacija.
(Poenta je bukvalno da imaš CANAVS i samo prevlačiš polja iz Datasource (kad
povežeš on izgeneriše polja u ribbonu-u) i on ti po Default stavi za vizuallizaciju
npr. BAR grafikon (ako je tipa broj). Na to možeš da dodaješ druga polja. Takođe
možeš da radiš DRILL DOWN po više tih vizuelizacija ako se radi o istim poljim.
(bukvlano kao da se interpretirao određene podatke na različite načine i onda hoćeš
npr. da vidiš prodaju po jednom regionu. To se onda može odraziti na više
vizuelizacija))
249. Kada ubaciš sve VISUALZIATION elemente onda radiš publish na Servis da bi
mogao od toga da praviš DASHBOARDS.
(što se tiče DATASOURCE ima veliki broj mogućnosti kao što je situacija za
CANVAS APP, znači od excela, json, database, azure pa do facebook itd.)
250. Možeš da pišeš i svoje query u programskom jeziku M (ima i ta opcija BLANC
QUERY)
251. Izgleda da možeš da praviš report i na Power BI servisu (ovo treba proveriti)
252. Power BI Desktop includes the Power Query Editor tool, which can help you
shape and transform data so that it's ready for your models and visualizations.
253. Imaš Edit Queries u Ribbon-u i to onda za svaku kolonu imaš i da uneseš
EXPRESION kao u EXCEL-u ali takođe klasičan fazon desni klik pa onda imaš razne
fore za transformacije (npr. promena tipa podataka, razbijanje kolone na dve) i to
sve sve računa u promenu query-a.
254. To add more sources to an existing report, from the Home ribbon, select
Transform data and then select New Source. You can use many potential data sources
in Power BI Desktop, including folders. By connecting to a folder, you can import
data from multiple Excel or CSV files at once.
255. Power QUERY EDITOR allows you to apply filters to your data. For example,
selecting the drop-down arrow next to a column opens a checklist of text filters.
Clearing a filter allows you to remove values from your model before the data is
loaded into Power BI.
(samo da se napravi razlika između vizuelnih filtera i query filter ako tako
možemo reći)
256. You can also merge and append queries. In other words, Power BI pulls data
that you select from multiple tables or various files into a single table.
(u prevodu možeš da radiš JOIN)
257. By using TRANSPOSE in Power Query Editor, you can swap rows into columns to
better format the data. (u suptini je PIVOT)
(fora je da se uvek ide na to da bez obzira koji je DATASOURCE ili format da
se to svede na neku tabelu koja je onda mnogo lakša za rukovanje i vizuelizaciju)
(While Power BI can import your data from almost any source, its visualization
and modeling tools work best with columnar data. Sometimes, your data won't be
formatted in simple columns, which is often the case with Excel spreadsheets.)
(zbog toga ako dobiješ tabelarne podatke koji su en uređeni jedna od opcija
jeste PIVOT + malo drugi dorada)
(Bitno je znati da se većina tih stvari radi u ovom POWER QUERY EDITOR-u)
258. With Power BI Desktop, you can use "Get Data" to import data from a web page
into a report and create visualizations.
(Select Get Data and point to the URL)
259. Dragging any field from the Fields list onto the open white space of the
canvas (in Report view) will automatically create a default visual for that data
type.
(znači bela pozadina tj. radna površina se zove REPORT VIEW)
260. In Power BI, you can create a relationship to create a logical connection
between different data sources. A relationship enables Power BI to connect tables
to one another so that you can create visuals and reports.
(čini mi se da se radi o istim relacijama koje postoje u SQL tj. ista im je
funkcija)
261. The MODEL VIEW in Power BI Desktop allows you to visually set the relationship
between tables or elements. A relationship is where two or more tables are linked
together because they contain related data. This enables users to run queries for
related data across multiple tables.
(u suštini postoji neki grafički korisnički interfejs koji uspostavlja te
relacije. Bukvlano ima dijagrame nešto kao u Access-u)
262. To hide a table or individual column from your report, right-click the table
or column in the Model view and select Hide in report view.
263. Imaš ove vrste relacija u Power BI:
- Many to One
- One to One
264. You can create a new calculated column by transforming two or more elements of
existing data. For example, you can create a new column by combining two columns
into one.
(isto kao u CRM-u)
265. One reason for creating a calculated column is to establish a relationship
between tables when no unique fields exist.
(hoće da kaže kada nemaš definisan PRIMARY KEY a radiš neke operacije onda
možeš samo da generiše novu kolonu na osnovu expresion-a koji sadrži kolone iz dve
ili više tabela)
266. To hide a field in the Fields pane of Power BI Desktop, right-click the column
and select Hide. Your hidden fields aren't deleted. If you've used a hidden field
in existing visuals, the data is still there; the hidden field just isn't displayed
on the Fields pane
267. The Sort by Column tool, available on the Table tools tab, is useful to help
ensure that your data is displayed in the order that you intended.
(bukvlano je fazon kako utičeš na DATA SET onda to utiče na SVE VISUALIZATION)
268. Što se tiče VISUALIZATION poenta je da se manje više svede da se na podatke
odnosi na isti način samo se drugačije prikazuju.
269. In Power BI, measures are defined calculations on your data that are performed
at the time of your query. Measures are calculated as you interact with your
reports and aren't stored in your database.
(ništa posebno samo expresion koji se računa u RUNTIME i ne čuva kao kolona u
bazi ali može da se koristi u REPORT VIEW kao kolona)
270. You can use a measure like any other table column: just drag and drop it onto
the report canvas or visualization fields. Measures also integrate seamlessly with
slicers, segmenting your data on the fly, which means that you can define a measure
once and then use it in many different visualizations.
271. Data Analysis Expressions (DAX) is a library of functions and operators that
can be combined to build formulas and expressions in Power BI, Analysis Services,
and Power Pivot in Excel data models.
272. Calculated tables is a FUNCTION within DAX. Most of the time, you can import
data into your model from an external data source. However, calculated tables
provide intermediate calculations and data that you want stored as part of the
model rather than as part of a query. You can use calculated tables, for example,
to cross join two tables.
(Ovo je neka analogija kao sa calculated filed koji je opet neki expresion
samo što ovde nisam siguran da može nešto sem poziva funkcije tj. mislim da je na
osnovu tehnički mogućnosti ograničeno kakve podatke u toj tabeli mogu da budu.
Znači pitanje je da li može da se izgeneriše bilo šta iako postoji DATA SOURCE
dobar i formula za računanje ako ne postoji funkcije koje to pdoržavaju.)
273. When you create a table visualization in your report by using a date field,
Power BI Desktop automatically includes breakdowns by time period. For example, the
single date field in the Date table was automatically separated into Year, Quarter,
Month, and Day by Power BI.
(bitno da bi se znalo zbog DRILL DOWN i kako funkcioniše u pozadini)
274. The lack of a relationship becomes obvious when you create a simple table
visual in Power BI Desktop and get the same value for all entries.
(Why would a table show the same value, like "Sales", for every country?)
275. Use the "Sort by Column" option to sort Month by MonthNo. This will ensure
that months are sorted by month order.
276. Visualizing data is one of the core parts and basic building blocks of Power
BI. Creating visuals is one of the most effective ways to find and share your
insights.
277. Generally, visuals are used to compare two or more different values.
(poenta je da na VISUALIZATION ubacuješ jednu ili više kolona na osnovu (npr.
ako ubaciš za PIE chart samo jednu kolonu (tipa int, broj prodatih delova) dobićeš
samo jednu boju ako ubaciš drugu koja je tipa string (naziv delova)) onda ćeš
dobiti više boja u zavisnosti koliko je DISTINCT naziva delova)
(i bukvlano je poenta da jednu kolonu postavljaš kao VALUE parametar a drugu
npr. kao GROUP parametar (nisu sve vizualizacije iste))
(kada sa te vizualizacije selektuješ jednu GRUPU vrednosti onda se automatski
to odrazi na drugim vizuelizacijam koje sadrže tu kolonu pa onda te podatke može da
tumačiš iz više uglova)
278. You might want to visualize two measures with different scales, such as
revenue and units. Use a combination chart to show a line and a bar with different
axis scales.
279. Slicers are one of the most powerful types of visualizations, particularly as
part of a busy report. A slicer is an on-canvas visual filter that allows report
users to segment the data by a specific value.
(to je ovo što sam malopre pominjao samo što umesto da klikćeš direktno na
vizuelizaciju imaš drugu vizuelizaciju koja to reguliše)
280. Power BI has two different types of map visualizations: a bubble map that
places a bubble over a geographic point, and a shape map that shows the outline of
the area that you want to visualize
(treća je custom da izabereš deo. Inače ove dve su samo deskriptivne)
281. When you are working with countries or regions, use the three-letter
abbreviation to ensure that geocoding works properly.
282. Use a SCATTER chart to compare two different measures, such as unit sales
versus revenue.
(bukvalno BUBLES tip grafikon, što veći mehur prikazuje veću vrednost)
283. Remember, if you only see one bubble in your scatter chart, it's because Power
BI is aggregating your data, which is the default behavior.
284. WATERFALL charts are typically used to show changes in a specific value over
time. (Prodaja tokom vremena (imaš jednu kolonu prodaja druga vreme i onda dobijaš
kada je rasla ili padala))
285. FUNNEL charts are typically used to show changes over a specific process, such
as a sales pipeline or website retention efforts.
286. You can also change the page size. By default, the report page size is set to
16:9
287. Along with data-bound visuals, you can also add static elements such as text
boxes, images, and shapes to improve the visual design of your reports.
288. The quickest way to reuse a good page layout is to right-click the report page
tab and select "Duplicate Page".
1. The Power BI service is the natural extension of Power BI Desktop, and you can
use its features for uploading reports, creating dashboards, and asking questions
of your data by using natural language.
2. REPORT praviš na osnovu jednog DATASET a DASHBORD možeš da praviš na osnovu
VIZUALISATION iz više reportova (bukvalno uzmeš šta ti valja i staviš na tvoj
DASHBOARD).
(Ako se posmatra samo VIZUELENO izgleda da nema razlike između reporta i
dashboard jer i jedni i drugi su samo sastavljeni od VIZUALISATION)
3. The Power BI service can automatically look for insights in a dashboard, report,
or dataset.
(Bukvano umesto tebe izgeneriše VIZUALISATION tj. REPORT na osnovu strukture i
sadržaja tvojih podataka. Ovo se radi na osnovu algoritama)
4. Kada se izgeneriše INSIGHT (trebalo bi da dobiješ report?) onda možeš da klikneš
na svaki od tih VISUALS i da odabereš opciju PIN VISUAL (dodaješ na postojeći
DASHBOARD ili novi)
5. Dashboards in Power BI are ONE-PAGE collections of visualizations that are
created from within the Power BI service. You can create dashboards by pinning
visuals from reports.
6. You can use Q&A to explore your data by using the intuitive, natural language
capabilities of Power BI and receive answers in the form of charts and graphs.
(ovo je neka vrsta FEATURE gde skoro na prirodnom jeziku u suštini pišeš query i
on ti na osnovu toga izgeneriše VISUAL (naravno gde su prikazani rezultati tog
query-ija))
(pitanje može da bude tipa: What are the total units by region?” (podržan je
engleski i španski je u preview))
7. You can also tell Q&A which visual to use by adding it to your question. Q&A
will prompt you with a list of workable visual types. By using the previous
example, you could ask, "What are the total units by region by pie chart?"
8. With Power BI, you can add your own suggested questions for others who use the
natural language query box.
(mislim da ti već na DASHBOARD imaš ovaj input za Q&A ali možeš da ubaciš i
svoje querije da bi neko drugi mogao da koristi kada gleda taj DASHBOARD)
9. Anyone whom you share a dashboard with can see and interact with it exactly as
you do. However, they have read-only access to the underlying reports, and get
access to the entire underlying dataset unless row-level security (RLS) is applied
to the underlying dataset.
(Recipients without an existing Power BI account will be taken through the sign-
up process before viewing your dashboard.)
(bukvalno imaš da im šibneš email i imaš listu da vidiš ko ima access)
10. You can add your own featured questions to any dataset you own by adding them
to the "Featured Q&A questions" feature in the dashboard setting, dashboard
section.
11. Publish your reports from Power BI Desktop to the Power BI service.
12. Create Apps that package a dashboard, report, and dataset to send to your
colleagues, who can use the content pack as a starting point and further enhance
it.
13. Publish to the web so that live reports can be embedded in a webpage.
14. Power BI packages your report and data, including visualizations, queries, and
custom measures, and uploads them to the Power BI service.
(verovatno misli sa DESKTOP-a)
15. It's common to refer to Power BI Desktop reports as .pbix files, which is the
extension that they're given in Microsoft Windows.
16. You can also export the data from any visual in the Power BI service. Select
the ellipsis on any visual and then select Export to .csv.
(ovo je potpuno OK jer i sam VISUAL nije ništa drugo nego grafički prikaz nekog
QUERY-ija. Zato zašto bi bio problem da sačuvaš result query-ija kao .csv?)
17. To keep track of your data while you're on the move, you can use one of Power
BI's touch-friendly mobile applications for iOS, Android, or Windows devices.
18. WORKSPACE that defines a set of users who have access to specific dashboards,
reports, and datasets.
19. Classic workspaces - groups are based on the groups in Microsoft 365. If you've
been using Microsoft 365 groups to manage your group's email, calendar, and
documents, then you'll find that Power BI offers the same features. When you create
a group in Power BI, you're actually creating an Microsoft 365 group.
20. New workspaces - are now the default workspace in Power BI. Create a workspace
in Power BI without creating a Microsoft 365 group
21. In the Power BI service, you will create an app that includes your dashboard,
the report underneath, and the dataset. Then, you will share the app with people in
your organization so they can reuse the artifacts
(You cannot publish an app from "My Workspace".)
22. OneDrive for Business is a potential storage location for your Power BI content
that provides version history. You can share your files with an Office365 group to
enable several people to work on the same Power BI or Excel files.
23. Power BI report on a webpage or share it through email. This feature of Power
BI is often referred to as Publish to web.
(Dobiješ embed code pa onda možeš da deliš preko meila kao html ili da uradiš
embed kao iframe)
24. When you click Update, users of your app will receive a message. They can
choose whether to accept or ignore your updates to the app.
(ovo važi za App)
25. Two main ways for interacting with data and metadata in Microsoft Dataverse are
the WEB API and the ORGANIZATION SERVICE
(ovo je ono što ti je već poznato, ove Organization Service mislim da je to ono
uglavnom što si radio preko onih http requestova ili preko plugin-ova putem SDK.
Dok Web API mislim da ti je opet neki SDK ali za FRONT END)
26. You can use the Organization Service when writing plug-ins or workflow
extensions by using the .NET Framework SDK assemblies that are provided by
Microsoft.
(to je ovo što smo prethodno konstatovali)
27. At the time, of this writing, all data operations go through the underlying
Organization Service. As such, the Web API allows you to perform the same
operations as the Organization Service but in a RESTful style
(ima šema koja je baš u fazonu: Ako je kod pisan u NET-u i za pluging onda SDK
koji koristi Organization Service u suprotnom (čitaj za FRONT END) Web API )
28. Dataverse Web API is implemented as an OData (OASIS Open Data Protocol)
service. By using an industry standard such as this, you're allotted all the
benefits of open standard development, such as cross-platform compatibility and
simple implementation against a common, predefined protocol.
29. Dataverse doesn't provide specific assembly tooling for the Web API; instead,
we recommend that you use community libraries that conform to the OData protocol.
If you want more information about which libraries exist, go to
https://www.odata.org/libraries/.
30. OData provides the ability to interact with Dataverse data with CRUD operations
that are available through standard GET, POST, PATCH, and DELETE HTTP methods (more
information about these methods will be provided later in this module). You can
also perform almost any other operation that is exposed through Dataverse Event
Framework by invoking an OData function or action that has the same name as its
corresponding Organization Service message. CRUD-related messages are the only ones
that are not available because those messages are achieved with the previously
described standard HTTP methods.
31. Fundamentally, OData protocol is a set of RESTful (REpresentational State
Transfer) APIs, a time-tested industry standard for providing interoperability
between systems. REST consists of six guiding principles that restrict the way that
a service can process and respond to requests to ensure that non-functional
properties of that service are met (such as performance, scalability, simplicity,
reliability, and so on).
32. FetchXML is a robust query language that allows for complex querying of
Dataverse data. Microsoft provides a way for users to run FetchXML queries within a
Web API query. This approach can be valuable if you encounter a scenario where
FetchXML is a better fit for your particular query versus using OData query syntax.
(ODataQuerySyntax je kad sa http get request-om pišeš ?&select= ... & filter =
etc.)
33. Microsoft's Microsoft Dataverse uses OAuth 2.0 as its authorization standard.
OAuth provides an industry-standardized mechanism for authenticating client
applications against a resource.
34. Authentication is the process or action of verifying the identity of a user or
process. Microsoft's solution to this verification process is Azure Active
Directory (Azure AD). Azure AD supports a number of options to verify the identity
of a user or process. Abstracting your identity provider allows for a good
separation of concerns because managing usernames and passwords can be a difficult
(and risky) process.
35. Authorization is the process or action of verifying whether an authenticated
user is authorized to access the resources that are being provided. Presently,
authorization to Dataverse is at the tenant level, and permissions are delegated to
the application based on the current signed-in user. Therefore, you won't use OAuth
to govern app-level security, which is instead handled by means of the Power Apps
admin center.
36. To successfully connect to your Dataverse, you must first register an app with
Azure Active Directory, which can be completed in the Azure portal
(poenta je da u suštini praviš ENDPOINT preko koga komuniciraš sa DATAVERSE a u
isto vreme definišeš za koju svrhu ti služi (npr. CRM pa ti onda biraš Dynamics
CRM, jer taj je korak gde kaže: Select APIs))
(znači Dataverse baza se gleda uopšteno ali ti onda postavljaš ENPOINT za
pristup tim podacima i u isto vreme definišeše i API da bi se znalo tačno na koji
način ćeš da vršiš interakciju sa tim podacima i koje akcije će ti biti dostupne za
taj ENDPOINT)
(You should now have an app endpoint that can successfully connect to your
Dataverse environment.)
37. Postman is a valuable tool to use for composing ad hoc Web API queries and
verifying the behavior of Web API Operations without having to write a program to
do so.
38. Na ovoj adresi imaš tačno kako da koristiš POSTMAN da bi komunicirao sa WEB
API-ijem: https://docs.microsoft.com/en-us/learn/modules/common-data-service-web-
api/3-postman
(i kada podešavaš authentifikaciju i autorizaciju takođe ti treba CLIENTID (gde
se unosi APPID od aplikacije koju si registrovao na Azure AD (rekli smo da preko
toga ide autentifikacija)). Kao što vidiš to je još jedna potvrda zašto ti treba da
registruješ aplikaciju)

39. To connect by using OAuth 2.0, you must have an access token
40. OData is a time-tested language for querying RESTful APIs. This lesson explores
a few ways of performing CRUD operations against Microsoft Dataverse data.
(WEB API je RESTful. I što je bitno izgleda da je OData QUERY LANGUAGE)
41. Evo primera za Create:

POST [Organization URI]/api/data/v9.0/accounts HTTP/1.1


Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"name": "Sample Account",
"creditonhold": false,
"address1_latitude": 47.639583,
"description": "This is the description of the sample account",
"revenue": 5000000,
"accountcategorycode": 1
}

Ovo je sad POST pa ide sa BODY. [Organization URI]/api/data/v9.0/accounts


HTTP/1.1 (ovaj organization URI verovatno može da bude i nešto drugo sem CRM url
(https://szdev.crm4.dynamics.com/api/data/v9.0/accounts))
Inače da je GET sve bi ti bilo gore u URL
42. Evo GET: GET [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-
000000000001)
43. Za Update:
- If you are performing an update of multiple attribute values, use the HTTP
PATCH method. PATCH methods provide upsert capability if you provide an ID value as
part of your request, a beneficial feature when you are synchronizing data between
systems.
- If you are updating a single attribute value, use the HTTP PUT method. This
method can't be used with navigation properties like lookups because that requires
a reference to be removed as well.

Primer:
PATCH [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-
000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"name": "Updated Sample Account ",
"creditonhold": true,
"address1_latitude": 47.639583,
"description": "This is the updated description of the sample account",
"revenue": 6000000,
"accountcategorycode": 2
}
44. Evo primera gde radis UPDATE ali hoces i da dobijes nazad podatke:
PATCH [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-
000000000001)?
$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode
,createdon HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json; charset=utf-8
Prefer: return=representation

{"name":"Updated Sample Account"}

I ovo ti je odgovor:

HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: return=representation
OData-Version: 4.0

{
"@odata.context": "[Organization
URI]/api/data/v9.0/$metadata#accounts/$entity",
"@odata.etag": "W/\"536537\"",
"accountid": "00000000-0000-0000-0000-000000000001",
"accountcategorycode": 1,
"description": "This is the description of the sample account",
"address1_latitude": 47.63958,
"creditonhold": false,
"name": "Updated Sample Account",
"createdon": "2016-09-28T23:14:00Z",
"revenue": 5000000.0000,
"_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
}

45. Evo za DELETE:


DELETE [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-
000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
46. The Web API provides a RESTful web service (NA OVOME TREBA DA JE NAGLASAK DA JE
TO WEB SERVIS) interface that you can use to interact with data in Microsoft
Dataverse using a wide variety of programming languages and libraries.
(ovo je suština dok OData ti je QUERY language koji možeš da koristiš u sklopu
toga (u suštini za RETREVE))
47. FetchXML is a robust query language that was developed by Microsoft to enable
complex operations to be performed against Microsoft Dataverse data. It provides
considerably more filtering options than the OData connectors, and it also allows
you to see the labels for reference data such as Option Set labels or lookup
fields. You can also apply a custom FetchXML filter to a lookup field within a
model-driven app
48. You can run FetchXML queries by using the following methods:
- Dataverse Web API
- Organization Service
49. Power Automate contains a feature that allows power users to create their own
custom sets of business logic called actions. From a developer perspective,
Microsoft Docs defines an action as a "reusable operation, which may have
observable side effects." These side effects include creating or updating records,
or anything you can accomplish by using a Classic Microsoft Dataverse workflow.
50. An additional feature of actions is their ability to be invoked through the Web
API. As a result, you can encapsulate your low-code automations in such a way that
you can use them in nearly any scenario by interacting with them through their
associated Web API request and response.
(ovo je BITNO i ono što već znaš ali je važno da se naglasi)
51. When a new action is created in your Dataverse solution, the framework also
creates a corresponding Web API request message. You can run these requests by
using a POST operation similar to the following example:
POST [Organization URI]/api/data/v9.0/WinOpportunity HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0

{
"Status": 3,
"OpportunityClose":
{
"subject": "Won Opportunity",
"opportunityid@odata.bind": "[Organization
URI]/api/data/v9.0/opportunities(b3828ac8-917a-e511-80d2-00155d2a68d2)"
}
}

(WinOpportunity action, tako se zove)

Znači fora je da dobije neku metodu kao na web servisu (WEB API) na koju
šalješ HTTP request. Kada pogledaš URL: [Organization
URI]/api/data/v9.0/WinOpportunity (imaš lepo ime metode i još je POST tako da
ispadne klasična web servis metoda)
(Na kraju ti uglavnom u TS radiš ove call-ove custom action ali preko
framework-a koji zove WEB API (čini mi se da se framework slično zove))

52. An action can be built as either unbound (meaning, it doesn't have a Dataverse
entity correlated to it) or bound (meaning, the logic is tied to a specific entity
record). SQL developers could
consider these actions as similar to Stored Procedures (unbound actions) versus
Triggers (bound actions). However, unlike SQL Triggers, you can also run bound
actions on demand by providing a corresponding entity record ID as its parameter
53. Occasionally, you might need to run logic for another user. Within the context
of Microsoft Dataverse, the logic that you're running will apply all appropriate
role and object-based security based on the user whom you're IMPERSONATING. This
method can be especially effective when you are integrating external systems with a
Dataverse solution where the integration account is a system account versus the
user who actually invoked the request.
54. When calling any Web API method, you can provide a CallerObjectId in your
message header to indicate that you want the message to be run for that particular
user. The value of this parameter is their Azure Active Directory (Azure AD) object
ID. The Azure Graph API provides a method to query Azure AD user data.
(Ovde je bitno pošto se autentifikacija radi u odnosu na Azure AD da onda svaki
user ima svoj: (Azure AD) object ID)
55. If you need to see the ID of the user who actually performed an operation for
another user, you can query the record's createdonbehalfby value, which will
contain this detail. For example, if you want to see if an account record was
created through user impersonation rather than by the actual user, you could query
that account record to compare their createdby and createdonbehalfby values by
using the following query:
GET [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-
000000000003)?
$select=name&$expand=createdby($select=fullname),createdonbehalfby($select=fullname
),owninguser($select=fullname) HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
(I onda iz response uporediš createdby i createdonbehalhby)
56. Commonly, organizations need to synchronize data across multiple systems.
Microsoft Dataverse provides a feature to efficiently manage this scenario, called
change tracking. With change tracking enabled, you can build applications to query
for these changes.
57. You can enable change tracking on an entity by setting the Enable change
tracking for Flow flag on the entity settings in the PowerApps maker portal, found
under the More settings > Create and update settings section.
58. According to the OData 4.0 documentation, delta links are "opaque, service-
generated links that the client uses to retrieve subsequent changes to a result."
Microsoft has built this standard into change tracking in Dataverse to provide a
common, standard method for interfacing with change data as it occurs over time.
59. After you've enabled change tracking on an entity, you can retrieve its changes
through the Web API by adding odata.track-changes as a preference header in your
web request: (primer)
GET [Organization URI]/org1/api/data/v9.1/accounts?
$select=name,accountnumber,telephone1,fax HTTP/1.1
Prefer: odata.track-changes (ovo je bitno)
Cache-Control: no-cache
OData-Version: 4.0
Content-Type: application/json

Response:

{
"@odata.context":"[Organization
URI]/data/v9.0/$metadata#accounts(name,telephone1,fax)/$delta",
"@odata.deltaLink":"[Organization URI]/api/data/v9.1/accounts?
$select=name,telephone1,fax&$deltatoken=919058%2108%2f22%2f2017%2008%3a21%3a20",
"value":
[
{
"@odata.etag":"W/\"915244\"",
"name":"Monte Orton",
"telephone1":"555000",
"fax":"10101",
"accountid":"60c4e274-0d87-e711-80e5-00155db19e6d"
},
{
"@odata.context":"[Organization
URI]/api/data/v9.0/$metadata#accounts/$deletedEntity",
"id":"2e451703-c686-e711-80e5-00155db19e6d",
"reason":"deleted"
}
]
}

Dobijaš isto jer pre toga nije primenjen DELT TOKEN ali zato dobijaš
"@odata.deltaLink" (na kraju LINKA ti se nalazi DELTA TOKEN, možeš ceo link da
pošalješ kao novi request ili da samo dodaš delta token na kraj kada sam napravi
request) koji šalješ sa narednim requestom koji onda pravi poređenje između
sadašnjeg stanja i narednog request-a

GET [Organization URI]/api/data/v9.1/accounts?


$select=name,accountnumber,telephone1,fax&$deltatoken=919042%2108%2f22%2f2017%2008%
3a10%3a44 (prethodni delta link)

60. You can also retrieve the number of changes made in a given delta by adding the
$count parameter to your request.

GET [Organization URI]/api/data/v9.1/accounts/$count?


$deltatoken=919042%2108%2f22%2f2017%2008%3a10%3a44

61. The underlying protocol of Dataverse’s Web API is OData.


62. Microsoft Dataverse provides a robust API to enable interaction with its
underlying data and actions.
63. Because Microsoft Dataverse is built as part of the robust Microsoft Power
Platform, it provides numerous capabilities to facilitate integration with
Microsoft Azure solutions.
64. AZURE LOGIC APPS provides a robust visual interface in which you can
orchestrate complex integrations across your various environments. It has many of
the same capabilities as Microsoft Power Automate workflows
( Both provide the ability to use pre-built and custom-built connectors, which
you can use to connect to whichever system is needed. Most importantly, Logic Apps
comes with a Microsoft Dataverse connector that will allow you to trigger actions
based on various Dataverse events (such as a record being created or updated).)
65. AZURE SERVICE BUS is Microsoft's cloud messaging as a service (MaaS) platform.
Messages are sent to and received from queues for point-to-point communications.
(u suštini ide asinhrono)
66. Because API needs are handled by Dataverse Web API, and because Dataverse
provides a role-based security model that can handle most integration scenarios,
you might not need to consider Microsoft Azure API Management often. However, if
you ever need to write a custom and/or proprietary API to sit on top of the
Dataverse Web API, you could use AZURE's API MANAGMENT services.
(ovo kao da je neki EXTENSION na WEB API)
67. Azure Event Hubs is Microsoft's version of Apache Kafka and provides a real-
time data ingestion service that supports millions of events per second. This
service is good for large streams of data that need to be ingested in real time
(which might occur when you are trying to capture items like application telemetry
within a business application) but are not common in most business application
integration scenarios.
(Dataverse provides a utility to publish events to an Event Hub. In the context
of Dataverse, while provided as an endpoint, Azure Service Bus traditionally
becomes the preferred method for integration of actual business data because it
comes with far less overhead.)
68. Što se tiče kreirarnja Azure Service Bus: Kreiraš NAMESPACE -> Kreiraš QUEUE ->
Kreiraš SERVICE ENDPOINT (preko Plugin Registration Tool-a i Shared Access Key)
(Shared access policy, copy your Primary Connection String (u Namespace ćeš da
nađeš))
Poslednji korak jeste da registruješ SERVICE BUS INTEGRATION STEP kako bi
pokupio poruku na neki EVENT
69. Microsoft Dataverse supports a variety of methods to consume Azure Messaging
Service Bus queue messages: queue, one-way, two ways, or REST. If using two-way and
REST, you are able to return a string of information back to Dataverse.
70. QUEUE listeners are not required for this type of queue. You can consume queued
messages in a "destructive" or "non-destructive" read. A destructive read will read
the message from the queue and remove it, whereas a non-destructive read will not
remove the message from the queue.
(ovde verovatno samo jedna istanca može da pročita poruku)
71. TOPIC listeners are similar to queue listeners, except that one or more
listeners can subscribe to receive messages for a given topic. This type is useful
if you require multiple consumers for a given message.
(ovde je naglasak da više instanci može da pročita poruku)
72. One-way contracts require that an active event listener be available to consume
a message that is posted to the Service Bus queue. If no active listener is
available, the post will fail. If the post fails, Dataverse will retry posting the
message in exponentially larger and larger time spans until the asynchronous system
job is eventually canceled.
(ovde je naglasak da poruka mora da se pročita!)
73. Two-way contracts are similar to one-way contracts, except that they also
provide the ability to return a string value from the listener.
74. REST contracts are similar to two-way contracts except that it is exposed on a
REST endpoint.
75. Ovo LISTENER-i su verovatno različite vrste aplikacija počevši od AZURE
FUNCTION (trebalo bi da je makar QUEUE listener) pa sve do konzolnih aplikacija. U
primeru je dato kako da očitaš QUEUE message iz konzolne aplikacije:

string connectionString =@"[ENDPOINT URL]";


string queueName = "mslearnsamplequeue";
QueueClient queueClient =
QueueClient.CreateFromConnectionString(connectionString, queueName,
ReceiveMode.PeekLock);

Treba ti QUEUE klijent i onda neki EVENT listener:

queueClient.OnMessage(message => {...});


76. Another method for PUBLISHING EVENTS (hoće da kaže da je još jedan od načina
kako da neki EKSTERNI sistem registruje poruku i primi informacije vezano za tu
poruku) from Microsoft Dataverse to an external service is to register webhooks. A
webhook is an HTTP-based mechanism for publishing events to any Web API-based
service of your choosing. This method allows you to write your own custom code that
is hosted on external services as a point-to-point.
(ovaj EVENT može biti od create, update itd. record-a pa verovatno sve do nekog
trigger-a customa actiona?)
77. Kada SERVICE BUS a kada WEB HOOK (čitaj WEB servis ili Azure Function itd.)
Service BUS:
- High scale asynchronous processing/queueing is a requirement.
- Multiple subscribers might be needed to consume a given Dataverse
event.
- You want to govern your integration architecture in a centralized
location.
Web Hook:
- Synchronous processing against an external system is required as part
of your process (Dataverse only supports asynchronous processing against Service
Bus Endpoints).
- The external operation that you are performing needs to occur
immediately.
- You want the entire transaction to fail unless the webhook payload is
successfully processed by the external service.
- A third-party Web API endpoint already exists that you want to use
for integration purposes.
- SAS authentication isn't preferred and/or feasible (webhooks support
authentication through authentication headers and query string parameter keys (hoće
da kaže više kao http request)
78. Webhook endpoint registration is performed similarly to Service Endpoint
registration, by using the Plug-in Registration Tool.
(samo umesto Service Bus ideš Web Hook i imaš različite vidove autentifikacije:
https://docs.microsoft.com/en-us/learn/modules/integrate-common-data-service-azure-
solutions/4-webhooks)
79. Microsoft Azure Functions provides a great mechanism for doing small units of
work, similar to what you would use PLUGIN-ins for in Dataverse. In many scenarios
it might make sense to offload this logic into a separate component, such as an
Azure Function, to REDUCE LOAD (ovo je jednim delom i zbog timeout koji je 2 min na
CRM a 10 min na AZ) on the Dataverse's application host. You have the availability
to run functions in a synchronous capacity because Dataverse webhooks provide the
REMOTE EXECUTION CONTEXT (ovo u suštini dobijaš kada dobije request sa CRM-a. Ovde
se govori o sync jer sa context možeš da uradiš i respons onda(verovatno)) of the
given request.
80. Uglavnom ceo postpupak kako da kreiraš AZ function i uradiš publish:
https://docs.microsoft.com/en-us/learn/modules/integrate-common-data-service-azure-
solutions/5-azure-function
81. Ako hoćeš da koristiš AZ sa CRM u sinhronom smislu onda ovde treba da
registruješ WEB HOOK i da nađeš URL i WEB HOOK KEY (odeš na opciju u AZ function:
GET FUNCTION URL)
(ovo je primer: https://[AppServiceUrl].azurewebsites.net/api/MsLearnFunction?
code=[WebhookKey])
82. Microsoft’s cloud-based messaging solution is Service Bus.
83. Microsoft’s low-code integration framework is Logic Apps.
84. Webhooks is used to publish Dataverse data directly to an Azure Function
85. Microsoft Power Apps COMPONENT FRAMEWORK enables you to create reusable code
components that can be used within your Power Apps applications. The component
framework empowers developers to build code components when the out-of-the-box
components do not fit an app maker's needs.
86. Code components are VISUAL CONTROLS(trebalo bi da je custom control) that help
you to create a custom user experience. These components can also include business
logic that compliments the visualization to enforce rules unique to the scenario
being implemented.
87. Before the Power Apps component framework existed, HTML web resources(uglavnom
preko iframe) were used to provide any type of custom presentation to a Power Apps'
form. Now, you can use a more modernized framework that allows capabilities to be
exposed to your app that would otherwise be impossible to access or, even worse, be
unsupported by Microsoft.
88. Power Apps component framework (trebalo bi da je skracenica PCF (ovo
definitivno jesu PCF kontrole))
89. Power Apps components are built on top of a robust framework that supports
modern web practices. As a result, a few of the advantages are:

- Access to a rich set of framework APIs that expose capabilities like


component lifecycle management, contextual data, and metadata.
- Support of client frameworks such as React and AngularJS.
- Seamless server access through Web API, utility and data formatting
methods, device features like camera, location, and microphone.
- Optimization for performance.
- Reusability
- Use of responsive web design principles to provide an optimal viewing and
interaction experience for any screen size, device, or orientation.
- Ability to bundle all files into a single solution file with other app
resources.

90. Tipovi komponenti:


- Field - A custom control for a field on a form. For example, instead of a
simple text box to input a number, a custom code component could be used to render
a slider.
- Dataset - A custom control to display rows of data. For example, instead of
a common grid with rows and columns to display today's appointments a daily
scheduler code component could be built. The code component could include features
like drag and drop to reschedule appointments.

91. Numerous samples can be found at PCF Gallery


92. Ovo je forum gde ima svega vezano za PCF:
https://powerusers.microsoft.com/t5/Power-Apps-Pro-Dev-ISV/bd-p/pa_component_framew
ork
93. UI FRAMEWORK, REACT and FLUENT UI (uglavnom se ovi library koriste prilikom
razvoja PCF kontrola)
94. As the following image shows, a Power Apps component is represented as three
key areas: a Manifest Input File (1), its implementation (2), and any additional
resource files that might be needed by the component(3).
95. A manifest is used to identify any properties that are available for use by the
application hosting the component. (definiše input polja, verziju itd.)
96. To create a component, your code needs to implement an interface that provides
a consistent way for the hosting app to interact with your component.
(export class FirstControl implements
ComponentFramework.StandardControl<IInputs, IOutputs> {})
97. Ovo su metode koji moraju da se implementiraju od interfejs
(ComponentFramework.StandardControl<IInputs, IOutputs> {})(index.ts je fajl gde
pišeš kod od koga krećeš i gde ti se nalaze sve implementacije ovog interfejsa) :
- init- Required. This method is used to initialize the component instance.
Components can kick off remote server calls and other initialization actions in
this method. Dataset values cannot be initialized with this method; you will need
to use the updateView method for this purpose.
- updateView - Required. This method will be called when any value in the
component’s property bag has changed.
- getOutputs - Optional. Called by the framework prior to the receipt of new
data. Use this method when dynamically managing bound properties in a control.
- destroy- Required. Invoked when the component is to be removed from the DOM
tree. Used for cleanup and to release any memory that the component is using.

Ovde imaš lepu šemu: https://docs.microsoft.com/en-us/learn/modules/get-


started-component-framework/2-architecture
(suština da se radi o klasičnoj front end logici koja rukuje interakciji sa
USER-om, povuče podatke sa CRM i uradi update VIEW-a)
98. The Power Apps CLI (command-line interface) is a developer-focused command-line
tooling that provides commands for building custom code.
(PAC)
99. Ovde imaš detaljno šta od alata ti treba i komandi da uradiš BUILD PCF kontrole
i smestiš u solution (ovde referišu PCF kontolre kao COMPONENTS)
(https://docs.microsoft.com/en-us/learn/modules/get-started-component-
framework/3-tooling)
100. Bitno je da razumeš da imaš 4 bitne komande:
1) Za build manifest fajla i PCF kontrole projekta: pac pcf init --namespace
Contoso --name Slider --template field (ne mora template da koristiš, možeš nakon
toga npm install kako bi instalirao sve zavisne biblioteke)
2) Za kreiranje solutiona u kome će biti PCF kontrola: pac solution init --
publisher-name Contoso --publisher-prefix contoso --outputDirectory vssolution
3) Za referenciranje 1) i 2) : pac solution add-reference --path \<path to
your Power Apps component framework project\>
4) Za build PCF kontrole i smeštanje u solution: msbuild /t:build /restore
(npm start ti otvori kontrolu u veb brauzeru)
101. Unbound is not a valid template type for the controls built with the Power
Apps component framework. (field i dataset jesu (to su ti ona dva osnova tipa
komponenti sa pocetka))
102. Manifest File is used to define control properties for a Power App code
component.
103. notifyOutputChanged method can be used by the control implementation to notify
the framework that it has new outputs. This is passed to the control as a parameter
of the init method.
85. Treba ti Microsoft Power Apps CLI:
- Install Npm (comes with Node.js) or Node.js (comes with npm). We recommend
that you use LTS (Long-Term Support) version 10.15.3 or higher.
- Install .NET Framework 4.6.2 Developer Pack.
- Install Microsoft Power Apps CLI.
86. Kada kreiras template komponente za PCF kontrolu imaj na umu da moraš da imaš
folder i da konzolnu naredbu vršiš u u folderu gde trebaju da ti budu komponente!
87. Kada završiš sa kodiranjem onda: npm run build
88. https://docs.microsoft.com/en-us/learn/modules/build-power-app-component/1-
create-code-component (ovde u suštini imaš ceo guid kako da kreiraš Hello World
kontrolu)
89. You'll only need to use the /restore flag the first time that the solution
project is built. In every subsequent build, you will need to run msbuild only.
(ovo su koraci koji su ranije opisani od kreiranje PCF template, do solution, do
referisanja prethodna dva pa na kraju do BUILD-a)
90. The default package type is a Managed solution. If you want to export as
Unmanaged (or Both), you can clear (or uncomment) the comment in the following
section from your Solutions.cdsproj and edit the SolutionPackageType node (ovo ti
je XML fajl)
91. The generated solution files are found inside of the \bin\debug\ folder after
the build is successful.
92. One useful utility that you have is the Power Apps Component Test Harness,
which allows you to test different data and context inputs to ensure that your
component is functioning properly
93. The Power Apps Component Test Harness is a utility built by Microsoft that
helps you quickly render a Power Apps component in a localized environment.
(otvoriti u pregledaču, npm start je komanda)
94. The Data Inputs drop-down menu helps you ensure that the component functions as
expected when different data parameters are provided, and also allows you to
determine how the component will render based on the type specified in a given
field.
(fora je da imaš dve vrste inputa: Field i Data. Sa field si do sad radio dok
data misli se bukvalno da vučeš brdo nekih podataka (npr. može da bude prikaz neke
tabele itd.) i onda možeš da priložiš CSV fajl itd. Mislim da je akcenat na
količini podataka i na koji način ih dobijaš (znači nije u vidu pojedinačnih polja
koja su uglavnom u kontekstu rekorda na kome si))
95. Dataverse supports an auditing capability where table and column data changes
within an organization can be recorded over time for use in analysis and reporting
purposes. Auditing is supported on all custom and most customizable tables and
columns. Auditing is NOT SUPPORTED on table or column definition changes, retrieve
operations, export operations, or during authentication.
96. The ability to retrieve and display the audit history is restricted to users
who have certain security privileges: View Audit History, and View Audit Summary.
(verovatno se čuva u nekim tabelama ovi podaci pa onda na isti način
funkcionišu privilegije kao i za ostale entitete)
(Audited data changes are stored in records of the audit table: O ovome ti
pričam)
97. There are three levels where auditing can be configured: organization, table,
and column. The organization level is the highest level, followed by the table
level, and finally the column level. For column auditing to take place, auditing
must be enabled at the column, table, and organization levels. For table auditing
to take place, auditing must be enabled at the table and organization levels.
98. MSBuild build engine is used to generate a Power Apps component solution
package.
99. During the build of a custom grid component, CSV is supported to load mock data
into the Power Apps Component Test Harness.
100. One of the many great developments from Microsoft has been its implementation
of UI Fabric, a collection of UX frameworks that you can use to build fluent
experiences that fit seamlessly into a broad range of Microsoft products. Using UI
Fabric within your Power Apps component is as simple as referencing its libraries,
and it provides a React-specific version that you can use.
101. Add the following dependencies to your PACKAGE.JSON to indicate that you'll be
using React and Office UI Fabric libraries. (evo gde dodaješ dependency)
102. U suštini imaš više konfiguracionih fajlova: package.json (library koje želiš
da koristiš), dev dependencies (sistemske stvari kao što su verzija .ts ili react-
a koje želiš da koristiš) i tsconfig.json (podešavanje vezano za kompajlera, npr.
da kažeš da želiš react da koristiš).
103. Power Apps component framework exposes a FORMATING API that can be especially
useful when you need to format various values in your application.
(Bukvalno se misli da imaš metode za formatiranje: value =
this._context.formatting.formatCurrency(10250030); value =
this._context.formatting.formatInteger(12345); value =
this._context.formatting.formatLanguage(1033);)
104. A common scenario during component development is the requirement to interface
with data in your solution's underlying Microsoft Dataverse. The Power Apps
component framework exposes a Web API feature to achieve this requirement.
(imaš framework koji ti omogućava da koristiš WEB API unutar PCF)
Primer:

this._context.webAPI.createRecord(TSWebAPI._entityName, data).then
(
function (response: ComponentFramework.EntityReference) {
// Callback method for successful creation of new record

// Get the ID of the new record created


let id: string = response.id.guid;

// Generate HTML to inject into the result div to showcase the


fields and values of the new record that is created
let resultHtml: string = "Created new " + TSWebAPI._entityName
+ " record with below values:"
resultHtml += "<br />";
resultHtml += "<br />";
resultHtml += "id: " + id;
resultHtml += "<br />";
resultHtml += "<br />";
resultHtml += TSWebAPI._requiredAttributeName + ": " +
recordName;
resultHtml += "<br />";
resultHtml += "<br />";
resultHtml += TSWebAPI._currencyAttributeName + ": " +
currencyAttributeValue;

thisRef.updateResultContainerText(resultHtml);
},
function (errorResponse: any) {
// Error handling code here - record failed to be created

thisRef.updateResultContainerTextWithErrorResponse(errorResponse);
}
);

Veoma slično kao što radiš za STANDARDAN front end.

this._context.webAPI.deleteRecord(entityType, id).then
(
function (response:
ComponentFramework.EntityReference) {
// Record was deleted successfully
let responseId: string = response.id.guid;
let responseEntityType: string = response.etn!;

// Generate HTML to inject into the result div


to showcase the deleted record
thisRef.updateResultContainerText("Deleted " +
responseEntityType + " record with ID: " + responseId);
},
function (errorResponse: any) {
// Error handling code here

thisRef.updateResultContainerTextWithErrorResponse(errorResponse);
}
);

A ovo vrednosti sa forme: TSWebAPI._currencyAttributeName (verovatno ovo


TSWebAPI je kao formContext (moguće i da je custom rpomenljiva))

I ovako nešto itd. :


this._context.webAPI.retrieveMultipleRecords(TSWebAPI._entityName,
queryString).then

105. The Power Apps component framework exposes a pop-up API that allows you to
achieve this requirement.
(izgleda da imaš više ovih API-ija, jedan za formatiranje, drugi za pop-up,
treci za crud operacije (što je i logično))
106. interface Popup extends ComponentFramework.FactoryApi.Popup.Popup
{
popupStyle: object;
shadowStyle: object;
}

Izgleda da implementiraš interfejs u index.ts klasi gde ti je i init metod

this._popUpService = context.factory.getPopupService();

this._popUpService.createPopup(popUpOptions);

(ovo popUpOptions ti je .ts objekat koji služi za konfiguraciju kao što imaš
u Alert.js)

107. formatLanguage is the method that you would use to format a string into a
specific language.
108. The correct XML element that specifies usage of the Web API in a component in
a control’s manifest is: uses-feature name="WebAPI" required="true".
(izgleda da ove API-ije moraš da definišeše u Manifest fajlu da bi on mogao da
ih uključi pri BUILD-u. U Manifest-u imaš odeljak tj. XML sekciju gde definišeš
ovakve specifičnosti)
109. ComponentFramework.FactoryApi.Popup.Popup is the name of the API that you can
use to overlay a pop-up window within a Power Apps Component.
110. A jsx compiler option (ovo ti se definiše u .json fajlu i tu bukvalno ti je
polje "jsx": "React") is needed to instruct your application to use React.
107. The Microsoft Power Apps portals admin center (bukvalno se ovako zove)
provides a series of functions for administration of a Power Apps portal.
(U okviru Microsoft Power Apps admin center imaš i sekciju portal related i
onda dobiješ gore navedenu sekciju)
108. By default, portals are provisioned in Trial mode and a message will be
displayed in the admin center
109. The portal binding can be changed so that the portal web application will read
a different set of metadata records (website record) from Microsoft Dataverse.
110. The portal state can be turned off (or on). Portal visitors will receive an
error when visiting the portal URL.
111. The portal can be configured to allow early upgrades so that it receives
updates from Microsoft earlier than regularly scheduled updates.
112. The Set up SharePoint integration section provides you with the ability to
activate the SharePoint integration so that SharePoint document libraries that are
integrated with Dataverse and Dynamics 365 can be shown through a table form.
113. The Set up Power BI integration section allows administrators to enable the
Power BI visualization and Power BI Embedded service on portal pages.
114. Portal Checker is a self-service diagnostic tool that can be used by portal
administrators to identify common issues in their portals. Portal Checker helps to
identify issues with a portal by looking at various configuration parameters and
providing suggestions on how to fix them.
115. Every two years, the portal authentication keys need to be updated so that the
portal web application is able to continue communicating with the Dataverse
environment.
116. An administrator might want to restrict access to a portal to only a
development/testing team or to specific geographic areas. The administrator can
specify a list of specific IP4 or IP6 addresses or ranges from which the portal can
be assessed.
117. When a portal is provisioned, it will have a portal URL that is a subdomain of
powerappsportals.com, for example, contoso.powerappsportals.com. A common task for
a portal administrator is to configure a custom URL for a Power Apps portal to
reflect the domain naming conventions of an organization such as
https://www.contoso.com. (You can have only one custom URL for each portal.)
(ovo ti je kao neki redirect URL)
118. Microsoft Power Platform admin center has the ability to list all portals in
the various environments of a specific tenant. The Power Apps portals admin center
is for helping you configure properties of the currently selected portal. The Power
Apps admin portal is for managing Power Apps. While you can see portals as apps in
each environment, you cannot list all portals in a tenant.
119. PFX is the only certificate type that can be uploaded in the Power Apps
portals admin center.
120. Turning off the portal and using IP address restrictions will prevent users
from navigating to the portal. Maintenance mode is the best option because users
will see a maintenance page. The reset action will only temporarily bring down the
portal.
121. The portal does not need to be in maintenance mode to install a custom URL.
(Which one of the following steps is not required to configure a custom URL?)
122. Microsoft Power Apps portals has a number of features such as table lists,
table forms, and the ability to use LIQUID markup language that allows an app maker
to build powerful web applications.
123. SharePoint document libraries can be added to table forms to allow portal
users to view and upload files that are related to a specific Microsoft Dataverse
record.
124. Power BI reports and dashboards can be added and configured in Power Apps
portals studio as components to portal pages to show rich visualizations of data.
125. Adding components such as table lists, table forms, and Microsoft Power BI
will add the corresponding Liquid tags to a portal page. Liquid markup language
also has several Dataverse-specific tags that allow you to add items that don't
appear as components such as model-driven charts and web forms.
126. The Iframe component allows for integration of other Microsoft technologies
such as Power Virtual Agents and even canvas Power Apps to add to a Power Apps
portal page.
(Users will still require appropriate licensing for specific technologies,
such as licenses for embedded canvas Power Apps or access to Power BI reports.)
127. Power Apps portals supports uploading and displaying documents to and from
SharePoint directly on a table form or web form in a portal. This feature allows
portal users to view, download, add, and delete documents from a portal. Portal
users can also create subfolders to organize their documents. Table permissions
determine if a user can view, upload, or delete documents.
(integracija sa Share Point treba da bude enabla-na u Portals Admin Center kao
i na nivou entiteta)
128. Za Power BI samo treba u Admin Portal Center ali tamo imaš odvojeno za Service
i odvojeno za Visualisation
(U ovaj Liquid imaš specijalne tagove za BI gde prosleđuješ URL iz BI kako bi
mogao da embed-aš na Portal )
(npr. {% capture pbi_path %}https://app.powerbi.com/groups/00000000-0000-0000-
0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01?
filter=Executives/Executive eq '{{user.id}}'{% endcapture %}
{% powerbi authentication_type:"AAD" path:pbi_path %})
129. You add a chart to a webpage by using the Liquid tag chart. As with any Liquid
code, you can add the chart tag in the page content inside a content snippet, or
you can insert it as part of a web template.
({% chart id:"EE3C733D-5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-
0000-00AA-000010001006" %})
130. Adding a document location subgrid on a model-driven form that is used for a
table form will display a SharePoint document library on the portal page. A
SharePoint Liquid tag or component is not available. Adding an Iframe element that
points to the SharePoint URL won't show the documents that are related to that
table, provide security, or an ideal layout.
131. By default, the Power BI Liquid tag uses anonymous authentication, which means
that Power BI will ignore the filter. Portal users do not need to be signed in.
Refreshing the cache has no effect on Power BI data. Row-level security won't
affect Publish to web Power BI reports.
(znači moraš biti "ulogovan" da bi dobio isfiltriran view)
132. Power Virtual Agents can be added by using the Iframe component.
133. Document management works only with SharePoint Online. (Document management in
Power Apps portals works with what version of SharePoint?)
134. An individual, EXTERNAL user might have several identities from which to
choose when registering and accessing a portal. Portal users can be onboarded in
many ways, and several options are available to portal users for validating their
identity and maintaining their profiles.
135. Administrators can choose between using LOCAL authentication or DELEGATING
authentication to a trusted authentication provider. Power Apps portals supports
multiple authentication providers and various industry standards.
136. As part of this process, portal visitors can access portals as anonymous or
authenticated users:
137. AUTHENTICATED users are always tracked in Dataverse as CONTACTS , regardless
of the portal template that is used to provision the portal. The process is the
same whether the user is external or an employee; neither depends on the
authentication method that is used:
- Local authentication - Common forms-based authentication with usernames and
password hashes that are stored in the Dataverse contact record.
- Portal administrators can choose to enable or disable any combination of
authentication options through the portal site settings.
(External authentication - Credentials and password management are handled by
external identity providers, such as Microsoft Azure Active Directory B2C (Azure AD
B2C), Microsoft, Twitter, and so on.)
138. All interactions and actions that a portal user takes (for example, leaving
comments on a page) are tied to their contact record in Dataverse.
(znaci funkcionise po principu related entiteta)
139. To support authentication, Power Apps portals extends the Contact entity and
adds the External Identity entity.
140. Poenta je da ako ti je CRM user onda to znaci da ima i Azure ADD Account i
onda se uglavnom konketuješ na Portal putem Azure ADD opcije.
(Ti ćeš u svakom slučaju imati kreiran Contact sa istim informacijama kao što
imaš na User entitetu jer će se autentifikacija vršiti preko CONTACT rekorda)
(Ono što je bitno jeste da možeš da se vrši autentifikacija preko drugih
izvora (npt. uopše nema Azure ADD account za tog portal User-a). Zbog toga imaš
sekciju na kontaktu WEB autentifikacija i related entitet EXTERNAL INDENTITY)
(Power Apps portals ADMINISTRATORS have several options for controlling
authentication behavior for the portal user. These options are accessed through the
Web Authentication tab on the Portal Contact form. Ovde imaš različite opcije za
autentifikaciju (npr. user name će ti automatski biti ime@onmicrosoft.com ako si
povezao sa Azure ADD a ovo mozes da promenis za neku drugu vrstu autentifikacije).
Imas da izaberes da li ce biti 2 factor auth itd.)

141. Many authentication options that are supported by Power Apps portals are
configured by using site settings. Site settings are stored in the Site Settings
entity, where each setting is defined as a Name/Value pair.
(i onda ovde možeš da konfiguišeše različite vrste autentifikacije počevši od
facebook pa na dalje (ime ide npr. Authentification\Facebook))
142. Before portal visitors can sign in to Power Apps portals, they need to be
registered as portal users. All portal users are tracked as contacts, and they can
be registered in two ways:
- Open registration - Allows visitors to register directly on the portal.
- Invitation-based registration - Requires users to provide an invitation
code.
143. Registration is enabled by default. The Authentication/Registration/Enabled
site setting controls overall registration process, and adding this setting with
the value of FALSE DISABLES all forms of user registration.
144. Open registration allows visitors to register directly on the portal by using
the Register tab on the portal Sign In page. It is the least restrictive sign-up
configuration, where the portal allows a user account to be registered by providing
a user identity. When open registration is enabled, any user who completes the
registration form is immediately registered and authenticated.
145. Email integration must be enabled in your Microsoft Dataverse instance for the
email invitations to work.
146. The EXTERNAL IDENTITIES list includes all external providers that are
registered for a specific user. Multiple external identities permit user sign-in
with any of the registered providers. Entries in this list should not be edited
manually; they are added/removed when the user connects/disconnects the providers
by using the Manage External Authentication link on their Profile page.
(misli se na PORTAL PROFILE PAGE)
147. Local authentication is the common forms-based authentication that uses
contact records for authentication. Local authentication settings are configured by
using portal site settings, including disabling local sign-in options for the
entire portal: Set authentication identity for a portal.
(Što znači username, password vuče sa DataVerse DB (čitaj CRM-a))
148. When external authentication is used, credentials and password management are
handled by external identity providers. Supported authentication protocols include:
WS-Federation and SAML 2.0, OAuth2 (Microsoft, Twitter, Facebook, Google, LinkedIn,
Yahoo), OpenID Connect (Azure AD, Azure AD B2C)
149. Makers and administrators can configure the portal for supported identity
providers by following steps that are documented at Simplified authentication and
identity provider configuration.
(Imas na POWER PLATFORMI da iskonfigurises koje eksterna provajder za
autentifikaciju želiš da dodaš kao što su (Facebook, Google, Azure AD itd.))
150. Unless the user's email is confirmed, it cannot be used for password resets or
two-factor authentication. None of the other tasks require the email to be
confirmed.
(A portal user has not confirmed their email. What will they not be able to
do?)
151. Portal users can authenticate with local authentication and external
authentication. Local authentication is a common forms-based authentication with
usernames and password hashes that are stored in the Dataverse contact record.
152. Power Apps portals support two types of registrations - Open Registrations and
Invitation-based Registrations. Only Invitation-based Registration supports
invitations that can be sent to a group of contacts.
153. Azure AD B2C identity provider is the recommended provider for authentication.
If external provider support like Facebook is required, then it can be configured
in Azure AD B2C instead of the portal.
154. A typical use case of Microsoft Power Apps portals is to EXTEND functionality
from Dynamics 365 applications to INTERNAL and EXTERNAL audiences.
155. Additionally, Power Apps portals can extend applications that are built on
Microsoft Dataverse and then display the data and business logic and make them
available on your portal to an external audience, based on user permissions.
(Misli na POWER BI i Share Point)
156. A Power Apps portal can only access Dataverse data in the same instance where
the portal is provisioned (Ovo je logicno da vuces podatke sa CRM gde je portal i
smesten). Connecting to multiple instances and accessing data across the instances
or across the tenants is not supported.
157. Power Apps PORTALS extends these UI elements to the web by using table lists,
table forms, and web forms:
- Table lists - Define how the list of Dataverse records is displayed on the
portal pages. They are defined by one or more model-driven app table views and
include functionality like filtering and sorting.
(A table list can be added as a component to a webpage in Power Apps
portals Studio. U suštini na WEB PAGE ti se doda: {% include 'table_list' key:
'<<Table List Name>>' %})
- Table forms - Add the ability for the portal pages to interact with the
records in a specific table by using a model-driven app form definition as a layout
template.
- Web forms - Render one or more model-driven app forms on a portal website
with support for single or multi-step navigation and conditional branching logic.
(Bukvalno sve ovo dizajniras preko MODEL DRIVE APPS interfejsa (kada pravis
dobija interfejs na taj fazon). Evo zove se ovako: Power Apps portals Studio.)
158. Most of the options that add interactive elements, such as buttons, support
customization of the elements in multiple languages. For example, if multiple views
are enabled, the name for each of the views in the view selector can be customized
for each of the enabled portal languages.
(Table lists: manje vise klasican GRID gde možeš da dodaš neke front end
elemente putem konfiguracije)
159. Views can be rendered as traditional grid lists, a calendar, or a map.
Delivering list content as an OData feed is also supported.
(Ovo je zanimljivo kako podaci sa VIEW-a mogu biti prikazani)
(Map and calendar views require page templates that can render the view. When
a starter portal is provisioned, Rewrite page templates like Page or Full Page
support this functionality. Pages that use web templates will render the default
table list view. Znaci ipak nije neka nauka kada ti opet moras da izgenerises HTML
stranicu)
(Znaci poenta je da samo želiš da prikažeš rezultat querija u vidu liste i
zato navodiš VIEW koji je u suštini neka vrsta QUERY-ija)
160. Table Forms add the ability for portal pages to interact with records in a
specific table by using a model-driven form definition as a layout template.
(znaci manje vise klasicna web forma-a)
(Table forms are defined by using model-driven forms and can be placed into
webpages in the portal. Znaci opet interfejs slican onome za Table List)
161. Table forms can be configured and used in read-only mode as a layout
mechanism; Forms can be used on the portal for data capture from anonymous or
authenticated users. For example, a simple lead table form might be rendered on a
Contact Us page to record anonymous requests as leads in Dynamics 365 Sales;
Certain limitations exist on the form and columns that are rendering, for example,
PCF controls are not rendered; Client-side business rules and JavaScript, which are
essential parts of a model-driven form, will not run on the portal. It's easy to
overlook and might result in unintended consequences; Special considerations need
to be given when you are rendering related records, notes, and a timeline because
not all functional aspects are supported (or required) in the portals
(Znači nije da možeš da sve funkcionalsnoti CRM iskoristiš na Portalu)
162. Most form options support customization of the Cascading Style Sheets (CSS)
elements to change visual appearance. Text elements such as labels, messages, and
tooltips can be specified in multiple languages.
163. Geolocation - A table form can be configured to display a map control to
display an existing location as a pin on a map or to provide a user with the
ability to specify a location. For more information, see Add Geolocation.
164. Two methods to render a table form in a portal are:
- The table form can be explicitly specified as a target for a table list
action like Create, Update, or Edit. In this case, the form will be rendered in a
modal pop-up window. Certain limitations apply when the form is rendered in a pop-
up window, for example, the ability to create related records from subgrids is not
available.
- Similar to a table list, a table form component can be added to a webpage
from portals Studio. This action will place a Liquid tag on the webpage copy to
render the table form.
(u html-u dobijes {% tableform name: '<<table form name>>' %})
165. Enabling the search property will only provide the quick find search box.
Adding the Option Set column to the view is not the best way to find the data. The
metadata searching option is the best solution for allowing users to filter on
specific option set values. Increasing the number of records for each page will not
help users locate data.
166. The Properties pane will configure the properties of a component but not add
them. You could add Liquid tags to a page template, but that would be for all pages
using that template. You can add forms and lists through the Add components feature
from the tool belt in portals Studio. Forms and lists can be added in the Portal
Management app, but it is not the only way.
(Where in Power Apps portals Studio would you add a list and form component to
a particular webpage?)
167. The On Success Settings feature defines behavior on successful submission of
the form. Options are to display a message or redirect to another page or URL.
(You have created a Contact Us table form and want to redirect users to a
Thank You page after successful submission.)
168. Views can be rendered as traditional grid lists, a calendar, or a map.
Delivering list content as an OData feed is also supported.
(ne postoji excel mode)
169. Power Apps portals do not support client-side business rules, JavaScript web
resource, or Power Apps component framework controls that are commonplace with the
model-driven forms. As a result, portal deployments will occasionally become
blocked because expectations of the same or similar form behavior can't be met.
Instead, table lists, table forms, and web forms include a custom JavaScript option
that allows developers to add scripts that implement equivalent functionality.
(znači nemaš sve ove front end stvari ali zato možeš da ubaciš JS u ove Table
Forms, Table List i Web Forme i na taj način otvariš front end kontrolu.)
170. In fact, portals deliver functionality that is already available in a model-
driven app but only to the portal users, meaning that:
- Table-scope business rules still apply because they are implemented on the
server.
- Workflows and Microsoft Power Automate flows are still triggered,
regardless of whether a triggering action was run inside a model-driven app or a
portal. The workflows can also be called explicitly by using form configuration on
the portal.
- When a portal user interacts with Dataverse records, the server-side code
runs as usual. Developers can pass relevant portal context to plug-ins when the
records are updated by portal users who are employing table forms. That approach
adds some server-side code extensibility to the portals and enables various
integration scenarios.
(znači sa front strane možda nemaš neke funkcionalnosti dok sa backend
imaš)
171. Power Apps portals configuration is STORED DIRECTLY within DATAVERSE as
records known as portal METADATA. When you provision a Power Apps portal, the
portal template that you choose will populate a number of portal-specific Dataverse
entities with data that describe the website structure, webpages, content, table
list configuration, table form configuration, and so on. As you configure the
portal by using Power Apps portals Studio or other tools, you are changing or
adding to the portal metadata.
(to je ono što sam pričao)
172. Portal metadata CAN'T be added to a Dataverse solution file. (a nije fora ni
da radiš import rekorda jer ćeš imati duplikata i ko zna šta još)
173. You can MOVE portal metadata from one environment to another by using TOOLS
that are available from the community and Microsoft.
(The Configuration Migration tool is designed for smaller datasets
(specifically configuration data, such as portal metadata) and is not suited for
high-volume data migrations or integrations. Verovatno je fora zato što čuva
relationships)
(Using the Configuration Migration tool will move over all and overwrite
existing portal metadata.)
174. Power Apps portals does not support client-side business rules or custom
JavaScript processes that are available on model-driven forms. However, custom
JavaScript can be added directly to a portal page in the Power Apps portals Studio
source code editor and to web templates.
(Ovo je ono što si ti već rado i što uključuje klasično manipulaciju HTML
elementima preko DOM stabla)
175. In addition, the Table Lists, Table Forms, and Web Forms features include a
custom JavaScript column that allows developers to add scripts that implement the
required functionality.
(imaš i jQuery build in. Tako da na ovaj način dobijaš front end
funkcionalnosti koje si imao OOB na CRM-u)
176. Making changes to the style of your portal pages can be as simple as applying
CSS statements directly to a page in the Custom CSS column.
(.navbar-static-top.navbar { min-height: 100px; })
177. Portals use the BOOTSTRAP front-end framework to control the design and layout
of the website. Bootstrap is a package of HTML and CSS design templates for
typography, forms, buttons, navigation, and other elements, including optional
JavaScript extensions
178. Any starter portal has two files already included as child web files of the
home page: bootstrap.min.css and theme.css. These files define the default styles
and THEME for your entire portal.
(ovo ti je na Power Apps Portal Admin center. Znaci u ovom theme.css su ti
uglavnom definisani svi stilovi koji se primenjuju na Portal Page)
(If you decide to overwrite bootstrap.min.css or theme.css files, make sure
that you download a backup copy of these files prior to replacing them. If your
replacement CSS is invalid or incomplete, you will not be able to undo the
replacement. Consequently, you will have to restore the content of these files,
potentially using a Power Apps portals app if the portal is rendered non-
functional.)
179. When you are starting portal customizations, one of the most common requests
that you might have is to replace the background images. These images are applied
by using CSS, but they can be replaced without changing CSS. Look for .jpg web
files under the portal's home page, for example homehero.jpg.
(ovo si ti baš radio)
180. When you use web templates, it is only possible to implement REST service for
GET operations. No other operation, such as PUT, is supported by Liquid code.
Combined with custom web templates that use Liquid code to deliver data instead of
HTML, JavaScript can call back into Power Apps portals to retrieve the data and
then use it to create alternative UX (hoće da kaže može i old school: napravi
request, parsiraj json i izgeneriši HTML elemente umesto da koristiš kotove Portal
feature)
181. Evo primera za implementiranje custom logike na Portal-u:
https://docs.microsoft.com/en-us/learn/modules/extend-power-app-portals/6-exercise
182. You would not be able to query the rate information by using JavaScript on the
Web Form steps. Creating an external web service would not be the most efficient
way to calculate the taxes. A plug-in would launch when the data is saved to
Dataverse and can update a tax value based on rates in another table. Dataverse
calculated columns can’t pull information (rates) from other records.
(How would you calculate taxes based on rates that are stored in Dataverse on
work orders that were entered on web forms on the portal?)
183. Liquid is an open-source template language that can be used to add dynamic
content to pages. Liquid code can be used anywhere in the portals where HTML or
text content can be entered, including content in webpages, content snippets, and
web templates.
184. Ability to ACCESS Microsoft Dataverse data by USING FetchXML query language or
directly retrieving entities by identifiers makes Liquid the primary choice for
building data-driven webpages. It also includes a number of special tags (or
processing instructions) that specifically target the building of reusable web
templates.
185. Page Template record that defines the layout and behavior:
- Rewrite - These templates use server-side processing to implement
specialized behavior that is required by some of the components and special pages
such as an error page, site map, search, and others.
- Web Template - The linked layout template defines how the content of the
page is rendered for output.
186. The real power of web templates comes from the ability to contain Liquid code
that adds PROCESSING capabilities to the static content, including ACCESS to
Dataverse data.
187. Web templates can also contain HTML, Cascading Style Sheets (CSS), and
JavaScript.
188. You can use web templates to define an entire webpage, a part of a page, or
common elements such as the site header and footer.
(ovo je važno da se razume da WEB TEMPLATE ne mora da bude samo web stranice
već samo jedan deo (npr. HEADER, FOOTER itd.) koji se embeda u drugi template ili
stranicu)
Evo primer:

<div class="container">
<div class="page-heading">
{% include 'Breadcrumbs' %}
{% include 'Page Header' %}
</div>
<div class="row">
<div class="col-md-12">
{% block main %}
{% include 'Page Copy' %}

{% if page.adx_tablelist %}
{% include 'table_list' key:page.adx_tablelist.id %}
{% endif %}

{% if page.adx_tableform %}
{% tableform id: page.adx_tableform.id %}
{% endif %}
{% endblock %}
</div>
</div>
</div>

Imaš ove: page.adx_tablelist.id, page.adx_tableform.id pomoću kojih možeš da


generišeš listu ili formu (tj. u suštini emebedaš)

189. Evo primer za query: (znači koristiš fetchxml tag od Liquid language i nakon
toga klasičan XML query)

{% fetchxml varResults %}
<!— Fetchxml query -->
<fetch>
<table name="account">
<attribute name="name" />
</table>
</fetch>
{% endfetchxml %}
Evo kako da izgenerišeš tabelu:

{% for account in varResults.results.entities %}


{{ account.name }}<br />
{% endfor %}

(Table permissions are always applied to the fetchxml tag.)

190. The raw tag allows the output of Liquid code on a page without having it
parsed and implemented. This tag is useful for generating content that uses
conflicting client-side syntax, such as Handlebars.

Hello, {% raw %}{{ user.fullname }}.{% endraw %} Nice to meet you.

a dobijaš: Hello, {{ user.fullname }}. Nice to meet you.


191. Comment tag:

This is a {% comment %}very useful {% endcomment %}comment.


192. The include tag includes the contents of one template in another, by name.
This tag allows for the reuse of common template fragments in multiple places, for
example, rendering of social links:
{% include 'Breadcrumbs', separator: '>' %}
(This logic will include the output that is generated by the Breadcrumbs
template that will have a separator variable set to the > symbol.)
193. Nešto na fazon nasleđivanja:

1. Base Template
<div>
Hello
{% block content %}default content{% endblock %}
</div>
2. Child Template
{% extends 'Base Template' %}
{% block content %}Power Apps portals{% endblock%}

A dobiješ:

<div>
Hello
Power Apps portals
</div>

194.
- Choose descriptive names for your templates because they will be referenced
or included as part of other templates.
- Break down the page layout and separate layout from content. These layouts
will be candidates for extendable templates.
- Look out for repeatable and reusable fragments; these fragments can be
defined as sub templates and will use the include tag.
- Move larger, reusable blocks of JavaScript to SEPARATE files and insert
them as a REFERENCE instead. The client's browser will load them separately and
they can be cached. In addition, externally loaded scripts can be minified, which
will result in better performance.
195. For example, you can create a web template that returns a list of accounts, or
any other data that the current user has access to, in json format.
{% tableview logical_name:'account', name:'Active Accounts' %}
[
{% for acc in tableview.records -%}
{
"name": "{{ acc.name }}",
"phone": "{{ acc.telephone1 }}"
}{% unless forloop.last %},{% endunless %}
{% endfor -%}
]
{% endtableview %}

Bukvalno ovde ne samo što možeš da koristiš da radiš QUERY nad CRM-om već i da
referenciraš Portal elemente kao što su forme, liste itd. preko id (ili imena) i da
koristiš kao promenljive.
196. Include, block, and extend are essential Liquid tags for building flexible,
reusable web templates. Template is not a valid Liquid tag.
197. All data access that is performed by Liquid objects and tags is governed by
table permissions, and it's not possible to switch off this feature
198. The raw Liquid tag allows output of Liquid code on a page without having it
parsed and implemented.
199. If you don't specify a header or a footer template in the Website record, the
default content is rendered. To remove, specify a blank template. (i onda to
postavis za header i footer)

1. Proći kroz Power Platforrmu


2. Proći kroz Microsoft 365 admin center (ima različite opcije , valja znati šta je
na raspolaganju)
3. Pogledati detaljnije o CRM relationship
4. Pogledaj malo kako ovaj AI builder funkcioniše
5. Poenta je da ćeš morati da malo prođeš kroz Power Apps, Power Automate i Power
BI da bi video kako funkcioniše.
6. Za tipove vizualizacija moraš sam da probasš
7. Pogledaj ponovo PCF kontrole

You might also like