Cách chặn người dùn...
 
Notifications
Clear all

Cách chặn người dùng thay đổi số lượng của các thành phần trong lệnh sản xuất Production Order

9 Posts
2 Users
2 Reactions
202 Views
admin
Posts: 496
Admin
Topic starter
(@admin)
Knight3
Joined: 3 years ago

Tình huống: ngăn người dùng thay đổi Planned Qty của các thành phần (component) trong lệnh sản xuất (Production Order)

Giải pháp: tạo Transaction Notification để phát hiện và chặn tình huống trên.

IF @object_type='202' AND @transaction_type = 'U'
 
BEGIN
	IF exists (
	SELECT T0.DocEntry
	FROM OWOR T0 
	inner join WOR1 T1 on T0.DocEntry = T1.DocEntry
	left join AWOR T2 on T2.DocEntry = T0.DocEntry 
	left join AWO1 T3 on T3.LogInstanc = T2.LogInstanc and T3.DocEntry=T2.DocEntry and T1.LineNum=T3.LineNum
	WHERE T0.DocEntry = @list_of_cols_val_tab_del 
	and T0.Status = 'R'
	and T3.LogInstanc = (Select MAX(AWO1.loginstanc) from AWO1 where AWO1.docentry =@list_of_cols_val_tab_del )
	and T1.PlannedQty<>T3.PlannedQty
	)
	BEGIN
		SET @error = 20201
		SET @error_message = 'You are not allowed to change Planned Qty of components in  Released Production Order'
	END
END
Reply
8 Replies
1 Reply
(@trungagain)
Joined: 2 months ago

Pawn
Posts: 4

@admin bạn có thể viết lệnh chặn: Không cho người dùng nhập kho khi xuất sai đinh mực BOM, và không cho nhập kho khi xuất NVL nhỏ hơn BOM
Ví dụ:  BOM 1 laptop = 2 pin + 2,5 Ram : 
xuất NVL : 2 pin + 3 ram -> không cho nhập kho thành phẩm
xuất NVL bất kì thành phẩn nào nhỏ hơn đinh mực BOM -> không cho nhập kho thành phẩm
xuất NVL: 2 pin + 2,5 Ram --> chỉ cho nhập kho 1 thành phẩm vì đúng định mức, chặn các trường hợp nhập khác.

Reply
admin
Posts: 496
Admin
Topic starter
(@admin)
Knight3
Joined: 3 years ago

@Trungagain Nếu xuất các nguyên liệu thành phần luôn đúng theo định lượng của BOM, bạn có thể sử dụng phương thức Issue Method là Backflush. Theo đó, khi thực hiện nhập kho thành phẩm, hệ thống SAP B1 sẽ thực hiện xuất kho tự động theo số lượng đã được khai báo.

Reply
6 Replies
(@trungagain)
Joined: 2 months ago

Pawn
Posts: 4

@admin về phía người dùng nếu như họ nhập thủ công thì cần phải có lệnh chặn được các tình huống đó ạ

 

Reply
admin
Admin
(@admin)
Joined: 3 years ago

Knight3
Posts: 496

@trungagain cấu hình dạng Backflush sẽ luôn đảm bảo cứ thao tác nhập 1 đơn vị thành phẩm Laptop thì hệ thống xuất kho 2 pin + 2,5 ram. Nếu kho không đủ nguyên vật liệu thì hệ thống sẽ chặn không cho nhập kho thành phẩm. Cách này luôn xuất đúng số lượng nguyên liệu theo số lượng thành phẩm nhập kho.

Trường hợp vẫn muốn dùng câu Notification thì cho hỏi thêm tình huống: luôn nhận đủ số lượng laptop trong 1 lần nhập hay có thể nhận nhiều lần.

Reply
(@trungagain)
Joined: 2 months ago

Pawn
Posts: 4

@admin Nhận đủ số lượng thành phẩm, ko nhận thiếu được, không nhận thừa được

 

Reply
admin
Admin
(@admin)
Joined: 3 years ago

Knight3
Posts: 496

@trungagain Chẳng hạn như Production Order cần sản xuất 10 cái laptop:

Tình huống 1: khi nào hoàn thành lệnh sản xuất nhập kho 10 là đóng lệnh luôn

Tình huống 2: lần 1 nhập 3 cái / lần 2 nhập 5 cái / lần 3 nhập 2 cái >>> đủ 10 thì đóng lệnh.

Reply
(@trungagain)
Joined: 2 months ago

Pawn
Posts: 4

@admin Tình huống 2

Reply
admin
Admin
(@admin)
Joined: 3 years ago

Knight3
Posts: 496

@trungagain Thử câu Transaction Notification này nhé

IF @object_type in ('59') and @transaction_type in ('A')
	BEGIN
		
		IF EXISTS (					
				select T0.DocEntry from OIGN T0 join IGN1 T1 on T0.DocEntry=T1.DocEntry
						left join OWOR T2 on T1.BaseEntry=T2.DocEntry and T1.BaseType=202
						left join WOR1 T3 on T2.DocEntry = T3.DocEntry
				where T0.DocEntry=@list_of_cols_val_tab_del and (isnull(T2.CmpltQty,0)*T3.BaseQty) <> T3.IssuedQty			
					)
		BEGIN
			SET @error = 5920201
			SET @error_message = N'Lỗi! xuất kho NVL không khớp với định lượng BOM của thành phẩm, vui lòng kiểm tra lại.'
		END
	END
Reply
Share:
x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
Shield Security