采购申请审批策略增强

一般而言审批策略特征类创建时,特征项都是从CEBAN 和 CEKKO两个结构里取值。
但是有时候,审批策略控制过程中,需要其他非以上两结构中字段,
比如PS那边创建的采购申请需要些项目的,或者是采购申请做了增强,有些增强字段。
这个时候,可以用ceban-usrc1 ceban-usrc2这两个值存储部分字段值,
但是字段过多,
则可以使用自定义配置表,
配置表中客户维护需要校验哪些字段,并根据这些字段判断出增强策略;
然后把审批策略值赋给ceban-usrc1
配置特征类的特征项时,只维护一个usrc1特征项,
如下图:
[cl03:特征类,只维护一个特征]
采购申请审批策略增强

[ct04:特征维护时,附加数据使用ceban-usrc1]
采购申请审批策略增强

自定义审批策略配置表:
采购申请审批策略增强


维护好后,在增强中,通过如工程,类型,科目等最终确定审批策略(如"U2M1"),然后赋给ceban-usrc1。
系统则可根据usrc1值确定对应审批策略。


具体如下:

首先看些配置相关的:spro

 采购申请审批策略增强

采购申请审批策略增强

采购申请审批策略增强

采购申请审批策略增强
双击某行
采购申请审批策略增强
点击分类


如果usrc1赋值后,跟“批准策略的用户字段的格式字段”值一致,
采购申请凭证类型也一致,【可以把凭证类型的校对放入自建表,此处只留usrc1】
则会采用审批策略:B115 (审批组B1,审批策略:15)
采购申请审批策略增强


smcd查看增强 M06B0002

【如若知道exit_函数名想得到enhancement ,从MODSAP表查】

采购申请审批策略增强

采购申请审批策略增强

采购申请审批策略增强


主要是根据其他控制条件,确定审批策略,赋值给e_ceban-usrc1  

值得注意的是
如果usrc1这个字段在程序里没取到值,
建议给他赋个永远不能取到的值:比如ZZZZ

这样避免usrc1这个字段为空,而配置中恰有该字段为空的审批策略,
这样就会误取

为了做的更严谨【前提是usrc1赋值时,赋为系统配置的审批策略】,
获取到usrc1这个字段(即审批策略)后,去配置表校验
配置表:T16FT
(配置视图 :V_16FS)
如果发现获取的值在系统没有,则赋值为ZZZZ。
这样更好些


一般的值都可以在ceban这个结构里取

如果做了增强,

采购申请审批策略增强

这里做了增强,

那么EBAN表也需要做增强

采购申请审批策略增强


这俩字段都做增强了,

意味着如果调用bapi做采购申请创建修改等

也需要在附加字段里把这个增强字段加上

 

lw_itm-csid = '991'.

  lw_itm-preq_item = '00010'.

extensionin-structure = 'BAPI_TE_REQUISITION_ITEM'.

  extensionin-valuepart1 = lw_itm.

 

  APPEND extensionin.

 

CALL FUNCTION 'BAPI_REQUISITION_CREATE'

    IMPORTING

      number                         = pr_no

    TABLES

      requisition_items              = pr_item

      requisition_account_assignment = pr_account

      requisition_item_text          = pr_item_id

      return                         = pr_return

      extensionin                    = extensionin[].

 

具体实例:

http://blog.sina.com.cn/s/blog_c0978c9b0101i15v.html

 

 

另外,创建采购申请的途径很多,比如MM的,PS操作等,还有自开发程序

各种情况应该考虑清楚

可能有些值是传不进来的

所以只能直接取屏幕值或者靠ABAP内存或者sap内存

posted @ 2014-01-22 09:25  胡来  阅读(1489)  评论(0编辑  收藏  举报