Wednesday, 22 June 2011

Enhancement new code for Gov contract type

METHOD if_ex_me_process_req_cust~fieldselection_item_refkeys.
  DATA: l_item_list TYPE mmpur_requisition_items,
 l_item TYPE mmpur_requisition_item,
 l_item_akt TYPE mereq_item,
 l_item_ref TYPE REF TO if_purchase_requisition_item.

  DATA:
    ld_attr         TYPE string,
    lo_obj          TYPE REF TO object,  " root object
    wa_ebkn         TYPE ebkn,
    it_ebkn         TYPE TABLE OF ebkn,
    wa_prps         TYPE prps,
    it_prps         TYPE TABLE OF prps.
  FIELD-SYMBOLS:
    <lo_lcl>        TYPE ANY,
    <ls_item>       TYPE mereq_item,
    <ls_itemx>      TYPE mereq_itemx.
  DATA : ws_eban TYPE eban.

  l_item_ref ?= im_item.   " TYPE REF TO if_purchase_requisition_item
*data: obj type ref to lcl_req_item.
*create object: obj type lcl_req_item.

  lo_obj     = l_item-item.  " casting to root object !!!!!
*************************
  FIELD-SYMBOLS: <test1> TYPE eban,<test2> TYPE eban.
  DATA: oref TYPE REF TO data.
  CREATE DATA oref LIKE l_item_ref.
*   assign oref->* to <test1>.
*   assign component 'C_ACMOD_AUTOMATIC'of structure <test1> to <lo_lcl>.
*    ld_attr = 'C_ACMOD_AUTOMATIC'.
*   assign l_item_ref->(ld_attr) to <lo_lcl>.
*   assign component  'my_persistent_eban' of structure
****************************
*  assign l_item_ref to <test2>.
  DATA obj12 TYPE REF TO object.
  DATA textname TYPE string.
  DATA tline TYPE TABLE OF tline.
  obj12 = im_item.
  ld_attr = 'MY_PERSISTENT_EBAN'.
  ASSIGN obj12->(ld_attr) TO <lo_lcl> .
  DATA : et_textlines TYPE mmpur_t_textlines,
    ev_bool TYPE c,
    is_texttypes TYPE mmpur_texttypes.
  MOVE <lo_lcl> TO ws_eban.
  ld_attr = 'MY_STATE->ITEM'.
  ASSIGN obj12->(ld_attr) TO <ls_item>.

  SELECT SINGLE * FROM ebkn INTO wa_ebkn WHERE banfn = ws_eban-banfn.
  ld_attr = 'MY_STATE->ITEMX'.
  ASSIGN obj12->(ld_attr) TO <ls_itemx>.

*  assign component
  SELECT SINGLE * FROM prps INTO wa_prps WHERE  pspnr = wa_ebkn-ps_psp_pnr.

  CONCATENATE ws_eban-banfn ws_eban-bnfpo INTO textname.
  is_texttypes-tdobject = 'EBAN'.
  is_texttypes-tdid = 'B99'.
  is_texttypes-tdtext =  textname.
  is_texttypes-textflag = 'X'.
*is_texttypes-DISPLAYMODE = 'X'.
  IF ( ( ( ws_eban-werks EQ 'GAR1' ) OR ( ws_eban-werks EQ 'ARK2' ) ) AND ( ws_eban-knttp EQ 'Q' ) AND ( wa_prps-slwid EQ 'Z000001' ) ).

  ELSE.
    CALL METHOD l_item_ref->if_longtexts_mm~get_text(
    EXPORTING
    im_tdid      = 'B99'
    im_texttype = is_texttypes
    IMPORTING
    ex_textlines = et_textlines ).

    REFRESH et_textlines.

    CALL METHOD l_item_ref->if_longtexts_mm~set_text(
    EXPORTING
    im_tdid      = 'B99'
    im_textlines = et_textlines
    ) .


  ENDIF.

***************************************
data: ls_item type mereq_item.
CALL METHOD l_item_ref->get_data
  receiving
    re_data = ls_item
    .
ls_item-adrn2 = '94558'.
CALL METHOD l_item_ref->set_data
  EXPORTING
    im_data = ls_item
    .

ENDMETHOD.

No comments:

Post a Comment