MIGO Ek Alan (Başlık)

Örnek Badi ve program
SAPLMIGO_BADI_EXAMPLE
CL_EXM_IM_MB_MIGO_BADI

1- mblnr ve mjahr key alanlı ve Z`li alanları içeren yeni bir tablo ve structure.

Structure veri transferi için kullanılacak, bilgi amaçlı alanlar da ilave edilebilir.




2- Se38`den Modül havuzu ve sub-screen oluşturulmalı. 9001 Görüntüleme, 9002 düzenleme ekranı.


Screen objeleri için global değişken tanımlanmalıdır.

DATA: GS_EK1 TYPE ZTR_S_MIGO_EK1.


9001 ve 9002 screenleri için PBO ve PAI modüllerine ihtiyaç duyulursa kullanılabilir.


Ek alanlar screene eklenir.



ZTR_MIGO_EK1_GET_HEADER


FUNCTION ZTR_MIGO_EK1_GET_HEADER .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  EXPORTING
*"     VALUE(E_EK1) TYPE  ZTR_S_MIGO_EK1
*"----------------------------------------------------------------------
  MOVE-CORRESPONDING GS_EK1  TO E_EK1.
ENDFUNCTION.

 

FUNCTION ZTR_MIGO_EK1_PUT_HEADER .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_EK1) TYPE  ZTR_S_MIGO_EK1 OPTIONAL
*"----------------------------------------------------------------------
    MOVE-CORRESPONDING I_EK1 TO GS_EK1. 
ENDFUNCTION.


FUNCTION ZTR_MIGO_EK1_UPDATE_HEADER .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_EK1) TYPE  ZTR_S_MIGO_EK1 OPTIONAL
*"----------------------------------------------------------------------
data: LS_EKALAN type ZTR_MIGO_HEADER.

move-corresponding I_EK1 to LS_EKALAN.

INSERT ZTR_MIGO_HEADER  FROM LS_EKALAN.
  IF sy-subrc <> 0.
    MESSAGE a398(00) WITH `Badi hata ZTR_MIGO_EKALAN_001`.
  ENDIF.

SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; }.L0S52 { color: #0000FF; }SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; }.L0S52 { color: #0000FF; } ENDFUNCTION.

3- SE18`dan MB_MIGO_BADI için implement oluşturulmalı.



4- Badi Class`ı içinde global değişkenler tanımlanmalı

MB_MIGO_BADI`si birden fazla impelement edilebilir. Çakışmaları önlemek için GEK1_CLASS_ID sabiti enhancement adı ile kontrol edilebilir.

GEK1_DISPLAY   alanı görüntüleme/değiştirme modu için kullanılacaktır. 

Methodlar arasında veri transferi olmadığı için diğer özellikler class içinde global değişken olarak tanımlanmalıdır.


GEK1_CLASS_ID    Constant    Private    Type    MIGO_CLASS_ID  `ZTR_MIGO_EKALAN_001`
GEK1_DISPLAY    Instance Attribute    Private    Type    XFELD
GEK1_ACTION    Instance Attribute    Private    Type    GOACTION
GEK1_REFDOC    Instance Attribute    Private    Type    REFDOC
GEK1_HEADER    Instance Attribute    Private    Type    ZTR_S_MIGO_EK1
GS_GOHEAD    Instance Attribute    Private    Type    GOHEAD



GEK1_ACTION ve GEK1_REFDOC   alanlarının MIGO ekranındaki değerleri 

* i_action:
* A01 = Goods receipt
* A02 = Return delivery
* A03 = Cancellation
* A04 = Display
* A05 = Release GR bl.st.
* A06 = Subsequent deliv.
* A07 = Goods issue
*
* i_refdoc:
* R01 = Purchase order
* R02 = Material document
* R03 = Delivery note
* R04 = Inbound delivery
* R05 = Outbound delivery
* R06 = Transport
* R07 = Transport ID code
* R08 = Order
* R09 = Reservation
* R10 = Other GR



5- Badi Class`taki methodlar güncellenmeli



method IF_EX_MB_MIGO_BADI~INIT.

  append gek1_class_id to ct_init.
endmethod.



method IF_EX_MB_MIGO_BADI~MODE_SET.
 
IF i_action = `A04`  .
     gek1_display = `X`.
  ENDIF.

  gek1_action = i_action.
  gek1_refdoc = i_refdoc.
endmethod.


method IF_EX_MB_MIGO_BADI~PAI_HEADER.

call function `ZTR_MIGO_EK1_GET_HEADER`
 IMPORTING
   E_EK1         = gek1_header
          .


endmethod.



method IF_EX_MB_MIGO_BADI~PBO_HEADER.

 case i_class_id.
   when gek1_class_id.
       

   E_CPROG = `SAPLZTR_MIGO_EK1`.
   E_HEADING = text-901. "Ek Alan

  case gek1_display.
    when `X`. E_DYNNR = `9001`.
    when ``.  E_DYNNR = `9002`.
  endcase.

call function `ZTR_MIGO_EK1_PUT_HEADER`
     EXPORTING
       I_EK1         = gek1_header .


 endcase.
endmethod.



method IF_EX_MB_MIGO_BADI~POST_DOCUMENT.


  call function `ZTR_MIGO_EK1_UPDATE_HEADER`
   EXPORTING
     I_EK1         = gek1_header
            .

endmethod.



method IF_EX_MB_MIGO_BADI~RESET.

  clear: gek1_display,
         gek1_header.


endmethod.




method IF_EX_MB_MIGO_BADI~STATUS_AND_HEADER.
    GS_GOHEAD = IS_GOHEAD.
* Görüntüleme modunda önceki verileri yükleme
    select single into corresponding  fields of gek1_header
    from ZTR_MIGO_HEADER
    where mblnr = IS_GOHEAD-mblnr
      and mjahr = IS_GOHEAD-mjahr .



endmethod.
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; }.L0S52 { color: #0000FF; }SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; }.L0S33 { color: #4DA619; }.L0S52 { color: #0000FF; }