powerbi – Power BI – How to create new column that summarize data by week and by Online or Store Channel?

I have WTDdata table that contains ThisYearRevenue and LastYearRevenue summarized by week:

enter image description here

I need to create 4 more columns LastYearOnlineRevenue, LastYearStoreRevenue, ThisYearOnlineRevenue, and ThisYearStoreRevenue from another table (RevenueByDate) that looks like this:

enter image description here

W column in this table means Fiscal Week.

I tried using this aproach:

    LastYearOnlineRevenue = 
    SUMMARIZE(FILTER(ALL(FiscalCalendar),FiscalCalendar(FiscalWeek)),FiscalCalendar(FiscalWeek)),
    "LastYearOnlineRevenue",CALCULATE(SUM(RevenueByDate(Revenue)),FiscalCalendar(FiscalYear) = 
    YEAR(TODAY())-1 && RevenueByDate(Channel) = "Online")

If you can help me with at least one column, I am assuming the logic will be the same for the other 3.
Thank you in advance.

Here is the location for sample data and .pbix file:
https://1drv.ms/u/s!AhhZq1add5YwjYIvuASi76lCL3R1eA?e=C7ObDZ

sharepoint online – Selecting Document Library through PropertyPane in SPFX

Here is the description about webpart

Both webpart are same and only one ,only changed the heading and labels and their input’s ID through property pane

One Webpart is working fine on a page ,but when uploading multiple webpart getting issues

But on the click of first webpart input fields , getting the value on the second Webpart

Selecting Different Input id for both webpart through propertyPane

enter image description here

Here is the property pane of my webpart which is same for both webpart but selected different value for property pane of both webpart

Getting Folders on the basis of DocumentLibrary selected in the property pane as well as documentType’s value is also getting from property pane

I am getting value of folder as well as documentType on the double click on the folder’s input as well as documentType input respectively

enter image description here

Get page content of SharePoint online classic page

I need to get page content of a page that is in subsite. I am not sure how to go about this. The page content hyperlink which I need to get. Whats is the best way of going about it. I essentially want to get the content out and make excel table out of all the hyperlink in the page content. It is a classic page in Sharepoint Online. I have tried to use Get-PnPCLientSidePage but that only seem to work for modern page. Any help will be greatly appreciated.

sharepoint online – Updating UserMulti field using CSR

I am trying to update a UserMulti field using CSR. However, no matter what value I send to SharePoint, the field remains empty.

This is my field definition:

<Field ID="{5EE8AF75-009D-4FBB-8AC9-D8D243170134}" Name="OnboardingStepResponsibleGroups" DisplayName="$Resources:Column_OnboardingSteps_OnboardingStepResponsibleGroups;" Type="UserMulti" UserSelectionMode="1" UserSelectionScope="0" Mult="TRUE" Group="Boardings Fields" />

I then register the field in my CSR file like so:

protected getTemplates(): SPClientTemplates.TemplateOverrides {
    var templates: SPClientTemplates.TemplateOverrides = {};

    templates.Fields = {
        "OnboardingStepResponsibleGroups": {
            NewForm: $.proxy(this.onboardingStepResponsibleGroupsNew, this)
        }
    };

    return templates;
}

private onboardingStepResponsibleGroupsNew(ctx: SPClientTemplates.RenderContext_FieldInForm): string 
{
    var formCtx = SPClientTemplates.Utility.GetFormContextForCurrentField(ctx);
    var field = new BoardingStepResponsibleGroupsNew("boardingreposiblegroup_new");

    formCtx.registerInitCallback(formCtx.fieldName, $.proxy(field.initCallback, field));
    formCtx.registerGetValueCallback(formCtx.fieldName, $.proxy(field.getValueCallback, field));

    return field.render();
}

This is my callback function:

public getValueCallback(): any {
    var values: SP.FieldUserValue() = ();

    this.groups.forEach((group) => {
        if (group.Selected) {
            var value: SP.FieldUserValue = new SP.FieldUserValue();
            value.set_lookupId(group.ID);
            values.push(value);

        }
    });

    return values;
}

I have tried returning everything from an array of anonymous objects to an array of SP.FieldUserValue. However, no matter what I do, the field is always empty. Also, when I use

var spReponsibleGroups: string = ctx.CurrentItem("SomeMultiUserField");

I get different values for display and edit forms. When inside display forms, the value is a string and looks like 1;#blah blah;#2;#ble ble but inside the edit form, the value looks like this:

({
    Description: "Boarding Administratoren",
    DisplayText: "Boarding Administratoren",
    EntityGroupName: "",
    EntityType: "",
    HierarchyIdentifier: null,
    IsResolved: true,
     Key: "Boarding Administratoren",
    MultipleMatches: (),
    ProviderDisplayName: "",
    ProviderName: ""
},
{
    Description: "Boarding HR-PUL-Technik",
    DisplayText: "Boarding HR-PUL-Technik",
    EntityGroupName: "",
    EntityType: "",
    HierarchyIdentifier: null,
    IsResolved: true,
    Key: "Boarding HR-PUL-Technik",
    MultipleMatches: (),
    ProviderDisplayName: "",
    ProviderName: ""
})

Official SharePoint documentation is lacking, as usual and I haven’t had luck finding anything that’s specifically about UserMulti fields targeting groups. Can anybody please help me out as I am all out of ideas?

sharepoint online – Jquery DataTable not rendering on Provider Hosted App

We are trying to display data from SharePoint to a datatable EmployeeDetails , However the table does not render completely as shown below

enter image description here

Below is the HTML Code

<html>
<head>
    <title></title>

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js">
    <script type="text/javascript" src="https://site.sharepoint.com/sites/DeveloperSite/SiteAssets/css/jquery.SPServices-0.7.1a.min.js" ></script>
    <script type="text/javascript" src="https://site.sharepoint.com/sites/DeveloperSite/SiteAssets/js/SPOnline/jquery.dataTables.min.js"></script>
    <script type="text/javascript" src="https://site.sharepoint.com/sites/DeveloperSite/SiteAssets/js/SPOnline/jquery.dataTables.rowGrouping.js"></script>
    

    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css">    
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.12/css/dataTables.jqueryui.min.css">

    <script type="text/javascript">

 //Javacsript Code

 </script>
</head>

<body>
<form id ="AddEmployee">

<div>
  
        <table id="Employees" class="display" cellspacing="0" width="200px">
<tr>

    <td>Employee ID</td>
    <td><select title="eid" name="eid" id="eid"></select></td>

</tr>
<tr>
    <td>Name:</td> 
     <td><input type="text" placeholder="Enter Name" id="txtName" required></td>
</tr>

<tr>
    <td>Age: </td>
    <td><input type="text" placeholder="Enter Age" name="txtAge" id="txtAge" required></td>
</tr>

<tr>
    <td>Address:</td>
    <td><input type="text" placeholder="Enter Address" name="txtAddress" id="txtAddress" required></td>
</tr>

<tr>
    <td>Team:</td>
    <td><select title="team" name="team" id="team"></select></td>
</tr>



<tr>
    <td colspan="2">
        <table width="250px">
            <tr>
                <td><input type="button" id="AddItem" value="Add" onclick="AddItem()" /></td>
                <td><input type="button" id="UpdateItem" value="Update" onclick="UpdateItem()" /></td>
                <td><input type="button" id="DeleteItem" value="Delete" onclick="DeleteItem()" /></td>
            </tr>
        </table>
    </td>
</tr>

</table>

</div>


<div>

    <table id="EmployeeDetails" cellspacing="0" class="display">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
            <th>Address</th>
            <th>Team</th>

        </tr>
    </thead>
    </table>
</div>

</form>

</body>
</html>

Code for binding data to datatable

function LoadEmployeeTable() {

            var executor = new SP.RequestExecutor(appweburl);

            executor.executeAsync(
                {
                    url:
                        appweburl +
                        "/_api/SP.AppContextSite(@target)/web/lists/GetByTitle('Employee')/items?$select=*,ID,Title,Age,Address,Team/ID,Team/Title&$expand=Team&@target='" +
                        encodeURIComponent(hostweburl) + "'",
                    method: "GET",
                    headers: { "Accept": "application/json; odata=verbose" },
                    success: function (data) {

                        var jsonObject = JSON.parse(data.body);
                        var results = jsonObject.d.results;
                        console.log(results);

                       // $.each(results, function (key, value) {

                       $('#EmployeeDetails').DataTable({

                                data: results,
                                columns: (

                                    {
                                        data: "ID"
                                    },
                                    {
                                        data: "Title"
                                    },
                                    {
                                        data: "Age"
                                    },
                                    {
                                        data: "Address"
                                    },
                                    {
                                        data: "Team.Title"
                                    },
                                    
                                )
                            });   

                       // });
                    },
                    error: function (error) {
                        alert(JSON.stringify(error));
                    }
                }
            );
        }

Document.Ready() function

 $(document).ready(function () {

// Populate Employee Table
   LoadEmployeeTable();

});

Researched a lot online , However didn’t find any article for this issue.

Would really appreciate if anyone here could help me out with binding and refreshing the datatable on button click

sharepoint online – Delete unique permissions of a File or Folder in a document library

I have a document library which has 3 folders in it and inside each folder there is a document (docx, xls, ppt).

My objective is to iterate every file inside my document library and check if It has unique permissions and If it does it should remove them.

For the folder part I already have this code working properly which fetches the root folder and prints if it has unique permissions.

$siteUrl = "https://**.sharepoint.com/sites/**"
Connect-PnPOnline –Url $siteURL –Credentials **
$context = Get-PnPContext 
$ListName="List name"

$list = Get-PnPList $ListName
$folders = $list.RootFolder.Folders
$context.Load($folders);
$context.ExecuteQuery();

foreach($folder in $folders)
{
  if($folder.ItemCount -gt 0)
  {    
    $f = Get-PnPFolder -Url $folder.ServerRelativeUrl -Includes ListItemAllFields.RoleAssignments, ListItemAllFields.HasUniqueRoleAssignments

    $context.Load($f);
    $context.ExecuteQuery();
    Write-Host $f.ServerRelativeUrl -> $f.ListItemAllFields.HasUniqueRoleAssignments
  }
}   

For the document / item part I’m struggling a bit because I cant seem to put this to work.
It always gives me that the item is not part of a list.

ERROR

So my questions is:

How do I check if a item / document has unique permissions and how to remove them?

External Link Warning for SharePoint Online

I am looking for a solution to warn our Internal SharePoint Online users that they are leaving our Intranet if they click on a link that is not on our Internal network.

For example, a link to google. User clicks on link, and it typically opens in a new tab. I want to latch onto this process and insert a message like “You are about to visit an external website. We cannot guarantee the accuracy of this information … blah blah blah” on every link outside our organization.

I have found information for on-premise installations, but not sure how to do this in SharePoint Online. Any ideas?

I’m sure this questions exists, but for the life of me, I cannot locate it. Maybe a keywords issue on my end?

Online Eye Glasses? | Forum Promotion

Which site would you recommend buying from for Eye Glasses? I see a few that have some nice styles and I got my prescription yesterday from my eye doctor (I ordered a pair through their office too). I’d like to know how the online sites fare compared to brick and mortar shops?

 

sharepoint online – Deploy sites based on templates : why is it so painful?

In SharePoint classic, it was easy (even if it was not perfect) to define a site template and to re use it.
What is the right way to do that in SharePoint modern?

  • is it recommended not to use subsites
  • by default, solutions catalog is hidden
  • only way to industrialize site creation: power automate. In Power Automate, applying a template for a new SharePoint site (collection 🙂 ) runs only for copying libraries: no content, no pages, no menus, no navigation… And no APIs to remove navigation menus…

I do not understand the aim of Microsoft; in my opinion, standardizing sites, libraries, columns… was a great way of keeping documents and datas organized. What I see for two years is a collection of small not connected parts (many tools, no easy way to re use templates…), and the results in my clients tenants is not really nice: datas and documents everywhere, without metadatas, groups created without knowing what it means, …

What did I miss? Communiction and hub sites are great, and the idea of being able to re organize sites is great; but duplicating templates of sites (in an easy way, without powershell in Azure…) is missing, in my opinion.

The best and easiest way to generate income online

What is the best and easiest way to make money online, and why?