An internal request to obtain stock, sitting one step upstream of the PurchaseOrder. BranchId is the branch raising the request and receiving the goods; FromBranchId is the supplying branch used by the transfer route. It can be satisfied two different ways, and both draw down the same line-level PendingQuantity: PerformReleaseOrder and SelectiveReleaseOrder create a PurchaseOrder from its lines, while PerformReleaseTransfer and SelectiveReleaseTransfer create an internal stock Transfer instead. On insert the document date is stamped, a purchase-type price list is defaulted and header taxes are applied; after that nothing in the code advances Status, so judge progress from TotalQuantityPending or the line counters.
Fields
| Field | Label | Type | Required | What it does |
BranchId | Branch | Lookup → Branch | | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | | |
Description | Description | Text | | |
Division | Division | PickList | | |
DocumentDate | Document Date | Date | | |
DocumentNumber | DocumentNumber | Number | | |
ExternalId | External | ExternalId | | |
FromBranchId | From Branch | Lookup → Branch | | |
Id | Id | Guid | Yes | |
IsOrderReleased | Order Released | Boolean | | Declared as an order-released marker but never assigned anywhere in the procurement code, so it stays at its default. Use RequisitionLine.PurchaseOrderQuantity, or the header roll-up TotalQuantityPending, to tell whether a purchase order has been raised. |
LastModifiedBy | Last Modified By | Lookup | Yes | Metadata-only field with no counterpart in the platform: the Requisition domain type and the schema created by the platform migration have no LastModifiedBy column. The audited modifier is ModifiedById. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Document Number | Text, unique | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
PerformReleaseOrder | Perform Release Order | Boolean | Yes | A stored boolean, not a trigger. Releasing to a purchase order happens by invoking the PerformReleaseOrder server action; nothing in the platform reads this field. |
PriceAsOnDate | Price As On Date | Date | | |
PriceListId | Price List | Lookup → PriceList | | |
PurchaseOrderId | Purchase Order | Lookup → PurchaseOrder | | Header link to a purchase order. The link that release actually maintains is the reverse one on each generated purchase order line (PurchaseRequisitionId and RequisitionLineId), and it is that reverse link the PurchaseOrderQuantity roll-up is computed from. |
PurchaseOrderLineId | Purchase Order Line | Lookup → PurchaseOrderLine | | |
RecordTypeId | Record Type | Guid, hidden | | |
Remarks | Remarks | Text | | |
RequestedById | Requested By | Lookup | | |
RequiredDate | Required Date | Date | | |
ResourceId | Resource | Lookup → Resource | | |
Status | Status | PickList | | Values: Draft, Confirmed. |
SupplierAccountId | Supplier Account | Lookup → Account | | |
Tax1 | Tax 1 | Currency | | |
Tax1Name | Tax Name 1 | Text | | |
Tax1Rate | Tax Rate 1 | Currency | | |
Tax1Type | Tax Type 1 | Text | | |
TaxGroupId | Tax Group | Lookup → TaxGroup | | |
TaxId | Tax | Lookup → Tax | | |
TaxSupplyType | Tax Supply Type | PickList | | Values: Within State, Outside State, Exempt, Exports, SEZ. |
TotalAmount | Total Amount | Calculated (calculated) | | Calculated roll-up of RequisitionLine.Amount, which is itself just Quantity times UnitCost — so this is an estimated value at cost, with no discount or tax component. |
TotalLineTaxAmount | Total Line Tax Amount | Calculated (calculated) | | |
TotalQuantityPending | Total Quantity Pending | Calculated (calculated) | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
ApplyPackageConfiguration | ApplyPackageConfiguration | ServerAction (ApplyPackageConfiguration) | ApplyPackageConfiguration |
BulkDelete | Delete | Delete | Delete in Selected |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete |
Edit | Edit | Edit | EDIT |
EditInLine | Edit | EditInline | Edit in line |
EditInList | Edit | EditInline | Edit |
EditListRow | Edit | Edit | edit list row |
GetConfigurableItems | GetConfigurableItems | ServerAction (GetConfigurableItems) | GetConfigurableItems |
GetPackageConfiguration | GetPackageConfiguration | ServerAction (GetPackageConfiguration) | GetPackageConfiguration |
New | New | New | New |
PerformReleaseOrder | Release Order | ServerAction | This action is used to make purchase order |
PerformReleaseTransfer | Release Transfer | ServerAction (PerformReleaseTransfer) | Perform Release Transfer |
ProductConfigurator | Product Configurator | UIAction | ProductConfigurator |
SelectiveReleaseOrder | Selective Release Order | ServerAction (SelectiveReleaseOrder) | SelectiveReleaseOrder |
SelectiveReleaseTransfer | Selective Release Transfer | ServerAction (SelectiveReleaseTransfer) | SelectiveReleaseTransfer |
Validations
| Validation | Applies to | Error message | Notes |
| Required Date Rule Validation | RequiredDate, Error | Required By Date Should not be Backdated | Prevents backdated required-by date |
| XM_ValidateOnInactiveBranch | BranchId, Error | please tag active Branch! | please tag active Branch! |
| XM_ValidateOnInactivePartnerAccount | PartnerAccountId, Error | Please tag active Partner Account! | Please tag active Partner Account! |
| XM_ValidateOnInactiveSupplierAccount | Error | please tag active supplier account! | please tag active supplier account! |
Lookup filters
| Filter | Lookup field | Notes |
| Branch For Partner Account | BranchId | |
| Only Partner Account | PartnerAccountId | |
| Only Supplier | SupplierAccountId | |
| Supplier Account From Branch | FromBranchId (inactive) | Supplier Account From Branch |