前言:
? ? 歸納總結(jié)是個(gè)好習(xí)慣,我們都值得擁有.
? ? 每一個(gè)業(yè)務(wù)的開發(fā)需求,都是一次歸納的契機(jī).
根據(jù)業(yè)務(wù)特定的需求分析,是否可以概括出一個(gè)通用需求?
特定業(yè)務(wù)需求是否完全包含在這個(gè)通用需求中呢?
是否可以根據(jù)這個(gè)通用需求概括出一個(gè)通用處理模型?
該模型是否可以解決這一類的業(yè)務(wù)需求?
怎么用特定的語言(ABAP)開發(fā)這個(gè)模型?
怎么給業(yè)務(wù)最大的自由度去使用這個(gè)配置使用這個(gè)模型?
? ? 如果你是一個(gè)業(yè)務(wù)人員,帶著這些問題去和你的開發(fā)溝通.(你毛病呀,半天就可以寫完的程序,你想整一周?)
? ? 如果你是一個(gè)開發(fā)人員,帶著這些問題去和需求提出者溝通(你找事呀,按我的需求做就完事了,要不你來寫功能說明書?)
? ? 或者,你也會(huì)碰到志同道合的. 嗯,這個(gè)提議不錯(cuò), 咱們一起來完善一下這個(gè)設(shè)計(jì).?
? ? 嘗試更多的去理解業(yè)務(wù),去歸納業(yè)務(wù),用開發(fā)的思想去重建功能設(shè)計(jì).?
正文
? ? 自動(dòng)單據(jù): 在無需業(yè)務(wù)介入的情況下,由前一個(gè)單據(jù)觸發(fā)產(chǎn)生后一個(gè)或多個(gè)相關(guān)單據(jù).
? ? 大部分自動(dòng)單據(jù)的需求來自以下場(chǎng)景:
實(shí)際業(yè)務(wù)流程與系統(tǒng)單據(jù)流程匹配時(shí),系統(tǒng)中多出的步驟.
根據(jù)公司財(cái)務(wù)記賬需求,需要系統(tǒng)中額外創(chuàng)建的單據(jù).
入站接口需要處理產(chǎn)生系統(tǒng)中多個(gè)有前后關(guān)系的單據(jù).
? ? 自動(dòng)單據(jù)的實(shí)現(xiàn)方式:
配置實(shí)現(xiàn). 部分的SAP單據(jù)可以通過配置自動(dòng)產(chǎn)生后續(xù)單據(jù),比如銷售訂單->交貨單. 可以通過配置在銷售訂單保存時(shí)自動(dòng)產(chǎn)生后續(xù)的交貨單.
工作流實(shí)現(xiàn)?(這個(gè)不太擅長(zhǎng),無法展開闡述)
EDI實(shí)現(xiàn). 部分單據(jù)可以通過配置,在前置單據(jù)保存時(shí),自動(dòng)創(chuàng)建一個(gè)IDOC,執(zhí)行后產(chǎn)生后續(xù)單據(jù),比如跨公司調(diào)撥的發(fā)票自動(dòng)創(chuàng)建對(duì)應(yīng)的發(fā)票校驗(yàn).
開發(fā)實(shí)現(xiàn). (這個(gè)是本文闡述的重點(diǎn))
? ? 不管是什么方式實(shí)現(xiàn)自動(dòng)單據(jù),都需要解決以下幾個(gè)共性問題(這也是為什么EDI實(shí)現(xiàn)有一套復(fù)雜的配置的原因)
什么樣的單據(jù)需要自動(dòng)創(chuàng)建后續(xù)單據(jù),怎么識(shí)別它們?
創(chuàng)建后續(xù)單據(jù)的一些關(guān)鍵信息怎么獲取?
后續(xù)單據(jù)創(chuàng)建如果失敗了. 怎么獲取失敗的信息并且重新執(zhí)行?
? ? 自動(dòng)單據(jù)框架對(duì)上述問題的解決思路
對(duì)于需要自動(dòng)創(chuàng)建后續(xù)單據(jù)的單據(jù),在單據(jù)保存時(shí),通過一些通用配置來識(shí)別單據(jù)中關(guān)鍵特性(單據(jù)類型/地點(diǎn)/庫位/客戶/供應(yīng)商/公司代碼或任意抬頭字段或地點(diǎn)客戶供應(yīng)商的屬性),對(duì)于識(shí)別成功的,記錄自定義的表中.
通過參照模版程序創(chuàng)建一個(gè)處理程序,后續(xù)單據(jù)的關(guān)鍵信息可以在程序中通過代碼實(shí)現(xiàn)(或構(gòu)造一些對(duì)應(yīng)關(guān)系表實(shí)現(xiàn)).
處理程序同時(shí)負(fù)責(zé)監(jiān)控及重新處理報(bào)錯(cuò)的單據(jù).
自動(dòng)單據(jù)框架下的內(nèi)容可以快速部署在一個(gè)自定義的監(jiān)控平臺(tái),方便集中監(jiān)控所有的自動(dòng)單據(jù)執(zhí)行情況(這個(gè)后續(xù)介紹)
? ? 自動(dòng)單據(jù)框架試圖簡(jiǎn)化項(xiàng)目中這一類的開發(fā),把一個(gè)較長(zhǎng)的處理鏈條拆解成若干個(gè)單一的環(huán)節(jié),并且盡可能實(shí)現(xiàn)相關(guān)業(yè)務(wù)的可配置化.這樣,開發(fā)出來的自動(dòng)單據(jù)程序可以兼容并處理多種業(yè)務(wù)場(chǎng)景.
? ? SAP開發(fā)框架系列是我對(duì)開篇前言中問題的解答,這個(gè)系列提供的是一種思維方式,有些涉及到的代碼/工具,會(huì)在后續(xù)文章中陸續(xù)發(fā)布.
? ? 如果你對(duì)這篇文章感興趣,請(qǐng)幫忙轉(zhuǎn)發(fā)分享, 并且勾選微信 <看一看>.文章右上角的按鈕點(diǎn)擊后,點(diǎn)擊<在看>(或者文章末尾的右下角<在看>),即可.? ? ?