หน้าเว็บ

วันศุกร์ที่ 31 พฤษภาคม พ.ศ. 2562

Axapta :: Close Periods Axapta ทำให้ Ax เร็วขึ้น Inventsum ไม่คำนวณเยอะ

Axapta :: Close Periods Axapta ทำให้ Ax เร็วขึ้น Inventsum ไม่คำนวณเยอะ
** จะปิด Periods ใน Axapta สำคัญ **
1. ต้องสอบถาม งบง. ว่าทำฝั่งบัญชีเสร็จแล้วหรือยัง เพราะถ้าปิดไปแล้ว งบง. จะไม่สามารถปรับยอดหรือ Adjust ฝั่งบัญชีได้
2. วันที่ใน InventJournalTrans ต้องไม่มีค้าง ที่ยังไม่ได้ Post ต้องไม่มีในเดือนที่จะปิด
2.1. ค้างเปลี่ยนวันที่ใน Line และใส่ Remark นอกเล่มว่า งทส. เปลี่ยนวันที่
2.2. บางรายการมีการลบเล่มทิ้งแต่รายการใน Line ยังไม่อยู่ ต้องลบออก ไม่ได้ใช้งาน

1. Run Check ไม่มีการ Update แค่ดูเฉย ๆ
1.1. InventJournalTrans มีวันที่ที่จะ Close อยู่หรือไม่
1.2. InventJournalTrans มี แต่ InventJournalTable ไม่มี ถูกลบไป แต่ยังไม่ได้ Post
1.3. InventJournalTrans มี แต่ InventJournalTable ไปหาต่อที่ InventTrans ว่าถูก Post หรือไม่
Info ได้ Jouranl ออกมา ไปตรวจสอบ
  1. static void CheckCloseAC(Args _args)
  2. {
  3.     InventJournalTable      myInventJournalTable;
  4.     InventJournalTrans      myInventJournalTrans;
  5.     InventTrans             myInventTrans;
  6.  
  7.     LedgerJournalTrans      myLedgerJournalTrans;
  8.     LedgerJournalTable      myLegerJournalTable;
  9.     ;
  10.  
  11. ///// ###### Not Post. ####### ///////
  12.     WHILE
  13.     SELECT JournalId, TransDate FROM myInventJournalTrans
  14.     GROUP BY JournalId, TransDate
  15.     JOIN myInventJournalTable
  16.     WHERE myInventJournalTable.JournalId == myInventJournalTrans.JournalId
  17.         && myInventJournalTable.Posted == NoYes::No
  18.         && myInventJournalTrans.TransDate >= str2date("1/6/2015",123)
  19.         && myInventJournalTrans.TransDate <= str2date("31/6/2015",123)
  20.     {
  21.         info(strfmt("%1 : %2", myInventJournalTrans.JournalId, myInventJournalTrans.TransDate));
  22.     }
  23.  
  24. ///// ###### Delete Journal But InventJournalTrans remain data. ##########  /////
  25.     WHILE
  26.     SELECT JournalId, TransDate FROM myInventJournalTrans
  27.     GROUP BY JournalId, TransDate
  28.     WHERE myInventJournalTrans.TransDate >= str2date("1/6/2015",123)
  29.         && myInventJournalTrans.TransDate <= str2date("31/6/2015",123)
  30.     {
  31.         SELECT JournalId FROM myInventJournalTable
  32.         WHERE myInventJournalTable.JournalId == myInventJournalTrans.JournalId;
  33.         if(!myInventJournalTable.JournalId){
  34.             info(strfmt("%1 : %2", myInventJournalTrans.JournalId, myInventJournalTrans.TransDate));
  35.             //Check Post.
  36.             SELECT firstOnly myInventTrans
  37.             WHERE myInventTrans.TransRefId == myInventJournalTrans.JournalId;
  38.             if(!myInventTrans.TransRefId){
  39.                 info(myInventJournalTrans.JournalId);
  40.             }
  41.  
  42.         }
  43.     }
  44. }


2. เปลี่ยนวันที่ใน InventJournalTrans ให้เป็นวันที่ 1/1/2019 และแก้ Remark ( Update ข้อมูล เปลี่ยนวันที่ไปทีละเดือน Run ครั้งเดียว ถ้า Run ซ้ำ Remark จะเบิ้น)
  1. static void TWO_UpdateCloseAC(Args _args)
  2. {
  3.     InventJournalTable      myInventJournalTable;
  4.     InventJournalTrans      myInventJournalTransUpdate;
  5.     InventJournalTable      myInventJournalTableUpdate;
  6.     InventJournalTrans      myInventJournalTrans;
  7.     ;
  8.  
  9. /*    WHILE
  10.     SELECT * FROM myInventJournalTable
  11.     WHERE myInventJournalTable.Posted == NoYes::No
  12.         //&& myInventJournalTable.JournalId == "15-0003320"
  13.         && myInventJournalTable.TransDate >= str2date("1/3/2015",123)
  14.         && myInventJournalTable.TransDate <= str2date("31/3/2015",123)*/
  15.     WHILE
  16.     SELECT JournalId, TransDate FROM myInventJournalTrans
  17.     GROUP BY JournalId, TransDate
  18.     JOIN myInventJournalTable
  19.     WHERE myInventJournalTable.JournalId == myInventJournalTrans.JournalId
  20.         && myInventJournalTable.Posted == NoYes::No
  21.         && myInventJournalTrans.TransDate >= str2date("1/11/2018",123)
  22.         && myInventJournalTrans.TransDate <= str2date("31/11/2018",123)
  23.     {
  24.         myInventJournalTable = InventJournalTable::find(myInventJournalTrans.JournalId);
  25.         info(strfmt("%1", myInventJournalTable.JournalId));
  26.         ttsbegin;
  27.             WHILE
  28.             SELECT FORUPDATE myInventJournalTransUpdate
  29.             WHERE myInventJournalTransUpdate.JournalId == myInventJournalTable.JournalId
  30.             {   //### Update All Line To 1/1/2019 ####//
  31.                 myInventJournalTransUpdate.TransDate = str2date("1/1/2019", 123);
  32.                 myInventJournalTransUpdate.update();
  33.             }
  34.         ttscommit;
  35.  
  36.         //### Update InventTable ###//
  37.         ttsbegin;
  38.             SELECT FORUPDATE myInventJournalTableUpdate
  39.             WHERE myInventJournalTableUpdate.JournalId == myInventJournalTable.JournalId;
  40.                 //myInventJournalTableUpdate.TransDate = str2date("1/1/2019", 123);
  41.                 if(myInventJournalTable.Cause == ""){
  42.                      myInventJournalTableUpdate.Cause = strfmt("(งทส. เปลี่ยนวันที่ เดิม %1)", myInventJournalTable.TransDate);
  43.                 } else {
  44.                      myInventJournalTableUpdate.Cause = strfmt("%1 (งทส. เปลี่ยนวันที่ เดิม %2)", myInventJournalTable.Cause, myInventJournalTable.TransDate);
  45.                 }//Close If.
  46.                 myInventJournalTableUpdate.update();
  47.         ttscommit;
  48.  
  49.     }//Close While.
  50.  
  51.     info("Update Finish.");
  52. }


3. ทดลอง Close Periods ดู

ไม่มีความคิดเห็น:

แสดงความคิดเห็น