Manutenzione tabella

Obiettivo

Modificare i dati direttamente in tabella di dictionary.

Modalità

TCODE se16n

Impostare tabella e filtri

TCODE &sap_edit

TCODE /h

F8

Modificare le seguenti variabili attribuendo il valore X:

GD-SAPEDIT = X

GD-EDIT = X

F8

Modificare i dati e salvare.


Ottenere indirizzo email default del cliente

Obiettivo

Ricavare l’indirizzo email di default, SMTP_ADDR, del cliente, KUNNR.

Modalità

*&---------------------------------------------------------------------*
*&      Form  get_email_address
*&---------------------------------------------------------------------*
*       text Returns in SMTP_ADDR the customer, KUNNR, default email address.
*       (by N4N)
*----------------------------------------------------------------------*
*      -->KUNNR      text
*      -->SMTP_ADDR  text
*----------------------------------------------------------------------*
FORM get_email_address USING kunnr smtp_addr.

  DATA: t_adrnr TYPE adrnr,
        t_smtp_addr TYPE ad_smtpadr.

  SELECT SINGLE adrnr FROM kna1 INTO t_adrnr
                         WHERE kunnr = kunnr.

  IF sy-subrc EQ 0.
    SELECT SINGLE smtp_addr FROM adr6 INTO t_smtp_addr
      WHERE addrnumber = t_adrnr and flgdefault = 'X'.
    IF sy-subrc EQ 0.
      smtp_addr =  t_smtp_addr.
    ENDIF.
  ENDIF.

*  IF sy-subrc EQ 0.
*    SELECT SINGLE flagcomm6 FROM adrc INTO t_flagcomm6
*      WHERE addrnumber = t_adrnr.
*    IF sy-subrc EQ 0 AND t_flagcomm6 IS NOT INITIAL.
*      SELECT SINGLE prsnr FROM knvk INTO t_pernr
*        WHERE kunnr = kunnr.
*      IF sy-subrc EQ 0 AND t_pernr IS NOT INITIAL.
*        SELECT SINGLE smtp_addr FROM adr6 INTO t_smtp_addr
*          WHERE persnumber = t_pernr.
*        IF sy-subrc EQ 0.
*          smtp_addr =  t_smtp_addr.
*        ENDIF.
*      ENDIF.
*    ENDIF.
*  ENDIF.

ENDFORM.                    "get_email_address

 


Invocare un URL

Obiettivo

Invocare un URL da codice ABAP.

Modalità

FUNCTION zn4n_call_url.
 *"---------------------------------------------------------------------- 
 *"*"Interfaccia locale: 
 *" IMPORTING 
 *" REFERENCE(URL) TYPE CHAR255 
 *"---------------------------------------------------------------------- 
 CALL FUNCTION 'WS_EXECUTE' 
 EXPORTING 
 program = '%programfiles%\Internet Explorer\IEXPLORE.EXE' 
 commandline = url 
 inform = '' 
 EXCEPTIONS 
 prog_not_found = 1. 
ENDFUNCTION.

Invocando IEXPLORE.EXE, la function funziona solo su client Windows based.


Ritorna payload del messaggio PI

FUNCTION ZN4N_PI_GET_PAYLOAD .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IM_MSGKEY) TYPE  SXMSMKEY
*"  EXPORTING
*"     VALUE(PAYLOAD) TYPE  STRING
*"  EXCEPTIONS
*"      NOT_AUTHORIZED
*"      NO_MESSAGE
*"      INTERNAL_ERROR
*"      NO_PAYLOAD
*"      GENERIC_ERROR
*"----------------------------------------------------------------------
  data: pay_bytes type xstring.
  data: ref_bytes type string.
  data: pay_load  type string.

  CALL FUNCTION 'SXMB_GET_MESSAGE_PAYLOAD'
    EXPORTING
      IM_MSGKEY      = IM_MSGKEY
*     IM_ARCHIVE     =
*     IM_VERSION     =
    IMPORTING
      EX_MSG_BYTES   = pay_bytes
    EXCEPTIONS
      NOT_AUTHORIZED = 1
      NO_MESSAGE     = 2
      INTERNAL_ERROR = 3
      NO_PAYLOAD     = 4
      OTHERS         = 5.
  IF SY-SUBRC <> 0.
    case sy-subrc.
      when 1.
        raise NOT_AUTHORIZED.
      when 2.
        raise NO_MESSAGE.
      when 3.
        raise INTERNAL_ERROR.
      when 4.
        raise NO_PAYLOAD.
      when 5.
        raise GENERIC_ERROR.
    endcase.
  ENDIF.

  try.
      CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
        EXPORTING
          IM_XSTRING  = pay_bytes
*         IM_ENCODING = 'UTF-8'
        IMPORTING
          EX_STRING   = PAYLOAD.

    catch cx_root.
      raise cx_root.
  endtry.
*
*  data l_filename LIKE  RLGRAP-FILENAME.
*  l_filename  = 'c:\tmp\payload.xml'.
*
*  data: begin of tab occurs 0,
*    field type string,
*    end of tab.
*
*  clear tab.
*  refresh tab.
*
*  tab-field = payload.
*  append tab.
*
*  CALL FUNCTION 'WS_DOWNLOAD'
* EXPORTING
*   FILENAME                      = l_filename
*   FILETYPE                      = 'ASC'
*  TABLES
*    DATA_TAB                      = tab
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_WRITE_ERROR              = 2
*   INVALID_FILESIZE              = 3
*   INVALID_TYPE                  = 4
*   NO_BATCH                      = 5
*   UNKNOWN_ERROR                 = 6
*   INVALID_TABLE_WIDTH           = 7
*   GUI_REFUSE_FILETRANSFER       = 8
*   CUSTOMER_ERROR                = 9
*   NO_AUTHORITY                  = 10
*   OTHERS                        = 11
*    .
*  IF SY-SUBRC <> 0.

*  ENDIF.


ENDFUNCTION.

Ritorna info del messaggio PI

FUNCTION ZN4N_PI_MESSAGE_DATA_GETLIST.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IM_MESSAGE_LIST) TYPE SXMSMGUIDT
*" EXPORTING
*" VALUE(EX_MESSAGE_DATA_LIST) TYPE SXI_MESSAGE_DATA_LIST
*" EXCEPTIONS
*" NOT_AUTHORIZED
*"----------------------------------------------------------------------
data: lv_guid type SXMSMGUID,
ls_msgguid TYPE sxmsmguid,
IM_PIPELINE_LIST TYPE SXMS_TAB_SXMSPID,
lv_init_date type D,
lv_init_time type T,
lv_exe_date type D,
lv_exe_time type T,
lv_msg type SXI_MESSAGE_DATA
.

LOOP AT IM_MESSAGE_LIST INTO lv_guid.
* ls_msgguid = lv_guid.
clear IM_PIPELINE_LIST.

CALL FUNCTION 'SXMB_GET_MESSAGE_DATA'
EXPORTING
IM_MESSAGE_LIST = IM_MESSAGE_LIST
IM_PIPELINE_LIST = IM_PIPELINE_LIST
IMPORTING
EX_MESSAGE_DATA_LIST = EX_MESSAGE_DATA_LIST
EXCEPTIONS
NOT_AUTHORIZED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

clear lv_msg.
loop at EX_MESSAGE_DATA_LIST into lv_msg.
CONVERT TIME STAMP lv_msg-INITTIMEST TIME ZONE sy-zonlo
INTO DATE lv_init_date TIME lv_init_time.

CONVERT TIME STAMP lv_msg-EXETIMEST TIME ZONE sy-zonlo
INTO DATE lv_exe_date TIME lv_exe_time.

* APPEND ls_msgguid TO rt_msgguid.
ENDLOOP.
ENDLOOP.

ENDFUNCTION.

 


Invocazione di un metodo proxy

*&---------------------------------------------------------------------*

*& Report  ZSD001_TEST_OMC

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

report  zsd001_test_omc.

data: my_interface type ref to zsdco_si_sd001_esito_ordini_ob,

my_request type zsdmt_sd001_esito_ordini.

*      my_response type zmy_response_message_type.

* create instance

create object my_interface.

* fill request data

my_request-mt_sd001_esito_ordini-numero_ordine = '12345'.

my_request-mt_sd001_esito_ordini-seriale = '123443545'.

my_request-mt_sd001_esito_ordini-codice_esito_ordine = '51007'.

my_request-mt_sd001_esito_ordini-descrizione_esito = 'Cliente inesistente'.

* call proxy

try.

call method my_interface->si_sd001_esito_ordini_ob

exporting

output = my_request

*      importing

*        input  = my_response.

.

catch cx_ai_system_fault .

catch cx_ai_application_fault .

endtry.

commit work and wait.