目标:
库房管理人员只能依据采购订单和退货单才能办理收货。
具体操作:
打开“收货采购订单”的界面后,选择好供应商后,必须点选“复制从”,然后选择“采购订单”或“退货”等。
如果通过tab键调出物料清单,选择后,输入数量,然后按“添加”,提示“添加后不能修改”,然后在左下角的SAP消息栏提示“必须基于采购订单或退货单才能收货!”,不能成功添加。
实现方法:
打开sqlserver的查询分析器,打开SBO的一个公司数据库,查找一个存储过程:SBO_SP_TransactionNotification。将里面的内容换成:
ALTER proc SBO_SP_TransactionNotification
@object_type nvarchar(25), -- SBO Object Type
@transaction_type nchar(1), -- [A]dd, pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
declare @error_message nvarchar (200) -- Error string to be displayed
select @error = 0
select @error_message = N'Ok'
declare @aaa nvarchar (200) --用于存放判断字段baseline
--------------------------------------------------------------------------------------------------------------------------------
-- ADD YOUR CODE HERE
if @object_type='20'--ePurchaseDeliveryNote
begin
if @transaction_type='A'
begin
select @aaa =baseline from Pdn1 where DocEntry = @list_of_cols_val_tab_del
if @aaa is Null
begin
set @error=1
set @error_message='必须基于采购订单或退货单才能收货!'
end
end
end
begin
if @transaction_type='A'
begin
select @aaa =baseline from Pdn1 where DocEntry = @list_of_cols_val_tab_del
if @aaa is Null
begin
set @error=1
set @error_message='必须基于采购订单或退货单才能收货!'
end
end
end
--------------------------------------------------------------------------------------------------------------------------------
-- Select the return values
select @error, @error_message
end
无需写脚本。具体操作如下:
打开收货采购,然后打开表格设置。
然后把物料编号,和物料描述的活动都取消。
录入人员就不能通过tab选择物料,只能选择复制从。
转载于:https://blog.51cto.com/kanshan/577763