MM Parti Karakteristikleri Nasıl Okunur / Değiştirilir

Öncelikle malzeme kodu ile parti kodunu birleştirerek INOB tablosuna gidiyoruz (INOB-OBJECT)

Bu tablodan gelecek olan CUOBJ değeri ile AUSP-OBJEK ‘i eşleştirdiğimizde, karakteristik değerlerini bulabiliriz.

Eğer aynı işi fonksiyonlarla yapmak istersek, aşağıdaki fonksiyonları bu sırayla çağırabiliriz:

  • qmsp_material_batch_class_read
  • bapi_objcl_getdetail

 
 

Örnek bir kod şöyle olabilir:

 

* Karakteristik kodlarını okuyalım
  
CALL FUNCTION ‘QMSP_MATERIAL_BATCH_CLASS_READ’
    
EXPORTING
      i_matnr                = gv_matnr
      i_charg                = gv_charg
      i_werks                = gv_werks
      i_mara_level           = 
‘X’
      i_no_dialog            = 
‘X’
    
IMPORTING
      e_class                = gv_class
      e_klart                = gv_klart
      e_obtab                = gv_obtab
      e_objec                = gv_objec
    
EXCEPTIONS
      no_class               = 
1
      internal_error_classif = 
2
      no_change_service      = 
3
      
OTHERS                 = 4.
  
IF sy-subrc <> 0.
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
            
RAISING batch_class_not_read.
  
ENDIF.

* Karakteristik detaylarını okuyalım
  
CALL FUNCTION ‘BAPI_OBJCL_GETDETAIL’
    
EXPORTING
      objectkey              = gv_objec
      objecttable            = gv_obtab
      classnum               = gv_class
      classtype              = gv_klart
*     KEYDATE                = SY-DATUM
*     UNVALUATED_CHARS       = ‘ ‘
*     LANGUAGE               = SY-LANGU
*   IMPORTING
*     STATUS                 =
*     STANDARDCLASS          =
    
TABLES
      allocvaluesnum         = gt_valnum
      allocvalueschar        = gt_valchar
      allocvaluescurr        = gt_valcurr
      
return                 = e_return.

  READ TABLE e_return INTO lf_return WITH KEY type = ‘E’.
  
IF sy-subrc EQ 0.
    
MESSAGE e015(zispet) RAISING bapi_read_error.
  
ENDIF.

* Karakteristik değerini okuyalım
  
READ TABLE gt_valnum INTO lf_valnum
  
WITH KEY charact = gv_rfkar.
  
IF sy-subrc NE 0.
    
MESSAGE e013(zispet)
    
WITH gv_matnr gv_charg
    
RAISING characteristic_not_defined.
  
ENDIF.

  IF lf_valnum-value_from IS INITIAL.
    
MESSAGE e014(zispet)
      
WITH gv_matnr gv_charg
      
RAISING characteristic_value_not_found.
  
ENDIF.

  gv_oadre = lf_valnum-value_from.

 

Karakteristikler üzerinde değişiklik yapmak için ise, bapi_objcl_change kullanılabilir. Örnek bir kod şöyle olabilir:

 

* Veri aktarımı
  gv_nadre = i_nadre.

  READ TABLE gt_valnum INTO lf_valnum WITH KEY charact = gv_rfkar.
  lf_valnum-value_from = gv_nadre.
  
MODIFY gt_valnum FROM lf_valnum INDEX sy-tabix.

* BAPI’yi çağıralım
  
CALL FUNCTION ‘BAPI_OBJCL_CHANGE’
    
EXPORTING
      objectkey                = gv_objec
      objecttable              = gv_obtab
      classnum                 = gv_class
      classtype                = gv_klart
*     STATUS                   = ‘1’
*     STANDARDCLASS            =
*     CHANGENUMBER             =
*     KEYDATE                  = SY-DATUM
*     NO_DEFAULT_VALUES        = ‘ ‘
*   IMPORTING
*     CLASSIF_STATUS           =
    
TABLES
      allocvaluesnumnew        = gt_valnum
      allocvaluescharnew       = gt_valchar
      allocvaluescurrnew       = gt_valcurr
      
return                   = e_return.

* Hata?
  
READ TABLE e_return INTO lf_return WITH KEY type = ‘E’.
  
IF sy-subrc EQ 0.
    
MESSAGE e016(zispet) RAISING bapi_error.
  
ENDIF.

* Kesin kayıt
  
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
    
EXPORTING
      
wait = ‘X’.

Advertisement

Posted

in

,

by

Tags:

Comments

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s