Month: July 2024
Help creating Microsoft 365 Groups via Graph
Can anyone tell me what I’m doing wrong in regards to the dynamic group filter?
Here is my script followed by the error message. When I have the WhatIf statement in, the csv files are populated correctly and there is no error. When I remove the whatif and the group creation is attempted I get the error.
# Import necessary modules
Import-Module ActiveDirectory
Import-Module Microsoft.Graph.Groups
# Connect to Microsoft Graph
Connect-MgGraph -Scopes “Group.ReadWrite.All”
# Fetch managers
$managers = Get-ADUser -Filter “Title -eq ‘Sales Manager'” -SearchBase “OU=Sales Managers,OU=User Accounts – Head Office,DC=contoso,DC=com”” -Properties extensionAttribute5
# Loop through each manager
foreach ($manager in $managers) {
if ([string]::IsNullOrEmpty($manager.extensionAttribute5)) {
continue
}
$firstName = $manager.Name.Split(‘ ‘)[0]
# Define group details and OUs for potential members
$groupDetails = @{
“Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = $null; Title = $null }
“Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = $null; Title = $null }
“Sales Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = “Sales Program”; Title = $null }
“Marketing Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = “Marketing Program”; Title = $null }
“Sales Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Sales”; Title = $null }
“Marketing Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Marketing”; Title = $null }
“Temp Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Temp”; Title = $null }
“Directors” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = $null; Title = “Director” }
}
foreach ($groupKey in $groupDetails.Keys) {
$groupInfo = $groupDetails[$groupKey]
$groupName = “District $($manager.extensionAttribute5) $groupKey Group ($firstName)”
$emailAlias = “District-$($manager.extensionAttribute5)-$groupKey-Group”.Replace(” “, “-“).Replace(“,”, “”).Replace(“(“, “”).Replace(“)”, “”)
# Determine the filter based on group requirements
$filter = “extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'”
if ($groupInfo.Department) {
$filter += ” -and Department -eq ‘$($groupInfo.Department)'”
}
if ($groupInfo.Title) {
$filter += ” -and Title -like ‘*$($groupInfo.Title)*'”
}
# Fetch potential group members
$members = Get-ADUser -Filter $filter -SearchBase $groupInfo.OU -Properties Title, Department, extensionAttribute5, physicalDeliveryOfficeName
# Export members to CSV
$csvPath = “C:temp$groupName.csv”
$members | Select-Object Name, extensionAttribute5, Department, physicalDeliveryOfficeName, Title | Export-Csv -Path $csvPath -NoTypeInformation
# Debug output to check parameter values
Write-Host “Group Name: $groupName”
Write-Host “Email Alias: $emailAlias”
Write-Host “Membership Rule: $MembershipRule”
# Simulate group creation
New-MgGroup -DisplayName $groupName -Description “Dynamic Microsoft 365 group created by Contoso PS Script” `
-MailEnabled:$True -SecurityEnabled:$False `
-MailNickname $emailAlias -GroupTypes “DynamicMembership”, “Unified” `
-MembershipRule “user.extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'” -MembershipRuleProcessingState “On”
}
}
Error is:
Group Name: District 1 Program Group (Cheeto)
Email Alias: District-1-Program-Group
Membership Rule:
New-MgGroup : Invalid characters found in the rule: ‘ ‘
Status: 400 (BadRequest)
ErrorCode: InvalidCharactersException
Date: 2024-07-19T04:39:59
Headers:
Transfer-Encoding : chunked
Vary : Accept-Encoding
Strict-Transport-Security : max-age=31536000
request-id : 80ccb81b-1052-4915-a03b-e35604ec15a2
client-request-id : d31d414b-5abc-4946-a800-a2be43a86fca
x-ms-ags-diagnostic : {“ServerInfo”:{“DataCenter”:”US
Central”,”Slice”:”E”,”Ring”:”3″,”ScaleUnit”:”000″,”RoleInstance”:”TO1PEPF0000542E”}}
Date : Fri, 19 Jul 2024 04:39:58 GMT
At C:UserscontosoadminDocumentsM365-bulk-group-creation.ps1:60 char:58
+ … “user.extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'” -Mem …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ({ Headers = , b…oftGraphGroup }:<>f__AnonymousType2`2) [New-MgGroup_Crea
teExpanded], Exception
+ FullyQualifiedErrorId : InvalidCharactersException,Microsoft.Graph.PowerShell.Cmdlets.NewMgGroup_CreateExpanded
Thank you,
B
Can anyone tell me what I’m doing wrong in regards to the dynamic group filter?Here is my script followed by the error message. When I have the WhatIf statement in, the csv files are populated correctly and there is no error. When I remove the whatif and the group creation is attempted I get the error. # Import necessary modules
Import-Module ActiveDirectory
Import-Module Microsoft.Graph.Groups
# Connect to Microsoft Graph
Connect-MgGraph -Scopes “Group.ReadWrite.All”
# Fetch managers
$managers = Get-ADUser -Filter “Title -eq ‘Sales Manager'” -SearchBase “OU=Sales Managers,OU=User Accounts – Head Office,DC=contoso,DC=com”” -Properties extensionAttribute5
# Loop through each manager
foreach ($manager in $managers) {
if ([string]::IsNullOrEmpty($manager.extensionAttribute5)) {
continue
}
$firstName = $manager.Name.Split(‘ ‘)[0]
# Define group details and OUs for potential members
$groupDetails = @{
“Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = $null; Title = $null }
“Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = $null; Title = $null }
“Sales Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = “Sales Program”; Title = $null }
“Marketing Program” = @{ OU = “OU=User Accounts – Program Locations,DC=contoso,DC=com”; Department = “Marketing Program”; Title = $null }
“Sales Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Sales”; Title = $null }
“Marketing Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Marketing”; Title = $null }
“Temp Staff” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = “Temp”; Title = $null }
“Directors” = @{ OU = “OU=User Accounts – Field Staff,DC=contoso,DC=com”; Department = $null; Title = “Director” }
}
foreach ($groupKey in $groupDetails.Keys) {
$groupInfo = $groupDetails[$groupKey]
$groupName = “District $($manager.extensionAttribute5) $groupKey Group ($firstName)”
$emailAlias = “District-$($manager.extensionAttribute5)-$groupKey-Group”.Replace(” “, “-“).Replace(“,”, “”).Replace(“(“, “”).Replace(“)”, “”)
# Determine the filter based on group requirements
$filter = “extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'”
if ($groupInfo.Department) {
$filter += ” -and Department -eq ‘$($groupInfo.Department)'”
}
if ($groupInfo.Title) {
$filter += ” -and Title -like ‘*$($groupInfo.Title)*'”
}
# Fetch potential group members
$members = Get-ADUser -Filter $filter -SearchBase $groupInfo.OU -Properties Title, Department, extensionAttribute5, physicalDeliveryOfficeName
# Export members to CSV
$csvPath = “C:temp$groupName.csv”
$members | Select-Object Name, extensionAttribute5, Department, physicalDeliveryOfficeName, Title | Export-Csv -Path $csvPath -NoTypeInformation
# Debug output to check parameter values
Write-Host “Group Name: $groupName”
Write-Host “Email Alias: $emailAlias”
Write-Host “Membership Rule: $MembershipRule”
# Simulate group creation
New-MgGroup -DisplayName $groupName -Description “Dynamic Microsoft 365 group created by Contoso PS Script” `
-MailEnabled:$True -SecurityEnabled:$False `
-MailNickname $emailAlias -GroupTypes “DynamicMembership”, “Unified” `
-MembershipRule “user.extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'” -MembershipRuleProcessingState “On”
}
} Error is:Group Name: District 1 Program Group (Cheeto)Email Alias: District-1-Program-GroupMembership Rule:New-MgGroup : Invalid characters found in the rule: ‘ ‘Status: 400 (BadRequest)ErrorCode: InvalidCharactersExceptionDate: 2024-07-19T04:39:59Headers:Transfer-Encoding : chunkedVary : Accept-EncodingStrict-Transport-Security : max-age=31536000request-id : 80ccb81b-1052-4915-a03b-e35604ec15a2client-request-id : d31d414b-5abc-4946-a800-a2be43a86fcax-ms-ags-diagnostic : {“ServerInfo”:{“DataCenter”:”USCentral”,”Slice”:”E”,”Ring”:”3″,”ScaleUnit”:”000″,”RoleInstance”:”TO1PEPF0000542E”}}Date : Fri, 19 Jul 2024 04:39:58 GMTAt C:UserscontosoadminDocumentsM365-bulk-group-creation.ps1:60 char:58+ … “user.extensionAttribute5 -eq ‘$($manager.extensionAttribute5)'” -Mem …+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : InvalidOperation: ({ Headers = , b…oftGraphGroup }:<>f__AnonymousType2`2) [New-MgGroup_CreateExpanded], Exception+ FullyQualifiedErrorId : InvalidCharactersException,Microsoft.Graph.PowerShell.Cmdlets.NewMgGroup_CreateExpanded Thank you, B Read More
Fluent UI Textarea with Multiple Placeholders in SPFx
Microsoft Designer has a textarea for capturing prompt. It has a really nice interface for placeholders, where instead of a single placeholder text throughout, its a combination of static text and multiple placeholder text. I was not able to find a relevant control in Fluent UI library (assuming Microsoft Designer is based on Fluent UI and also the classes seems to be fluent UI classes)
How can above textarea be generated where its a combination of static text with multiple placeholder texts?
Microsoft Designer has a textarea for capturing prompt. It has a really nice interface for placeholders, where instead of a single placeholder text throughout, its a combination of static text and multiple placeholder text. I was not able to find a relevant control in Fluent UI library (assuming Microsoft Designer is based on Fluent UI and also the classes seems to be fluent UI classes)How can above textarea be generated where its a combination of static text with multiple placeholder texts? Read More
GUIDE code from pre 2015 need to access the button press function and “programatically press the button” from a different m file
Hey All
As the title suggests, I am dealing with a GUIDE file from a long time ago and I need to have it running and while its running I want to be able to access one of the functions called SaveSpectrumPlotButton_Callback() on line 1933
I have not been able to find how to access it from a different file or even create an output that I could maybe access in order to activate that button. I have shared the m file below
Any help would be much appreciated/Hey All
As the title suggests, I am dealing with a GUIDE file from a long time ago and I need to have it running and while its running I want to be able to access one of the functions called SaveSpectrumPlotButton_Callback() on line 1933
I have not been able to find how to access it from a different file or even create an output that I could maybe access in order to activate that button. I have shared the m file below
Any help would be much appreciated/ Hey All
As the title suggests, I am dealing with a GUIDE file from a long time ago and I need to have it running and while its running I want to be able to access one of the functions called SaveSpectrumPlotButton_Callback() on line 1933
I have not been able to find how to access it from a different file or even create an output that I could maybe access in order to activate that button. I have shared the m file below
Any help would be much appreciated/ guide, serial communication, functions MATLAB Answers — New Questions
Can’t I import tdms file in R2023b?
Hello,
I installed R2023b version in my company PC.
I want to import TDMS file in R2023b but it happened error messages.
" Error using untitled
License not found. Data Acquisition Toolbox or Communications Toolbox is required to use TDMS feature."
I found that it can be imported from R2024a.
So, Isn’t there a licence of importing TDMS file in R2023b?
Please let me know.
Thank you.Hello,
I installed R2023b version in my company PC.
I want to import TDMS file in R2023b but it happened error messages.
" Error using untitled
License not found. Data Acquisition Toolbox or Communications Toolbox is required to use TDMS feature."
I found that it can be imported from R2024a.
So, Isn’t there a licence of importing TDMS file in R2023b?
Please let me know.
Thank you. Hello,
I installed R2023b version in my company PC.
I want to import TDMS file in R2023b but it happened error messages.
" Error using untitled
License not found. Data Acquisition Toolbox or Communications Toolbox is required to use TDMS feature."
I found that it can be imported from R2024a.
So, Isn’t there a licence of importing TDMS file in R2023b?
Please let me know.
Thank you. import, tdms file MATLAB Answers — New Questions
Send a message to a user with tab app url
I built a tab app in teams, which include approval workflow feature. Then i need to send notification message to some users, for example approval notification, which include approval url that can navigate to the certain page with some parameters.
How could i do this in teams?
I built a tab app in teams, which include approval workflow feature. Then i need to send notification message to some users, for example approval notification, which include approval url that can navigate to the certain page with some parameters. How could i do this in teams? Read More
Issue with search mailbox audit log on Exchange Online
Hi Exchange experts
I have an issue with searching the audit logs with the mailboxes on Exchange Online.
I have a mailbox on Exchange Online. The properties of that mailbox are as follows
AuditEnabled: TrueAuditLogAgeLimit : 90.00:00:00AuditAdmin : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}AuditDelegate : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}AuditOwner : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}DefaultAuditSet : {Admin, Delegate, Owner}
I have conduted the changes on this maibox such as: changed the Send as permission, changed the Send on behafl, delegated another user on this mailbox.
A few days later I used the Audit feature from security.microsoft.com portal to search the log for above activities with this maibox but I could not find any entries log that I did a few days ago.
The options that I made when searching for mailbox logs
Date time range: selected the time period in which I made the changeActivities – friendly names: selected all activities on Exchange maibox activities Activities – operation name: blankRecord types: blankSearch name: blankUser: Selected user that has a mailbox I have changed.
Also, when I executed the syntax with Exchange PowerShell it doesn’t show the change history that I want to see.
Search-MailboxAuditLog -Identity po.panda@mydomain -LogonTypes Admin, Delegate -StartDate 7/15/24 -EndDate 7/19/24 -ResultSize 5000
Hi Exchange expertsI have an issue with searching the audit logs with the mailboxes on Exchange Online.I have a mailbox on Exchange Online. The properties of that mailbox are as followsAuditEnabled: TrueAuditLogAgeLimit : 90.00:00:00AuditAdmin : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}AuditDelegate : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}AuditOwner : {Update, MoveToDeletedItems, SoftDelete, HardDelete…}DefaultAuditSet : {Admin, Delegate, Owner}I have conduted the changes on this maibox such as: changed the Send as permission, changed the Send on behafl, delegated another user on this mailbox. A few days later I used the Audit feature from security.microsoft.com portal to search the log for above activities with this maibox but I could not find any entries log that I did a few days ago.The options that I made when searching for mailbox logsDate time range: selected the time period in which I made the changeActivities – friendly names: selected all activities on Exchange maibox activities Activities – operation name: blankRecord types: blankSearch name: blankUser: Selected user that has a mailbox I have changed.Also, when I executed the syntax with Exchange PowerShell it doesn’t show the change history that I want to see.Search-MailboxAuditLog -Identity po.panda@mydomain -LogonTypes Admin, Delegate -StartDate 7/15/24 -EndDate 7/19/24 -ResultSize 5000 Read More
Step by step Guidance on Logic App Standard Load Testing and Optimization
In collaboration with Xuhong Liu, Hila Menashe Hadady, and Wagner Silveira
Overview
Logic App Standard is a cloud-based service that allows you to create and run automated workflows to integrate apps, data, services, and systems. Load testing is the process of putting demand on a system and measuring its response to ensure it can handle high usage and traffic. Performing load tests on your Logic App Standard workflows is essential to identify performance bottlenecks, ensure scalability, and maintain reliable operation under peak loads.
Revisiting Logic App Internals
Let us first revisit how Logic App runtime (running on top of Function runtime) works under the covers to better understand how each component behaves and the strategies to take for performance optimization. Below is a simplified diagram of the Logic App runtime in action (as explained in greater detail in this blog post: Azure Logic Apps Running Anywhere – Runtime Deep Dive (microsoft.com)), moreover, how are these components being monitored using Logic App Standard built-in metrics:
Workflow Job Execution Delay: The amount of time between when a job was scheduled to run and when the job actually ran.
Workflow Job Execution Duration: The amount of time a job took to complete its execution.
Workflow Runs Completed Count: The number of workflow executions completed, regardless of status.
Workflow Runs Dispatched Count: The number of previously queued requests that are now processed.
Workflow Runs Started Count: The number of workflows started, regardless of outcome status.
Workflow Triggers Completed Count: The number of triggers completed, regardless of outcome.
Workflow Action Completed Count: The number of actions completed, regardless of status.
Tools for Testing
The tools you need for load testing depend on the type of trigger your Logic App uses (e.g., HTTP based trigger or event based such as Azure Service Bus based trigger or Azure Event Hub based trigger).
For HTTP-based triggers:
You can write your own JMeter scripts or use Azure Load Testing service. For example, you can create URL-based tests in Azure Load Testing service.
Add POST HTTP request to the test plan by getting the HTTP trigger invocation URL of the workflow.
Configure the load configuration such as number of test engines, load pattern, ramp-up time, etc. Do note the number of virtual user minutes you would incur based on these settings.
Add the application components you would like to monitor during the load test run:
Run the load test. Assuming there are no failures during the run, once the test completes, you can view the client-side and server-side metrics over the duration of the test:
Under server-side metrics, you can filter the services you want to observe, in this example I am filtering by Logic App, the compute where its hosted, as well as the storage account it uses.
This view reveals that there are spikes in compute CPU and memory percentage during the load test run, which you can investigate further in the next section. If this is your first run, you can use this as baseline values and compare this to the results from succeeding load tests to ascertain improvements to the optimization applied to the app or compute.
Tips for using Azure Load Test in this scenario:
Ensure that your JMeter scripts simulate realistic user behavior and cover all critical workflows.
Use Azure Load Test to manage, execute, and analyze your load tests efficiently. It can integrate with your existing CI/CD pipeline to automate load testing.
For Event-based triggers
You can either use Azure Load Testing custom plugins to simulate sending events to downstream services like Event Hub or Azure Service Bus (https://learn.microsoft.com/en-us/azure/architecture/guide/testing/load-testing/load-testing-with-custom-plugins ) or write your own custom application to fire off the events.
Always define your performance targets/load profile. Are you measuring throughput (X workflows completed per minute), latency (Y ms workflow run completed), response time, CPU usage? If this is the first time running performance test, capture baseline performance targets observed, iteratively run test whenever there are optimizations done in code or compute configuration, and then compare values to check if there have been any improvements.
In the rest of this blog, we will use throughput as a metric (X workflows completed per minute) to determine and evaluate the outcome of load tests. We will demonstrate how to monitor the load test, analyze potential issues if the outcome does not meet our goals, and how to improve the results based on the collected metrics.
How to Monitor and Analyze the Test Results
Check the built-in metrics of the upstream event producer
For instance, if you use both Event Hub and a Logic App Standard with event hub trigger, you can check the built-in metrics such us “incoming messages” and “outgoing messages” for Event hub throughput. To evaluate the throughput of the upstream service, monitor metrics to get the number of messages going out of Event Hub every minute.
Event Hub metrics reference: Event Hub Message Metrics (https://learn.microsoft.com/en-us/azure/event-hubs/monitor-event-hubs-reference#message-metrics)
When the “outgoing messages” numbers/min meet your required throughput, the next step is to check the Logic App performance, see if it can pick up and consume that volume of messages.
If you see incoming messages rate significantly higher than outgoing messages, and the outgoing messages is rate not meeting the throughput you want, check and the performance of your Logic App to further analyze the reasons leading to the results that messages cannot be processed immediately.
Check Logic App Standard built-in workflow metrics and compute (App Service Plan) metrics
You can analyze trends of Logic App Standard built-in workflow metrics captured during and after your load test. Among them, “Workflow Runs Completed Count” or “Workflow Runs Started Count” can be used to get information around the number of concurrent runs your logic apps.
For example, if the target of our load test is the throughput, you can use “Workflow Runs Completed Count” per minute as the metric to evaluate the test results.
Note: Remember to adjust the “Time Granularity” setting from its default of 5 minutes to 1 minute at the top right when you are looking to gauge the number of concurrent runs each minute using these metrics.
Workflow Job Execution Delay start to trend upwards or stay high for some time…
This could be an indication of resource contention at the compute level. Check the CPU and memory usage if trending upwards.
Note: You can also use App Service Diagnostics tool to cross validate that CPU usage is being a blocker
If we see CPU or Memory being a blocker (e.g., above 80%), then the next step is to check the autoscaling setup (e.g., target-based scaling or runtime autoscaling, max burst instance, prewarmed instances) and further configure them to accommodate the traffic. In addition, we can also consider increasing the number of workflows in the sample Logic App (https://techcommunity.microsoft.com/t5/azure-integration-services-blog/packing-more-workflows-into-logic-app-standard/ba-p/4127827 ).
You can also check the scaling behavior via Application Insights (attached to this Logic App), using the query below. The sample diagram indicates that the scaling did not happen and go beyond the “Always Ready Instance”, hence there are some issues with the Logic App scaling.
When you see scaling not happen, ensure the default “runtime scaling” is not disabled. You can consider remove target-based scaling (if you enabled in the past).
Check App Service Diagnostics
Logic Apps Standard has access to the App Service Diagnostics Tools, which gives you access to tools that helps identify availability and performance issues such as running High CPU analysis, memory analysis, HTTP 4xx Errors, Logic App Down or Reporting Errors.
Go to Availability and Performance -> High CPU analysis blade to get more information on what is causing the CPU to shoot up. In this example, it is observed to occur across all worker instances despite having scaled out.
You can also analyze the CPU Drill Down report to see Top 3 Instances CPU Usage and the app or process level CPU for each instance.
Additional recommendations to monitor and improve Logic App Performance based on Load Test Results
Refactor code for performance and scalability
It is highly recommended optimize your Logic App code by implementing patterns and practices for performance and scalability, some of these include:
Breaking a single workflow into two or more workflows
For Stateful workflows – consider debatching workflows by using the SplitOn technique instead of looping thru the items using For-each
For Stateless workflows – you can use For-each for stateless workflows only due to performance improvements
See reference blogs for additional strategies and best practices for optimizing Logic Apps workflows and design:
Using Inline Code instead of a Foreach Loop for better performance in Logic Apps (microsoft.com)
Improved For-each loop performance in Stateless Workflows – Microsoft Community Hub
Scaling Logic App Standard – High Throughput Batched Invoice Processing System (microsoft.com)
Scaling Logic Apps Standard – Sustained Event Processing System – Microsoft Community Hub
Logic Apps Standard Performance Benchmark – Burst workloads – Microsoft Community Hub
Logic Apps Standard Hosting & Performance Tips – Microsoft Community Hub
Scale storage account
If Storage Account (SA) is the bottleneck – You can configure to shard across multiple storage accounts to distribute the load.
Tip: if you want to run your load test at a clean state (no old backlog of runs), create new storage accounts and update the app settings appropriately, before each round of load test.
Throughput – Enable concurrency to process multiple tasks simultaneously.
Delete hanging instances before starting new round of Logic App Load test:
Ensure there are no workflow instances that are stuck and not completing. This can be done by editing host.json with parameters such as Jobs.CleanupJobPartitionPrefixes or Jobs.SuspendedJobPartitionPartitionPrefixes.
For more details, see the official documentation: Edit runtime and environment settings for Standard logic apps – Azure Logic Apps | Microsoft Learn)
Reference document: Premium Plan Settings (https://learn.microsoft.com/en-ca/azure/azure-functions/functions-premium-plan?tabs=portal#plan-and-sku-settings%3E)
Check Application Insights attached to the Logic App
During your load test, monitor the “online servers” metric to evaluate the scalability of your Logic App.
You can drill down into “failures” to see detailed error messages if you encounter unexpected failures during your tests.
Observe using Logic App Insights (Public Preview)
An alternative way of observing Logic App performance is by looking at the Insights blade (currently in Public Preview), which is a built-in dashboard containing some high-level insights from these metrics.
Go to Monitoring -> Insights blade which opens the Overview tab. This view will give you a breakdown of all the workflow run, job and trigger count by completion status (Succeeded, Failed or Skipped):
The Workflows tab presents sum of succeeded runs, jobs and triggers broken down by workflows, and another one for failed runs, jobs, and triggers.
Compute tab displays compute-related metrics like instance count, average memory working set, CPU, and memory percentage…
… as well as Workflow Job Count and Workflow Job Execution delay:
Microsoft Tech Community – Latest Blogs –Read More
Setting bounds for constants in a fit() object in terms of other constants in the fit object
Hello, I am currently trying to fit experimental data that I theorize fits a logarithmic function.
To this end, I am using the fit() and fitoptions() function in order to create a logarithmic equation.
Since the default MATLAB logarithmic fit model does not seem to account for horizontal translation and scaling, I have created a custom fit type as seen below:
shiftedLog = fittype(‘A*log((B*x)-C) + D’, ‘independent’, ‘x’, ‘coefficients’, {‘A’,’B’,’C’,’D’});
% set the bounds
opts.StartPoint = […]; % Initial guesses for [A, B, C, D]
opts.Lower = […]; % Lower bounds for [A, B, C, D]
opts.Upper = […]; % Upper bounds for [A, B, C, D]
I have noticed that when I try to run this program, I have ran into errors where the fit object returns either infinity or a complex value.
Since the log() function is defined only when its inner argument > 0, I need to specify the bounds for variables B and C to keep the entire argument positive.
However, When I try to specify the bounds in terms of the constants of the fit object, for example:
opts.Lower = [-Inf, C/min(x),…]
MATLAB gives me an error.
I know that in the main script code, the constants A, B, C, and D are not standalone variables so the main script has this issue, but as (to my knowledge) fit() finds the best values for the constants through an iterative process. Given this, It is impractical to specify a hard-coded value for the limits.
How should I approach this problem? Is there another way to find fit of a logarithmic function that incorporates ‘shifting’ and ‘stretching’ in both horizontal and vertical directions? Or is there a workaround? Thank you in advance.Hello, I am currently trying to fit experimental data that I theorize fits a logarithmic function.
To this end, I am using the fit() and fitoptions() function in order to create a logarithmic equation.
Since the default MATLAB logarithmic fit model does not seem to account for horizontal translation and scaling, I have created a custom fit type as seen below:
shiftedLog = fittype(‘A*log((B*x)-C) + D’, ‘independent’, ‘x’, ‘coefficients’, {‘A’,’B’,’C’,’D’});
% set the bounds
opts.StartPoint = […]; % Initial guesses for [A, B, C, D]
opts.Lower = […]; % Lower bounds for [A, B, C, D]
opts.Upper = […]; % Upper bounds for [A, B, C, D]
I have noticed that when I try to run this program, I have ran into errors where the fit object returns either infinity or a complex value.
Since the log() function is defined only when its inner argument > 0, I need to specify the bounds for variables B and C to keep the entire argument positive.
However, When I try to specify the bounds in terms of the constants of the fit object, for example:
opts.Lower = [-Inf, C/min(x),…]
MATLAB gives me an error.
I know that in the main script code, the constants A, B, C, and D are not standalone variables so the main script has this issue, but as (to my knowledge) fit() finds the best values for the constants through an iterative process. Given this, It is impractical to specify a hard-coded value for the limits.
How should I approach this problem? Is there another way to find fit of a logarithmic function that incorporates ‘shifting’ and ‘stretching’ in both horizontal and vertical directions? Or is there a workaround? Thank you in advance. Hello, I am currently trying to fit experimental data that I theorize fits a logarithmic function.
To this end, I am using the fit() and fitoptions() function in order to create a logarithmic equation.
Since the default MATLAB logarithmic fit model does not seem to account for horizontal translation and scaling, I have created a custom fit type as seen below:
shiftedLog = fittype(‘A*log((B*x)-C) + D’, ‘independent’, ‘x’, ‘coefficients’, {‘A’,’B’,’C’,’D’});
% set the bounds
opts.StartPoint = […]; % Initial guesses for [A, B, C, D]
opts.Lower = […]; % Lower bounds for [A, B, C, D]
opts.Upper = […]; % Upper bounds for [A, B, C, D]
I have noticed that when I try to run this program, I have ran into errors where the fit object returns either infinity or a complex value.
Since the log() function is defined only when its inner argument > 0, I need to specify the bounds for variables B and C to keep the entire argument positive.
However, When I try to specify the bounds in terms of the constants of the fit object, for example:
opts.Lower = [-Inf, C/min(x),…]
MATLAB gives me an error.
I know that in the main script code, the constants A, B, C, and D are not standalone variables so the main script has this issue, but as (to my knowledge) fit() finds the best values for the constants through an iterative process. Given this, It is impractical to specify a hard-coded value for the limits.
How should I approach this problem? Is there another way to find fit of a logarithmic function that incorporates ‘shifting’ and ‘stretching’ in both horizontal and vertical directions? Or is there a workaround? Thank you in advance. curve fitting, function MATLAB Answers — New Questions
coefficients checked asking for him
I would like to check the coefficients of a quadratic equation as a real number. I would like to establish a vector for an equation ax^2+bx+c–> [a b c] . in case of the variable if you are a character writes zero let the felhaszáló ask for the number again with an error message.How I may make this?I would like to check the coefficients of a quadratic equation as a real number. I would like to establish a vector for an equation ax^2+bx+c–> [a b c] . in case of the variable if you are a character writes zero let the felhaszáló ask for the number again with an error message.How I may make this? I would like to check the coefficients of a quadratic equation as a real number. I would like to establish a vector for an equation ax^2+bx+c–> [a b c] . in case of the variable if you are a character writes zero let the felhaszáló ask for the number again with an error message.How I may make this? basic matlab MATLAB Answers — New Questions
How do I pass a dynamic number of output variables to a function?
Some functions change their behavior dependending on the number of output variables. For example, ndgrid will create N N-Dimensional arrays where N is the number of output variables. I need to pass a number of output variables that depends on other variable (whose value is not previously known). Is it possible to do that? What is the best way to do that?Some functions change their behavior dependending on the number of output variables. For example, ndgrid will create N N-Dimensional arrays where N is the number of output variables. I need to pass a number of output variables that depends on other variable (whose value is not previously known). Is it possible to do that? What is the best way to do that? Some functions change their behavior dependending on the number of output variables. For example, ndgrid will create N N-Dimensional arrays where N is the number of output variables. I need to pass a number of output variables that depends on other variable (whose value is not previously known). Is it possible to do that? What is the best way to do that? output, function MATLAB Answers — New Questions
How to make the font sizes of Xlabel, Ylabel, and Title different in a heat map using MATLAB?
I have used the heatmap function in MATLAB to draw a figure. However, the font sizes of Xlabel, Ylabel, and Ttile are same. How to make the font sizes of Xlabel, Ylabel, and Title different in a heat map?I have used the heatmap function in MATLAB to draw a figure. However, the font sizes of Xlabel, Ylabel, and Ttile are same. How to make the font sizes of Xlabel, Ylabel, and Title different in a heat map? I have used the heatmap function in MATLAB to draw a figure. However, the font sizes of Xlabel, Ylabel, and Ttile are same. How to make the font sizes of Xlabel, Ylabel, and Title different in a heat map? heatmap, fontsize MATLAB Answers — New Questions
Ability to tag people within planner
I’ve noticed discussions asking for this feature dating back years, but I haven’t seen any responses from Microsoft. It seems a basic feature for any project management tool. Tagging and/or assigning checklist items (or having subtasks), and the ability to tag in the comments, are such basic features of any PM tool. Planner is an interactive to-do list, it’s not useful for PM. @microsoft
I’ve noticed discussions asking for this feature dating back years, but I haven’t seen any responses from Microsoft. It seems a basic feature for any project management tool. Tagging and/or assigning checklist items (or having subtasks), and the ability to tag in the comments, are such basic features of any PM tool. Planner is an interactive to-do list, it’s not useful for PM. @microsoft Read More
How to do skull stripping when the skull in the image is not complete?
How do I remove the skull (as well as others tissues that are not tumor, but have similar intensity) from the MRI images? I have seen methods including removing the largest blob (the skull), but the skull does not enclose the brain fully in the picture I attached here. Using imbinarize will also keep other tissues which have similar intensity as the tumor in the image.
I have tried to use imerode, but the skull is not removed entirely.
Any help is appreciated. Thanks!How do I remove the skull (as well as others tissues that are not tumor, but have similar intensity) from the MRI images? I have seen methods including removing the largest blob (the skull), but the skull does not enclose the brain fully in the picture I attached here. Using imbinarize will also keep other tissues which have similar intensity as the tumor in the image.
I have tried to use imerode, but the skull is not removed entirely.
Any help is appreciated. Thanks! How do I remove the skull (as well as others tissues that are not tumor, but have similar intensity) from the MRI images? I have seen methods including removing the largest blob (the skull), but the skull does not enclose the brain fully in the picture I attached here. Using imbinarize will also keep other tissues which have similar intensity as the tumor in the image.
I have tried to use imerode, but the skull is not removed entirely.
Any help is appreciated. Thanks! brain tumor, image processing MATLAB Answers — New Questions
Create Variable in Simulink block that contains 63 elements.
I have 63 Sine blocks that will have different amplitude values. The values will be set from Matlab workspace. I would like to loop through the data and set the amplitudes values programmatically. However, I only know how to create a constant from the Create Variable option in the Simulink Sine block. How to I create a variable that has 63 elements so I can loop throught my data and assign the data correctly?I have 63 Sine blocks that will have different amplitude values. The values will be set from Matlab workspace. I would like to loop through the data and set the amplitudes values programmatically. However, I only know how to create a constant from the Create Variable option in the Simulink Sine block. How to I create a variable that has 63 elements so I can loop throught my data and assign the data correctly? I have 63 Sine blocks that will have different amplitude values. The values will be set from Matlab workspace. I would like to loop through the data and set the amplitudes values programmatically. However, I only know how to create a constant from the Create Variable option in the Simulink Sine block. How to I create a variable that has 63 elements so I can loop throught my data and assign the data correctly? create variable in simulink MATLAB Answers — New Questions
Can’t click “Roll The Dice!” problem in intro to matlab cody problems therefor cannot earn badge.
I am trying to earn my badge in intro to matlab in the Cody problems. I completed all the problems besides Roll The Dice! which is restraining me from earning the badge. It is simply not letting me click the problem.I am trying to earn my badge in intro to matlab in the Cody problems. I completed all the problems besides Roll The Dice! which is restraining me from earning the badge. It is simply not letting me click the problem. I am trying to earn my badge in intro to matlab in the Cody problems. I completed all the problems besides Roll The Dice! which is restraining me from earning the badge. It is simply not letting me click the problem. dice cody MATLAB Answers — New Questions
Applying logic to Curve Fitter Output
I am trying to use Curve Fitter and generating the code to help teach myself how to process my data without Curve Fitter.
Is there a way to apply a logic that a certain data point should be lower/higher than another certain data point, and have the coefficients adjust accordingly?
%CREATEFIT(TWOSOUSANDTQSPK,TWOSOUSANDTQAPC,TWOSOUSANDTQNM)
% Create a fit.
%
% Data for ‘2000 copy 1’ fit:
% X Input: twosousandTQSPK
% Y Input: twosousandTQAPC
% Z Output: twosousandTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:43:50
%% Fit: ‘2000 copy 1’.
[xData, yData, zData] = prepareSurfaceData( twosousandTQSPK, twosousandTQAPC, twosousandTQnm );
% Set up fittype and options.
ft = fittype( ‘A+(x*B)+(C*x*x)+(y*x*D)+(y*x*x*E)+(y*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0526769976807926 0.737858095516997 0.269119426398556 0.422835615008808 0.547870901214845 0.942736984276934];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘2000 copy 1’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘2000 copy 1’, ‘twosousandTQnm vs. twosousandTQSPK, twosousandTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘twosousandTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘twosousandTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘twosousandTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -2.9, 15.3 );
I am looking to apply that the output data should follow the ‘twosousandTQSPK’ axis relative. I reserached the weighting function, but I I don’t know how I could accurately match the data inputs I have to weight it.
This is an example of what I am expecting with a different set of variables, but the results above in question should resemble this outcome to some degree.
%CREATEFIT(SIXTEENTQSPK,SIXTEENTQAPC,SIXTEENTQNM)
% Create a fit.
%
% Data for ‘1600 copy 2’ fit:
% X Input: sixteenTQSPK
% Y Input: sixteenTQAPC
% Z Output: sixteenTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:55:15
%% Fit: ‘1600 copy 2’.
[xData, yData, zData] = prepareSurfaceData( sixteenTQSPK, sixteenTQAPC, sixteenTQnm );
% Set up fittype and options.
ft = fittype( ‘(y*A)+B+(x*C)+(D*x*x)+(y*x*E)+(y*x*x*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0430238016578078 0.168990029462704 0.649115474956452 0.73172238565867 0.647745963136307 0.450923706430945];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘1600 copy 2’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘1600 copy 2’, ‘sixteenTQnm vs. sixteenTQSPK, sixteenTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘sixteenTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘sixteenTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘sixteenTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -0.5, -13.0 );I am trying to use Curve Fitter and generating the code to help teach myself how to process my data without Curve Fitter.
Is there a way to apply a logic that a certain data point should be lower/higher than another certain data point, and have the coefficients adjust accordingly?
%CREATEFIT(TWOSOUSANDTQSPK,TWOSOUSANDTQAPC,TWOSOUSANDTQNM)
% Create a fit.
%
% Data for ‘2000 copy 1’ fit:
% X Input: twosousandTQSPK
% Y Input: twosousandTQAPC
% Z Output: twosousandTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:43:50
%% Fit: ‘2000 copy 1’.
[xData, yData, zData] = prepareSurfaceData( twosousandTQSPK, twosousandTQAPC, twosousandTQnm );
% Set up fittype and options.
ft = fittype( ‘A+(x*B)+(C*x*x)+(y*x*D)+(y*x*x*E)+(y*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0526769976807926 0.737858095516997 0.269119426398556 0.422835615008808 0.547870901214845 0.942736984276934];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘2000 copy 1’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘2000 copy 1’, ‘twosousandTQnm vs. twosousandTQSPK, twosousandTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘twosousandTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘twosousandTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘twosousandTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -2.9, 15.3 );
I am looking to apply that the output data should follow the ‘twosousandTQSPK’ axis relative. I reserached the weighting function, but I I don’t know how I could accurately match the data inputs I have to weight it.
This is an example of what I am expecting with a different set of variables, but the results above in question should resemble this outcome to some degree.
%CREATEFIT(SIXTEENTQSPK,SIXTEENTQAPC,SIXTEENTQNM)
% Create a fit.
%
% Data for ‘1600 copy 2’ fit:
% X Input: sixteenTQSPK
% Y Input: sixteenTQAPC
% Z Output: sixteenTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:55:15
%% Fit: ‘1600 copy 2’.
[xData, yData, zData] = prepareSurfaceData( sixteenTQSPK, sixteenTQAPC, sixteenTQnm );
% Set up fittype and options.
ft = fittype( ‘(y*A)+B+(x*C)+(D*x*x)+(y*x*E)+(y*x*x*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0430238016578078 0.168990029462704 0.649115474956452 0.73172238565867 0.647745963136307 0.450923706430945];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘1600 copy 2’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘1600 copy 2’, ‘sixteenTQnm vs. sixteenTQSPK, sixteenTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘sixteenTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘sixteenTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘sixteenTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -0.5, -13.0 ); I am trying to use Curve Fitter and generating the code to help teach myself how to process my data without Curve Fitter.
Is there a way to apply a logic that a certain data point should be lower/higher than another certain data point, and have the coefficients adjust accordingly?
%CREATEFIT(TWOSOUSANDTQSPK,TWOSOUSANDTQAPC,TWOSOUSANDTQNM)
% Create a fit.
%
% Data for ‘2000 copy 1’ fit:
% X Input: twosousandTQSPK
% Y Input: twosousandTQAPC
% Z Output: twosousandTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:43:50
%% Fit: ‘2000 copy 1’.
[xData, yData, zData] = prepareSurfaceData( twosousandTQSPK, twosousandTQAPC, twosousandTQnm );
% Set up fittype and options.
ft = fittype( ‘A+(x*B)+(C*x*x)+(y*x*D)+(y*x*x*E)+(y*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0526769976807926 0.737858095516997 0.269119426398556 0.422835615008808 0.547870901214845 0.942736984276934];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘2000 copy 1’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘2000 copy 1’, ‘twosousandTQnm vs. twosousandTQSPK, twosousandTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘twosousandTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘twosousandTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘twosousandTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -2.9, 15.3 );
I am looking to apply that the output data should follow the ‘twosousandTQSPK’ axis relative. I reserached the weighting function, but I I don’t know how I could accurately match the data inputs I have to weight it.
This is an example of what I am expecting with a different set of variables, but the results above in question should resemble this outcome to some degree.
%CREATEFIT(SIXTEENTQSPK,SIXTEENTQAPC,SIXTEENTQNM)
% Create a fit.
%
% Data for ‘1600 copy 2’ fit:
% X Input: sixteenTQSPK
% Y Input: sixteenTQAPC
% Z Output: sixteenTQnm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 18-Jul-2024 20:55:15
%% Fit: ‘1600 copy 2’.
[xData, yData, zData] = prepareSurfaceData( sixteenTQSPK, sixteenTQAPC, sixteenTQnm );
% Set up fittype and options.
ft = fittype( ‘(y*A)+B+(x*C)+(D*x*x)+(y*x*E)+(y*x*x*F)’, ‘independent’, {‘x’, ‘y’}, ‘dependent’, ‘z’ );
opts = fitoptions( ‘Method’, ‘NonlinearLeastSquares’ );
opts.Display = ‘Off’;
opts.MaxFunEvals = 60000;
opts.MaxIter = 40000;
opts.StartPoint = [0.0430238016578078 0.168990029462704 0.649115474956452 0.73172238565867 0.647745963136307 0.450923706430945];
opts.TolFun = 0.1;
opts.TolX = 0.1;
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
% Plot fit with data.
figure( ‘Name’, ‘1600 copy 2’ );
h = plot( fitresult, [xData, yData], zData );
legend( h, ‘1600 copy 2’, ‘sixteenTQnm vs. sixteenTQSPK, sixteenTQAPC’, ‘Location’, ‘NorthEast’, ‘Interpreter’, ‘none’ );
% Label axes
xlabel( ‘sixteenTQSPK’, ‘Interpreter’, ‘none’ );
ylabel( ‘sixteenTQAPC’, ‘Interpreter’, ‘none’ );
zlabel( ‘sixteenTQnm’, ‘Interpreter’, ‘none’ );
grid off
view( -0.5, -13.0 ); curve fitting, curve fitter, boudaries, weighting MATLAB Answers — New Questions
ONEDRIVE NOT WORKING
Is onedrive down right now? im from the Philippines
Is onedrive down right now? im from the Philippines Read More
Support – Forms, Excel & Power Automate
Hi, I’d love your help!!
I have created a uniform request form in 365 Forms. I would like to also create an inventory spreadsheet for our uniforms and have this connect with the uniform request form and an approval system.
The ideal outcome is:
> The uniform request form will start an approval process – notifying admin
> The inventory spreadsheet will need to be reviewed to check for quantities of the requested item in the size requested (multiple items may be requested by the employee at a time).
> Then an approval or declined notification will need to be sent to the employee and to admin
> The approved items will need to be stored in a spreadsheet keeping track of which employee has ordered what items and sizes.
> There will need to be then another flow where admin finalises the approval and notifies the direct manager and employee that the uniforms are ready to be collected. The employee will need to submit a notification that the items have been received which will be stored in the spreadsheet tracker by date.
>with the inventory spreadsheet, I would like admin to get notification when quantities hit a specific number and are needing to be re-stocked. Eventually, automating the ordering process direct to the manufacturer.
Hi, I’d love your help!! I have created a uniform request form in 365 Forms. I would like to also create an inventory spreadsheet for our uniforms and have this connect with the uniform request form and an approval system. The ideal outcome is:> The uniform request form will start an approval process – notifying admin > The inventory spreadsheet will need to be reviewed to check for quantities of the requested item in the size requested (multiple items may be requested by the employee at a time). > Then an approval or declined notification will need to be sent to the employee and to admin> The approved items will need to be stored in a spreadsheet keeping track of which employee has ordered what items and sizes. > There will need to be then another flow where admin finalises the approval and notifies the direct manager and employee that the uniforms are ready to be collected. The employee will need to submit a notification that the items have been received which will be stored in the spreadsheet tracker by date. >with the inventory spreadsheet, I would like admin to get notification when quantities hit a specific number and are needing to be re-stocked. Eventually, automating the ordering process direct to the manufacturer. Read More
Learn Live Series – Crie uma LOB com OpenAI, Azure Communication Services e MS Graph (Parte II)
No último dia 29 de maio de 2024, dei continuidade ao workshop sobre a criação de uma aplicação Line of Business com OpenAI, Azure Communication Service e Microsoft Graph Toolkit. Foi uma sessão repleta de insights e também demos o starter para ‘forkar’ e dar um starter nesse projeto para fazer o teste dele!
Aqui vamos ao resumo do que foi feito na sessão!
Continuação do Workshop LOB com OpenAI, Azure Communication Service e Microsoft Graph Toolkit
Antes de mais nada, se você não assistiu a primeira parte do workshop, recomendo que você assista para entender melhor o que foi feito. Você pode acessar a primeira parte do workshop AQUI
E, se você quiser assistir a segunda parte do workshop, você pode assistir abaixo:
E, se você quiser assistir a segunda parte do workshop, você pode acessar o vídeo abaixo:
Nesta segunda parte do workshop, focamos em instalar e configurar o projeto para que ele funcione corretamente. Para isso, fizemos o fork da aplicação que pode ser encontrada no repositório do GitHub – AQUI
Dentro desse repositório há inúmeros outros projetos. O projeto que foi feito durante a live é justamente o projeto:
MicrosoftCloud/samples/openai-acs-msgraph
O enfoque do projeto em questão é uma ferramenta de gerenciamento de clientes que permite administrar dados e interagir com clientes de forma mais eficiente com ajuda da inteligência artificial.
Durante a live, retomamos a partir da seção de configuração e implantação de serviços do OpenAI, fazendo uso do Azure OpenAI Service para integrar modelos de IA ao projeto.
Nessa parte, por mais que você não tenha a subscrição do Azure, você pode criar uma conta gratuita para ter acesso a camada free desse serviço. Ou se preferir, você pode utilizar o serviço de OpenAI para testar o projeto.
Exploramos como criar e configurar serviços no Azure, implantar modelos de IA e integrá-los ao nosso projeto. Adicionalmente, discutimos a importância de configurar corretamente as variáveis de ambiente e garantir que todos os serviços necessários estejam funcionando.
Etapas Desenvolvidas
Criação de um Serviço OpenAI no Azure: Iniciamos criando um serviço OpenAI no Azure, escolhendo a região apropriada e configurando as opções de preços.
Implantação do Modelo: Utilizamos o Azure OpenAI Studio para implantar um modelo GPT-3.5 Turbo, configurando-o para uso em nosso aplicativo.
Configuração das Variáveis de Ambiente: Atualizamos o arquivo .env com as chaves e endpoints necessários para a comunicação com o serviço OpenAI.
Lembrando que o tutorial pode ser encontrado AQUI
Funcionalidades Implementadas durante a Live
Configuração do Projeto: Ajustamos o projeto para garantir que todas as dependências e serviços necessários fossem configurados corretamente. Fazendo assim a instalação de todas as dependências necessárias para o projeto. Tanto nas pastas: client e server.
Implantação do Banco de Dados: Configuramos um banco de dados PostgreSQL usando Docker Compose, garantindo a conectividade e inicialização adequadas. Lembrando que, se você for um usuário Windows, recomendamos o uso do WSL2 para rodar o Docker.
Integração com OpenAI: Demonstramos como integrar o serviço OpenAI com nosso aplicativo, incluindo a configuração de endpoints e variáveis de ambiente.
Logo após isso, executamos o comando docker-compose up para iniciar o banco de dados e garantir que ele estivesse acessível para o projeto.
O que é Azure Communication Services?
Azure Communication Services é um serviço que permite adicionar funcionalidades de comunicação, como chat, voz e vídeo, diretamente em aplicativos. A intenção desse workshop é mostrar as infinitas possibilidades que você pode fazer com esse serviço integrado com o OpenAI e Microsoft Graph Toolkit.
Uso do OpenAI
O OpenAI foi destacado como uma ferramenta revolucionária para implementar inteligência artificial em aplicativos, facilitando a criação de funcionalidades complexas sem a necessidade de escrever código manualmente. Exemplos práticos incluíram a geração de conteúdo de e-mail e conversão de linguagem natural em SQL.
Por exemplo, no gif abaixo, fizemos uma simples consulta no banco fazendo uso de um prompt. A qual o OpenAI nos retornou a query SQL para fazer a consulta no banco de dados.
Isso é de explodir a cabeça, não é mesmo? Imagine o ganho de produtividade para pessoas que estão na área atendendo um cliente e precisa de uma consulta rápida sobre uma determinada venda de um produto? Mas, sem a necessidade de buscar numa planilha de Excel ou até mesmo no banco de dados.
Mas, como isso é possível? Na terceira parte do workshop (a última parte), vamos explorar como podemos fazer isso. Então, fique ligado(a) para não perder nenhuma live!
Conclusão da Live
A implementação demonstrou como integrar eficazmente o Azure Communication Services e o OpenAI em um aplicativo LOB, utilizando essas ferramentas para agilizar o desenvolvimento e criar funcionalidades avançadas. O projeto reflete o potencial dessas tecnologias para modernizar e escalar aplicativos empresariais.
Próxima Live
Na próxima live, continuaremos a explorar o projeto! Dessa vez, vamos trabalhar entender um pouco mais, como essa consulta SQL foi feita. E, como podemos fazer uso disso para melhorar a experiência do usuário final.
Recursos Adicionais
Sempre é muito importante ter acesso a recursos adicionais para aprimorar o conhecimento. Por isso, deixo aqui alguns links que podem ser úteis para vocês:
Link Oficial do Workshop
Curso Gratuito: Introdução aos Serviços de Comunicação do Azure
Curso Gratuito: Criar um aplicativo Web de chamadas de voz com os Serviços de Comunicação do Azure
Documentação do Azure Communication Services
Documentação do Microsoft Graph
Documentação do Microsoft Graph Toolkit
Espero que tenham gostado do artigo e até a próxima live!
Microsoft Tech Community – Latest Blogs –Read More