Автор Тема: Разузлование спецификаций (пример FM, like CS12)  (Прочитано 13034 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Пример для You are not allowed to view links. Register or Login
Данные для примера, в gt_bom - все позиции спецификаций
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF LTAB OCCURS 0.               "table for comp detail
        INCLUDE STRUCTURE STPOX.
DATA: END OF LTAB.

DATA: BEGIN OF MTAB OCCURS 0.               "table for assy detail
        INCLUDE STRUCTURE CSCMAT.
DATA: END OF MTAB.


DATA: BEGIN OF gt_bom OCCURS 0.               "table for comp detail
  INCLUDE STRUCTURE STPOX.
  INCLUDE STRUCTURE CSCMAT as CSCMAT RENAMING WITH SUFFIX cs.
  DATA: MAKTX TYPE MAKTX.
DATA: END OF gt_bom.

форма:
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&      Form  explode_bom
*&---------------------------------------------------------------------*
*       Разузловании спецификаций
*----------------------------------------------------------------------*

FORM explode_bom
  USING rs_matnr TYPE matnr
        rs_datuv TYPE stpox-datuv
        rs_aumng TYPE stko-bmeng
        rs_werks TYPE werks_d.

  DATA:  rs_stlan LIKE mast-stlan,         "usage
         rs_stlal LIKE mast-stlal,         "alternate
         rs_spras LIKE makt-spras.

  rs_stlan = '1'.
  rs_stlal = '01'.
  rs_spras = sy-langu.


  REFRESH ltab.
  REFRESH mtab.
  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
    EXPORTING
      ftrel                 = ' '
      aufsw                 = ' '
      brems                 = ' '
      aumng                 = rs_aumng
      capid                 = 'BEST'    "'PP01' "App ID
      datuv                 = rs_datuv
      ehndl                 = '1'
      mbwls                 = ' '
      mktls                 = 'X'
      mehrs                 = 'X'                   " Multi-level
      mtnrv                 = rs_matnr
      stlal                 = rs_stlal
      stlan                 = rs_stlan
      werks                 = rs_werks
    TABLES
      stb                   = ltab
      matcat                = mtab
    EXCEPTIONS
      alt_not_found         = 1
      call_invalid          = 2
      material_not_found    = 3
      missing_authorization = 4
      no_bom_found          = 5
      no_plant_data         = 6
      no_suitable_bom_found = 7
      OTHERS                = 8.

  IF sy-subrc = '7'.
    "WRITE: /1 text-i11, rs_matnr.
    WRITE: /1 ' no_suitable_bom_found', rs_matnr.
  ELSEIF sy-subrc NE 0.
    "WRITE: /1 text-i12, rs_matnr.
    WRITE: /1 'не найдена спецификация', rs_matnr.
  ENDIF.


  CLEAR ltab.
  "CLEAR mtab.

  "LOOP AT mtab .
  LOOP AT ltab.
    SELECT SINGLE * FROM mast WHERE werks EQ ltab-werks AND
                                    stlnr EQ ltab-stlnr AND
                                    stlan EQ ltab-stlan.
    CHECK sy-subrc EQ '0000'.
    SELECT SINGLE * FROM marc WHERE matnr EQ ltab-idnrk AND
                                    werks EQ ltab-werks.
    CHECK sy-subrc EQ '0000'.
    SELECT SINGLE * FROM makt WHERE matnr EQ ltab-idnrk AND
                                    spras EQ rs_spras.
    CHECK sy-subrc EQ '0000'.

    IF ltab-mstae NE '00' .
      FORMAT COLOR 3 INTENSIFIED.
    ELSE.
      FORMAT COLOR 2.
    ENDIF.
    "=
    gt_bom-maktx = makt-maktx.
    "=
    WRITE :/ ltab-stufe,
             mast-matnr , ltab-idnrk , makt-maktx,
                                       marc-ekgrp , ltab-matkl,
             ltab-mstae ,  ltab-mmsta , ltab-dismm ,ltab-sobsl,
             ltab-mschg , ltab-mmein , ltab-mtart, ltab-revlv.
    "HIDE : ltab-idnrk , marc-werks.

    "=
    MOVE-CORRESPONDING mtab TO gt_bom.
    MOVE-CORRESPONDING ltab TO gt_bom.
    APPEND gt_bom.
    "=
  ENDLOOP.
 


ENDFORM.                    "explode_bom
Думаю, в большинстве случае понятно....
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Sapforum.Biz