無名经验总结与分享(SAP)            十年树木,百年树人

物料主数据视图选择器

使用MM02时,我们输入材料并按下Enter键,它将要求我们选择所需的“VIEW”。此弹出窗口包含可用的物料主视图,并且它们不是恒定的。有时MRP1在第12行,有时在第6行。视图的这种动态仅取决于状态(MARA-VPSTA)。
为了获取这种动态变化,我们需要了解所需视图的确切位置,例如第6行或第10行或第15行。

我们将使用FM SELECTION_VIEWS_FIND找出哪个视图将位于哪个位置。


在我们的程序中,我们将按照以下步骤操作:
1.始终选择基本数据1
2.通过执行FM SELECTION_VIEWS_FIND获取该选项卡的相应用户命令。
状态(MARA-VPSTA)包含“查看”指示器的组合。您可以在数据元素PSTAT_D的文档中找到状态指示器和视图名称的关系,或遵循此表:

视图名称                    状态指示器
  Work scheduling                A
Accounting                     B
Classification                 C
MRP                            D
Purchasing                     E
Production resources/tools     F
Costing                        G
Basic data                     K
Storage                        L
Forecasting                    P
Quality management             Q
Warehouse management           S
Sales                          V
Plant stocks                   X
Storage location stocks        Z


在此测试BDC中,我想更新MRP类型。 MRP类型位于物料主数据的“ MRP 1”视图下。因此,我将首先选择基本数据,然后转到MRP 1视图并更新MRP类型。



*&---------------------------------------------------------------------*
*& Report  ZDEMO006
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zdemo006.
PARAMETERS : p_matnr type matnr DEFAULT '140000979'.
* Material views …………………………………………….
DATA: l_vpsta LIKE t130m-pstat.
*
SELECT SINGLE vpsta
into   l_vpsta
from   mara
where  matnr = p_matnr.
*
* Get View sequence ………………………………………….
DATA: l_bild LIKE t133a-bilds,
      lt_bild LIKE mbildtab OCCURS 0 WITH HEADER LINE.
*
* Screen Sequence for Standard Industry tab pages in material master
l_bild = '21'.
*
* Get screen sequence
CALL FUNCTION 'SELECTION_VIEWS_FIND'
EXPORTING
    bildsequenz     = l_bild
    pflegestatus    = l_vpsta
TABLES
    bildtab         = lt_bild
EXCEPTIONS
    call_wrong      = 1
    empty_selection = 2
others          = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
cl_demo_output=>DISPLAY( lt_bild[] ).


输出结果如下:

image

posted @ 2021-05-07 14:24  無名  阅读(199)  评论(0编辑  收藏  举报
Twttafku@163.com
十年树木,百年树人