系统运行过程中一些特殊逻辑或者需要外部系统提供数据支持的时候,程序会在相应代码中调用一些固定的存储过程以实现相关逻辑控制。
在SQL Server中这些存储过程可以有,也可以没有,没有的情况下不会影响系统原有逻辑。
但在MySQL或者MariaDB中,这些存储过程是必须要有的,内容可以为空,不做任何操作,如果没有这些存储过程则系统会报错。
举个例子,在前台页面做条码报工的时候,系统会去调用 [p_CheckSNBarcodeCanReport] 存储过程,此时如果数据库中存在此存储过程,则您可以在此存储过程中做一些其他额外的校验逻辑,以实现特殊管控。例如:此条码未在ERP数据库中完成注册则不允许报工等控制。
CREATE PROCEDURE [dbo].[p_CheckSNBarcodeCanReport]
@barcode nvarchar(200)
AS
BEGIN
SET NOCOUNT ON;
declare @count int
select @count = count(1) from ERP..BarcodeRecord where Barcode=@barcode
if @count>0 begin
RAISERROR ('此条码未注册',16,1)
end
END如果数据库抛出了异常则程序会终止接下去的操作,例如上述存储过程如果抛出异常,则该条码不能继续报工,且页面会显示异常信息:“条码未注册”。
类似的功能节点还有如下几个:
| 存储过程 | 参数 | 说明 |
|---|---|---|
| p_CheckSNBarcodeCanReport | @barcode nvarchar(200) | 通过存储过程判断条码能否报工 |
| p_CheckSNBarcodeCanOnline | @barcodeId bigint, @dispatchId bigint | 通过存储过程判断条码能否上线 |
| p_CheckReworkCanProcessing | @reworkId bigint | 用存储过程判断返工单能否生产 |
| p_CheckReportCanConfirmQty | @reportId bigint, @qty decimal(18,6) | 用数据库检查报工单是否可以确认 |
| p_CheckReportCanDelete | @reportId bigint | 用数据库检查报工单是否可以删除 |
| p_CheckDispatchCanStart | @dispatchId bigint | 通过存储过程判断派工单能否开工 |
| p_CheckDispatchCanDelete | @dispatchId bigint | 用数据库检查派工单是否可以删除 |
| p_CheckDispatchCanReport | @dispatchId bigint | 检查派工单能否报工 |
| p_CheckDispatchCanProcessing | @dispatchId bigint | 用存储过程判断派工单能否生产 |
| p_CheckEmployeeCanReport | @dispatchId bigint, @employeeId bigint | 检查人员能否报工 |
| p_CheckSNBarcodeCanGenerate | @barcode nvarchar(200), @dispatchId bigint | 用存储过程判定SN码是否可以生成 |
| p_CheckBarcodeCanReportIn | @barcodeId bigint | 用存储过程判断条码是否能生产入库 |
| p_CheckBarcodeCanScanBill | @barcodeId bigint, @warehouseId bigint, @wareareaId bigint, @billtype nvarchar(200) | 用存储过程判断条码是否能在单据扫描 |
| p_CheckBarcodeCanLoadWithReplace | @taskBillMaterialId bigint, @originalMaterialId bigint, @no(nvarchar) | 检查物料是否能代料的存储过程 |
| p_CheckBarcodeCanInventoryIn | @WarehouseId bigint, @WareareaId bigint, @TransferType nvarchar, @Barcode nvarchar | 条码移库扫描 |
| p_CheckIntervalBarcodeCanStore | @barcodeId bigint | 客户码校验时检查条码是否有入库 |
| p_AddDispatchMaterial | @dispatchId bigint | 生成补料单 |
| p_CheckBillCanPublish | @billcategory nvarchar, @billtype nvarchar, @billId bigint | 检查单据能否审核的存储过程 |
| p_CheckWareareaCanUse | @wareareaId bigint, @billtype nvarchar(200) | 多种扫描类型检查库位能否使用 |
| p_BeforeUnLockTask | @taskId bigint, @forceLock bit | 解锁任务单 |
| p_CheckLockTaskMaterial | @taskId bigint | 锁定任务单物料 |
| p_VerifySNCustomerBinding | @barcode nvarchar, @cusBarcode nvarchar | 用存储过程校验SN关联客户码是否正确 |
| p_CheckBarcodeCanBindBarcode | @mainBarcode nvarchar, @subBarcode nvarchar, | 用存储过程判定物料SN是否可以绑定 |
工翼信息 2026 © Indgo.cn All Rights Reserved.
浙ICP备2023009385号
浙公网安备 33010602009975号
精选评论
分享您的观点