Skip to content

Fabric Warehouse

This process outlines how the Store Department initiates the sync of a shipment GRN from the ERP system into the WiMetrix system, enriches it with roll-level details, and sends the final data back to ERP.


  1. System fetches GRN header data from ERP table StLedgM (filtered by storecode = 01).

    • Data is inserted into:
    • WM_StLedgM → General GRN copy in WiMetrix.
    • WM_StLedgMFFabric store’s dedicated GRN master copy.
  2. System fetches item-level summarized data (item code, color, lot, etc.) from StLedgD.

    • This data is copied as-is into WM_StLedgD.
  3. System fetches roll details (roll number, length, units, etc.) from StLedgDF.


ERP TableWiMetrix TablePurpose
StLedgMWM_StLedgMGRN Master (WiMetrix General)
WM_StLedgMFGRN Master for Fabric Store
StLedgDWM_StLedgDItem Summary Data (1 row per item)
WM_StLedgDFRoll-level Detail + Upload Data
← Final syncFinal data pushed back to ERP
ValueDescription
1GRN (Initial)
2Returned From Cutting
3Transferred From WO
4Transferred To WO
5Issued to Cutting
6Purchase Return PRN
7Sale Note
8Store To Sub-Store Transfer
9Sub-Store To Store Transfer

  • [NCINV2025].[dbo].[WM_StLedgMF]
  • WiMetrix copy of the StLedgMF table containing roll GRN data
  • New documents will be created in this table on Roll movement
  • This table will be used to send data back to ERP
FieldDescription
St_DocNoDocNo of the GRN document
St_TypeDocument Type (GRN/Store Return/Transfer/Issuance)
StCC_CodeCost Center Code (used for issuance to and return from cutting)
STOThe store code of the sub-store (used for transfer to and from sub-store)
  • [NCINV2025].[dbo].[WM_StLedgDF]
  • WiMetrix copy of the StLedgDF table containing roll level data
  • New rolls will be pushed to this table on Roll movement
  • This table will be used to send data back to ERP
FieldDescription
St_ROLNOUnique Roll Number (Primary Identifier)
CompanyIdThe current company
Or_IdSource Order ID
St_DocNoDocNo of the GRN document
St_TypeDocument Type (GRN/Store Return/Transfer/Issuance)
St_DocDateDocument creation timestamp
St_ItemCodeItemCode of the GRN document
Or_Id_ToDestination Order ID
St_NETQTYCurrent roll length in meters
St_NetWeightNet weight of fabric (excluding packaging)
St_GrossWeightGross weight (including packaging materials)
  • [Warehouse].[Roll]
  • Tracks current state of all rolls
  • Contains real-time information:
FieldDescription
RollIDAuto-incremented Primary Key
RollNoUnique Roll Number (Primary Identifier)
ExternalRollIDThe foreign key identifier pointing to the synced data
CompanyIdThe current company
OrIdWorker Order
DocNoDocNo of the GRN document
DocDateDocument creation timestamp
LotNoLotNo of the GRN document
FabricCodeFabric ItemCode of the GRN document
LengthInitial roll length in meters
GrossWeightGross weight (including packaging materials)
NetWeightNet weight of fabric (excluding packaging)
CurrentLengthCurrent roll length in meters
CurrentWeightCurrent Net weight
RollStatusEnum indicating the current status of the roll
SubLocationIDThe current warehouse location and sub-location
CuttingLocationThe Location Code when roll is in cutting
  • [Warehouse].[FabricTag]
  • Contains a list of all Fabric Tags
  • Tracks the Roll assigned to each Tag
FieldDescription
FabricTagIDAuto-incremented Primary Key
RollIDThe current roll assigned to the tag (nullable)
TagCountThe number of times the tag has been printed
AssignedAtTimestamp when the card was assigned
AssignedByUser who assigned the card
  • [Warehouse].[FabricRequisition]
  • Record of requisitions made by the cutting department for fabric rolls
FieldDescription
FabricRequisitionIDAuto-incremented Primary Key
NameThe name of the requisition request req-{CutPlanName}-{Date}
Remarks(Optional) additional comments or notes
RequiredLengthThe length of rolls required for the requisition
CutPlanIDThe foreign key pointing to the cut plan
  • [Warehouse].[FabricTransfer]
  • A transfer request for roll movement
FieldDescription
FabricTransferIDAuto-incremented Primary Key
NameThe name of the transfer request
Remarks(Optional) additional comments or notes
TransferTypeIssuanceToCutting, ReturnFromCutting, WarehouseToWarehouse
TransferStatusPending, OGP-Complete, Complete
ToSubLocationIDThe warehouse to transfer to. NULL for 'IssuanceToCutting'
FabricRequisitionIDThe requisition the transfer is fulfilling. NULL except for 'IssuanceToCutting'
CuttingLocationThe Location Code for IssuanceToCutting type transfers
  • [Warehouse].[FabricTransferRoll]
  • The rolls associated with a transfer request
FieldDescription
FabricTransferRollIDAuto-incremented Primary Key
FabricTransferIDThe foreign Key pointing to the parent transfer
RollIDThe foreign key pointing to the roll
RollTransferStatusPending, OGP-Complete, Complete
FromSubLocationIDThe current roll warehouse. NULL for 'ReturnFromCutting'
TransferredLengthThe length of the roll under transfer
OGPAtTimestamp when the roll was OGP scanned
IGPAtTimestamp when the roll was IGP scanned
CreatedAtTimestamp when the record was created
CreatedByUser who created the record
UpdatedAtTimestamp when the record was last updated
UpdatedByUser who last updated the record
  • [Warehouse].[RollHistory]
  • Maintains a history of all actions performed on rolls
  • Type Values:
    • Synced
    • CardAssigned
    • IssuedToCutting
    • ReturnedFromCutting,
    • WarehouseTransfer
    • OrderTransfer
    • AssignedSubLocation
    • ChangedSubLocation
FieldDescription
RollHistoryIDPrimary key identifier
RollIDThe foreign key pointing to the roll
DateDate of transaction
TypeThe type of the history entry
FromSource location or department
ToDestination location or department
CurrentLengthExisting roll length
CurrentWeightExisting roll weight
RemarksAdditional notes or context

  • Users enters the GRN number in the portal.
  • A data grid in the portal displays rolls associated with each GRN, grouped by the identity columns.
  • System generates roll cards for entries where St_Type = 1

  • Table updates after assignment:

    • [Warehouse].[FabricTag]
      • RollID —> [Roll].[RollID]
      • AssignedAt —> GETDATE()
      • AssignedBy —> user_id
    • [Warehouse].[Roll]
      • RollStatus —> 'CardAssigned'
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> 'CardAssigned'
      • From —> Old Tag
      • To —> New Tag
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Rolls are now available for cutting operations and transfers

  • Select rolls from the portal to assign a location to.
  • Rolls must not have a location assigned already.
  • Select a location to assign to the rolls.
  • Table updates after assignment:
    • [Warehouse].[Roll]
      • SubLocationID —> [Roll].[RollID]
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> 'AssignedLocation'
      • From —> NULL
      • To —> Picked Location
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Select rolls from the portal to update
  • Rolls must have a location and card assigned already.
  • Select a location to assign to the rolls.
  • Table updates after assignment:
    • [Warehouse].[Roll]
      • SubLocationID —> [Roll].[RollID]
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> 'AssignedLocation'
      • From —> [Roll].[SubLocationID]
      • To —> Picked Location
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • User creates a requisition for rolls to be transferred to the cutting department:
    • [Warehouse].[FabricRequisition]
      • Name —> Entered Name
      • CutPlanID —> [Cutting].[CutPlan].[CutPlanID]
      • RequiredLength —> The specified length required
      • Remarks —> Any additional comments or description
  • User selects a Location(Cost Center) to issue to.
  • A transfer request to Cutting from Warehouse is created:
    • [Warehouse].[FabricTransfer]
      • Name —> IssuanceToCutting-${Date}
      • TransferType ---> 'IssuanceToCutting'
      • TransferStatus —> 'Pending'
      • FabricRequisitionID —> [Warehouse].[FabricRequisition].[FabricRequisitionID]
      • CuttingLocation —> The selected cutting location
      • Remarks —> Any additional comments or description
    • [Warehouse].[FabricTransferRoll]
      • Entries are created for each selected roll
      • FabricTransferID —> [FabricTransfer].[FabricTransferID]
      • RollID —> [Roll].[RollID]
      • RollTransferStatus —> 'Pending'
      • FromSubLocationID —> [Roll].[SubLocationID]
      • TransferredLength —> [Roll].[CurrentLength]
    • [Warehouse].[Roll]
      • RollStatus —> 'TransferringToCutting'
  • Each roll is scanned out at Warehouse
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'OGP-Complete'
  • Each roll is scanned in at Cutting
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'Complete'
  • After all rolls are OGP scanned:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'OGP-Complete'
  • After all rolls are IGP scanned, finish the transfer:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'Complete'
    • [Warehouse].[Roll]
      • RollStatus —> 'IssuedToCutting'
      • CuttingLocation —> [FabricTransfer].[CuttingLocation]
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> IssuedToCutting
      • From —> [Roll].[SubLocationID]
      • To —> Cutting([FabricTransfer].[CuttingLocation])
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Add entries back in the ERP table:
    • [NCINV2025].[dbo].[WM_StLedgMF]
      • Create a new entry
      • St_DocNo —> Generate new DocNo by incrementing the max DocNo for the St_Type by 1. (Will eventually be provided by ERP endpoints)
      • St_Type —> 5
      • StCC_Code —> [Transfer].[CuttingLocation]
      • STO —> Roll’s [Location].[ExternalID]
      • The other fields remain unchanged
    • [NCINV2025].[dbo].[WM_StLedgDF]
      • Entries are created for each roll
      • St_DocNo —> Use the new generated doc number
      • St_Type —> 5
      • Or_Id —> [Roll].[OrId]
      • The other fields remain unchanged
  • User selects the rolls to transfer in the portal
    • The rolls must have card assigned, have no transfer, and must not be consumed
  • A transfer request to Warehouse from Cutting is created:
    • [Warehouse].[FabricTransfer]
      • Name —> ReturnFromCutting-${Date}
      • TransferType ---> 'ReturnFromCutting'
      • TransferStatus —> 'Pending'
      • ToSubLocationID —> [Roll].[SubLocationID]
    • [Warehouse].[FabricTransferRoll]
      • Entries are created for each selected roll
      • FabricTransferID —> [FabricTransfer].[FabricTransferID]
      • RollID —> [Roll].[RollID]
      • RollTransferStatus —> 'Pending'
      • TransferredLength —> [Roll].[CurrentLength]
    • [Warehouse].[Roll]
      • RollStatus —> 'ReturningFromCutting'
  • Each roll is scanned out at Cutting
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'OGP-Complete'
  • Each roll is scanned in at Warehouse
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'Complete'
  • After all rolls are OGP scanned:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'OGP-Complete'
  • After all rolls are IGP scanned, finish the transfer:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'Complete'
    • [Warehouse].[Roll]
      • RollStatus —> 'CardAssigned'
    • CuttingLocation —> NULL
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> ReturnedFromCutting
      • From —> Cutting([Roll].[CuttingLocation])
      • To —> [Roll].[SubLocationID]
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Add entries back in the ERP table:
    • [NCINV2025].[dbo].[WM_StLedgMF]
      • Create a new entry
      • St_DocNo —> Generate new DocNo by incrementing the max DocNo for the St_Type by 1. (Will eventually be provided by ERP endpoints)
      • St_Type —> 2
      • StCC_Code —> [Roll].[CuttingLocation]
      • STO —> Roll’s [Location].[ExternalID]
      • The other fields remain unchanged
    • [NCINV2025].[dbo].[WM_StLedgDF]
      • Entries are created for each roll
      • St_DocNo —> Use the new generated doc number
      • Or_Id —> [Roll].[OrId]
      • St_Type —> 2
      • The other fields remain unchanged
  • User selects the rolls to transfer in the portal
    • The rolls must have card assigned, have no transfer, and must not be consumed
  • User selects the work order to transfer to
    • The selected work order must have the same FabricCode(St_ItemCode in the ERP table) as the current work order
  • Rolls are transferred
    • [Warehouse].[Roll]
      • OrId —> Set to the selected OrId
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> OrderTransfer
      • From —> [Roll].[OrId]
      • To —> Set to the selected OrId
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Add entries back in the ERP table:
    • [NCINV2025].[dbo].[WM_StLedgMF]
      • Create a new entry for the old work order
      • St_DocNo —> Generate new DocNo by incrementing the max DocNo for the St_Type by 1. (Will eventually be provided by ERP endpoints)
      • St_Type —> 3
      • STO —> Roll’s [Location].[ExternalID]
      • The other fields remain unchanged
    • Create a new entry for the new work order
      • St_DocNo —> Generate new DocNo by incrementing the max DocNo for the St_Type by 1. (Will eventually be provided by ERP endpoints)
      • St_Type —> 4
      • The other fields remain unchanged
    • [NCINV2025].[dbo].[WM_StLedgDF]
      • Entries are created for each roll for the old work order
        • St_DocNo —> Use the new generated doc number
        • St_Type —> 3
        • Or_Id —> [Roll].[OrId]
        • Or_Id_To —> Set to the selected OrId
        • The other fields remain unchanged
      • Entries are created for each roll for the new work order
        • St_DocNo —> Use the new generated doc number
        • St_Type —> 4
        • Or_Id —> Set to the selected OrId
        • Or_Id_To —> Set to the selected OrId
        • The other fields remain unchanged
  • User selects the rolls to transfer in the portal
    • The rolls must have card assigned, have no transfer, and must not be consumed
  • User selected the destination location and sub location
  • A transfer request is created:
    • [Warehouse].[FabricTransfer]
      • Name —> Warehouse-${Date}
      • TransferType ---> 'Warehouse'
      • TransferStatus —> 'Pending'
      • ToSubLocationID —> Selected sub location id
    • [Warehouse].[FabricTransferRoll]
      • Entries are created for each selected roll
      • FabricTransferID —> [FabricTransfer].[FabricTransferID]
      • RollID —> [Roll].[RollID]
      • RollTransferStatus —> 'Pending'
      • TransferredLength —> [Roll].[CurrentLength]
    • [Warehouse].[Roll]
      • RollStatus —> 'TransferringToWarehouse'
  • Each roll is scanned out at Cutting
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'OGP-Complete'
  • Each roll is scanned in at Warehouse
    • [Warehouse].[FabricTransferRoll]
      • RollTransferStatus —> 'Complete'
  • After all rolls are OGP scanned:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'OGP-Complete'
  • After all rolls are IGP scanned:
    • [Warehouse].[FabricTransfer]
      • TransferStatus —> 'Complete'
    • [Warehouse].[Roll]
      • RollStatus —> 'CardAssigned'
    • SubLocationID —> [FabricTransfer].[ToSubLocationID]
    • [Warehouse].[RollHistory]
      • Entries are created for each roll
      • TransactionType —> WarehouseTransfer
      • From —> [Roll].[SubLocationID]
      • To —> [FabricTransfer].[ToSubLocationID]
      • Date —> GETDATE()
      • CurrentLength —> [Roll].[CurrentLength]
      • CurrentWeight —> [Roll].[CurrentWeight]
  • Add entries back in the ERP table:
    • [NCINV2025].[dbo].[WM_StLedgMF]
      • Create a new entry
      • St_DocNo —> Generate new DocNo by incrementing the max DocNo for the St_Type by 1. (Will eventually be provided by ERP endpoints)
      • St_Type —> If the destination location’s ExternalID is 0, then 19, else 18
      • StCC_Code —> ""
      • STO —> Transfer’s [Location].[ExternalID]
      • The other fields remain unchanged
    • [NCINV2025].[dbo].[WM_StLedgDF]
      • Entries are created for each roll
      • St_DocNo —> Use the new generated doc number
      • St_Type —> If the destination location’s ExternalID is 0, then 19, else 18
      • Or_Id —> [Roll].[OrId]
      • The other fields remain unchanged
  • Available as mobile app or in web portal
  • Scan UHF/RFID Tags
  • Fetch and display roll details from [Essentials].[Roll].
    • Current status
    • Length/weight
    • Assigned card
    • Transaction history

  1. UHF RFID Infrastructure

    • 8-Port UHF Reader with 8 Antennas (WiMetrix)
      • Used for scanning RFID tags at various Rolls In/Out
  2. Gate Processing Systems

    • PC at Issuance/Receiving Gate (NCL)
      • Dedicated computer for processing RFID scan data
      • Manages inventory updates and gate operations
      • Interfaces with both WiMetrix and ERP systems
  3. Tag Management

    • Tag Initialization System
      • We will be using sticker pasting machine along with old sewing floor tags for rolls
      • Ensures proper tagging and identification of fabric rolls
  4. Mobile Operations

    • Handheld Devices for Warehouse Operations
      • Mobile RFID scanners for floor operations
      • Used for:
        • Locating rolls (HandHeld Devices)
        • Updating inventory (Remote opration where PC access is not possible)
        • Managing location updates
  5. Measurement Equipment

    • Weight Scale for Roll Weight Update
      • Records and updates roll weights
      • Integrated with the system for automatic weight updates
      • Ensures accurate weight tracking
      • Single roll at a time
      • PC is required with weight scale along with RFID Scanner (Gate Scanner and PC mentioned in Poit 2 can be used)

  1. StLedgM (GRN Master)

    • Primary Key: CompanyId, St_Type, St_DocNo
    • Key Fields:
      • St_Type: Document type (1 for GRN)
      • Storecode: Store identifier (01 for Fabric store)
      • St_DocDate: Document date
      • St_POSTED: Posting status
      • St_GLPOST: GL posting status
      • St_PONO: Purchase Order Number
      • St_PODate: Date of Creation of Purchase Order
      • StCC_Code: Cost Center Id details for Issuing Type-5
      • St_VENDOR: Supplier Code
      • St_VNAME: Supplier Name
      • STO: 0 in Fabric GRN will be used when issuing
    • Audit Fields:
      • CreatedAt: Record creation timestamp
      • CreatedBy: User who created the record
      • UpdatedAt: Last update timestamp
      • UpdatedBy: User who last updated the record
      • IsActive: Whether the record is active
  2. StLedgMF (Fabric Store GRN Master)

    • Primary Key: CompanyId, St_Type, St_DocNo, St_DocDate
    • Additional Fields:
      • St_DocNoFab: Fabric-specific document number
      • All key fields from StLedgM
    • Audit Fields:
      • CreatedAt: Record creation timestamp
      • CreatedBy: User who created the record
      • UpdatedAt: Last update timestamp
      • UpdatedBy: User who last updated the record
      • IsActive: Whether the record is active
  3. StLedgD (Item Summary)

    • Primary Key: CompanyId, St_Type, St_DocNo, St_DocDate, St_Itemcode, Or_Id
    • Key Fields:
      • St_Itemcode: Item code
      • St_NETQTY: Net quantity
      • St_LOTNO: Lot number
      • St_WCOLOR: Color information
      • St_LOTWT: Lot weight
      • St_BILLNO: Unit of Measurement
      • St_Value: Amount against Qty
      • St_PoNo: The Internal PO (Purchase Order) at which this request is created
      • St_PoDate: Date of Creation of Internal PO
    • Audit Fields:
      • CreatedAt: Record creation timestamp
      • CreatedBy: User who created the record
      • UpdatedAt: Last update timestamp
      • UpdatedBy: User who last updated the record
      • IsActive: Whether the record is active
  4. StLedgDF (Roll Details)

    • Primary Key: CompanyId, St_Type, St_DocNo, St_DocDate, St_Itemcode, Or_Id, St_LOTNO, St_ROLNO
    • Key Fields:
      • St_ROLNO: Roll number
      • St_ROLNODtl: Roll detail number
      • St_LengthWise: Length measurement
      • St_WidthWise: Width measurement
      • St_GSM: Fabric weight
      • St_NetWeight: Net weight
      • St_GrossWeight: Gross weight
      • St_Unit: Unit of Measurement
      • St_Value: Amount against Qty
      • St_PoNo: The Internal PO (Purchase Order) at which this request is created
      • St_PoDate: Date of Creation of Internal PO
      • St_DocNoFab: Fabric GRN No Entered only in Doc Type 5
      • Quality fields (GSM, Skew, etc.)
    • Audit Fields:
      • CreatedAt: Record creation timestamp
      • CreatedBy: User who created the record
      • UpdatedAt: Last update timestamp
      • UpdatedBy: User who last updated the record
      • IsActive: Whether the record is active
  • Master Key Fields:
    • St_Type
    • St_DocNo
    • St_DocDate
    • CompanyId
  • Detail Key Fields:
    • St_Type
    • St_DocNo
    • St_DocDate
    • CompanyId
    • St_Itemcode
    • Or_Id
  • Master Key Fields:
    • St_Type
    • St_DocNo
    • St_DocDate
    • CompanyId
  • Detail Key Fields:
    • St_Type
    • St_DocNo
    • St_DocDate
    • CompanyId
    • St_Itemcode
    • Or_Id
    • St_LOTNO
    • St_ROLNO