Our state of the art Gantt chart


Post by rodel.ocfemia »

Hi,
The following setup makes sense. The Start and Finish dates of Setup web server are both null then it picked up values from the child components.
Start Date = earliest date from child components
Finish Date = latest date from child components

Gantt1.PNG
Gantt1.PNG (25.44 KiB) Viewed 102 times

Data

"tasks": {
    "rows": [
      {
        "id": 1000,
        "name": "Launch SaaS Product",
        "percentDone": 50,
        "startDate": "2022-03-14",
        "manuallyScheduled": false,
        "expanded": true,
        "children": [
          {
            "id": 1,
            "name": "Setup web server",
            "percentDone": 50,
            "duration": null,
            "startDate": null,
            "manuallyScheduled": false,
            "rollup": true,
            "endDate": null,
            "expanded": true,
            "children": [
              {
                "id": 12,
                "name": "Configure firewall",
                "percentDone": 50,
                "startDate": "2022-03-14",
                "manuallyScheduled": true,
                "rollup": true,
                "duration": 3,
                "endDate": "2022-03-17",
                "showInTimeline": true,
                "cost": 1000                
}, { "id": 13, "name": "Setup load balancer", "percentDone": 50, "startDate": "2022-03-14", "manuallyScheduled": true, "rollup": true, "duration": 3, "endDate": "2022-03-17", "cost": 1200 }, { "id": 14, "name": "Configure ports", "percentDone": 50, "startDate": "2022-03-14", "manuallyScheduled": true, "rollup": true, "duration": 2, "endDate": "2022-03-16", "cost": 750 }, { "id": 15, "name": "Run tests", "percentDone": 0, "startDate": "2022-03-21", "manuallyScheduled": true, "rollup": true, "duration": 2, "endDate": "2022-03-23", "cost": 5000 } ] } ], "endDate": "2022-05-16", "baselines": [ { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" }, { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" }, { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" } ] } ] }

For the following example, I have inserted Install Apache task with StartDate=Apr 15, 2022 and FinishDate=null. Question, how can Setup web Server capture the Apr 15, 2022 as FinishDate ? Because if Start Date of Install Apache is Apr 15, 2022 then the EndDate should be Apr 15, 2022 or later.

Gantt2.PNG
Gantt2.PNG (27.56 KiB) Viewed 102 times

Data

"tasks": {
    "rows": [
      {
        "id": 1000,
        "name": "Launch SaaS Product",
        "percentDone": 50,
        "startDate": "2022-03-14",
        "manuallyScheduled": false,
        "expanded": true,
        "children": [
          {
            "id": 1,
            "name": "Setup web server",
            "percentDone": 50,
            "duration": null,
            "startDate": null,
            "manuallyScheduled": false,
            "rollup": true,
            "endDate": null,
            "expanded": true,
            "children": [
              {
                "id": 11,
                "name": "Install Apache",
                "percentDone": 50,
                "startDate": "2022-04-15",
                "manuallyScheduled": true,
                "duration": null,
                "rollup": true,
                "color": "teal",
                "endDate": null,
                "cost": 200
              },
              {
                "id": 12,
                "name": "Configure firewall",
                "percentDone": 50,
                "startDate": "2022-03-14",
                "manuallyScheduled": true,
                "rollup": true,
                "duration": 3,
                "endDate": "2022-03-17",
                "showInTimeline": true,
                "cost": 1000                
}, { "id": 13, "name": "Setup load balancer", "percentDone": 50, "startDate": "2022-03-14", "manuallyScheduled": true, "rollup": true, "duration": 3, "endDate": "2022-03-17", "cost": 1200 }, { "id": 14, "name": "Configure ports", "percentDone": 50, "startDate": "2022-03-14", "manuallyScheduled": true, "rollup": true, "duration": 2, "endDate": "2022-03-16", "cost": 750 }, { "id": 15, "name": "Run tests", "percentDone": 0, "startDate": "2022-03-21", "manuallyScheduled": true, "rollup": true, "duration": 2, "endDate": "2022-03-23", "cost": 5000 } ] } ], "endDate": "2022-05-16", "baselines": [ { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" }, { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" }, { "startDate": "2022-03-13T23:00:00", "endDate": "2022-05-15T23:00:00" } ] } ] }

Post by alex.l »

Hi, you need to set duration for that task. Tasks should have have start and end dates, or one date and duration set, in that case it detected as scheduled. If you want it have no duration, add duration: 0.

All the best,
Alex


Post by rodel.ocfemia »

Hi Alex,
Setting the duration:0 of Install Apache task will also auto populate its Finish Date, but it will populate the Finish Date of Setup web server correctly.

Currently, we need Install Apache to be manually scheduled and display any null Finish Dates as blank.
So I think the only way to populate the Setup web server Finish Date correctly is to set the duration:0.

Please let me know if there are other options. Thanks


Post by tasnim »

Hi,

Yes, you need to set the duration to 0
To learn more about task scheduling, please check this guide https://bryntum.com/products/gantt/docs/guide/engine/gantt_events_scheduling


Post Reply