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

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

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

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • 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
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login