Material Klassifizierung

Nützliche Abap Codes und Code Fragmente

Material Klassifizierung

Postby Tron » Mon Sep 27, 2021 12:04 pm

1.) Lesen der Bewertung
CACL_OBJECT_READ_VALIDATION.png
CACL_OBJECT_READ_VALIDATION.png (25.15 KiB) Viewed 1280 times


2.) Zuweisen einer Materialklasse, falls noch nicht geschehen.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZLO_ASSIGN_CLASS2OBJ
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT  zlo_assign_class2obj.
  10. TABLES mara.
  11. TYPE-POOLS sbiwa.
  12.  
  13. gv_object_type TYPE tcla-obtab VALUE 'MARA',
  14. gv_class_type TYPE klah-klart VALUE '001',
  15. msg_text(80),
  16. lt_objid TYPE TABLE OF api_ob_key WITH HEADER LINE,
  17. lt_alloc TYPE TABLE OF api_alloc WITH HEADER LINE.
  18.  
  19. DATA:BEGIN OF gt_matnr OCCURS 0,
  20.      matnr TYPE matnr,
  21.      END OF gt_matnr.
  22.  
  23.  
  24. * test  271259118
  25.  
  26.  
  27. PARAMETERS p_dest TYPE rfcdes-rfcdest OBLIGATORY DEFAULT 'NONE'.
  28.  
  29.  
  30.  
  31. SELECT-OPTIONS p_matnr FOR mara-matnr.
  32.  
  33.  
  34.  
  35. PERFORM get_mat TABLES gt_matnr.
  36.  
  37. IF NOT gt_matnr[] IS INITIAL.
  38.   lt_objid-field = 'MATNR'.
  39.  
  40.   LOOP AT gt_matnr INTO lt_objid-value.
  41.     APPEND lt_objid.
  42.  
  43.  
  44.     CALL FUNCTION 'CACL_OBJECT_READ_ALLOCATIONS' DESTINATION p_dest
  45.       EXPORTING
  46. *   OBJECT                      =
  47.         object_type                 = gv_object_type
  48.         class_type                  = gv_class_type
  49. *   DATE                        =
  50. *   LANGUAGE                    = SYST-LANGU
  51. *   I_OBJ_NOT_CHK               = ' '
  52. *   I_AENNR                     =
  53.       TABLES
  54.         object_identification       = lt_objid
  55.         allocations                 = lt_alloc
  56.      EXCEPTIONS
  57.        error                       = 1
  58.        warning                     = 2
  59.        communication_failure       = 3  MESSAGE msg_text
  60.        system_failure              = 4  MESSAGE msg_text
  61.        OTHERS                      = 5.
  62.  
  63.     IF sy-subrc <> 0.
  64.       EXIT.
  65.     ENDIF.
  66.  
  67.  
  68.  
  69.     READ TABLE lt_alloc TRANSPORTING NO FIELDS WITH KEY
  70.       class_type = '001'
  71.       class = 'MATERIAL_CLASS'.
  72.  
  73.     IF sy-subrc NE 0.
  74.  
  75.       CALL FUNCTION 'CACL_OBJECT_ALLOCATION_MAINT' DESTINATION p_dest
  76.         EXPORTING
  77. *       OBJECT                      =
  78.           object_type                 = 'MARA'
  79.           class                       = 'MATERIAL_CLASS'
  80.           class_type                  = '001'
  81. *       STATUS                      =
  82. *       STANDARD_CLASS              =
  83. *       DELETE_ALLOCATION           =
  84. *       CHANGE_NO                   =
  85. *       I_OBJ_NOT_CHK               = ' '
  86. *       I_DATUV                     =
  87. *       I_NO_DEFAULTS               = ' '
  88. *       I_CHECK_SYDATE              =
  89.         TABLES
  90.           object_identification       = lt_objid
  91.        EXCEPTIONS
  92.          error                       = 1
  93.          warning                     = 2
  94.          communication_failure       = 3  MESSAGE msg_text
  95.          system_failure              = 4  MESSAGE msg_text
  96.          OTHERS                      = 5.
  97.  
  98.       IF sy-subrc <> 0.
  99.       ENDIF.
  100.  
  101.  
  102.       CALL FUNCTION 'CACL_CLASSIFICATION_SAVE' DESTINATION p_dest
  103. *     EXPORTING
  104. *       I_COMMIT            = 'X'
  105. *       I_WAIT              = ' '
  106. *       I_NO_UPD_TASK       = ' '
  107. *       I_NO_CHECK          = ' '
  108.        EXCEPTIONS
  109.          error               = 1
  110.          warning             = 2
  111.                communication_failure       = 3  MESSAGE msg_text
  112.                system_failure              = 4  MESSAGE msg_text
  113.          OTHERS              = 5.
  114.  
  115.       IF sy-subrc <> 0.
  116.       ENDIF.
  117.  
  118.  
  119.  
  120.  
  121.     ENDIF.
  122.  
  123.     REFRESH lt_objid.
  124.  
  125.  
  126.  
  127. *&---------------------------------------------------------------------*
  128. *&      Form  get_mat
  129. *&---------------------------------------------------------------------*
  130. *       text
  131. *----------------------------------------------------------------------*
  132. *      -->I_MATNR    text
  133. *----------------------------------------------------------------------*
  134. FORM get_mat TABLES i_matnr STRUCTURE gt_matnr.
  135.   DATA lt_options TYPE TABLE OF rfc_db_opt WITH HEADER LINE.
  136.   DATA lt_fields TYPE TABLE OF rfc_db_fld WITH HEADER LINE.
  137.   DATA lt_data TYPE TABLE OF tab512 WITH HEADER LINE.
  138.   DATA msg_text(80).
  139.  
  140.   DATA: lt_where TYPE rsds_where,
  141.         it_select TYPE sbiwa_t_select,
  142.         ls_select TYPE rsselect.
  143.  
  144.   lt_fields-fieldname = 'MATNR'.
  145.   APPEND lt_fields.
  146.  
  147. * http://www.sapfans.com/forums/viewtopic.php?f=13&t=231262
  148. *   CALL FUNCTION 'VIEW_GET_DDIC_INFO'
  149. *   CALL FUNCTION 'VIEW_FILL_WHERETAB'
  150.  
  151.   ls_select-fieldnm = 'MATNR'.
  152.   LOOP AT p_matnr.
  153.     MOVE-CORRESPONDING p_matnr TO ls_select.
  154.     APPEND ls_select TO it_select.
  155.  
  156.   CALL FUNCTION 'AIBZ_FILL_WHERE_CLAUSE'
  157.     EXPORTING
  158.       i_tabname       = 'MARA'
  159.       it_select       = it_select[]
  160.     IMPORTING
  161.       es_where_clause = lt_where.
  162.  
  163.  
  164.   LOOP AT lt_where-where_tab INTO lt_options-text.
  165.     APPEND lt_options.
  166.  
  167.  
  168.   CALL FUNCTION 'RFC_READ_TABLE' DESTINATION p_dest
  169.     EXPORTING
  170.       query_table           = 'MARA'
  171. *      delimiter             = ht
  172. *      rowcount              = lv_rows
  173.     TABLES
  174.       OPTIONS               = lt_options
  175.       fields                = lt_fields
  176.       data                  = lt_data
  177.     EXCEPTIONS
  178.       table_not_available   = 1
  179.       table_without_data    = 2
  180.       option_not_valid      = 3
  181.       field_not_valid       = 4
  182.       not_authorized        = 5
  183.       data_buffer_exceeded  = 6
  184.       communication_failure = 7  MESSAGE msg_text
  185.       system_failure        = 8  MESSAGE msg_text
  186.       OTHERS                = 9.
  187.  
  188.   IF sy-subrc NE 0.
  189.     EXIT.
  190.   ELSE.
  191.     LOOP AT lt_data INTO i_matnr.
  192.       APPEND i_matnr.
  193.     ENDLOOP.
  194.   ENDIF.
  195. ENDFORM.                    "get_mat
GeSHi ©
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Return to Code Snippets

Who is online

Users browsing this forum: No registered users and 1 guest

cron