Loading...
Please wait ...

Khôi phục các Sales Order/Purchase Order sau khi đã xóa!

Các thảo luận liên quan về Kỹ Thuật trong AX

Moderators: superERP, truongcongda

Reply to topic
02 Mar 2010, 17:28

Ultimate Member

Ultimate Member
Joined: 17 Nov 2008, 21:03
Posts: 760
Location: HCM
Thanks: 132 time
Thanked: 167 times in 96 posts
Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Dear @all,
Đa số trong chúng ta đều lo lắng khi các Sales Order/Purchase Order do sự cố vô tình hay cố ý mà users thực hiện xóa mất. Khiến chúng ta lo lắng không yên; nhưng các bạn hãy bình tĩnh- hít vào thật sâu và đọc hết topic này nhá.  :D  :D  :D

Khi chúng ta thực hiện điều đó; những dữ liệu này không thật sự xóa khỏi system mà chúng được đưa vào các Table đặc biệt để lưu trữ(SalesTableDelete/SalesLineDelete). Các bạn có thể theo dõi những data nào bị xóa tại.

AR -> Inquiries -> History -> Voided sales order or AP -> Inquiries -> History -> Voided sales order.


Sales order restoration:
    static void restoreDeletedSO(Args _args)
    {
        SalesTableDelete    salesTableDelete;
        SalesLineDelete     salesLineDelete;
        SalesTable          salesTable;
        SalesLine           salesLine;
        ;
        SalesTableDelete = SalesTableDelete::find('00450_036', true);
        ttsbegin;
        switch (salesTableDelete.Cancelled)
        {
            case Voided::Voided :
                salesTable  = conpeek(salesTableDelete.SalesTable, 1);
                salesTable.insert();
                while select forupdate salesLineDelete where salesLineDelete.SalesId == salesTableDelete.SalesId
                {
                    salesLine = conpeek(salesLineDelete.SalesLine, 1);
                    salesLine.insert();
                }
                salesTableDelete.delete();
                break;
            case Voided::linesVoided :
                while select forupdate salesLineDelete where salesLineDelete.SalesId == salesTableDelete.SalesId
                {
                    salesLine = conpeek(salesLineDelete.SalesLine, 1);
                    salesLine.insert();
                    salesLineDelete.delete();
                }
                salesTableDelete.delete();
                break;
       }
       ttscommit;
    }


Purchase order restoration:
    static void restoreDeletedPO(Args _args)
    {
        PurchTableDelete    purchTableDelete;
        PurchLineDelete     purchLineDelete;
        PurchTable          purchTable;
        PurchLine           purchLine;
        ;
        purchTableDelete = PurchTableDelete::find('00242_049', true);
        ttsbegin;
        switch (purchTableDelete.Cancelled)
        {
            case Voided::Voided :
                purchTable  = conpeek(purchTableDelete.PurchTable, 1);
                purchTable.insert();
                while select forupdate purchLineDelete where purchLineDelete.PurchId == purchTableDelete.PurchId
                {
                    purchLine = conpeek(purchLineDelete.PurchLine, 1);
                    purchLine.insert();
                }
                purchTableDelete.delete();
                break;
            case Voided::linesVoided :
                while select forupdate purchLineDelete where purchLineDelete.PurchId == purchTableDelete.PurchId
                {
                    purchLine = conpeek(purchLineDelete.PurchLine, 1);
                    purchLine.insert();
                    purchLineDelete.delete();
                }
                purchTableDelete.delete();
                break;
       }
       ttscommit;
    }


Hi vọng điều này sẽ thật sự giúp ích cho các bạn.
Thân

_________________
http://erp4vn.net/images/topic_posted/Enviroment.jpg
Rút gươm chém nước, nước càng chảy.
Mượn rượu tiêu sầu, càng sầu thêm.
03 Mar 2010, 09:18

Devoted Member

Devoted Member
Joined: 27 Oct 2009, 09:56
Posts: 116
Thanks: 2 time
Thanked: 49 times in 40 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Ban Final có thể cho biết cụ thể khi nào thì đoạn code này hữu ích không?

Ý mình hỏi là bạn đã dùng trong trường hợp thực tế nào để restore deleted PO / SO? Và yêu cầu của user là gì?

Còn nếu họ đã clean up SO/PO thì có cách nào khác không?
Thanks.
03 Mar 2010, 10:48

Ultimate Member

Ultimate Member
Joined: 17 Nov 2008, 21:03
Posts: 760
Location: HCM
Thanks: 132 time
Thanked: 167 times in 96 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
hsvkbi wrote:
Ban Final có thể cho biết cụ thể khi nào thì đoạn code này hữu ích không?

Ý mình hỏi là bạn đã dùng trong trường hợp thực tế nào để restore deleted PO / SO? Và yêu cầu của user là gì?

Còn nếu họ đã clean up SO/PO thì có cách nào khác không?
Thanks.


Dear hsvkbi,
Khi users thực hiện xóa mất các dòng SO/PO trên form (khôi phục sau khi users thực hiện clean up trên form.). Dẫn đến sai sót trong 1 số báo cáo lẫn nghiệp vụ có tham chiếu đến những data này. Và đoạn code trên mình đã test và hoạt động rất ok.

Và việc này; mình đưa ra lời khuyên chỉ những người có kiến thức về mặt technical trong AX hãy thực hiện trên TEST trước khi apply vào PROD.

Thân

_________________
http://erp4vn.net/images/topic_posted/Enviroment.jpg
Rút gươm chém nước, nước càng chảy.
Mượn rượu tiêu sầu, càng sầu thêm.
03 Mar 2010, 11:15

Devoted Member

Devoted Member
Joined: 27 Oct 2009, 09:56
Posts: 116
Thanks: 2 time
Thanked: 49 times in 40 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Finalstyles wrote:

Dear hsvkbi,
Khi users thực hiện xóa mất các dòng SO/PO trên form (khôi phục sau khi users thực hiện clean up trên form.). Dẫn đến sai sót trong 1 số báo cáo lẫn nghiệp vụ có tham chiếu đến những data này. Và đoạn code trên mình đã test và hoạt động rất ok.
Và việc này; mình đưa ra lời khuyên chỉ những người có kiến thức về mặt technical trong AX hãy thực hiện trên TEST trước khi apply vào PROD.
Thân


Thanks Final,

Lí do mình hỏi câu hỏi trên chính là ở chỗ này. Xin thứ lỗi cho mình hỏi nhiều  :lol: ... Problem ở đây là requirement. Theo mình nghĩ, chúng ta, consultants, nên nghiền ngẫm rõ những yêu cầu của user trước khi viết 1 đoạn code hay và đẹp.

Tại sao báo cáo nhiệp vụ lại sai sót nếu xóa PO hay SO? đây là báo cáo thống kê, hay consumable,hay... ?
Liệu rằng làm báo cáo dựa trên 2 bảng này có chính xác? Nếu như họ không xóa, mà thay đổi thông tin trên SO hay PO thì sao? Nếu phục hồi xong họ xóa tiếp thì sao?  :o .... Sao không dùng các table history data? hay invoice data?

Tất nhiên, cũng cần phải thực tế mốt chút là trong quá trình triển khai, có thể phần design ko tốt cho consultant chưa nắm rõ cấu trúc database, hoặc tìm hiểu requirement ko tốt... Anyway, mình chỉ muốn explore vấn đề ra 1 tí, xem có yêu cầu thực tế nào hay không thôi.

Thanks Final.. have fun
The following user would like to thank hsvkbi for this post
Finalstyles (03 Mar 2010, 11:24)
09 Mar 2010, 10:12

Ultimate Member

Ultimate Member
Joined: 17 Nov 2008, 21:03
Posts: 760
Location: HCM
Thanks: 132 time
Thanked: 167 times in 96 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
hsvkbi wrote:


Tại sao báo cáo nhiệp vụ lại sai sót nếu xóa PO hay SO? đây là báo cáo thống kê, hay consumable,hay... ?
Liệu rằng làm báo cáo dựa trên 2 bảng này có chính xác? Nếu như họ không xóa, mà thay đổi thông tin trên SO hay PO thì sao? Nếu phục hồi xong họ xóa tiếp thì sao?  :o .... Sao không dùng các table history data? hay invoice data?

Tất nhiên, cũng cần phải thực tế mốt chút là trong quá trình triển khai, có thể phần design ko tốt cho consultant chưa nắm rõ cấu trúc database, hoặc tìm hiểu requirement ko tốt... Anyway, mình chỉ muốn explore vấn đề ra 1 tí, xem có yêu cầu thực tế nào hay không thôi.

Thanks Final.. have fun

Dear hsvkbi,
Đến hôm nay mình mới nhớ  :P  :P  :P  việc khi users thực hiện xóa mất các SO trên Form nó ảnh hưởng đến việc Reconcile giữa Ledger và subledger. Chứ không phải chỉ ảnh hưởng những report.

Sau khi thực hiện xóa, vào kiểm tra thông tin tại voucher sẽ thấy được giá trị Amount trong kho của transactions này bị ảnh hưởng.

http://erp4vn.net/images/topic_posted/AX/ReconcileLeger-SubLedger.gif

Thân

_________________
http://erp4vn.net/images/topic_posted/Enviroment.jpg
Rút gươm chém nước, nước càng chảy.
Mượn rượu tiêu sầu, càng sầu thêm.
09 Mar 2010, 12:02

Devoted Member

Devoted Member
Joined: 27 Oct 2009, 09:56
Posts: 116
Thanks: 2 time
Thanked: 49 times in 40 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Finalstyles wrote:

Đến hôm nay mình mới nhớ  :P  :P  :P  việc khi users thực hiện xóa mất các SO trên Form nó ảnh hưởng đến việc Reconcile giữa Ledger và subledger. Chứ không phải chỉ ảnh hưởng những report.

Sau khi thực hiện xóa, vào kiểm tra thông tin tại voucher sẽ thấy được giá trị Amount trong kho của transactions này bị ảnh hưởng.

http://erp4vn.net/images/topic_posted/AX/ReconcileLeger-SubLedger.gif

Thân

You must have done something wrong then... there is no way to have a gap in reconciliation after deleting SO.Run the reconsiliation report in GL module, you will get nothing. I am sure.

By the way, how did you get to the screen above?
09 Mar 2010, 13:27

Ultimate Member

Ultimate Member
Joined: 17 Nov 2008, 21:03
Posts: 760
Location: HCM
Thanks: 132 time
Thanked: 167 times in 96 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
hsvkbi wrote:

By the way, how did you get to the screen above?

Dear hsvkbi,
Vì SO đã bị mất; nên mình không thể truy xuất trực tiếp đến Voucher transactions form từ SO. Mình thông qua GL\Reports\Transactions\Ledger transaction list. Rồi từ số Voucher trên report này; mình truy xuất đến Voucher transactions form. Nhấn Origin thì ra hình trên.  :lol:  :lol:  :lol:

_________________
http://erp4vn.net/images/topic_posted/Enviroment.jpg
Rút gươm chém nước, nước càng chảy.
Mượn rượu tiêu sầu, càng sầu thêm.
09 Mar 2010, 15:45

Devoted Member

Devoted Member
Joined: 27 Oct 2009, 09:56
Posts: 116
Thanks: 2 time
Thanked: 49 times in 40 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Finalstyles wrote:
hsvkbi wrote:

By the way, how did you get to the screen above?

Dear hsvkbi,
Vì SO đã bị mất; nên mình không thể truy xuất trực tiếp đến Voucher transactions form từ SO. Mình thông qua GL\Reports\Transactions\Ledger transaction list. Rồi từ số Voucher trên report này; mình truy xuất đến Voucher transactions form. Nhấn Origin thì ra hình trên.  :lol:  :lol:  :lol:

Hi,

Sorry for not typing Vietnamese... Windows 7 doesn't work well with Unikey :D in this website.

Dau tien, xin nhan manh 1 lan nua la khong the co chuyen delete sales order tao nen unreconciled GL transactions. De double check, ban chay report Reconciliation tu GL > Report > Reconcilication > Inventory > Inventory (filter theo ngay 11/23/2009). Neu differencies la 0 co nghi la ko co unreconciled transaction giua inventory subledger va GL.

Truong hop cua ban, can them thong tin ve sales order nay, vd: da deliver? invoice?... Theo suy doan cua toi thi co le vi 1 li do nao do, cost price cua transaction nay bang zero chu khong phai do delete sales order. Truong hop nay co the xay ra neu ban dung Project accounting, va cost price cua item nay trong project / sales order transaction do la zero.

Chuc vui
11 Mar 2010, 09:22

Ultimate Member

Ultimate Member
Joined: 17 Nov 2008, 21:03
Posts: 760
Location: HCM
Thanks: 132 time
Thanked: 167 times in 96 posts
Re: Khôi phục các Sales Order/Purchase Order sau khi đã xóa!
Thanks hsvkbi rất nhiều. Đúng như hsvkbi nói; nguyên nhân không phải do delete từ các SO sau khi đã invoiced. Mà chỉ những Invoiced được chuyển từ Services Module sang (đã được 1 third-party customizes) mới gặp phải tình trạng này. Có thể đây cũng là 1 trong những bugs của nó. Vì module này, nó đụng tới khá nhiều tới Projects module nữa. Còn nguyên nhân chính xác ở đâu, khi nào tìm ra sẽ thông báo cho mọi người tham khảo.

1 lần nữa ý kiến của hsvkbi lại hoàn toàn chính xác. :D

Thân

_________________
http://erp4vn.net/images/topic_posted/Enviroment.jpg
Rút gươm chém nước, nước càng chảy.
Mượn rượu tiêu sầu, càng sầu thêm.




Reply to topic
Jump to:  

Who is online

Users browsing this forum: No registered users and 1 guest

cron

All times are UTC + 7 hours - It is currently 10 Sep 2010, 18:47



Powered by phpBB 3.0.5 © 2000, 2002, 2005, 2007 phpBB Group
Best viewer in FireFox & Internet Explorer
© Copyright 2010 DIỄN ĐÀN ERP VIỆT NAM. All right reserved