Power Apps – découper un évènement principal en fonction des fêtes nationales

Étiquetté : ,

  • Power Apps – découper un évènement principal en fonction des fêtes nationales

    Posté par Denis sur 2 février 2025 à 18h37

    Bonjour à tous,

    J’ai une application power Apps avec 2 date picker. Le but et d’enregistrer dans une table sharepoint ‘HolidaysList’ des periodes de congès. L’idée est de pouvoir enregistrer plusieurs periodes si elles sont entrecoupées de week-end ou de fetes nationales.
    Exemple : Congès du 01/02/2025 au 28/02/2025. Ayant des fetes nationales les 1,3,5,17 cela devrait me créer un record le 2 puis un record le 4 puis un record du 6 au 16 et un dernier du 18 au 28 février.
    Il me semble que mon debut de code fonctionne bien mais lorsque j’essaie de regrouper par GroupID cela ne fonctionne pas.
    Pouvez-vous m’aider SVP

    <pre class=”language-markup”>// Define the date period
    ClearCollect(MainTasks,
    Table(
    { TaskID: 1, TaskName: "Main Task 1", StartDate: Date(2025, 2, 1), EndDate: Date(2025, 2, 10) },
    { TaskID: 2, TaskName: "Main Task 2", StartDate: Date(2025, 2, 15), EndDate: Date(2025, 2, 20) }
    )
    );
    // Sample Mock Data for Public Holidays
    ClearCollect(PublicHolidays,
    Table(
    { Date: Date(2025, 1, 1) },
    { Date: Date(2025, 2, 3) },
    { Date: Date(2025, 2, 5) },
    { Date: Date(2025, 2, 17) }
    )
    );
    Set(varStartDate, DataCardValue2.SelectedDate);
    Set(varEndDate, DataCardValue3.SelectedDate);

    // Generate Subtasks
    ClearCollect(Subtasks,
    ForAll(
    Sequence(DateDiff(varStartDate, varEndDate) + 1, 0, 1),
    With(
    {
    CurrentDate: DateAdd(varStartDate, Value,TimeUnit.Days)
    },
    If(
    Not(CurrentDate in PublicHolidays.Date),
    {
    ID: Text(0 + Value),
    PreviousID: Text(0 + Value + If(Value>0, -1, 0)),
    TaskDate: CurrentDate,
    TaskName: "Subtask for " & Text(CurrentDate, "[$-en-US]dd/mm/yyyy")
    }
    )
    )
    )
    );
    //Group by consecutive ID to create 1 event
    ClearCollect(GroupedSubtasks,
    ForAll(Subtasks,
    If(
    !IsBlank(LookUp(Subtasks, ID = ThisRecord.PreviousID, ID)),
    Patch(ThisRecord, {GroupID: LookUp(GroupedSubtasks, ID = ThisRecord.PreviousID, GroupID)}),
    Patch(ThisRecord, {GroupID: ThisRecord.ID})
    )
    )
    );

    • Cette discussion a été modifiée Il y a 5 jours, 9 heures par  Denis.
    Denis a répondu Il y a 5 jours, 10 heures 1 Membre · 0 Réponses
  • 0 Réponses

    Désolé, aucune réponse n’a été trouvée.

    Connectez-vous pour répondre.