Skip to main content
Solved

Production Order Details API Scheduling (Time Zone Problem)


Forum|alt.badge.img
  • Jr Varsity II
  • 35 replies

​TLDR; How can I avoid time zone issues with Plan dates on Production Order Details when they are created via API? Due to the long JSON blocks, this question split over the first few comments as well.


Configuration:

  • My Site Preferences ‘Login Time Zone’ is blank
  • My logged in UI user is also set to a blank Time Zone
  • My API user’s Time Zone is blank
  • I am using infinite scheduling with a Finish On Constraint
  • The Work Calendar is M-F 11 hour days in UTC-08:00

Request:

I log in via Postman to the API user for my local Acumatica instance. Then I PUT a Production Order (entity/MANUFACTURING/23.200.001/ProductionOrder?$filter=ProductionNbr eq 'DATETEST'):

{
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "InventoryID": {
        "value": "018954"
    },
    "OrderDescription": {
        "value": "test product"
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "Location": {
        "value": "*MFG"
    },
    "OrderDate": {
        "value": "2025-01-03T00:00:00-08:00"
    },
    "QtytoProduce": {
        "value": 31
    },
    "UOM": {
        "value": "EA"
    },
    "SchedulingMethod": {
        "value": "Finish On"
    },
    "Constraint": {
        "value": "2025-01-31T00:00:00-08:00"
    },
    "DispatchPriority": {
        "value": 6
    },
    "AllowPreassigningLotSerialNumbers": {
        "value": true
    },
    "RequireParentLotSerialNumber": {
        "value": "On Issue"
    },
    "Source": {
        "value": "No Source"
    }
}

The response is:

{
    "id": "58191ab0-1aca-ef11-912a-00d86198c979",
    "rowNumber": 1,
    "note": {
        "value": ""
    },
    "AllowPreassigningLotSerialNumbers": {
        "value": true
    },
    "BOMID": {},
    "BOMRevision": {},
    "Branch": {
        "value": "100"
    },
    "ConfigKey": {},
    "ConfigurationID": {},
    "ConfRevision": {},
    "Constraint": {
        "value": "2025-01-31T00:00:00-08:00"
    },
    "CostingMethod": {
        "value": "Actual"
    },
    "Customer": {},
    "DispatchPriority": {
        "value": 6
    },
    "EndDate": {
        "value": "2025-01-31T00:00:00-08:00"
    },
    "EstimateRevision": {},
    "ExcludefromMRP": {
        "value": false
    },
    "Hold": {
        "value": false
    },
    "InventoryID": {
        "value": "018954"
    },
    "Location": {
        "value": "*MFG"
    },
    "OrderDate": {
        "value": "2025-01-03T00:00:00-08:00"
    },
    "OrderDescription": {
        "value": "test product"
    },
    "OrderType": {
        "value": "RG"
    },
    "ParentOrder": {},
    "ParentOrderType": {},
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "ProductManager": {},
    "ProductOrder": {},
    "ProductOrderType": {},
    "ProductWorkgroup": {},
    "QtyComplete": {
        "value": 0.0
    },
    "QtyRemaining": {
        "value": 31.0
    },
    "QtyScrapped": {
        "value": 0.0
    },
    "QtytoProduce": {
        "value": 31.0
    },
    "RequireParentLotSerialNumber": {
        "value": "On Issue"
    },
    "SchedulingMethod": {
        "value": "Finish On"
    },
    "ScrapLocation": {},
    "ScrapOverride": {
        "value": false
    },
    "ScrapWarehouse": {},
    "SOLineNbr": {},
    "SOOrderNbr": {},
    "SOOrderType": {},
    "Source": {
        "value": "No Source"
    },
    "SourceDate": {
        "value": "2025-01-03T00:00:00-08:00"
    },
    "SourceOrderType": {},
    "SourceProductionNbr": {},
    "StartDate": {
        "value": "2025-01-31T00:00:00-08:00"
    },
    "Status": {
        "value": "Planned"
    },
    "UOM": {
        "value": "EA"
    },
    "UpdateProject": {
        "value": false
    },
    "UseFixedMfgLeadTimesforOrderDates": {
        "value": false
    },
    "UseOrderStartDateforMRP": {
        "value": true
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "WIPAccount": {
        "value": "1210"
    },
    "WIPSubaccount": {
        "value": "00000"
    },
    "WIPVarianceAccount": {
        "value": "5701"
    },
    "WIPVarianceSubaccount": {
        "value": "00000"
    },
    "custom": {},
    "_links": {
        "self": "/AcuProd/entity/MANUFACTURING/23.200.001/ProductionOrder/58191ab0-1aca-ef11-912a-00d86198c979",
        "files:put": "/AcuProd/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdMaint/ProdMaintRecords/58191ab0-1aca-ef11-912a-00d86198c979/{filename}"
    }
}

Then I PUT Production Order Details (entity/MANUFACTURING/23.200.001/ProductionOrderDetail?$filter=ProductionNbr eq 'DATETEST'&$expand=Operations):

{
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "Operations": [
        {
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Cut 12\" TRIM CUT"
            },
            "OperationNbr": {
                "value": "010"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "SHR"
            },
            "QueueTime": {
                "value": 1320
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Upsetting"
            },
            "OperationNbr": {
                "value": "020"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "HDL"
            },
            "QueueTime": {
                "value": 4620
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "262\/293"
            },
            "OperationNbr": {
                "value": "030"
            },
            "OutsideProcess": {
                "value": false
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "H\/T"
            },
            "RunUnits": {
                "value": 38
            },
            "QueueTime": {
                "value": 3300
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Testing (F)"
            },
            "OperationNbr": {
                "value": "040"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "TEN"
            },
            "QueueTime": {
                "value": 1320
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Chamfering"
            },
            "OperationNbr": {
                "value": "050"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "CHM"
            },
            "QueueTime": {
                "value": 660
            },
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "2\""
            },
            "OperationNbr": {
                "value": "060"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "C\/T"
            },
            "QueueTime": {
                "value": 1980
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Cut 6-1\/4\""
            },
            "OperationNbr": {
                "value": "070"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "SA2"
            },
            "QueueTime": {
                "value": 1320
            }
        },
        {
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Weld"
            },
            "OperationNbr": {
                "value": "080"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "WLD"
            },
            "QueueTime": {
                "value": 1320
            }
        }
    ]
}

Continued in comments...

Best answer by PBSA

Acumatica confirmed the bug. They say it is resolved in the MANUFACTURING 25.100.001 endpoint available in 2025R1. They say:

In 2025R1, the “Start Date” and “End Date” of Production Detail Operations are editable if the “SchedulingMethod” is set to “User Dates”. So, you can send the timezone values offset to the user’s location.

There is further description of the new endpoint on page 13 here: https://acumatica-builds.s3.amazonaws.com/builds/preview/25.1/ReleaseNotes/AcumaticaERP_2025R1_Preview2_ReleaseNotes_for_Developers.pdf

View original
Did this topic help you find an answer to your question?

9 replies

Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 35 replies
  • January 3, 2025

The response is:

{
    "id": "58191ab0-1aca-ef11-912a-00d86198c979",
    "rowNumber": 1,
    "note": {
        "value": ""
    },
    "Branch": {
        "value": "100"
    },
    "Hold": {
        "value": false
    },
    "InventoryID": {
        "value": "018954"
    },
    "Operations": [
        {
            "MachineTime": {
                "value": 60
            },
            "OperationNbr": {
                "value": "010"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2024-12-31T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2024-12-31T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "RunTime": {
                "value": 0
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "SHR"
            }
        },
        {
            "OperationNbr": {
                "value": "020"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-10T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-10T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 4620
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "HDL"
            }
        },
        {
            "OperationNbr": {
                "value": "030"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-17T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-17T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 3300
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "H/T"
            }
        },
        {
            "OperationNbr": {
                "value": "040"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-21T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-21T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            }
        },
        {
            "OperationNbr": {
                "value": "050"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-22T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-22T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 660
            },
            "TotalQty": {
                "value": 31.0
            }
        },
        {
            "OperationNbr": {
                "value": "060"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-27T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-27T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1980
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "C/T"
            }
        },
        {
            "OperationNbr": {
                "value": "070"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-29T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-29T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "SA2"
            }
        },
        {
            "OperationNbr": {
                "value": "080"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-31T00:00:00-08:00"
            },
            "PlanStartDate": {
                "value": "2025-01-31T00:00:00-08:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "WLD"
            }
        }
    ],
    "OrderDate": {
        "value": "2025-01-03T00:00:00-08:00"
    },
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "Status": {
        "value": "Planned"
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "custom": {},
    "_links": {
        "self": "/AcuProd/entity/MANUFACTURING/23.200.001/ProductionOrderDetail/58191ab0-1aca-ef11-912a-00d86198c979",
        "files:put": "/AcuProd/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdItemRecords/58191ab0-1aca-ef11-912a-00d86198c979/{filename}"
    }
}

Continued in next comment...


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 35 replies
  • January 3, 2025

When I post the same JSON to our cloud hosted Acumatica, I get this response:

{
    "id": "de7c56b8-1bca-ef11-842e-06b1b982e321",
    "rowNumber": 1,
    "note": {
        "value": ""
    },
    "AllowPreassigningLotSerialNumbers": {
        "value": true
    },
    "BOMID": {},
    "BOMRevision": {},
    "Branch": {
        "value": "100"
    },
    "ConfigKey": {},
    "ConfigurationID": {},
    "ConfRevision": {},
    "Constraint": {
        "value": "2025-01-31T00:00:00+00:00"
    },
    "CostingMethod": {
        "value": "Actual"
    },
    "Customer": {},
    "DispatchPriority": {
        "value": 6
    },
    "EndDate": {
        "value": "2025-01-31T00:00:00+00:00"
    },
    "EstimateRevision": {},
    "ExcludefromMRP": {
        "value": false
    },
    "Hold": {
        "value": false
    },
    "InventoryID": {
        "value": "018954"
    },
    "Location": {
        "value": "*MFG"
    },
    "OrderDate": {
        "value": "2025-01-03T00:00:00+00:00"
    },
    "OrderDescription": {
        "value": "test product"
    },
    "OrderType": {
        "value": "RG"
    },
    "ParentOrder": {},
    "ParentOrderType": {},
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "ProductManager": {},
    "ProductOrder": {},
    "ProductOrderType": {},
    "ProductWorkgroup": {},
    "QtyComplete": {
        "value": 0.0
    },
    "QtyRemaining": {
        "value": 31.0
    },
    "QtyScrapped": {
        "value": 0.0
    },
    "QtytoProduce": {
        "value": 31.0
    },
    "RequireParentLotSerialNumber": {
        "value": "On Issue"
    },
    "SchedulingMethod": {
        "value": "Finish On"
    },
    "ScrapLocation": {},
    "ScrapOverride": {
        "value": false
    },
    "ScrapWarehouse": {},
    "SOLineNbr": {},
    "SOOrderNbr": {},
    "SOOrderType": {},
    "Source": {
        "value": "No Source"
    },
    "SourceDate": {
        "value": "2025-01-03T00:00:00+00:00"
    },
    "SourceOrderType": {},
    "SourceProductionNbr": {},
    "StartDate": {
        "value": "2025-01-31T00:00:00+00:00"
    },
    "Status": {
        "value": "Planned"
    },
    "UOM": {
        "value": "EA"
    },
    "UpdateProject": {
        "value": false
    },
    "UseFixedMfgLeadTimesforOrderDates": {
        "value": false
    },
    "UseOrderStartDateforMRP": {
        "value": true
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "WIPAccount": {
        "value": "1210"
    },
    "WIPSubaccount": {
        "value": "00000"
    },
    "WIPVarianceAccount": {
        "value": "5701"
    },
    "WIPVarianceSubaccount": {
        "value": "00000"
    },
    "custom": {},
    "_links": {
        "self": "/entity/MANUFACTURING/23.200.001/ProductionOrder/de7c56b8-1bca-ef11-842e-06b1b982e321",
        "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdMaint/ProdMaintRecords/de7c56b8-1bca-ef11-842e-06b1b982e321/{filename}"
    }
}

And for the Production Order Details, I get:

{
    "id": "de7c56b8-1bca-ef11-842e-06b1b982e321",
    "rowNumber": 1,
    "note": {
        "value": ""
    },
    "Branch": {
        "value": "100"
    },
    "Hold": {
        "value": false
    },
    "InventoryID": {
        "value": "018954"
    },
    "Operations": [
        {
            "OperationNbr": {
                "value": "010"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2024-12-31T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2024-12-31T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "SHR"
            }
        },
        {
            "OperationNbr": {
                "value": "020"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-10T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-10T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 4620
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "HDL"
            }
        },
        {
            "OperationNbr": {
                "value": "030"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-17T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-17T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 3300
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "H/T"
            }
        },
        {
            "OperationNbr": {
                "value": "040"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-21T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-21T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "TEN"
            }
        },
        {
            "OperationNbr": {
                "value": "050"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-22T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-22T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 660
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "CHM"
            }
        },
        {
            "OperationNbr": {
                "value": "060"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-27T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-27T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1980
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "C/T"
            }
        },
        {
            "OperationNbr": {
                "value": "070"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-29T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-29T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "SA2"
            }
        },
        {
            "OperationNbr": {
                "value": "080"
            },
            "OperationStatus": {
                "value": "Planned"
            },
            "PlanEndDate": {
                "value": "2025-01-31T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-31T00:00:00+00:00"
            },
            "QtyRemaining": {
                "value": 31.0
            },
            "QueueTime": {
                "value": 1320
            },
            "TotalQty": {
                "value": 31.0
            },
            "WorkCenter": {
                "value": "WLD"
            }
        }
    ],
    "OrderDate": {
        "value": "2025-01-03T00:00:00+00:00"
    },
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "Status": {
        "value": "Planned"
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "custom": {},
    "_links": {
        "self": "/entity/MANUFACTURING/23.200.001/ProductionOrderDetail/de7c56b8-1bca-ef11-842e-06b1b982e321",
        "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdItemRecords/de7c56b8-1bca-ef11-842e-06b1b982e321/{filename}"
    }
}

You can see the response from the cloud instance returns dates in UTC while the local instance returns them in -08:00 (my local time zone). Both instances display 2024-01-31 as the Constraint Date on the Production Order when I open it in the web interface. The web interface shows the final operation starting on 2024-01-31 in both sites. However, when a user with a Time Zone set on their profile modifies Run Time on an operation, the Plan dates recalculate relative to their timezone. This causes Plan dates to frequently land on weekends and holidays. 

I think if I could send Production Orders and Details with time zone information, or set a time zone on requests for the API user that I could make this behave consistently, but I can’t get the API requests to Production Order Details to acknowledge time zone at all. 

Changing the time zone on the API user’s personal settings does not change anything. How can I make the cloud instance acknowledge the dates I send? I could attempt to offset the dates when generating the request but I get different behavior on my local instance I assume because of the time zone on the host machine? If a manual offset is necessary, I hope there is a better way to determine what offset is needed than posting the Production Order, checking the returned Constraint date timezone, then overwriting it with the offset accounted for.

Thank you for reading.


jinin
Pro I
Forum|alt.badge.img+11
  • Pro I
  • 703 replies
  • January 6, 2025

Hi ​@PBSA ,

Could you add the header details below to the API request and check once?

"header": [
        "PX-CbApiBusinessDate: 2025/01/06"
    ],

 

 


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 35 replies
  • January 6, 2025

Thank you for the suggestion ​@jinin

I added the header to the PUT for both the ProductionOrder and the ProductionOrderDetail but got the same results. 

 

 


@Naveen Boga would you have any guidance or input on the above API related issue?


@PBSA All time values stored in the database are in UTC, adjusted according to the offset of your host machine.

I could attempt to offset the dates when generating the request but I get different behavior on my local instance I assume because of the time zone on the host machine?

Yes, the difference is due to your cloud-hosted instance being in the UTC time zone and your local instance in -08:00, your local time zone.


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 35 replies
  • January 16, 2025

How can I get this Production Detail to properly plan our operations then? If I set the constraint date to 2025-01-27 00:00:00-08:00:00 (on the server with UTC time):

{
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "InventoryID": {
        "value": "018954"
    },
    "OrderDescription": {
        "value": "test product"
    },
    "Warehouse": {
        "value": "PBNW"
    },
    "Location": {
        "value": "*MFG"
    },
    "OrderDate": {
        "value": "2025-01-03T08:00:00+00:00"
    },
    "QtytoProduce": {
        "value": 31
    },
    "UOM": {
        "value": "EA"
    },
    "SchedulingMethod": {
        "value": "Finish On"
    },
    "Constraint": {
        "value": "2025-01-27T00:00:00-08:00"
    },
    "DispatchPriority": {
        "value": 6
    },
    "AllowPreassigningLotSerialNumbers": {
        "value": true
    },
    "RequireParentLotSerialNumber": {
        "value": "On Issue"
    },
    "Source": {
        "value": "No Source"
    }
}

It throws away the time and timezone component of the Constraint and displays the production order with a Finish On date of 2025-01-27 (for a user with timezone set to -08:00):

...
    "Constraint": {
        "value": "2025-01-27T00:00:00+00:00"
    },
...

Then I send some operations to ProductionDetail:

{
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "Operations": [
        {
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Cut 12\" TRIM CUT"
            },
            "OperationNbr": {
                "value": "010"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "SHR"
            },
            "QueueTime": {
                "value": 480
            }
        },
        {
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Upsetting"
            },
            "OperationNbr": {
                "value": "020"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "HDL"
            },
            "QueueTime": {
                "value": 480
            }
        },
        {
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Weld"
            },
            "OperationNbr": {
                "value": "080"
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "WLD"
            },
            "QueueTime": {
                "value": 480
            }
        }
    ]
}

It saves and schedules operations based on UTC:

{
    "id": "84ecfb1e-62d4-ef11-842f-06b1b982e321",
    "rowNumber": 1,
    "note": {
        "value": ""
    },
    "Operations": [
        {
            "id": "37b64873-62d4-ef11-842f-06b1b982e321",
            "rowNumber": 1,
            "note": {
                "value": ""
            },
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Cut 12\" TRIM CUT"
            },
            "OperationNbr": {
                "value": "010"
            },
            "PlanEndDate": {
                "value": "2025-01-23T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-23T00:00:00+00:00"
            },
            "QueueTime": {
                "value": 480
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "SHR"
            },
            "custom": {},
            "_links": {
                "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdOperRecords/37b64873-62d4-ef11-842f-06b1b982e321/{filename}"
            }
        },
        {
            "id": "3bb64873-62d4-ef11-842f-06b1b982e321",
            "rowNumber": 2,
            "note": {
                "value": ""
            },
            "ControlPoint": {
                "value": false
            },
            "OperationDescription": {
                "value": "Upsetting"
            },
            "OperationNbr": {
                "value": "020"
            },
            "PlanEndDate": {
                "value": "2025-01-24T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-24T00:00:00+00:00"
            },
            "QueueTime": {
                "value": 480
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "HDL"
            },
            "custom": {},
            "_links": {
                "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdOperRecords/3bb64873-62d4-ef11-842f-06b1b982e321/{filename}"
            }
        },
        {
            "id": "3eb64873-62d4-ef11-842f-06b1b982e321",
            "rowNumber": 3,
            "note": {
                "value": ""
            },
            "ControlPoint": {
                "value": true
            },
            "OperationDescription": {
                "value": "Weld"
            },
            "OperationNbr": {
                "value": "080"
            },
            "PlanEndDate": {
                "value": "2025-01-27T00:00:00+00:00"
            },
            "PlanStartDate": {
                "value": "2025-01-27T00:00:00+00:00"
            },
            "QueueTime": {
                "value": 480
            },
            "RunTime": {
                "value": 0
            },
            "WorkCenter": {
                "value": "WLD"
            },
            "custom": {},
            "_links": {
                "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdOperRecords/3eb64873-62d4-ef11-842f-06b1b982e321/{filename}"
            }
        }
    ],
    "OrderDate": {
        "value": "2025-01-03T00:00:00+00:00"
    },
    "OrderType": {
        "value": "RG"
    },
    "ProductionNbr": {
        "value": "DATETEST"
    },
    "custom": {},
    "_links": {
        "self": "/entity/MANUFACTURING/23.200.001/ProductionOrderDetail/84ecfb1e-62d4-ef11-842f-06b1b982e321",
        "files:put": "/entity/MANUFACTURING/23.200.001/files/PX.Objects.AM.ProdDetail/ProdItemRecords/84ecfb1e-62d4-ef11-842f-06b1b982e321/{filename}"
    }
}

But in the UI, the production has an operation scheduled now on Sunday, Jan 26th:

I can move the Constraint date on the production order to the 28th (which makes the UI display the wrong finish date), but it continues to schedule work on weekends anyway (because it schedules the operation, then translates it to my timezone on display):

I don’t even know how I could work around this, it must be a bug? Server time certainly shouldn’t be the basis for production planning, and it can’t use Constraint successfully because it throws away the time and time zone components.


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 35 replies
  • Answer
  • March 13, 2025

Acumatica confirmed the bug. They say it is resolved in the MANUFACTURING 25.100.001 endpoint available in 2025R1. They say:

In 2025R1, the “Start Date” and “End Date” of Production Detail Operations are editable if the “SchedulingMethod” is set to “User Dates”. So, you can send the timezone values offset to the user’s location.

There is further description of the new endpoint on page 13 here: https://acumatica-builds.s3.amazonaws.com/builds/preview/25.1/ReleaseNotes/AcumaticaERP_2025R1_Preview2_ReleaseNotes_for_Developers.pdf


Chris Hackett
Community Manager
Forum|alt.badge.img
  • Acumatica Community Manager
  • 2771 replies
  • March 13, 2025

Thank you for sharing this information with the community ​@PBSA!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings