您的位置:首页 > 其它

如何在SAP的的凭证流浏览器(DRB)中显示客户自定义的凭证

2012-03-20 14:29 211 查看

如何在SAP标准提供的的凭证流浏览器(DRB:
Document Relationship Browser )中显示客户自定义的凭证? 实现起来大致有以下几个步骤:

1. 为客户自定义凭证创建一个新的Business Object type,T-Code:SWO1

2. 建立客户自定义凭证和SAP标准凭证的关系。

具体做法:在数据表ASHGETS中添加一条记录用于指定一个FM,这个FM将用来建立MyDoc与PO的关系。

解释:在读取凭证流列表中的每一条凭证时,所有在数据表ASHGETS中指定的FM都将被依次执行用以建立所有凭证之间的关系。每一个FM被执行后,都会将跟当前凭证相邻的凭证输出到参数T_RELATIONS中,T_RELATIONS中的新凭证将会进入下一次循环,重复前面的过程,直到没有新的凭证被读取到。

3. 显示客户自定义凭证的详细信息。

具体做法:在数据表ASHMETHODS中添加一条记录用于指定显示MyDoc详细信息的FM和显示凭证描述的FM,并把它分派给步骤1中创建的Business Object Type

4. SE37,创建步骤2,3中指定的FM,并且完成代码。

5. 显示凭证流,T-Code:ALO1。在凭证流一览列表中将能够看到客户的自定义凭证。

举例:

在这个例子中,我们有一个客户自定义的凭证,存储在自定义的数据表ZGOSTEST02中,这个凭证将和采购订单关联,数据表ZGOSTEST02中的字段REFKEY将用来存放采购订单号。下面的步骤将会演示如何实现这个例子。

1.新建一个Business Object type叫ZMYDOC,它将对应于我们自定义的凭证。




2. 数据表ZGOSTEST02,用来存放这个自定义凭证的数据。表结构如下:



在我们的这个例子中,字段REFKEY将用来存放PO号。

我们将在这张表中添加一条记录,MYDOC的值为0001000000,REFTYPE为”BUS2012”,REFKEY为PO号:4500018249

注意:针对不同的Object type,用于生成Object key值的规则是不同的。比如对于PO,它就是PO号本身;而对于发票,它的值就是发票号加上财务年度。

3.数据表ZGOSTEST01,用来存放这个自定义凭证和PO的关系。表结构如下:



字段ORIG_OBJKEY用来存放PO号。

在这张表中,我们将把PO:4500018249和MYDOC: 0001000000关联起来。

4.在数据表ASHGETS中添加一条记录,对应FM: Z_DRB_MYDOC_GET,FM的参数可以参照数据表中其他的FM,这个数据表中所有的FM的参数都应该是一样的。代码如下:

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.在数据表ASHMETHODS中添加一条记录,内容如下:

字段

内容

Object Type:

ZMYDOC

Function Module (DISPLAY)

Z_DISPLAY_MYDOC

Function Module (TYPETEXT)

Z_MYDOC_TEXT_GET

FM Z_DISPLAY_MYDOC:用于处理凭证在凭证流浏览器中被用户选中时的后续操作,例如,显示凭证明细等等。

FM Z_MYDOC_TEXT_GET:用于得到浏览器中的凭证描述。代码如下:

e_text = ‘Customized document attached to PO’.

6.进入T-Code ALO1,请参照下面的截屏。




按F8






双击到下一屏, 此时在数据表ASHGETS中指定的FM:Z_DRB_MYDOC_GET将会被调用,并且建立起如下图的凭证流关系。


在双击上面被选中的那一行时,数据表ASHMETHODS中指定的FM Z_DISPLAY_MYDOC将会被调用,以处理后续的自定义的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: