Time of Update: 2018-12-06
AX採用庫存維度檢查,在庫存的各個環節都會檢查庫存維度,我們知道check的任務大部分都交給了InventMovent系列的類去完成了。庫存維度檢查主要有兩個層面的任務:1.使用者指定的維度在相關主表中是否存在;比如InventSize,InventColor,InventBatch,WMSLocation中是否存在相應的記錄。2.不允許為空白的維度使用者是否已經指定。比如如果庫房維度處在啟用狀態,並且不允許空收穫或者空發貨,就必須指定相應的值。對於第一點,AX只在發貨之前進行檢查,也就是在庫存
Time of Update: 2018-12-06
AX跟VSS整合的版本管理可以通過建立知識庫將當前層的代碼全部簽入到VSS中,但是如果不是一個團隊開發solution,而是針對客戶的需求隨時做得一些小改動,一般都希望以Project的形式組織代碼和發布代碼。AX與VSS的整合沒有提供一種方法可以將一個Project的所有對象匯出成一個個的XPO檔案,既然沒有就只能自己動手豐衣足食了。如下代碼是將Project中的對象匯出成單獨的XPO檔案的:CodeCode highlighting produced by Actipro
Time of Update: 2018-12-06
上回書說到分公司之間要進行公司間交易必須要進行值對應,比如客戶,供應商,客戶,物料,幣種等。接頭的暗號,一方說:"天王蓋地虎",另一方答:"寶塔鎮河妖",OK,自己人。AX是怎麼完成這個映射的那?操作路徑:基本設定->設定->應用整合架構->終結點->操作策略->配置我們可以看到有五個標籤頁,大部分的枚舉值都是差不多的,有三個值
Time of Update: 2018-12-06
最近看了幾遍AX4.0的生產教程,發現幾個參數說得不明不白,自己做了一下測試,感覺貌似的確應該是本系列文章所寫的這樣,但由於剛剛接觸生產模組,淺顯的認識不見得對,所以只能叫亂彈了,還望各位生產前輩不吝賜教。生產->設定->工藝路線->工藝路線組->設定 選項卡有一件事很清楚,上面的六個作業類型是生產中一道工序所經曆的整個過程,當然並不是每一道工序都會包含這六個過程,所以這裡的 啟用 就是
Time of Update: 2018-12-06
AX有個問題是很多功能都跟表現層表單綁定在一起,要用代碼直接實現某個功能就需要看表單中的代碼是如何處理的並將其剝離出來。比如領料和登記功能,它都封裝到了表單InventTransPick和InventTransRegister中,雖然也是通過類InventTransWMS,InventTransWMS_Pick和InventTransWMS_Register實現相應的功能,但如果要通過代碼直接實現Pick和Register功能就需要看一下它們的處理邏輯,並將其改造一下。1.給InventTran
Time of Update: 2018-12-06
搞了兩三年AX,越來越困惑。技術層面可以通過多讀代碼去解決大多數問題,畢竟AX裡的那麼多原始碼是可以模仿的,加上AX本身是個很不錯的開發平台,技術方面可能不需要太多時間就差不多可以應付了。做AX最大的動力或許來自於實施AX確實可以給企業的經營帶來點好處。對ERP沒有太多深入的認識,說到底自己依然是個coder,但是技術並不能給企業帶來更多的好處,在正確的需求下,純熟的技術可以更好地解決問題,給企業帶來好處,在錯誤的引導下,技術只能使事情變得更糟,正如南轅北轍,馬越好,車越快,離目標越遠,技術就是
Time of Update: 2018-12-06
接著瞎侃。上一篇說了資金流,這一篇就扯一下資訊流,在軟體設計的時候資訊流可能有很多想法,每個人對資訊流的理解也不一樣,所以也沒有統一的標準。我這裡所分成的資訊流,現金流和物流僅僅是為了分析銷售開票這個過程,人為地按照我自己的理解把代碼分割了一下,便於整理,如此而已。我這裡提到的資訊流是指在銷售開票的過程中用哪些表和代碼記錄了與客戶相關的資訊。企業折騰的過程最終是為了賺錢,所以最後總會落腳到Money,也就是上文提到的那些財務憑證。在從物料轉化成Money的過程中,需要記錄一系列的資訊,要不然將來
Time of Update: 2018-12-06
我們接著聊,現在是萬事俱備只欠東風啦,閑言碎語咱不談,表一表好漢武二郎。按我的理解,公司間交易的操作類型一共有四種:其實從原理上來說,上面四種方式都是一樣的,只不過是操作方式稍有不同而已,我們一一說一下四種交易操作的操作方式。1.直接建立採購訂單發起公司間交易銷售公司001直接建立採購訂單向生產公司002採購物料,在公司002產生銷售訂單。操作路徑:應付賬款->採購訂單建立一個採購訂單,供應商選擇 銷售公司 002 對應的
Time of Update: 2018-12-06
最近兩天在想用VBA寫個宏處理點東西,對Excel的物件模型和方法不是很熟悉,寫起來還真費勁,在這裡備份一下,便於以後尋找。CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-06
上一回我們沒說重疊那個Job類型是咋回事,這次我們彈一彈。整個生產可能要經過多道工序,比如要經過兩道工序10,20,我要生產1000個產品,在一般情況下,如果沒有設定轉移批次(插一句,AX的中文翻譯成轉移批處理,在下不敢苟同,雖然俺是生產模組的白癡...)的話,這1000個產品要在完全完成10工序後才轉到20工序,這樣是順序執行生產的,這樣顯然不符合某些生產情境,一般情況下會在10工序完成一部分比如100個就轉移到20工序,並行提高生產效率,讓20工序乾等著多浪費事?OK,我們看一下在AX裡如何
Time of Update: 2018-12-06
剛跟一個同事討論通過CCADOConnection讀取外部資料庫資料的問題,如果讀取的資料是DateTime類型,只能得到Date部分,Time部分被忽略了。查看類CCADOField的value方法找到問題所在,下面是MSDN上關於COMVariant的Date方法的Remark:A COMVariant object has a date and time data type if its data type is set to COMVariantType::VT_DATE. When
Time of Update: 2018-12-06
正如前文所說的,AX的很多功能與表單綁定了,需要剝離出來,有一些類提供了供其他代碼直接調用的方法,比如PurchFormLetter及SalesFormLetter的Update方法,它們就幫忙處理了Parm*等一系列的表,並自動過賬,於是客戶段代碼可以很方便地調用它們。但也有一些類沒有提供類似的方法,就需要我們自己去處理Parm*表,比如轉移單的裝運和收貨,本文仿照PurchFormLetter的方式給轉移單對應的類添加方法,以期實作類別似的效果,供用戶端類調用。1.給類InventTrans
Time of Update: 2018-12-06
這些天一直忙於基礎BOM和生產BOM的建立和維護以及生產BOM維護流程的制定。生產BOM是至關重要的一個文檔,一方面銷售對某些生產的零組件有特別的要求,在正式開工之前他們需要看生產BOM,另一方面生產BOM也要用於指導採購去採購,當然生產BOM更是指導生產領料的唯一依據。鑒於生產BOM的重要性,把AX的生產BOM改造成適合自己需求的東西就很正常了。1.修改 估計
Time of Update: 2018-12-06
[前言]做為ERP軟體,MPS和MRP應該是最核心的部分,雖然AX的Master Planning這本教程介紹了AX主計劃的各式各樣的參數,從業務上到底怎麼理解那些參數,這些參數應該怎麼設定才算正確,一直困擾著我,一直期望能看到一些文章介紹AX的Master Planning應該怎麼使用,但是一直沒有看到,這些日子在讀一些關於APICS的書,本來想一路寫那個讀書筆記,但是"紙上得來終覺淺,絕知此事需躬行",於是還是結合AX的Master
Time of Update: 2018-12-06
不論採購訂單還是銷售訂單,在過賬裝箱單或者發票的時候都有兩個選項 信用更正和貸方剩餘數量。本文說一下這兩個選項的作用,這兩個選項的英文依次為Credit correction和Credit remaining quantity,我不知道這樣的翻譯是不是表達了英文的意思,不過無所謂了,只是個符號而已,知道勾了有什麼作用才是要緊的。先看 信用更正。我們知道AX裡的退貨五花八門,可以在當前行輸入
Time of Update: 2018-12-06
參與過AX項目,特別是做開發的可能都會遇到一個問題,AX不是能開發嗎?於是使用者搬出一大堆文檔,Word,Excel的,按照這些格式給我改吧!做這事絕對是出力不討好,這些格式絕對是不固定的,三天兩頭要變的,雖然AX開發比較靈活,但應對起這些華麗花哨的Word和Excel也只能疲於應付,Word和Excel的格式總會比AX的報表靈活的多。AX的文件管理裡可以通過預先定義的模板來產生Word和Excel檔案,這樣格式就由使用者自己通過模板定義了,AX只負責在使用者定義的這些模板的基礎上通過COM把A
Time of Update: 2018-12-06
後記:最近發現其實AX裡的類Info已經提供了相應的靜態方法infoCon2Str來實現這個功能,所以可以直接調用這個方法去實現本文所說的功能,本文不看也罷。AX用Infolog去系統管理使用者操作中的出錯或者提示資訊,最後用SysInfologBrowser這個表單去展現,但如果通過.NET Business Connector之類的去調用AX的系統類別就不可能用這種方法了,因為不可能將表單通過.NET Business
Time of Update: 2018-12-06
前面提到給生產BOM增加一個狀態,表示各個部門的修改狀態,今天使用者又提出,想看到五顏六色的生產訂單,生產BOM在不同的修改階段用不同的顏色表示,人還是對顏色這東西比較敏感。AX的優勢在於快速開發,對於一些不用太多時間就可以搞定的東西,與其費力氣去勸說使用者,還不如花一兩分鐘時間實現他們的需求,然後讓他們自己去衡量利弊,當他們自己意識到原來自己想象中的效果實現後還不如之前的時候,他們就會欣然接受你的主意。1.表單ProdTable資料來源ProdTable的displayOption方法:Cod
Time of Update: 2018-12-06
使用者想在某個動作之後給相關人員發個寄件提醒,由於他們使用的發郵件的東西都不一樣,有的用Outlook,有的用OutlookExpress,還有的是FoxMail的忠實使用者,所以乾脆用SysMailer通過CDO組件發送得了,代碼如下:CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-06
在寫一個自動產生銷售訂單行的小程式,大部分物料的數量都是預先定義好的,可以讓使用者定義一個BOM,直接根據BOM產生銷售訂單行就可以了,有一個物料需要從幾個物料中選擇,於是我想在建立之前彈出一個視窗,讓使用者選擇,又想到了Dialog這個類,唯一的問題是,如果直接用Code highlighting produced by Actipro CodeHighlighter