top of page
Writer's pictureAlan Campbell

ChatGPT & Power Apps Presentation Mastery - Part 4

Updated: Oct 30, 2023

Welcome to the grand finale of our comprehensive blog series, where we've journeyed through the integration of ChatGPT, Power Apps, and Business Central to revolutionize sales analysis. If you've been following along, you know that we've built up quite a toolkit—from creating custom connectors to formulating nuanced "asks" for ChatGPT. Today, we close the loop by focusing on the final and perhaps most impactful phase: Presentation.


With the raw power of ChatGPT at our back, we'll explore how to seamlessly incorporate its rich, analytical responses into our Power App's user interface. We won't just tell you the 'what' and 'why'—we're going to show you the 'how.'


Our goal is to serve these insights in an accessible format that will empower users to make informed business decisions. To that end, we'll be implementing a Power Apps line chart that takes the data previously analyzed by ChatGPT and presents it visually. This dual approach—analytical text from ChatGPT and visual data from the line chart—ensures that users are equipped with multiple perspectives for a well-rounded understanding.


So, without further ado, let's put the finishing touches on our series and learn how to translate insightful data into actionable wisdom.

The image shows two item numbers and their monthly sales as derived from Microsoft Dynamics business Central in Power Apps
Two Item monthly sales comparison from Business Central Data

Submit Button


We will be adding to the code in the Submit button OnSelect trigger that we created in a prior blog.


1. Transaction Data. Create a collection subset of the ItemLedger.


// Create the data for the Transactions tab
ClearCollect(
    transactionData,
    ForAll(
        Filter(
            ItemLedger,
            itemNumber in ComboBox1.SelectedItems
        ),
        {
            itemNumber: itemNumber,
            documentNumber: documentNumber,
            postingDate: postingDate,
            salesAmount: salesAmount
        }
    )
);

2. Min/Max Dates. Determine the first and last dates in the data


// Determine the min and max dates 
UpdateContext(
    {
        firstDate: Min(
            transactionData,
            postingDate
        ),
        lastDate: Max(
            transactionData,
            postingDate
        )
    }
);

3. Months. Determine the number of months between the first and last dates in the data.


// Determine the difference in months
UpdateContext(
    {
        monthDifference: DateDiff(
            Date(
                Year(firstDate),
                Month(firstDate),
                1
            ),
            Date(
                Year(lastDate),
                Month(lastDate),
                1
            ),
            TimeUnit.Months
        ) + 1
    }
);

4. Chart Data. Create the data that will drive the line chart.


// Build the data for Line Chart tab
ClearCollect(
    lineChartData,
    ForAll(
        Sequence(
            monthDifference,
            0
        ),
        {
            Amount1: If(
                selectedCount>0,
                Sum(
                    Filter(
                        transactionData,
                        itemNumber = Index(
                            ComboBox1.SelectedItems,
                            1
                        ).Value,
                        postingDate >= DateAdd(
                            firstDate,
                            Value,
                            TimeUnit.Months
                        ),
                        postingDate <= DateAdd(
                            firstDate,
                            Value + 1,
                            TimeUnit.Months
                        )
                    ),
                    salesAmount
                ),
                0
            ),
            Amount2: If(
                selectedCount>1,
                Sum(
                    Filter(
                        transactionData,
                        itemNumber = Index(
                            ComboBox1.SelectedItems,
                            2
                        ).Value,
                        postingDate >= DateAdd(
                            firstDate,
                            Value,
                            TimeUnit.Months
                        ),
                        postingDate <= DateAdd(
                            firstDate,
                            Value + 1,
                            TimeUnit.Months
                        )
                    ),
                    salesAmount
                ),
                0
            ),
            Month: Text(
                DateAdd(
                    firstDate,
                    Value,
                    TimeUnit.Months
                ),
                "yy-mm"
            )
        }
    )
);

Line Chart


Add a line chart to your screen. Make the following changes to the properties.


5. Items. Set the Items property to lineChartData

6. NumberOfSeries. Set the NumberOfSeries property to:


If(selectedCount>0,CountRows(ComboBox1.SelectedItems),0)


7. Series. Set the following in the Data section.

  • Labels. Set to Month

  • Series1. Set to Amount1

  • Series2. Set to Amount2

Testing


Select an item number and Analysis type. Then click on the Submit button. You should see something like this.

The image shows a single item number's sales history as taken from the item ledger in microsoft dynamics business central
One Item monthly sales data as taken from the Item Ledger in Business Central

Conclusion


And there you have it! We've reached the end of our immersive journey through the integration of ChatGPT, Power Apps, and Business Central for sales analysis. Throughout this series, we've taken you from the fundamentals of setting up a custom connector to making advanced "asks" from ChatGPT. Today, we concluded by honing in on the art of presentation, a crucial skill in translating raw data into actionable business insights.


We've explored the technical details for enhancing the 'Submit' button's OnSelect trigger, meticulously creating subsets and setting date ranges for data collection. We then used that data to populate a Power Apps line chart, offering a graphical perspective that complements ChatGPT's analytical prowess. The end result is a multi-faceted approach that provides comprehensive, easily digestible insights right at your fingertips.


We hope this series has armed you with the knowledge and tools to take your sales analysis to the next level. Thank you for accompanying us on this incredible journey, and here's to your future business success!

31 views0 comments

Comentarios


bottom of page