如何在SAP的的凭证流浏览器(DRB)中显示客户自定义的凭证
如何在SAP標準提供的的憑證流瀏覽器(DRB: Document Relationship Browser )中顯示客戶自定義的憑證? 實現(xiàn)起來大致有以下幾個步驟:
1. 為客戶自定義憑證創(chuàng)建一個新的Business Object type,T-Code:SWO1
2.?建立客戶自定義憑證和SAP標準憑證的關(guān)系。
具體做法:在數(shù)據(jù)表ASHGETS中添加一條記錄用于指定一個FM,這個FM將用來建立MyDoc與PO的關(guān)系。
解釋:在讀取憑證流列表中的每一條憑證時,所有在數(shù)據(jù)表ASHGETS中指定的FM都將被依次執(zhí)行用以建立所有憑證之間的關(guān)系。每一個FM被執(zhí)行后,都會將跟當前憑證相鄰的憑證輸出到參數(shù)T_RELATIONS中,T_RELATIONS中的新憑證將會進入下一次循環(huán),重復前面的過程,直到?jīng)]有新的憑證被讀取到。
3.?顯示客戶自定義憑證的詳細信息。
具體做法:在數(shù)據(jù)表ASHMETHODS中添加一條記錄用于指定顯示MyDoc詳細信息的FM和顯示憑證描述的FM,并把它分派給步驟1中創(chuàng)建的Business Object Type
4. SE37,創(chuàng)建步驟2,3中指定的FM,并且完成代碼。
5. 顯示憑證流,T-Code:ALO1。在憑證流一覽列表中將能夠看到客戶的自定義憑證。
舉例:
在這個例子中,我們有一個客戶自定義的憑證,存儲在自定義的數(shù)據(jù)表ZGOSTEST02中,這個憑證將和采購訂單關(guān)聯(lián),數(shù)據(jù)表ZGOSTEST02中的字段REFKEY將用來存放采購訂單號。下面的步驟將會演示如何實現(xiàn)這個例子。
1.新建一個Business Object type叫ZMYDOC,它將對應于我們自定義的憑證。
??
2. 數(shù)據(jù)表ZGOSTEST02,用來存放這個自定義憑證的數(shù)據(jù)。表結(jié)構(gòu)如下:
在我們的這個例子中,字段REFKEY將用來存放PO號。
我們將在這張表中添加一條記錄,MYDOC的值為0001000000,REFTYPE為”BUS2012”,REFKEY為PO號:4500018249
注意:針對不同的Object type,用于生成Object key值的規(guī)則是不同的。比如對于PO,它就是PO號本身;而對于發(fā)票,它的值就是發(fā)票號加上財務年度。
3.數(shù)據(jù)表ZGOSTEST01,用來存放這個自定義憑證和PO的關(guān)系。表結(jié)構(gòu)如下:
字段ORIG_OBJKEY用來存放PO號。
在這張表中,我們將把PO:4500018249和MYDOC: 0001000000關(guān)聯(lián)起來。
4.在數(shù)據(jù)表ASHGETS中添加一條記錄,對應FM: Z_DRB_MYDOC_GET,FM的參數(shù)可以參照數(shù)據(jù)表中其他的FM,這個數(shù)據(jù)表中所有的FM的參數(shù)都應該是一樣的。代碼如下:
?DATA:?ls_borident?TYPE?borident.**BUS2012:?Business?Object?type?of?PO
**ZMYDOC:?Business?Object?type?of?our?own?document
??CASE?i_borident-objtype.
????WHEN?‘ZMYDOC’.
??????SELECT?SINGLE?reftype?refkey?FROM?zgostest02
????????INTO?(ls_borident-objtype,?ls_borident-objkey)
????????WHERE?mydoc?=?i_borident-objkey.
??????IF?sy-subrc?is?INITIAL.
*???????Only?PO?is?cared?in?this?example
????????IF?ls_borident-objtype?=?‘BUS2012′.
??????????APPEND?ls_borident?TO?t_relations.
????????ENDIF.
??????ENDIF.
????WHEN?‘BUS2012′.
??????SELECT?SINGLE?mydoc?FROM?zgostest01?INTO?ls_borident-objkey
????????WHERE?orig_objtyp?=?i_borident-objtype
??????????AND?orig_objkey?=?i_borident-objkey.
??????IF?sy-subrc?is?INITIAL.
????????ls_borident-objtype?=?‘ZMYDOC’.
????????APPEND?ls_borident?TO?t_relations.
??????ENDIF.
????WHEN?OTHERS.
*??????do?nothing
??ENDCASE.
5.在數(shù)據(jù)表ASHMETHODS中添加一條記錄,內(nèi)容如下:
| 字段 | 內(nèi)容 |
| Object Type:????????????????? | ZMYDOC |
| Function Module (DISPLAY) | Z_DISPLAY_MYDOC |
| Function Module (TYPETEXT)? | Z_MYDOC_TEXT_GET |
FM Z_DISPLAY_MYDOC:用于處理憑證在憑證流瀏覽器中被用戶選中時的后續(xù)操作,例如,顯示憑證明細等等。
FM Z_MYDOC_TEXT_GET:用于得到瀏覽器中的憑證描述。代碼如下:
e_text?=?‘Customized?document?attached?to?PO’.
6.進入T-Code ALO1,請參照下面的截屏。
?
按F8
?
?
?雙擊到下一屏, 此時在數(shù)據(jù)表ASHGETS中指定的FM:Z_DRB_MYDOC_GET將會被調(diào)用,并且建立起如下圖的憑證流關(guān)系。
在雙擊上面被選中的那一行時,數(shù)據(jù)表ASHMETHODS中指定的FM Z_DISPLAY_MYDOC將會被調(diào)用,以處理后續(xù)的自定義的操作。
總結(jié)
以上是生活随笔為你收集整理的如何在SAP的的凭证流浏览器(DRB)中显示客户自定义的凭证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你所记得的一切 All you reme
- 下一篇: 关于ALV GRID的颜色